finishing kable_styling
diff --git a/.DS_Store b/.DS_Store
index 765c1e9..75c822a 100644
--- a/.DS_Store
+++ b/.DS_Store
Binary files differ
diff --git a/NAMESPACE b/NAMESPACE
index 18cab28..1adb487 100644
--- a/NAMESPACE
+++ b/NAMESPACE
@@ -13,6 +13,7 @@
importFrom(rmarkdown,metadata)
importFrom(rvest,html_table)
importFrom(stringr,str_count)
+importFrom(stringr,str_split)
importFrom(xml2,"xml_attr<-")
importFrom(xml2,read_html)
importFrom(xml2,read_xml)
diff --git a/R/footnote.R b/R/add_footnote.R
similarity index 95%
rename from R/footnote.R
rename to R/add_footnote.R
index 121066b..5db0778 100644
--- a/R/footnote.R
+++ b/R/add_footnote.R
@@ -28,14 +28,6 @@
ids.ops <- read.csv(system.file("symbol_index.csv", package = "kableExtra"))
ids <- ids.ops[, notation]
ids.intable <- gsub("\\*", "\\\\*", ids)
- # ids.simple <- c(
- # "*", "\u2020", "\u2021", "\u00A7", "\u00B6",
- # "**", "\u2020\u2020", "\u2021\u2021", "\u00A7\u00A7", "\u00B6\u00B6",
- # "***", "\u2020\u2020\u2020", "\u2021\u2021\u2021",
- # "\u00A7\u00A7\u00A7", "\u00B6\u00B6\u00B6",
- # "****", "\u2020\u2020\u2020\u2020", "\u2021\u2021\u2021\u2021",
- # "\u00A7\u00A7\u00A7\u00A7", "\u00B6\u00B6\u00B6\u00B6"
- # )
#count the number of items in label and intable notation
count.label <- length(label)
diff --git a/R/kable_styling.R b/R/kable_styling.R
index 1d357b2..2d4d148 100644
--- a/R/kable_styling.R
+++ b/R/kable_styling.R
@@ -113,7 +113,7 @@
latex_options = "basic",
full_width = F,
position = c("center", "left", "right",
- "float_left", "float_right"),
+ "float_left", "float_right"),
font_size = NULL) {
latex_options <- match.arg(
@@ -122,55 +122,151 @@
several.ok = T
)
- out = NULL
+ out <- NULL
out <- as.character(kable_input)
table_info <- magic_mirror(kable_input)
- valign <- sub("\\[", "\\\\[", table_info$valign)
- valign <- sub("\\]", "\\\\]", valign)
- begin_tabular <- paste0("\\\\begin\\{", table_info$tabular, "\\}", valign)
- end_tabular <- paste0("\\\\end\\{", table_info$tabular, "\\}")
+ table_info$valign2 <- sub("\\[", "\\\\[", table_info$valign)
+ table_info$valign2 <- sub("\\]", "\\\\]", table_info$valign2)
+ table_info$valign3 <- sub("\\[", "", table_info$valign)
+ table_info$valign3 <- sub("\\]", "", table_info$valign3)
+ table_info$begin_tabular <- paste0("\\\\begin\\{", table_info$tabular, "\\}",
+ table_info$valign2)
+ table_info$end_tabular <- paste0("\\\\end\\{", table_info$tabular, "\\}")
if ("striped" %in% latex_options) {
- usepackage_latex("xcolor", "table")
- out <- paste0(
- # gray!6 is the same as shadecolor ({RGB}{248, 248, 248}) in pdf_document
- "\\rowcolors{2}{gray!6}{white}\n",
- out,
- "\n\\rowcolors{2}{white}{white}"
- )
+ out <- styling_latex_striped(out)
}
# hold_position is only meaningful in a table environment
if ("hold_position" %in% latex_options & table_info$table_env) {
- table_env <- "\\\\begin\\{table\\}"
- out <- sub("\\\\begin\\{table\\}", "\\\\begin\\{table\\}[!h]", out)
+ out <- styling_latex_hold_position(out)
}
- if ("scale_down" %in% latex_options | full_width) {
- out <- sub(begin_tabular,
- paste0("\\\\resizebox\\{\\\\textwidth\\}\\{\\!\\}\\{",
- begin_tabular),
- out)
- out <- sub(end_tabular, paste0(end_tabular, "\\}"), out)
+ if ("scale_down" %in% latex_options) {
+ out <- styling_latex_scale_down(out, table_info)
}
if (full_width) {
- size_matrix <- sapply(sapply(table_info$contents, str_split, " & "), nchar)
- col_max_length <- apply(size_matrix, 1, max) + 4
- col_ratio <- round(col_max_length / sum(col_max_length) * 0.9, 2)
- col_align <- paste0("p{", col_ratio, "\\\\hsize}")
- col_align <- paste0("{", paste(col_align, collapse = ""), "}")
+ out <- styling_latex_full_width(out, table_info)
+ }
- out <- sub(paste0(begin_tabular, "\\{[^\\\\n]*\\}"), begin_tabular, out)
- out <- sub(begin_tabular, paste0(begin_tabular, col_align), out)
+ if (!is.null(font_size)) {
+ out <- styling_latex_font_size(out, table_info, font_size)
}
position <- match.arg(position)
- if (position == "right") {
- warning("Right a")
- }
+ out <- styling_latex_position(out, table_info, position, latex_options)
out <- structure(out, format = "latex", class = "knitr_kable")
return(out)
}
+
+styling_latex_striped <- function(x) {
+ usepackage_latex("xcolor", "table")
+ paste0(
+ # gray!6 is the same as shadecolor ({RGB}{248, 248, 248}) in pdf_document
+ "\\rowcolors{2}{gray!6}{white}\n", x, "\n\\rowcolors{2}{white}{white}")
+}
+
+styling_latex_hold_position <- function(x) {
+ sub("\\\\begin\\{table\\}", "\\\\begin\\{table\\}[!h]", x)
+}
+
+styling_latex_scale_down <- function(x, table_info) {
+ # You cannot put longtable in a resizebox
+ # http://tex.stackexchange.com/questions/83457/how-to-resize-or-scale-a-longtable-revised
+ if (table_info$tabular == "longtable") {
+ warning("Longtable cannot be resized.")
+ return(x)
+ }
+ x <- sub(table_info$begin_tabular,
+ paste0("\\\\resizebox\\{\\\\textwidth\\}\\{\\!\\}\\{",
+ table_info$begin_tabular),
+ x)
+ sub(table_info$end_tabular, paste0(table_info$end_tabular, "\\}"), x)
+}
+
+styling_latex_full_width <- function(x, table_info) {
+ size_matrix <- sapply(sapply(table_info$contents, str_split, " & "), nchar)
+ col_max_length <- apply(size_matrix, 1, max) + 4
+ col_ratio <- round(col_max_length / sum(col_max_length), 2)
+ col_align <- paste0("p{\\\\dimexpr", col_ratio,
+ "\\\\linewidth-2\\\\tabcolsep}")
+ col_align <- paste0("{", paste(col_align, collapse = ""), "}")
+ x <- sub(paste0(table_info$begin_tabular, "\\{[^\\\\n]*\\}"),
+ table_info$begin_tabular, x)
+ sub(table_info$begin_tabular,
+ paste0(table_info$begin_tabular, col_align), x)
+}
+
+styling_latex_position <- function(x, table_info, position, latex_options) {
+ hold_position <- "hold_position" %in% latex_options
+ switch(
+ position,
+ center = styling_latex_position_center(x, table_info, hold_position),
+ left = styling_latex_position_left(x, table_info),
+ right = styling_latex_position_right(x, table_info, hold_position),
+ float_left = styling_latex_position_float(x, table_info, "l"),
+ float_right = styling_latex_position_float(x, table_info, "r")
+ )
+}
+
+styling_latex_position_center <- function(x, table_info, hold_position) {
+ if (!table_info$table_env & table_info$tabular == "tabular") {
+ table_env_setup <- "\\begin{table}"
+ if (hold_position) {
+ table_env_setup <- paste0(table_env_setup, "[!h]")
+ }
+ return(paste0(table_env_setup, "\n\\centering", x, "\n\\end{table}"))
+ }
+ return(x)
+}
+
+styling_latex_position_left <- function(x, table_info) {
+ if (table_info$tabular != "longtable") return(sub("\\\\centering\\n", "", x))
+ longtable_option <- "\\[l\\]"
+ sub(paste0("\\\\begin\\{longtable\\}", table_info$valign2),
+ paste0("\\\\begin\\{longtable\\}", longtable_option), x)
+}
+
+styling_latex_position_right <- function(x, table_info, hold_position) {
+ warning("Position = right is only supported for longtable in LaTeX. ",
+ "Setting back to center...")
+ styling_latex_position_center(x, table_info, hold_position)
+}
+
+styling_latex_position_float <- function(x, table_info, option) {
+ if (table_info$tabular == "longtable") {
+ warning("wraptable is not supported for longtable.")
+ if (option == "l") return(styling_latex_position_left(x, table_info))
+ if (option == "r") return(styling_latex_position_right(x, table_info, F))
+ }
+ if (table_info$table_env) {
+ usepackage_latex("wrapfig")
+ size_matrix <- sapply(sapply(table_info$contents, str_split, " & "), nchar)
+ col_max_length <- apply(size_matrix, 1, max) + 4
+ option <- sprintf("\\\\begin\\{wraptable\\}\\{%s\\}", option)
+ option <- paste0(option, "\\{",sum(col_max_length) * 0.15, "cm\\}")
+ x <- sub("\\\\begin\\{table\\}\\[\\!h\\]", "\\\\begin\\{table\\}", x)
+ x <- sub("\\\\begin\\{table\\}", option, x)
+ x <- sub("\\\\end\\{table\\}", "\\\\end\\{wraptable\\}", x)
+ return(x)
+ }
+}
+
+styling_latex_font_size <- function(x, table_info, font_size) {
+ row_height <- font_size + 2
+ if (table_info$tabular == "tabular" & table_info$table_env) {
+ return(sub(table_info$begin_tabular,
+ paste0("\\\\fontsize\\{", font_size, "\\}\\{", row_height,
+ "\\}\\\\selectfont\n", table_info$begin_tabular),
+ x))
+ }
+ # For longtable and tabular without table environment. Simple wrap around
+ # fontsize is good enough
+ return(paste0(
+ "\\begingroup\\fontsize{", font_size, "}{", row_height, "}\\selectfont\n", x,
+ "\\endgroup"
+ ))
+}
diff --git a/R/magic_mirror.R b/R/magic_mirror.R
index a926b25..28be804 100644
--- a/R/magic_mirror.R
+++ b/R/magic_mirror.R
@@ -42,7 +42,7 @@
# N of columns
kable_info$ncol <- nchar(kable_info$align)
# Caption
- kable_info$caption <- str_match(input, "caption\\{(.*?)\\}")[2]
+ kable_info$caption <- str_match(input, "caption\\{(.*?)\\n")[2]
# N of rows
kable_info$nrow <- str_count(input, "\\\\\n") -
# in the dev version (currently as of 11.2015) of knitr, when longtable is
@@ -55,6 +55,9 @@
)
# Contents
kable_info$contents <- str_match_all(input, "\n(.*)\\\\\\\\")[[1]][,2]
+ if (kable_info$tabular == "longtable" & !is.na(kable_info$caption)) {
+ kable_info$contents <- kable_info$contents[-1]
+ }
# Column names
kable_info$colnames <- str_split(kable_info$contents[1], " \\& ")[[1]]
# Row names
diff --git a/man/add_footnote.Rd b/man/add_footnote.Rd
index 6a9b260..e2060dd 100644
--- a/man/add_footnote.Rd
+++ b/man/add_footnote.Rd
@@ -1,5 +1,5 @@
% Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/footnote.R
+% Please edit documentation in R/add_footnote.R
\name{add_footnote}
\alias{add_footnote}
\title{Add footnote}
diff --git a/man/kable_styling.Rd b/man/kable_styling.Rd
index c19de6c..5330f97 100644
--- a/man/kable_styling.Rd
+++ b/man/kable_styling.Rd
@@ -4,9 +4,9 @@
\alias{kable_styling}
\title{HTML table attributes}
\usage{
-kable_styling(kable_input, bootstrap_options = "basic", full_width = T,
- float = c("center", "left", "right"), font_size = NULL,
- latex_hold_position = F, latex_scale_down = F)
+kable_styling(kable_input, bootstrap_options = "basic",
+ latex_options = "basic", full_width = NULL, position = c("center",
+ "left", "right", "float_left", "float_right"), font_size = NULL)
}
\arguments{
\item{bootstrap_options}{A character vector for bootstrap table options. For
@@ -18,7 +18,7 @@
\item{full_width}{A `TRUE` or `FALSE` variable controlling whether the HTML
table should have 100\% width.}
-\item{float}{A character string determining whether and how the HTML table
+\item{position}{A character string determining whether and how the HTML table
should float on the page. Values could be "left", "center", "right"}
\item{font_size}{A numeric input for table font size}
diff --git a/test/visual_tests/.gitignore b/test/visual_tests/.gitignore
new file mode 100644
index 0000000..7ea9e79
--- /dev/null
+++ b/test/visual_tests/.gitignore
@@ -0,0 +1,7 @@
+figure
+*.html
+*.md
+*.pdf
+*.log
+*.tex
+*.synctex.gz
diff --git a/test/visual_tests/add_footnote_html.Rmd b/test/visual_tests/add_footnote_html.Rmd
index 6b23867..4aff116 100644
--- a/test/visual_tests/add_footnote_html.Rmd
+++ b/test/visual_tests/add_footnote_html.Rmd
@@ -29,14 +29,8 @@
## HTML + bootstrap table
```{r through_html_bootstrap}
-kable(dt, format = "html", table.attr = htmlTable_styling()) %>%
+kable(dt, format = "html") %>%
+ kable_styling() %>%
add_footnote(c("footnote 1", "footnote 2", "footnote 3"))
```
-## HTML + bootstrap narrow table
-```{r through_latex_longtable}
-kable(dt, format = "html",
- table.attr = htmlTable_styling(c("striped", "bordered"),
- full_width = F)) %>%
- add_footnote(c("footnote 1", "footnote 2", "footnote 3"))
-```
diff --git a/test/visual_tests/add_footnote_pdf.Rmd b/test/visual_tests/add_footnote_pdf.Rmd
index d29bcaf..491248a 100644
--- a/test/visual_tests/add_footnote_pdf.Rmd
+++ b/test/visual_tests/add_footnote_pdf.Rmd
@@ -1,10 +1,6 @@
---
-title: add_footnote - PDF
+title: "add_footnote - PDF"
output: pdf_document
-vignette: >
- %\VignetteIndexEntry{Use add_footnote in PDF document}
- %\VignetteEngine{knitr::rmarkdown}
- %\VignetteEncoding{UTF-8}
---
# Through Pandoc
diff --git a/test/visual_tests/add_header_above_html.Rmd b/test/visual_tests/add_header_above_html.Rmd
new file mode 100644
index 0000000..fb41d08
--- /dev/null
+++ b/test/visual_tests/add_header_above_html.Rmd
@@ -0,0 +1,24 @@
+---
+title: "add_header_above"
+output: html_document
+---
+
+# Plain LaTeX
+```{r}
+library(knitr)
+library(kableExtra)
+dt <- mtcars[1:5, 1:4]
+
+kable(dt, format = "html") %>%
+ add_header_above(c(" ", "a" = 2, "b" = 2)) %>%
+ add_header_above(c(" ", "c" = 3, "d" = 1))
+```
+
+# Basic Bootstrap Table
+```{r}
+kable(dt, format = "html") %>%
+ kable_styling(full_width = F,
+ bootstrap_options = c("striped", "bordered")) %>%
+ add_header_above(c(" ", "a" = 2, "b" = 2)) %>%
+ add_header_above(c(" ", "c" = 3, "d" = 1))
+```
diff --git a/test/visual_tests/add_header_above_pdf.Rmd b/test/visual_tests/add_header_above_pdf.Rmd
index 8b6b195..56b4b4e 100644
--- a/test/visual_tests/add_header_above_pdf.Rmd
+++ b/test/visual_tests/add_header_above_pdf.Rmd
@@ -1,8 +1,6 @@
---
title: "add_header_above"
-output:
- pdf_document:
- keep_tex: true
+output: pdf_document
---
# Plain LaTeX
@@ -13,12 +11,12 @@
kable(dt, format = "latex") %>%
add_header_above(c(" ", "a" = 2, "b" = 2)) %>%
- add_header_above(c(" ", "a" = 3, "b" = 1))
+ add_header_above(c(" ", "c" = 3, "d" = 1))
```
# Basic Bootstrap Table
```{r}
kable(dt, format = "latex", booktabs = T) %>%
add_header_above(c(" ", "a" = 2, "b" = 2)) %>%
- add_header_above(c(" ", "a" = 3, "b" = 1))
+ add_header_above(c(" ", "c" = 3, "d" = 1))
```
diff --git a/test/visual_tests/htmlTable_styling.Rmd b/test/visual_tests/htmlTable_styling.Rmd
index d5b1faa..2841214 100644
--- a/test/visual_tests/htmlTable_styling.Rmd
+++ b/test/visual_tests/htmlTable_styling.Rmd
@@ -32,7 +32,7 @@
## Striped + Hover
```{r}
kable(dt, format = "html") %>%
- kable_styling(c("striped", "hover"))
+ kable_styling(c("striped", "hover", "primary"))
```
## Other bootstrap options
@@ -47,15 +47,16 @@
kable_styling(c("striped", "bordered", "condensed"), full_width = F)
```
+;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf,
+;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf,
+;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf,
```{r}
kable(dt, format = "html") %>%
- kable_styling(c("striped", "bordered", "condensed"), full_width = F,
- float = "left", font_size = 10) %>%
- add_header_above(c(" ", "Names" = 2)) %>%
- add_header_above(c(" " = 2, "Names")) %>%
- add_header_above(c("Names[note]" = 3)) %>%
- add_footnote("note")
+ kable_styling(c("striped", "condensed"), full_width = F,
+ position = "float_right", font_size = 10) %>%
+ add_header_above(c(" ", "Names[note]" = 2)) %>%
+ add_footnote("footnote")
```
-
+;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf, ;ojadsf sadfls;af ewejdalsf,asf ,weifojsfakslf,
diff --git a/test/visual_tests/kable_styling_pdf.Rmd b/test/visual_tests/kable_styling_pdf.Rmd
index 2ea01a2..ba1f1a2 100644
--- a/test/visual_tests/kable_styling_pdf.Rmd
+++ b/test/visual_tests/kable_styling_pdf.Rmd
@@ -5,16 +5,63 @@
keep_tex: true
---
-```{r, include=FALSE}
+```{r}
library(knitr)
library(kableExtra)
-dt <- mtcars[1:5, 1:2]
-
-kable(dt)
+dt <- mtcars[1:5, 1:8]
```
+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.
+
```{r}
-kable(dt, format = "latex")
+kable(dt[1:3], format = "latex", booktabs = T, caption = "xxx") %>%
+ kable_styling(latex_options = c("striped", "hold_position"), font_size = 6, position = "float_left")
+```
+
+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.
+
+
+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.
+
+```{r}
+kable(dt, format = "latex", booktabs = T, longtable = T) %>%
+ kable_styling(latex_options = c("striped", "hold_position"), font_size = 6, position = "float_left")
+```
+
+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.
+
+```{r}
+kable(dt, format = "latex", longtable = T) %>%
+ kable_styling(latex_options = c("hold_position"), font_size = 6, position = "float_left")
+```
+
+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.
+
+
+```{r}
+kable(dt, format = "latex", caption = "sss") %>%
+ kable_styling(latex_options = c("striped", "hold_position"), font_size = 6, position = "float_left")
+```
+
+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.
+
+```{r}
+kable(dt, format = "latex", booktabs = T, caption = "sss") %>%
+ kable_styling(latex_options = c("striped", "hold_position"), font_size = 6, position = "float_left")
+```
+
+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.
+
+```{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")
+```
+
+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.
+
+```{r}
+kable(dt, format = "latex", booktabs = F, longtable = T, caption = "sss") %>%
+ kable_styling(latex_options = c("striped", "hold_position"), font_size = 6, position = "float_left")
```