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(
diff --git a/inst/NEWS b/inst/NEWS
index 7554c8c..70009f1 100644
--- a/inst/NEWS
+++ b/inst/NEWS
@@ -17,7 +17,9 @@
 don't fulfill XHTML requirements
 
 * For all HTML table functions, improved exportation method to remove the XML
-declaration.
+declaration. (Stackoverflow: https://stackoverflow.com/questions/45262308/knit2wp-adds-text-with-kableextra)
+
+* Add `repeat_header_method` in kable_styling (#25)
 
 
 kableExtra 0.3.0
diff --git a/man/kable_styling.Rd b/man/kable_styling.Rd
index 52080ae..3c6f766 100644
--- a/man/kable_styling.Rd
+++ b/man/kable_styling.Rd
@@ -44,7 +44,10 @@
 
 \item{font_size}{A numeric input for table font size}
 
-\item{...}{extra options for HTML or LaTeX}
+\item{...}{extra options for HTML or LaTeX. For LaTeX, extra options includes
+\code{repeat_header_method} and \code{repeat_header_text}. \code{repeat_header_method} can
+either be \code{append}(default) or \code{replace} while \code{repeat_header_text} is just a
+text string you want to append on or replace the caption.}
 }
 \description{
 This function provides a cleaner approach to modify the style
