diff --git a/R/add_header_above.R b/R/add_header_above.R
index 72fac20..fc2b805 100644
--- a/R/add_header_above.R
+++ b/R/add_header_above.R
@@ -16,6 +16,8 @@
 #' need to be monospaced (verbatim)
 #' @param escape A T/F value showing whether special characters should be
 #' escaped.
+#' @param line A T/F value to control whether a line will appear underneath the
+#' header
 #'
 #' @examples x <- knitr::kable(head(mtcars), "html")
 #' # Add a row of header with 3 columns on the top of the table. The column
@@ -25,7 +27,7 @@
 #' @export
 add_header_above <- function(kable_input, header = NULL,
                              bold = FALSE, italic = FALSE,
-                             monospace = FALSE, escape = TRUE) {
+                             monospace = FALSE, escape = TRUE,line = TRUE) {
   kable_format <- attr(kable_input, "format")
   if (!kable_format %in% c("html", "latex")) {
     warning("Please specify format in kable. kableExtra can customize either ",
@@ -35,17 +37,17 @@
   }
   if (kable_format == "html") {
     return(htmlTable_add_header_above(kable_input, header,
-                                      bold, italic, monospace, escape))
+                                      bold, italic, monospace, escape,line))
   }
   if (kable_format == "latex") {
     return(pdfTable_add_header_above(kable_input, header,
-                                     bold, italic, monospace, escape))
+                                     bold, italic, monospace, escape,line))
   }
 }
 
 # HTML
 htmlTable_add_header_above <- function(kable_input, header,
-                                       bold, italic, monospace, escape) {
+                                       bold, italic, monospace, escape,line) {
   if (is.null(header)) return(kable_input)
   kable_attrs <- attributes(kable_input)
   kable_xml <- read_kable_as_xml(kable_input)
@@ -66,7 +68,7 @@
   }
 
   new_header_row <- htmlTable_new_header_generator(header,
-                                                   bold, italic, monospace)
+                                                   bold, italic, monospace,line)
   xml_add_child(kable_xml_thead, new_header_row, .where = 0)
   out <- as_kable_xml(kable_xml)
   attributes(out) <- kable_attrs
@@ -89,7 +91,7 @@
   return(data.frame(header = names(header), colspan = header, row.names = NULL))
 }
 
-htmlTable_new_header_generator <- function(header_df, bold, italic, monospace) {
+htmlTable_new_header_generator <- function(header_df, bold, italic, monospace,line) {
   row_style <- paste0(
     ifelse(bold, "font-weight: bold; ", ""),
     ifelse(italic, "font-style: italic; ", ""),
@@ -103,7 +105,8 @@
              'padding-bottom:0; padding-left:3px;padding-right:3px;',
              row_style,
              '" colspan="',
-             x[2], '"><div style="border-bottom: 1px solid #ddd; padding-bottom: 5px;">',
+             x[2], '"><div style="',
+             ifelse(line,'border-bottom: 1px solid #ddd; padding-bottom: 5px;">','">'),
              x[1], '</div></th>')
     }
   })
