add linebreak
diff --git a/R/add_header_above.R b/R/add_header_above.R
index b2be297..f5d857e 100644
--- a/R/add_header_above.R
+++ b/R/add_header_above.R
@@ -125,9 +125,13 @@
bold, italic, monospace, escape, line) {
table_info <- magic_mirror(kable_input)
header <- standardize_header_input(header)
+
if (escape) {
header$header <- escape_latex2(header$header)
+ header$header <- linebreak(header$header, align = "c", double_escape = TRUE)
}
+
+
hline_type <- switch(table_info$booktabs + 1, "\\\\hline", "\\\\toprule")
new_header_split <- pdfTable_new_header_generator(header, table_info$booktabs,
bold, italic, monospace)
diff --git a/R/kableExtra-package.R b/R/kableExtra-package.R
index c556076..7b4b72b 100644
--- a/R/kableExtra-package.R
+++ b/R/kableExtra-package.R
@@ -65,7 +65,7 @@
#' @importFrom rmarkdown latex_dependency html_dependency_bootstrap
#' html_dependency_jquery
#' @importFrom magrittr %>%
-#' @importFrom utils read.csv
+#' @importFrom utils read.csv head
#' @importFrom readr read_lines read_file
#' @importFrom scales rescale
#' @importFrom viridisLite viridis
diff --git a/R/linebreak.R b/R/linebreak.R
new file mode 100644
index 0000000..adf5e95
--- /dev/null
+++ b/R/linebreak.R
@@ -0,0 +1,18 @@
+#' Make linebreak in LaTeX Table cells
+#'
+#' @export
+linebreak <- function(x, align = c("l", "c", "r"), double_escape = F) {
+ if (is.numeric(x) | is.logical(x)) return(x)
+ align <- match.arg(align, c("l", "c", "r"))
+ if (double_escape) {
+ ifelse(str_detect(x, "\n"),
+ paste0("\\\\makecell[", align, "]{",
+ str_replace_all(x, "\n", "\\\\\\\\\\\\\\\\"), "}"),
+ x)
+ } else {
+ ifelse(str_detect(x, "\n"),
+ paste0("\\makecell[", align, "]{",
+ str_replace_all(x, "\n", "\\\\\\\\"), "}"),
+ x)
+ }
+}
diff --git a/R/zzz.R b/R/zzz.R
index a444d34..02f4487 100644
--- a/R/zzz.R
+++ b/R/zzz.R
@@ -14,5 +14,6 @@
usepackage_latex("threeparttable")
usepackage_latex("threeparttablex")
usepackage_latex("ulem", "normalem")
+ usepackage_latex("makecell")
}
}