diff --git a/R/row_spec.R b/R/row_spec.R
index 3108de8..76d7fbd 100644
--- a/R/row_spec.R
+++ b/R/row_spec.R
@@ -190,7 +190,8 @@
   row <- row + 1
   for (i in row) {
     target_row <- table_info$contents[i]
-    new_row <- latex_new_row_builder(target_row, bold, italic, monospace,
+    new_row <- latex_new_row_builder(target_row, table_info,
+                                     bold, italic, monospace,
                                      underline, strikeout,
                                      color, background, align, font_size, angle,
                                      hline_after, extra_latex_after)
@@ -208,7 +209,8 @@
   return(out)
 }
 
-latex_new_row_builder <- function(target_row, bold, italic, monospace,
+latex_new_row_builder <- function(target_row, table_info,
+                                  bold, italic, monospace,
                                   underline, strikeout,
                                   color, background, align, font_size, angle,
                                   hline_after, extra_latex_after) {
@@ -250,6 +252,18 @@
              "\\}\\\\selectfont ", x, "\\\\endgroup")})
   }
   if (!is.null(align)) {
+    if (!is.null(table_info$column_width)) {
+      p_align <- switch(align,
+                        "l" = "\\\\raggedright\\\\arraybackslash",
+                        "c" = "\\\\centering\\\\arraybackslash",
+                        "r" = "\\\\raggedleft\\\\arraybackslash")
+      align <- rep(align, table_info$ncol)
+      p_cols <- as.numeric(sub("column_", "", names(table_info$column_width)))
+      for (i in 1:length(p_cols)) {
+        align[p_cols[i]] <- paste0("\\>\\{", p_align, "\\}p\\{",
+                                   table_info$column_width[[i]], "\\}")
+      }
+    }
     new_row <- lapply(new_row, function(x) {
       paste0("\\\\multicolumn\\{1\\}\\{", align, "\\}\\{", x, "\\}")
     })
