diff --git a/DESCRIPTION b/DESCRIPTION
index 67af61a..fcd7c8b 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -1,7 +1,7 @@
 Package: kableExtra
 Type: Package
 Title: Construct Complex Table with 'kable' and Pipe Syntax
-Version: 0.4.0
+Version: 0.4.0.9000
 Authors@R: c(
     person('Hao', 'Zhu', email = 'haozhu233@gmail.com', role = c('aut', 'cre')),
     person('Will', 'Beasley', email = 'wibeasley@hotmail.com', role = 'ctb'),
diff --git a/R/kable_styling.R b/R/kable_styling.R
index e1d5c81..cd46bcc 100644
--- a/R/kable_styling.R
+++ b/R/kable_styling.R
@@ -33,10 +33,13 @@
 #' 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. 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.
+#' @param ... extra options for HTML or LaTeX. See `details`.
+#'
+#' @details For LaTeX, extra options includes:
+#' - `repeat_header_method` can either be `append`(default) or `replace`
+#' - `repeat_header_text` is just a text string you want to append on or
+#' replace the caption.
+#' - `strip_color` allows users to pick a different color for their strip lines.
 #'
 #' @examples x_html <- knitr::kable(head(mtcars), "html")
 #' kable_styling(x_html, "striped", position = "left", font_size = 7)
@@ -172,7 +175,8 @@
                                           "float_left", "float_right"),
                              font_size = NULL,
                              repeat_header_text = "\\textit{(continued)}",
-                             repeat_header_method = c("append", "replace")) {
+                             repeat_header_method = c("append", "replace"),
+                             strip_color = "gray!6") {
 
   latex_options <- match.arg(
     latex_options,
@@ -187,7 +191,7 @@
   table_info <- magic_mirror(kable_input)
 
   if ("striped" %in% latex_options) {
-    out <- styling_latex_striped(out, table_info)
+    out <- styling_latex_striped(out, table_info, strip_color)
   }
 
   # hold_position is only meaningful in a table environment
@@ -220,12 +224,12 @@
   return(out)
 }
 
-styling_latex_striped <- function(x, table_info) {
+styling_latex_striped <- function(x, table_info, color) {
   # gray!6 is the same as shadecolor ({RGB}{248, 248, 248}) in pdf_document
   if (table_info$tabular == "longtable" & !is.na(table_info$caption)) {
-    row_color <- "\\rowcolors{2}{white}{gray!6}"
+    row_color <- sprintf("\\rowcolors{2}{white}{%s}", color)
   } else {
-    row_color <- "\\rowcolors{2}{gray!6}{white}"
+    row_color <- sprintf("\\rowcolors{2}{%s}{white}", color)
   }
 
   x <- read_lines(x)
diff --git a/docs/awesome_table_in_pdf.Rmd b/docs/awesome_table_in_pdf.Rmd
index 49724f7..f6e73e3 100644
--- a/docs/awesome_table_in_pdf.Rmd
+++ b/docs/awesome_table_in_pdf.Rmd
@@ -19,7 +19,7 @@
   %\VignetteEncoding{UTF-8}
 ---
 
-> Please see the package [documentation site](http://haozhu233.github.io/kableExtra) for how to use this package in HTML and more. 
+> Please see the package [documentation site](http://haozhu233.github.io/kableExtra) for how to use this package in HTML and more.  
 
 # Overview
 The goal of `kableExtra` is to help you build common complex tables and manipulate table styles. It imports the pipe `%>%` symbol from `magrittr` and verbalize all the functions, so basically you can add "layers" to a kable output in a way that is similar with `ggplot2` and `plotly`. 
diff --git a/docs/awesome_table_in_pdf.pdf b/docs/awesome_table_in_pdf.pdf
index ff0cb1b..f7bace8 100644
--- a/docs/awesome_table_in_pdf.pdf
+++ b/docs/awesome_table_in_pdf.pdf
Binary files differ
diff --git a/man/kable_styling.Rd b/man/kable_styling.Rd
index 3c6f766..6bb43a2 100644
--- a/man/kable_styling.Rd
+++ b/man/kable_styling.Rd
@@ -44,16 +44,22 @@
 
 \item{font_size}{A numeric input for table font size}
 
-\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.}
+\item{...}{extra options for HTML or LaTeX. See \code{details}.}
 }
 \description{
 This function provides a cleaner approach to modify the style
 of HTML tables other than using the \code{table.attr} option in \code{knitr::kable()}.
 Currenly, it assumes the HTML document has boot
 }
+\details{
+For LaTeX, extra options includes:
+\itemize{
+\item \code{repeat_header_method} can either be \code{append}(default) or \code{replace}
+\item \code{repeat_header_text} is just a text string you want to append on or
+replace the caption.
+\item \code{strip_color} allows users to pick a different color for their strip lines.
+}
+}
 \examples{
 x_html <- knitr::kable(head(mtcars), "html")
 kable_styling(x_html, "striped", position = "left", font_size = 7)
diff --git a/tests/visual_tests/kable_styling_pdf.Rmd b/tests/visual_tests/kable_styling_pdf.Rmd
index 7acd914..b48fe35 100644
--- a/tests/visual_tests/kable_styling_pdf.Rmd
+++ b/tests/visual_tests/kable_styling_pdf.Rmd
@@ -54,7 +54,8 @@
 
 ```{r}
 kable(dt, format = "latex", booktabs = T, longtable = T, caption = "sss") %>%
-  kable_styling(latex_options = c("striped", "hold_position"), font_size = 6, position = "float_left")
+  kable_styling(latex_options = c("striped", "hold_position"), font_size = 6, 
+                position = "float_left", strip_color = "red")
 ```
 
 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla ullamcorper mauris quis risus dignissim pellentesque. Vivamus in est finibus, porta enim in, sagittis sapien. Mauris dapibus ex nec interdum laoreet. Suspendisse sed venenatis nunc. Donec magna mauris, imperdiet eget mi eget, fringilla vestibulum nisl. Pellentesque scelerisque a elit at blandit. Etiam maximus eget urna quis vestibulum. Cras finibus mi non aliquam condimentum. Mauris feugiat libero vitae massa posuere, et congue turpis convallis. Vestibulum aliquam, quam et accumsan posuere, magna nisl ornare nunc, ac sodales metus elit ac erat. 