@@ -114,7 +117,7 @@
 
 # Add an extra header row above the current header in a LaTeX table ------
 pdfTable_add_header_above <- function(kable_input, header,
-                                      bold, italic, monospace, escape) {
+                                      bold, italic, monospace, escape, line) {
   table_info <- magic_mirror(kable_input)
   header <- standardize_header_input(header)
   if (escape) {
@@ -124,7 +127,11 @@
   hline_type <- switch(table_info$booktabs + 1, "\\\\hline", "\\\\toprule")
   new_header_split <- pdfTable_new_header_generator(header, table_info$booktabs,
                                                     bold, italic, monospace)
-  new_header <- paste0(new_header_split[1], "\n", new_header_split[2])
+  if(line){
+    new_header <- paste0(new_header_split[1], "\n", new_header_split[2])
+  } else {
+    new_header <- new_header_split[1]
+  }
   out <- str_replace(enc2utf8(as.character(kable_input)),
                      hline_type,
                      paste0(hline_type, "\n", new_header))
diff --git a/R/add_indent.R b/R/add_indent.R
index 886fc1c..ff54ea1 100644
--- a/R/add_indent.R
+++ b/R/add_indent.R
@@ -70,21 +70,22 @@
     positions <- positions_corrector(positions, group_header_rows,
                                      length(xml_children(kable_tbody)))
   }
+
   for (i in positions) {
     node_to_edit <- xml_child(xml_children(kable_tbody)[[i]], 1)
-    if (!xml_has_attr(node_to_edit, "indentLevel")) {
+    if (!xml_has_attr(node_to_edit, "indentlevel")) {
       xml_attr(node_to_edit, "style") <- paste(
         xml_attr(node_to_edit, "style"), "padding-left: 2em;"
       )
-      xml_attr(node_to_edit, "indentLevel") <- 1
+      xml_attr(node_to_edit, "indentlevel") <- 1
     } else {
-      indentLevel <- as.numeric(xml_attr(node_to_edit, "indentLevel"))
+      indentLevel <- as.numeric(xml_attr(node_to_edit, "indentlevel"))
       xml_attr(node_to_edit, "style") <- sub(
         paste0("padding-left: ", indentLevel * 2, "em;"),
         paste0("padding-left: ", (indentLevel + 1) * 2, "em;"),
         xml_attr(node_to_edit, "style")
       )
-      xml_attr(node_to_edit, "indentLevel") <- indentLevel + 1
+      xml_attr(node_to_edit, "indentlevel") <- indentLevel + 1
     }
   }
   out <- as_kable_xml(kable_xml)
diff --git a/R/footnote.R b/R/footnote.R
index 066e96f..d67382b 100644
--- a/R/footnote.R
+++ b/R/footnote.R
@@ -204,15 +204,10 @@
   footnote_text <- latex_tfoot_maker(footnote_table, footnote_as_chunk,
                                      table_info$ncol, threeparttable)
   if (threeparttable) {
-    if (grepl("\\\\caption\\{.*?\\}", out)) {
-      out <- sub("\\\\caption\\{", "\\\\begin{threeparttable}\n\\\\caption{",
-                 out)
-    } else {
       out <- sub(paste0("\\\\begin\\{", table_info$tabular, "\\}"),
                  paste0("\\\\begin{threeparttable}\n\\\\begin{",
                         table_info$tabular, "}"),
                  out)
-    }
     out <- sub(table_info$end_tabular,
                paste0("\\\\end{", table_info$tabular,
                       "}\n\\\\begin{tablenotes}",
diff --git a/R/kable_as_image.R b/R/kable_as_image.R
index 30c33f9..665f9d9 100644
--- a/R/kable_as_image.R
+++ b/R/kable_as_image.R
@@ -33,13 +33,16 @@
 #' be kept. Default is `FALSE`.
 #' @param density Resolution to read the PDF file. Default value is 300, which
 #' should be sufficient in most cases.
+#' @param keep_tex A T/F option to control if the latex file that is initially created
+#' should be kept. Default is `FALSE`.
 #'
 #' @export
 kable_as_image <- function(kable_input, filename = NULL,
                            file_format = "png",
                            latex_header_includes = NULL,
                            keep_pdf = FALSE,
-                           density = 300) {
+                           density = 300,
+                           keep_tex = FALSE) {
   if (!requireNamespace("magick", quietly = TRUE)) {
     stop('kable_as_image requires the magick package, which is not available ',
          'on all platforms. Please get it installed ',
@@ -70,7 +73,9 @@
     writeLines(temp_tex, paste0(temp_file, ".tex"))
     system(paste0("xelatex -interaction=batchmode ", temp_file, ".tex"))
     temp_file_delete <- paste0(temp_file, c(".tex", ".aux", ".log"))
-    unlink(temp_file_delete)
+    if(!keep_tex) {
+      unlink(temp_file_delete)
+    }
 
     table_img_pdf <- try(magick::image_read(paste0(temp_file, ".pdf"),
                                             density = density),
diff --git a/tests/.DS_Store b/tests/.DS_Store
deleted file mode 100644
index 93ddede..0000000
--- a/tests/.DS_Store
+++ /dev/null
Binary files differ
diff --git a/tests/visual_tests/.DS_Store b/tests/visual_tests/.DS_Store
deleted file mode 100644
index f5a2e96..0000000
--- a/tests/visual_tests/.DS_Store
+++ /dev/null
Binary files differ
diff --git a/tests/visual_tests/.gitignore b/tests/visual_tests/.gitignore
index c861d1f..7d7bcad 100644
--- a/tests/visual_tests/.gitignore
+++ b/tests/visual_tests/.gitignore
@@ -6,3 +6,5 @@
 *.tex
 *.synctex.gz
 *.lot
+*.docx
+.DS_store
diff --git a/tests/visual_tests/kable_as_image_pdf.docx b/tests/visual_tests/kable_as_image_pdf.docx
deleted file mode 100644
index c209cb0..0000000
--- a/tests/visual_tests/kable_as_image_pdf.docx
+++ /dev/null
Binary files differ
