diff --git a/R/kable_styling.R b/R/kable_styling.R
index bf2da86..a824d77 100644
--- a/R/kable_styling.R
+++ b/R/kable_styling.R
@@ -33,7 +33,10 @@
 #' a `LaTeX` table, if `float_*` is selected, `LaTeX` package `wrapfig` will be
 #' imported.
 #' @param font_size A numeric input for table font size
-#' @param ... extra options for HTML or LaTeX
+#' @param ... extra options for HTML or LaTeX. For LaTeX, extra options includes
+#' `repeat_header_method` and `repeat_header_text`. `repeat_header_method` can
+#' either be `append`(default) or `replace` while `repeat_header_text` is just a
+#' text string you want to append on or replace the caption.
 #'
 #' @examples x_html <- knitr::kable(head(mtcars), "html")
 #' kable_styling(x_html, "striped", position = "left", font_size = 7)
@@ -168,7 +171,8 @@
                              position = c("center", "left", "right",
                                           "float_left", "float_right"),
                              font_size = NULL,
-                             repeat_header_text = "\\textit{(continued)}") {
+                             repeat_header_text = "\\textit{(continued)}",
+                             repeat_header_method = c("append", "replace")) {
 
   latex_options <- match.arg(
     latex_options,
@@ -176,6 +180,8 @@
     several.ok = T
   )
 
+  repeat_header_method <- match.arg(repeat_header_method)
+
   out <- NULL
   out <- as.character(kable_input)
   table_info <- magic_mirror(kable_input)
@@ -194,7 +200,8 @@
   }
 
   if ("repeat_header" %in% latex_options & table_info$tabular == "longtable") {
-    out <- styling_latex_repeat_header(out, table_info, repeat_header_text)
+    out <- styling_latex_repeat_header(out, table_info, repeat_header_text,
+                                       repeat_header_method)
   }
 
   if (full_width) {
@@ -241,7 +248,8 @@
   sub(table_info$end_tabular, paste0(table_info$end_tabular, "\\}"), x)
 }
 
-styling_latex_repeat_header <- function(x, table_info, repeat_header_text) {
+styling_latex_repeat_header <- function(x, table_info, repeat_header_text,
+                                        repeat_header_method) {
   x <- read_lines(x)
   if (table_info$booktabs) {
     header_rows_start <- which(x == "\\toprule")[1]
@@ -257,10 +265,10 @@
       "}\\\\"
     )
   } else {
-    continue_line <- paste0(
-      "\\caption{", table_info$caption, " ", repeat_header_text,
-      "}\\\\"
-    )
+    if (repeat_header_method == "append") {
+      repeat_header_text <- paste(table_info$caption, repeat_header_text)
+    }
+    continue_line <- paste0("\\caption{", repeat_header_text, "}\\\\")
   }
 
   x <- c(
