diff --git a/NAMESPACE b/NAMESPACE
index 6ec7c1e..d30b54e 100644
--- a/NAMESPACE
+++ b/NAMESPACE
@@ -31,6 +31,7 @@
 importFrom(stringr,str_extract_all)
 importFrom(stringr,str_match)
 importFrom(stringr,str_match_all)
+importFrom(stringr,str_replace)
 importFrom(stringr,str_replace_all)
 importFrom(stringr,str_split)
 importFrom(stringr,str_sub)
diff --git a/R/add_header_above.R b/R/add_header_above.R
index e716b69..62dd0e6 100644
--- a/R/add_header_above.R
+++ b/R/add_header_above.R
@@ -123,9 +123,9 @@
   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])
-  out <- sub(hline_type,
-             paste0(hline_type, "\n", new_header),
-             enc2utf8(as.character(kable_input)))
+  out <- str_replace(enc2utf8(as.character(kable_input)),
+                     hline_type,
+                     paste0(hline_type, "\n", new_header))
   out <- structure(out, format = "latex", class = "knitr_kable")
   # new_header_row <- latex_contents_escape(new_header_split[1])
   if (is.null(table_info$new_header_row)) {
diff --git a/R/kableExtra-package.R b/R/kableExtra-package.R
index 5add5e5..9dc9689 100644
--- a/R/kableExtra-package.R
+++ b/R/kableExtra-package.R
@@ -56,7 +56,7 @@
 #' load related LaTeX packages manually.
 #'
 #' @importFrom stringr str_count str_split str_match str_detect str_match_all
-#' str_extract str_replace_all str_trim str_extract_all str_sub
+#' str_extract str_replace_all str_trim str_extract_all str_sub str_replace
 #' @importFrom xml2 read_xml xml_attr xml_has_attr xml_attr<- read_html
 #' xml_child xml_children xml_name xml_add_sibling xml_add_child xml_text
 #' xml_remove write_xml xml_text<-
diff --git a/R/kable_styling.R b/R/kable_styling.R
index 5e00bd3..a2cb9f0 100644
--- a/R/kable_styling.R
+++ b/R/kable_styling.R
@@ -180,6 +180,7 @@
                              font_size = NULL,
                              repeat_header_text = "\\textit{(continued)}",
                              repeat_header_method = c("append", "replace"),
+                             repeat_header_continued = FALSE,
                              stripe_color = "gray!6",
                              latex_table_env = NULL) {
 
@@ -215,7 +216,7 @@
 
   if ("repeat_header" %in% latex_options & table_info$tabular == "longtable") {
     out <- styling_latex_repeat_header(out, table_info, repeat_header_text,
-                                       repeat_header_method)
+                                       repeat_header_method, repeat_header_continued)
   }
 
   if (full_width) {
@@ -300,7 +301,8 @@
 }
 
 styling_latex_repeat_header <- function(x, table_info, repeat_header_text,
-                                        repeat_header_method) {
+                                        repeat_header_method,
+                                        repeat_header_continued) {
   x <- read_lines(x)
   if (table_info$booktabs) {
     header_rows_start <- which(x == "\\toprule")[1]
@@ -323,15 +325,38 @@
     continue_line <- paste0("\\caption[]{", repeat_header_text, "}\\\\")
   }
 
-  index_bottomrule <- which(x == "\\bottomrule")
-  x <- x[-index_bottomrule]
-  x[index_bottomrule - 1] <- paste0(x[index_bottomrule - 1], "*\\bottomrule")
+  if (!table_info$booktabs) {
+    bottom_part <- NULL
+  } else {
+    index_bottomrule <- which(x == "\\bottomrule")
+    x <- x[-index_bottomrule]
+
+    if (repeat_header_continued == FALSE) {
+      bottom_part <- "\\endfoot\n\\bottomrule\n\\endlastfoot"
+    } else {
+      if (repeat_header_continued == TRUE) {
+        bottom_text <- "\\textit{(continued \\ldots)}"
+      } else {
+        bottom_text <- repeat_header_continued
+      }
+      bottom_part <- paste0(
+        "\\bottomrule\n",
+        "\\multicolumn{", table_info$ncol, "}{r@{}}{", bottom_text, "}\\\n",
+        "\\endfoot\n",
+        "\\bottomrule\n",
+        "\\endlastfoot"
+      )
+    }
+  }
+
+  # x[index_bottomrule - 1] <- paste0(x[index_bottomrule - 1], "*\\bottomrule")
   x <- c(
     x[1:header_rows_end],
     "\\endfirsthead",
     continue_line,
     x[header_rows_start:header_rows_end],
     "\\endhead",
+    bottom_part,
     x[(header_rows_end + 1):length(x)]
   )
   x <- paste0(x, collapse = "\n")
diff --git a/tests/visual_tests/.gitignore b/tests/visual_tests/.gitignore
index 7ea9e79..c861d1f 100644
--- a/tests/visual_tests/.gitignore
+++ b/tests/visual_tests/.gitignore
@@ -5,3 +5,4 @@
 *.log
 *.tex
 *.synctex.gz
+*.lot
diff --git a/tests/visual_tests/longtable.Rmd b/tests/visual_tests/longtable.Rmd
index 2e3e301..31e9f82 100644
--- a/tests/visual_tests/longtable.Rmd
+++ b/tests/visual_tests/longtable.Rmd
@@ -25,7 +25,8 @@
 
 ```{r}
 kable(dt, "latex", longtable = T, caption = "test", booktabs = T, caption.short = "sss") %>%
-  kable_styling(latex_options = c("striped", "repeat_header"), repeat_header_text = "(...)")
+  kable_styling(latex_options = c("striped", "repeat_header"), 
+                repeat_header_text = "(...)", repeat_header_continued = T)
 ```
 
 ```{r}
