Add as_image; Add xcolor back in but without options
diff --git a/NAMESPACE b/NAMESPACE
index b247396..28ec35d 100644
--- a/NAMESPACE
+++ b/NAMESPACE
@@ -6,6 +6,7 @@
export(add_footnote)
export(add_header_above)
export(add_indent)
+export(as_image)
export(auto_index)
export(cell_spec)
export(collapse_rows)
diff --git a/R/as_image.R b/R/as_image.R
new file mode 100644
index 0000000..245ecb1
--- /dev/null
+++ b/R/as_image.R
@@ -0,0 +1,42 @@
+#' Render the table as an format-independent image and use it in rmarkdown
+#'
+#' @description This function generates a temporary png file using `save_kable`
+#' and then try to put it in an rmarkdown document using
+#' `knitr::include_graphics`.
+#'
+#' @param x kable input. Either HTML or LaTeX
+#' @param width Image width in inches. (1 inch = 2.54 cm)
+#' @param height Image height in inches. (1 inch = 2.54 cm)
+#' @param ... Additional arguments passed to save_kable.
+#'
+#'
+#' @export
+as_image <- function(x, width = NULL, height = NULL,
+ ...) {
+ if (is.null(width) + is.null(height) == 0) {
+ message("Both width and height were defined. Use width only by default. ")
+ height <- NULL
+ }
+
+ temp_png <- tempfile(fileext = ".png")
+ temp_img <- save_kable(x = x, file = temp_png, ...)
+
+ img_dpi <- 300
+
+ if (is.null(width) + is.null(height) <= 1 & is.null(attr(temp_img, "info"))) {
+ warning("You need to install magick in order to use width/height in ",
+ "as_image. ")
+ } else {
+ if (!is.null(width)) {
+ img_dpi <- attr(temp_img, "info")$width / width
+ }
+ if (!is.null(height)) {
+ img_dpi <- attr(temp_img, "info")$height / height
+ }
+ }
+
+ include_graphics(temp_png, dpi = img_dpi)
+ return(NULL)
+}
+
+
diff --git a/R/kable_as_image.R b/R/kable_as_image.R
index 46dbcbc..4876db0 100644
--- a/R/kable_as_image.R
+++ b/R/kable_as_image.R
@@ -45,6 +45,8 @@
keep_pdf = FALSE,
density = 300,
keep_tex = FALSE) {
+ message('kable_as_image is deprecated. Please use save_kable or as_image ',
+ 'instead.')
if (!requireNamespace("magick", quietly = TRUE)) {
stop('kable_as_image requires the magick package, which is not available ',
'on all platforms. Please get it installed ',
diff --git a/R/save_kable.R b/R/save_kable.R
index 7870af7..6edc7c4 100644
--- a/R/save_kable.R
+++ b/R/save_kable.R
@@ -49,18 +49,30 @@
# Use webshot if necessary
if (tools::file_ext(file) %in% c("png", "jpg", "jpeg", "pdf")) {
- message("Putting together a HTML file...")
file_html <- paste0(tools::file_path_sans_ext(file), ".html")
+ file.create(file_html)
+ file_html <- normalizePath(file_html)
+ file <- paste0(tools::file_path_sans_ext(file_html), ".",
+ tools::file_ext(file))
htmltools::save_html(html_result, file = file_html)
- message("Converting HTML to ", tools::file_ext(file), "...")
webshot::webshot(file_html, file, ...)
- message("Done. ")
if (tools::file_ext(file) == "pdf") {
message("Note that HTML color may not be displayed on PDF properly.")
}
unlink(file_html)
- unlink("lib", recursive = TRUE)
+ unlink(file.path(dirname(file_html), "lib"), recursive = TRUE)
+ if (requireNamespace("magick", quietly = TRUE)) {
+ img_rework <- magick::image_read(file)
+ img_rework <- magick::image_trim(img_rework)
+ img_info <- magick::image_info(img_rework)
+ magick::image_write(img_rework, file)
+ attr(file, "info") <- img_info
+ } else {
+ message("save_kable will have the best result with magick installed. ")
+ }
} else {
+ file.create(file)
+ file <- normalizePath(file)
htmltools::save_html(html_result, file = file)
if (self_contained) {
rmarkdown::pandoc_self_contained_html(file, file)
@@ -68,7 +80,7 @@
}
}
- return(file)
+ return(invisible(file))
}
save_kable_latex <- function(x, file, latex_header_includes, keep_tex) {
@@ -94,16 +106,21 @@
temp_tex_file <- paste0(tools::file_path_sans_ext(file), ".tex")
writeLines(temp_tex, temp_tex_file, useBytes = T)
- system(paste0("xelatex -interaction=batchmode ", temp_tex_file))
+ temp_tex_file <- normalizePath(temp_tex_file)
+ file_no_ext <- tools::file_path_sans_ext(temp_tex_file)
+
+ owd <- setwd(dirname(temp_tex_file))
+
+ system(paste0("xelatex ", temp_tex_file))
if (!keep_tex) {
- temp_file_delete <- paste0(tools::file_path_sans_ext(file),
- c(".tex", ".aux", ".log"))
+ temp_file_delete <- paste0(file_no_ext, c(".tex", ".aux", ".log"))
unlink(temp_file_delete)
}
+ table_img_info <- NULL
if (tools::file_ext(file) != "pdf") {
table_img_pdf <- try(
- magick::image_read(paste0(tools::file_path_sans_ext(file), ".pdf"),
+ magick::image_read(paste0(file_no_ext, ".pdf"),
density = 300), silent = T)
if (class(table_img_pdf) == "try-error") {
stop("We hit an error when trying to use magick to read the generated ",
@@ -112,11 +129,17 @@
"Otherwise, you may check your magick installation and try to ",
"use magick::image_read to read the PDF file manually. ")
}
- unlink(paste0(tools::file_path_sans_ext(file), ".pdf"))
+ unlink(paste0(file_no_ext, ".pdf"))
table_img <- magick::image_convert(table_img_pdf,
tools::file_ext(file))
- magick::image_write(table_img, file)
+ table_img_info <- magick::image_info(table_img)
+ magick::image_write(table_img,
+ paste0(file_no_ext, ".", tools::file_ext(file)))
}
- return(file)
+ setwd(owd)
+
+ out <- paste0(file_no_ext, ".", tools::file_ext(file))
+ attr(out, "info") <- table_img_info
+ return(invisible(out))
}
diff --git a/R/util.R b/R/util.R
index 23a4802..2d91900 100644
--- a/R/util.R
+++ b/R/util.R
@@ -114,7 +114,8 @@
"\\usepackage[normalem]{ulem}",
"\\usepackage[normalem]{ulem}",
"\\usepackage[utf8]{inputenc}",
- "\\usepackage{makecell}"
+ "\\usepackage{makecell}",
+ "\\usepackage{xcolor}"
))
}
diff --git a/R/zzz.R b/R/zzz.R
index 2aa54f0..2014072 100644
--- a/R/zzz.R
+++ b/R/zzz.R
@@ -14,6 +14,7 @@
usepackage_latex("threeparttablex")
usepackage_latex("ulem", "normalem")
usepackage_latex("makecell")
+ usepackage_latex("xcolor")
}
auto_format <- getOption("kableExtra.auto_format", default = TRUE)
if (auto_format) auto_set_format()
diff --git a/docs/awesome_table_in_pdf.Rmd b/docs/awesome_table_in_pdf.Rmd
index 47b8b4a..1bf5c24 100644
--- a/docs/awesome_table_in_pdf.Rmd
+++ b/docs/awesome_table_in_pdf.Rmd
@@ -20,6 +20,7 @@
- \usepackage{threeparttablex}
- \usepackage[normalem]{ulem}
- \usepackage{makecell}
+ - \usepackage{xcolor}
vignette: >
%\VignetteIndexEntry{Create Awesome PDF Table with knitr::kable and kableExtra}
%\VignetteEngine{knitr::rmarkdown}
@@ -99,6 +100,7 @@
- \usepackage{threeparttablex}
- \usepackage[normalem]{ulem}
- \usepackage{makecell}
+ - \usepackage{xcolor}
```
Note: `kableExtra` was using `xcolor` for alternative row color before 1.0. However, the recent updates in `fancyvbr` causes a clash in `xcolor` option. Therefore, we removed the `xcolor` dependency in version 1.0 and started to rely on `colortbl` completely. If you experience any issues, please report on github.
diff --git a/docs/awesome_table_in_pdf.pdf b/docs/awesome_table_in_pdf.pdf
index 01795ff..11f41da 100644
--- a/docs/awesome_table_in_pdf.pdf
+++ b/docs/awesome_table_in_pdf.pdf
Binary files differ
diff --git a/docs/awesome_table_in_pdf.tex b/docs/awesome_table_in_pdf.tex
deleted file mode 100644
index 80c318a..0000000
--- a/docs/awesome_table_in_pdf.tex
+++ /dev/null
@@ -1,1854 +0,0 @@
-\documentclass[table]{article}
-\usepackage{lmodern}
-\usepackage{amssymb,amsmath}
-\usepackage{ifxetex,ifluatex}
-\usepackage{fixltx2e} % provides \textsubscript
-\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
- \usepackage[T1]{fontenc}
- \usepackage[utf8]{inputenc}
-\else % if luatex or xelatex
- \ifxetex
- \usepackage{mathspec}
- \else
- \usepackage{fontspec}
- \fi
- \defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase}
-\fi
-% use upquote if available, for straight quotes in verbatim environments
-\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
-% use microtype if available
-\IfFileExists{microtype.sty}{%
-\usepackage{microtype}
-\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
-}{}
-\usepackage[margin=1in]{geometry}
-\usepackage{hyperref}
-\hypersetup{unicode=true,
- pdftitle={Create Awesome LaTeX Table with knitr::kable and kableExtra},
- pdfauthor={Hao Zhu},
- pdfborder={0 0 0},
- breaklinks=true}
-\urlstyle{same} % don't use monospace font for urls
-\usepackage{color}
-\usepackage{fancyvrb}
-\newcommand{\VerbBar}{|}
-\newcommand{\VERB}{\Verb[commandchars=\\\{\}]}
-\DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}}
-% Add ',fontsize=\small' for more characters per line
-\usepackage{framed}
-\definecolor{shadecolor}{RGB}{248,248,248}
-\newenvironment{Shaded}{\begin{snugshade}}{\end{snugshade}}
-\newcommand{\AlertTok}[1]{\textcolor[rgb]{0.94,0.16,0.16}{#1}}
-\newcommand{\AnnotationTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
-\newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.77,0.63,0.00}{#1}}
-\newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.00,0.00,0.81}{#1}}
-\newcommand{\BuiltInTok}[1]{#1}
-\newcommand{\CharTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}}
-\newcommand{\CommentTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textit{#1}}}
-\newcommand{\CommentVarTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
-\newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}}
-\newcommand{\ControlFlowTok}[1]{\textcolor[rgb]{0.13,0.29,0.53}{\textbf{#1}}}
-\newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.13,0.29,0.53}{#1}}
-\newcommand{\DecValTok}[1]{\textcolor[rgb]{0.00,0.00,0.81}{#1}}
-\newcommand{\DocumentationTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
-\newcommand{\ErrorTok}[1]{\textcolor[rgb]{0.64,0.00,0.00}{\textbf{#1}}}
-\newcommand{\ExtensionTok}[1]{#1}
-\newcommand{\FloatTok}[1]{\textcolor[rgb]{0.00,0.00,0.81}{#1}}
-\newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}}
-\newcommand{\ImportTok}[1]{#1}
-\newcommand{\InformationTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
-\newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.13,0.29,0.53}{\textbf{#1}}}
-\newcommand{\NormalTok}[1]{#1}
-\newcommand{\OperatorTok}[1]{\textcolor[rgb]{0.81,0.36,0.00}{\textbf{#1}}}
-\newcommand{\OtherTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{#1}}
-\newcommand{\PreprocessorTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textit{#1}}}
-\newcommand{\RegionMarkerTok}[1]{#1}
-\newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}}
-\newcommand{\SpecialStringTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}}
-\newcommand{\StringTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}}
-\newcommand{\VariableTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}}
-\newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}}
-\newcommand{\WarningTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
-\usepackage{graphicx,grffile}
-\makeatletter
-\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi}
-\def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi}
-\makeatother
-% Scale images if necessary, so that they will not overflow the page
-% margins by default, and it is still possible to overwrite the defaults
-% using explicit options in \includegraphics[width, height, ...]{}
-\setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio}
-\IfFileExists{parskip.sty}{%
-\usepackage{parskip}
-}{% else
-\setlength{\parindent}{0pt}
-\setlength{\parskip}{6pt plus 2pt minus 1pt}
-}
-\setlength{\emergencystretch}{3em} % prevent overfull lines
-\providecommand{\tightlist}{%
- \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
-\setcounter{secnumdepth}{0}
-% Redefines (sub)paragraphs to behave more like sections
-\ifx\paragraph\undefined\else
-\let\oldparagraph\paragraph
-\renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}}
-\fi
-\ifx\subparagraph\undefined\else
-\let\oldsubparagraph\subparagraph
-\renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}}
-\fi
-
-%%% Use protect on footnotes to avoid problems with footnotes in titles
-\let\rmarkdownfootnote\footnote%
-\def\footnote{\protect\rmarkdownfootnote}
-
-%%% Change title format to be more compact
-\usepackage{titling}
-
-% Create subtitle command for use in maketitle
-\newcommand{\subtitle}[1]{
- \posttitle{
- \begin{center}\large#1\end{center}
- }
-}
-
-\setlength{\droptitle}{-2em}
-
- \title{Create Awesome LaTeX Table with knitr::kable and kableExtra}
- \pretitle{\vspace{\droptitle}\centering\huge}
- \posttitle{\par}
- \author{Hao Zhu}
- \preauthor{\centering\large\emph}
- \postauthor{\par}
- \predate{\centering\large\emph}
- \postdate{\par}
- \date{2019-01-06}
-
-\usepackage{booktabs}
-\usepackage{longtable}
-\usepackage{array}
-\usepackage{multirow}
-\usepackage{wrapfig}
-\usepackage{float}
-\usepackage{colortbl}
-\usepackage{pdflscape}
-\usepackage{tabu}
-\usepackage{threeparttable}
-\usepackage{threeparttablex}
-\usepackage[normalem]{ulem}
-\usepackage{makecell}
-
-\begin{document}
-\maketitle
-
-{
-\setcounter{tocdepth}{2}
-\tableofcontents
-}
-\clearpage
-
-\begin{quote}
-Please see the package
-\href{http://haozhu233.github.io/kableExtra}{documentation site} for how
-to use this package in HTML and more.
-\end{quote}
-
-\hypertarget{overview}{%
-\section{Overview}\label{overview}}
-
-\begin{wrapfigure}{r}{0.2\textwidth}\centering
- \includegraphics{kableExtra_sm.png}
-\end{wrapfigure}
-
-The goal of \texttt{kableExtra} is to help you build common complex
-tables and manipulate table styles. It imports the pipe
-\texttt{\%\textgreater{}\%} symbol from \texttt{magrittr} and verbalizes
-all the functions, so basically you can add ``layers'' to a kable output
-in a way that is similar with \texttt{ggplot2} and \texttt{plotly}.
-
-To learn how to generate complex tables in HTML, please visit
-\url{http://haozhu233.github.io/kableExtra/awesome_table_in_html.html}.
-
-\hypertarget{installation}{%
-\section{Installation}\label{installation}}
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\KeywordTok{install.packages}\NormalTok{(}\StringTok{"kableExtra"}\NormalTok{)}
-
-\CommentTok{# For dev version}
-\CommentTok{# install.packages("devtools")}
-\NormalTok{devtools}\OperatorTok{::}\KeywordTok{install_github}\NormalTok{(}\StringTok{"haozhu233/kableExtra"}\NormalTok{)}
-\end{Highlighting}
-\end{Shaded}
-
-\hypertarget{getting-started}{%
-\section{Getting Started}\label{getting-started}}
-
-Here we are using the first few columns and rows from dataset
-\texttt{mtcars}
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\KeywordTok{library}\NormalTok{(knitr)}
-\KeywordTok{library}\NormalTok{(kableExtra)}
-\NormalTok{dt <-}\StringTok{ }\NormalTok{mtcars[}\DecValTok{1}\OperatorTok{:}\DecValTok{5}\NormalTok{, }\DecValTok{1}\OperatorTok{:}\DecValTok{6}\NormalTok{]}
-\end{Highlighting}
-\end{Shaded}
-
-When you are using \texttt{kable()}, if you don't specify
-\texttt{format}, by default it will generate a markdown table and let
-pandoc handle the conversion from markdown to HTML/PDF. This is the most
-favorable approach to render most simple tables as it is format
-independent. If you switch from HTML to pdf, you basically don't need to
-change anything in your code. However, markdown doesn't support complex
-table. For example, if you want to have a double-row header table,
-markdown just cannot provide you the functionality you need. As a
-result, when you have such a need, you should \textbf{define
-\texttt{format} in \texttt{kable()}} as either ``html'' or ``latex''.
-\emph{You can also define a global option at the beginning using
-\texttt{options(knitr.table.format\ =\ "latex")} so you don't repeat the
-step every time.} \textbf{In this tutorial, I'll still put
-format=``latex'' in the function in case users just want to quickly
-replicate the results. In practice, you don't need to define those
-formats.}
-
-\textbf{Starting from \texttt{kableExtra} 0.9.0}, when you load this
-package (\texttt{library(kableExtra)}),
-\textcolor{red}{\textbf{it will automatically set up the global option 'knitr.table.format' based on your current environment}}.
-Unless you are rendering a PDF, \texttt{kableExtra} will try to render a
-HTML table for you. \textbf{You no longer need to manually set either
-the global option or the \texttt{format} option in each \texttt{kable()}
-function}. I'm still including the explanation above here in this
-vignette so you can understand what is going on behind the scene. Note
-that this is only an global option. You can manually set any format in
-\texttt{kable()} whenever you want. I just hope you can enjoy a peace of
-mind in most of your time.
-
-You can disable this behavior by setting
-\texttt{options(kableExtra.auto\_format\ =\ FALSE)} before you load
-\texttt{kableExtra}.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\CommentTok{# If you are using kableExtra < 0.9.0, you are recommended to set a global option first.}
-\CommentTok{# options(knitr.table.format = "latex") }
-\CommentTok{## If you don't define format here, you'll need put `format = "latex"` }
-\CommentTok{## in every kable function.}
-\end{Highlighting}
-\end{Shaded}
-
-\hypertarget{latex-packages-used-in-this-package}{%
-\subsection{LaTeX packages used in this
-package}\label{latex-packages-used-in-this-package}}
-
-If you are using a recent version of rmarkdown, you are recommended to
-load this package entirely via \texttt{library(kableExtra)} or
-\texttt{require(kableExtra)} because this package will load all
-necessary LaTeX packages, such as \texttt{booktabs} or
-\texttt{multirow}, for you automatically. Note that, if you are calling
-functions from \texttt{kableExtra} via
-\texttt{kableExtra::kable\_styling()} or if you put
-\texttt{library(kableExtra)} in a separate R file that is
-\textbf{sourced} by the rmarkdown document, these packages won't be
-loaded. Furthermore, you can suppress this auto-loading behavior by
-setting a global option \texttt{kableExtra.latex.load\_packages} to be
-\texttt{FALSE} before you load \texttt{kableExtra}.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\CommentTok{# Not evaluated. Ilustration purpose}
-\KeywordTok{options}\NormalTok{(}\DataTypeTok{kableExtra.latex.load_packages =} \OtherTok{FALSE}\NormalTok{)}
-\KeywordTok{library}\NormalTok{(kableExtra)}
-\end{Highlighting}
-\end{Shaded}
-
-If you are using R Sweave, beamer, R package vignette template, tufte or
-some customized rmarkdown templates, you can put the following meta data
-into the \texttt{yaml} section. If you are familar with LaTeX and you
-know what you are doing, feel free to remove unnecessary packages from
-the list.
-
-\begin{verbatim}
-header-includes:
- - \usepackage{booktabs}
- - \usepackage{longtable}
- - \usepackage{array}
- - \usepackage{multirow}
- - \usepackage{wrapfig}
- - \usepackage{float}
- - \usepackage{colortbl}
- - \usepackage{pdflscape}
- - \usepackage{tabu}
- - \usepackage{threeparttable}
- - \usepackage{threeparttablex}
- - \usepackage[normalem]{ulem}
- - \usepackage{makecell}
-\end{verbatim}
-
-Note: \texttt{kableExtra} was using \texttt{xcolor} for alternative row
-color before 1.0. However, the recent updates in \texttt{fancyvbr}
-causes a clash in \texttt{xcolor} option. Therefore, we removed the
-\texttt{xcolor} dependency in version 1.0 and started to rely on
-\texttt{colortbl} completely. If you experience any issues, please
-report on github.
-
-\hypertarget{plain-latex}{%
-\subsection{Plain LaTeX}\label{plain-latex}}
-
-Plain LaTeX table looks relatively ugly in 2017.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\CommentTok{# Again, with kableExtra >= 0.9.0, `format = "latex"` is automatically defined}
-\CommentTok{# when this package gets loaded. Otherwise, you still need to define formats}
-\KeywordTok{kable}\NormalTok{(dt)}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{tabular}{l|r|r|r|r|r|r}
-\hline
- & mpg & cyl & disp & hp & drat & wt\\
-\hline
-Mazda RX4 & 21.0 & 6 & 160 & 110 & 3.90 & 2.620\\
-\hline
-Mazda RX4 Wag & 21.0 & 6 & 160 & 110 & 3.90 & 2.875\\
-\hline
-Datsun 710 & 22.8 & 4 & 108 & 93 & 3.85 & 2.320\\
-\hline
-Hornet 4 Drive & 21.4 & 6 & 258 & 110 & 3.08 & 3.215\\
-\hline
-Hornet Sportabout & 18.7 & 8 & 360 & 175 & 3.15 & 3.440\\
-\hline
-\end{tabular}
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\CommentTok{# Same: kable(dt, "latex")}
-\end{Highlighting}
-\end{Shaded}
-
-\hypertarget{latex-table-with-booktabs}{%
-\subsection{LaTeX table with booktabs}\label{latex-table-with-booktabs}}
-
-Similar to Bootstrap in HTML, in LaTeX, you can also use a trick to make
-your table look prettier as well. The different part is that, this time
-you don't need to pipe kable outputs to another function. Instead, you
-should call \texttt{booktabs\ =\ T} directly in \texttt{kable()}.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\KeywordTok{kable}\NormalTok{(dt, }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{booktabs =}\NormalTok{ T)}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{tabular}{lrrrrrr}
-\toprule
- & mpg & cyl & disp & hp & drat & wt\\
-\midrule
-Mazda RX4 & 21.0 & 6 & 160 & 110 & 3.90 & 2.620\\
-Mazda RX4 Wag & 21.0 & 6 & 160 & 110 & 3.90 & 2.875\\
-Datsun 710 & 22.8 & 4 & 108 & 93 & 3.85 & 2.320\\
-Hornet 4 Drive & 21.4 & 6 & 258 & 110 & 3.08 & 3.215\\
-Hornet Sportabout & 18.7 & 8 & 360 & 175 & 3.15 & 3.440\\
-\bottomrule
-\end{tabular}
-
-\hypertarget{table-styles}{%
-\section{Table Styles}\label{table-styles}}
-
-\texttt{kable\_styling} in LaTeX uses the same syntax and structure as
-\texttt{kable\_styling} in HTML. However, instead of
-\texttt{bootstrap\_options}, you should specify \texttt{latex\_options}
-instead.
-
-\hypertarget{latex-options}{%
-\subsection{LaTeX options}\label{latex-options}}
-
-Similar with \texttt{bootstap\_options}, \texttt{latex\_options} is also
-a charter vector with a bunch of options including \texttt{striped},
-\texttt{hold\_position} and \texttt{scale\_down}.
-
-\hypertarget{striped}{%
-\subsubsection{Striped}\label{striped}}
-
-Even though in the LaTeX world, people usually call it
-\texttt{alternative\ row\ colors} but here I'm using its bootstrap name
-for consistency. Note that to make it happen, LaTeX package
-\texttt{xcolor} is required to be loaded. In an environment like
-rmarkdown::pdf\_document (rmarkdown 1.4.0 +), \texttt{kable\_styling}
-will load it automatically if \texttt{striped} is enabled. However, in
-other cases, you probably need to import that package by yourself.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\KeywordTok{kable}\NormalTok{(dt, }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{booktabs =}\NormalTok{ T) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{kable_styling}\NormalTok{(}\DataTypeTok{latex_options =} \StringTok{"striped"}\NormalTok{)}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{table}[H]
-\centering\rowcolors{2}{gray!6}{white}
-
-\begin{tabular}{lrrrrrr}
-\hiderowcolors
-\toprule
- & mpg & cyl & disp & hp & drat & wt\\
-\midrule
-\showrowcolors
-Mazda RX4 & 21.0 & 6 & 160 & 110 & 3.90 & 2.620\\
-Mazda RX4 Wag & 21.0 & 6 & 160 & 110 & 3.90 & 2.875\\
-Datsun 710 & 22.8 & 4 & 108 & 93 & 3.85 & 2.320\\
-Hornet 4 Drive & 21.4 & 6 & 258 & 110 & 3.08 & 3.215\\
-Hornet Sportabout & 18.7 & 8 & 360 & 175 & 3.15 & 3.440\\
-\bottomrule
-\end{tabular}
-\rowcolors{2}{white}{white}
-\end{table}
-
-\hypertarget{hold-position}{%
-\subsubsection{Hold position}\label{hold-position}}
-
-If you provide a table caption in \texttt{kable()}, it will put your
-LaTeX tabular in a \texttt{table} environment, unless you are using
-\texttt{longtable}. A \texttt{table} environment will automatically find
-the best place (it thinks) to put your table. However, in many cases,
-you do want your table to appear in a position you want it to be. In
-this case, you can use this \texttt{hold\_position} options here.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\KeywordTok{kable}\NormalTok{(dt, }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{caption =} \StringTok{"Demo table"}\NormalTok{, }\DataTypeTok{booktabs =}\NormalTok{ T) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{kable_styling}\NormalTok{(}\DataTypeTok{latex_options =} \KeywordTok{c}\NormalTok{(}\StringTok{"striped"}\NormalTok{, }\StringTok{"hold_position"}\NormalTok{))}
-\end{Highlighting}
-\end{Shaded}
-
-\rowcolors{2}{gray!6}{white}
-\begin{table}[!h]
-
-\caption{\label{tab:unnamed-chunk-8}Demo table}
-\centering
-\begin{tabular}{lrrrrrr}
-\hiderowcolors
-\toprule
- & mpg & cyl & disp & hp & drat & wt\\
-\midrule
-\showrowcolors
-Mazda RX4 & 21.0 & 6 & 160 & 110 & 3.90 & 2.620\\
-Mazda RX4 Wag & 21.0 & 6 & 160 & 110 & 3.90 & 2.875\\
-Datsun 710 & 22.8 & 4 & 108 & 93 & 3.85 & 2.320\\
-Hornet 4 Drive & 21.4 & 6 & 258 & 110 & 3.08 & 3.215\\
-Hornet Sportabout & 18.7 & 8 & 360 & 175 & 3.15 & 3.440\\
-\bottomrule
-\end{tabular}
-\end{table}
-\rowcolors{2}{white}{white}
-
-If you find \texttt{hold\_position} is not powerful enough to literally
-PIN your table in the exact position, you may want to use
-\texttt{HOLD\_position}, which is a more powerful version of this
-feature. For those who are familiar with LaTeX, \texttt{hold\_position}
-uses \texttt{{[}!h{]}} and \texttt{HOLD\_position} uses \texttt{{[}H{]}}
-and the \texttt{float} package.
-
-\hypertarget{scale-down}{%
-\subsubsection{Scale down}\label{scale-down}}
-
-When you have a wide table that will normally go out of the page, and
-you want to scale down the table to fit the page, you can use the
-\texttt{scale\_down} option here. Note that, if your table is too small,
-it will also scale up your table. It was named in this way only because
-scaling up isn't very useful in most cases.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\KeywordTok{kable}\NormalTok{(}\KeywordTok{cbind}\NormalTok{(dt, dt, dt), }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{booktabs =}\NormalTok{ T) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{kable_styling}\NormalTok{(}\DataTypeTok{latex_options =} \KeywordTok{c}\NormalTok{(}\StringTok{"striped"}\NormalTok{, }\StringTok{"scale_down"}\NormalTok{))}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{table}[H]
-\centering\rowcolors{2}{gray!6}{white}
-
-\resizebox{\linewidth}{!}{
-\begin{tabular}{lrrrrrrrrrrrrrrrrrr}
-\hiderowcolors
-\toprule
- & mpg & cyl & disp & hp & drat & wt & mpg & cyl & disp & hp & drat & wt & mpg & cyl & disp & hp & drat & wt\\
-\midrule
-\showrowcolors
-Mazda RX4 & 21.0 & 6 & 160 & 110 & 3.90 & 2.620 & 21.0 & 6 & 160 & 110 & 3.90 & 2.620 & 21.0 & 6 & 160 & 110 & 3.90 & 2.620\\
-Mazda RX4 Wag & 21.0 & 6 & 160 & 110 & 3.90 & 2.875 & 21.0 & 6 & 160 & 110 & 3.90 & 2.875 & 21.0 & 6 & 160 & 110 & 3.90 & 2.875\\
-Datsun 710 & 22.8 & 4 & 108 & 93 & 3.85 & 2.320 & 22.8 & 4 & 108 & 93 & 3.85 & 2.320 & 22.8 & 4 & 108 & 93 & 3.85 & 2.320\\
-Hornet 4 Drive & 21.4 & 6 & 258 & 110 & 3.08 & 3.215 & 21.4 & 6 & 258 & 110 & 3.08 & 3.215 & 21.4 & 6 & 258 & 110 & 3.08 & 3.215\\
-Hornet Sportabout & 18.7 & 8 & 360 & 175 & 3.15 & 3.440 & 18.7 & 8 & 360 & 175 & 3.15 & 3.440 & 18.7 & 8 & 360 & 175 & 3.15 & 3.440\\
-\bottomrule
-\end{tabular}}
-\rowcolors{2}{white}{white}
-\end{table}
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\KeywordTok{kable}\NormalTok{(}\KeywordTok{cbind}\NormalTok{(dt), }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{booktabs =}\NormalTok{ T) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{kable_styling}\NormalTok{(}\DataTypeTok{latex_options =} \KeywordTok{c}\NormalTok{(}\StringTok{"striped"}\NormalTok{, }\StringTok{"scale_down"}\NormalTok{))}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{table}[H]
-\centering\rowcolors{2}{gray!6}{white}
-
-\resizebox{\linewidth}{!}{
-\begin{tabular}{lrrrrrr}
-\hiderowcolors
-\toprule
- & mpg & cyl & disp & hp & drat & wt\\
-\midrule
-\showrowcolors
-Mazda RX4 & 21.0 & 6 & 160 & 110 & 3.90 & 2.620\\
-Mazda RX4 Wag & 21.0 & 6 & 160 & 110 & 3.90 & 2.875\\
-Datsun 710 & 22.8 & 4 & 108 & 93 & 3.85 & 2.320\\
-Hornet 4 Drive & 21.4 & 6 & 258 & 110 & 3.08 & 3.215\\
-Hornet Sportabout & 18.7 & 8 & 360 & 175 & 3.15 & 3.440\\
-\bottomrule
-\end{tabular}}
-\rowcolors{2}{white}{white}
-\end{table}
-
-\hypertarget{repeat-header-in-longtable}{%
-\subsubsection{Repeat header in
-longtable}\label{repeat-header-in-longtable}}
-
-In \texttt{kableExtra} 0.3.0 or above, a new option
-\texttt{repeat\_header} was introduced into \texttt{kable\_styling}. It
-will add header rows to longtables spanning multiple pages. For table
-captions on following pages, it will append \emph{``continued''} to the
-caption to differentiate. If you need texts other than
-\emph{``(continued)''} (for example, other languages), you can specify
-it using \texttt{kable\_styling(...,\ repeat\_header\_text\ =\ "xxx")}.
-If you want to completely replace the table caption instead of
-appending, you can specify it in the option
-\texttt{repeat\_header\_method}.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\NormalTok{long_dt <-}\StringTok{ }\KeywordTok{rbind}\NormalTok{(mtcars, mtcars) }
-
-\KeywordTok{kable}\NormalTok{(long_dt, }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{longtable =}\NormalTok{ T, }\DataTypeTok{booktabs =}\NormalTok{ T, }\DataTypeTok{caption =} \StringTok{"Longtable"}\NormalTok{) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{add_header_above}\NormalTok{(}\KeywordTok{c}\NormalTok{(}\StringTok{" "}\NormalTok{, }\StringTok{"Group 1"}\NormalTok{ =}\StringTok{ }\DecValTok{5}\NormalTok{, }\StringTok{"Group 2"}\NormalTok{ =}\StringTok{ }\DecValTok{6}\NormalTok{)) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{kable_styling}\NormalTok{(}\DataTypeTok{latex_options =} \KeywordTok{c}\NormalTok{(}\StringTok{"repeat_header"}\NormalTok{))}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{longtable}{lrrrrrrrrrrr}
-\caption{\label{tab:unnamed-chunk-11}Longtable}\\
-\toprule
-\multicolumn{1}{c}{ } & \multicolumn{5}{c}{Group 1} & \multicolumn{6}{c}{Group 2} \\
-\cmidrule(l{3pt}r{3pt}){2-6} \cmidrule(l{3pt}r{3pt}){7-12}
- & mpg & cyl & disp & hp & drat & wt & qsec & vs & am & gear & carb\\
-\midrule
-\endfirsthead
-\caption[]{Longtable \textit{(continued)}}\\
-\toprule
-\multicolumn{1}{c}{ } & \multicolumn{5}{c}{Group 1} & \multicolumn{6}{c}{Group 2} \\
-\cmidrule(l{3pt}r{3pt}){2-6} \cmidrule(l{3pt}r{3pt}){7-12}
- & mpg & cyl & disp & hp & drat & wt & qsec & vs & am & gear & carb\\
-\midrule
-\endhead
-\
-\endfoot
-\bottomrule
-\endlastfoot
-Mazda RX4 & 21.0 & 6 & 160.0 & 110 & 3.90 & 2.620 & 16.46 & 0 & 1 & 4 & 4\\
-Mazda RX4 Wag & 21.0 & 6 & 160.0 & 110 & 3.90 & 2.875 & 17.02 & 0 & 1 & 4 & 4\\
-Datsun 710 & 22.8 & 4 & 108.0 & 93 & 3.85 & 2.320 & 18.61 & 1 & 1 & 4 & 1\\
-Hornet 4 Drive & 21.4 & 6 & 258.0 & 110 & 3.08 & 3.215 & 19.44 & 1 & 0 & 3 & 1\\
-Hornet Sportabout & 18.7 & 8 & 360.0 & 175 & 3.15 & 3.440 & 17.02 & 0 & 0 & 3 & 2\\
-\addlinespace
-Valiant & 18.1 & 6 & 225.0 & 105 & 2.76 & 3.460 & 20.22 & 1 & 0 & 3 & 1\\
-Duster 360 & 14.3 & 8 & 360.0 & 245 & 3.21 & 3.570 & 15.84 & 0 & 0 & 3 & 4\\
-Merc 240D & 24.4 & 4 & 146.7 & 62 & 3.69 & 3.190 & 20.00 & 1 & 0 & 4 & 2\\
-Merc 230 & 22.8 & 4 & 140.8 & 95 & 3.92 & 3.150 & 22.90 & 1 & 0 & 4 & 2\\
-Merc 280 & 19.2 & 6 & 167.6 & 123 & 3.92 & 3.440 & 18.30 & 1 & 0 & 4 & 4\\
-\addlinespace
-Merc 280C & 17.8 & 6 & 167.6 & 123 & 3.92 & 3.440 & 18.90 & 1 & 0 & 4 & 4\\
-Merc 450SE & 16.4 & 8 & 275.8 & 180 & 3.07 & 4.070 & 17.40 & 0 & 0 & 3 & 3\\
-Merc 450SL & 17.3 & 8 & 275.8 & 180 & 3.07 & 3.730 & 17.60 & 0 & 0 & 3 & 3\\
-Merc 450SLC & 15.2 & 8 & 275.8 & 180 & 3.07 & 3.780 & 18.00 & 0 & 0 & 3 & 3\\
-Cadillac Fleetwood & 10.4 & 8 & 472.0 & 205 & 2.93 & 5.250 & 17.98 & 0 & 0 & 3 & 4\\
-\addlinespace
-Lincoln Continental & 10.4 & 8 & 460.0 & 215 & 3.00 & 5.424 & 17.82 & 0 & 0 & 3 & 4\\
-Chrysler Imperial & 14.7 & 8 & 440.0 & 230 & 3.23 & 5.345 & 17.42 & 0 & 0 & 3 & 4\\
-Fiat 128 & 32.4 & 4 & 78.7 & 66 & 4.08 & 2.200 & 19.47 & 1 & 1 & 4 & 1\\
-Honda Civic & 30.4 & 4 & 75.7 & 52 & 4.93 & 1.615 & 18.52 & 1 & 1 & 4 & 2\\
-Toyota Corolla & 33.9 & 4 & 71.1 & 65 & 4.22 & 1.835 & 19.90 & 1 & 1 & 4 & 1\\
-\addlinespace
-Toyota Corona & 21.5 & 4 & 120.1 & 97 & 3.70 & 2.465 & 20.01 & 1 & 0 & 3 & 1\\
-Dodge Challenger & 15.5 & 8 & 318.0 & 150 & 2.76 & 3.520 & 16.87 & 0 & 0 & 3 & 2\\
-AMC Javelin & 15.2 & 8 & 304.0 & 150 & 3.15 & 3.435 & 17.30 & 0 & 0 & 3 & 2\\
-Camaro Z28 & 13.3 & 8 & 350.0 & 245 & 3.73 & 3.840 & 15.41 & 0 & 0 & 3 & 4\\
-Pontiac Firebird & 19.2 & 8 & 400.0 & 175 & 3.08 & 3.845 & 17.05 & 0 & 0 & 3 & 2\\
-\addlinespace
-Fiat X1-9 & 27.3 & 4 & 79.0 & 66 & 4.08 & 1.935 & 18.90 & 1 & 1 & 4 & 1\\
-Porsche 914-2 & 26.0 & 4 & 120.3 & 91 & 4.43 & 2.140 & 16.70 & 0 & 1 & 5 & 2\\
-Lotus Europa & 30.4 & 4 & 95.1 & 113 & 3.77 & 1.513 & 16.90 & 1 & 1 & 5 & 2\\
-Ford Pantera L & 15.8 & 8 & 351.0 & 264 & 4.22 & 3.170 & 14.50 & 0 & 1 & 5 & 4\\
-Ferrari Dino & 19.7 & 6 & 145.0 & 175 & 3.62 & 2.770 & 15.50 & 0 & 1 & 5 & 6\\
-\addlinespace
-Maserati Bora & 15.0 & 8 & 301.0 & 335 & 3.54 & 3.570 & 14.60 & 0 & 1 & 5 & 8\\
-Volvo 142E & 21.4 & 4 & 121.0 & 109 & 4.11 & 2.780 & 18.60 & 1 & 1 & 4 & 2\\
-Mazda RX41 & 21.0 & 6 & 160.0 & 110 & 3.90 & 2.620 & 16.46 & 0 & 1 & 4 & 4\\
-Mazda RX4 Wag1 & 21.0 & 6 & 160.0 & 110 & 3.90 & 2.875 & 17.02 & 0 & 1 & 4 & 4\\
-Datsun 7101 & 22.8 & 4 & 108.0 & 93 & 3.85 & 2.320 & 18.61 & 1 & 1 & 4 & 1\\
-\addlinespace
-Hornet 4 Drive1 & 21.4 & 6 & 258.0 & 110 & 3.08 & 3.215 & 19.44 & 1 & 0 & 3 & 1\\
-Hornet Sportabout1 & 18.7 & 8 & 360.0 & 175 & 3.15 & 3.440 & 17.02 & 0 & 0 & 3 & 2\\
-Valiant1 & 18.1 & 6 & 225.0 & 105 & 2.76 & 3.460 & 20.22 & 1 & 0 & 3 & 1\\
-Duster 3601 & 14.3 & 8 & 360.0 & 245 & 3.21 & 3.570 & 15.84 & 0 & 0 & 3 & 4\\
-Merc 240D1 & 24.4 & 4 & 146.7 & 62 & 3.69 & 3.190 & 20.00 & 1 & 0 & 4 & 2\\
-\addlinespace
-Merc 2301 & 22.8 & 4 & 140.8 & 95 & 3.92 & 3.150 & 22.90 & 1 & 0 & 4 & 2\\
-Merc 2801 & 19.2 & 6 & 167.6 & 123 & 3.92 & 3.440 & 18.30 & 1 & 0 & 4 & 4\\
-Merc 280C1 & 17.8 & 6 & 167.6 & 123 & 3.92 & 3.440 & 18.90 & 1 & 0 & 4 & 4\\
-Merc 450SE1 & 16.4 & 8 & 275.8 & 180 & 3.07 & 4.070 & 17.40 & 0 & 0 & 3 & 3\\
-Merc 450SL1 & 17.3 & 8 & 275.8 & 180 & 3.07 & 3.730 & 17.60 & 0 & 0 & 3 & 3\\
-\addlinespace
-Merc 450SLC1 & 15.2 & 8 & 275.8 & 180 & 3.07 & 3.780 & 18.00 & 0 & 0 & 3 & 3\\
-Cadillac Fleetwood1 & 10.4 & 8 & 472.0 & 205 & 2.93 & 5.250 & 17.98 & 0 & 0 & 3 & 4\\
-Lincoln Continental1 & 10.4 & 8 & 460.0 & 215 & 3.00 & 5.424 & 17.82 & 0 & 0 & 3 & 4\\
-Chrysler Imperial1 & 14.7 & 8 & 440.0 & 230 & 3.23 & 5.345 & 17.42 & 0 & 0 & 3 & 4\\
-Fiat 1281 & 32.4 & 4 & 78.7 & 66 & 4.08 & 2.200 & 19.47 & 1 & 1 & 4 & 1\\
-\addlinespace
-Honda Civic1 & 30.4 & 4 & 75.7 & 52 & 4.93 & 1.615 & 18.52 & 1 & 1 & 4 & 2\\
-Toyota Corolla1 & 33.9 & 4 & 71.1 & 65 & 4.22 & 1.835 & 19.90 & 1 & 1 & 4 & 1\\
-Toyota Corona1 & 21.5 & 4 & 120.1 & 97 & 3.70 & 2.465 & 20.01 & 1 & 0 & 3 & 1\\
-Dodge Challenger1 & 15.5 & 8 & 318.0 & 150 & 2.76 & 3.520 & 16.87 & 0 & 0 & 3 & 2\\
-AMC Javelin1 & 15.2 & 8 & 304.0 & 150 & 3.15 & 3.435 & 17.30 & 0 & 0 & 3 & 2\\
-\addlinespace
-Camaro Z281 & 13.3 & 8 & 350.0 & 245 & 3.73 & 3.840 & 15.41 & 0 & 0 & 3 & 4\\
-Pontiac Firebird1 & 19.2 & 8 & 400.0 & 175 & 3.08 & 3.845 & 17.05 & 0 & 0 & 3 & 2\\
-Fiat X1-91 & 27.3 & 4 & 79.0 & 66 & 4.08 & 1.935 & 18.90 & 1 & 1 & 4 & 1\\
-Porsche 914-21 & 26.0 & 4 & 120.3 & 91 & 4.43 & 2.140 & 16.70 & 0 & 1 & 5 & 2\\
-Lotus Europa1 & 30.4 & 4 & 95.1 & 113 & 3.77 & 1.513 & 16.90 & 1 & 1 & 5 & 2\\
-\addlinespace
-Ford Pantera L1 & 15.8 & 8 & 351.0 & 264 & 4.22 & 3.170 & 14.50 & 0 & 1 & 5 & 4\\
-Ferrari Dino1 & 19.7 & 6 & 145.0 & 175 & 3.62 & 2.770 & 15.50 & 0 & 1 & 5 & 6\\
-Maserati Bora1 & 15.0 & 8 & 301.0 & 335 & 3.54 & 3.570 & 14.60 & 0 & 1 & 5 & 8\\
-Volvo 142E1 & 21.4 & 4 & 121.0 & 109 & 4.11 & 2.780 & 18.60 & 1 & 1 & 4 & 2\\*
-\end{longtable}
-
-\hypertarget{full-width}{%
-\subsection{Full width?}\label{full-width}}
-
-If you have a small table and you want it to spread wide on the page,
-you can try the \texttt{full\_width} option. Unlike
-\texttt{scale\_down}, it won't change your font size. You can use
-\texttt{column\_spec}, which will be explained later, together with
-\texttt{full\_width} to achieve the best result.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\KeywordTok{kable}\NormalTok{(dt, }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{booktabs =}\NormalTok{ T) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{kable_styling}\NormalTok{(}\DataTypeTok{full_width =}\NormalTok{ T) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{column_spec}\NormalTok{(}\DecValTok{1}\NormalTok{, }\DataTypeTok{width =} \StringTok{"8cm"}\NormalTok{)}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{tabu} to \linewidth {>{\raggedright\arraybackslash}p{8cm}>{\raggedleft}X>{\raggedleft}X>{\raggedleft}X>{\raggedleft}X>{\raggedleft}X>{\raggedleft}X}
-\toprule
- & mpg & cyl & disp & hp & drat & wt\\
-\midrule
-Mazda RX4 & 21.0 & 6 & 160 & 110 & 3.90 & 2.620\\
-Mazda RX4 Wag & 21.0 & 6 & 160 & 110 & 3.90 & 2.875\\
-Datsun 710 & 22.8 & 4 & 108 & 93 & 3.85 & 2.320\\
-Hornet 4 Drive & 21.4 & 6 & 258 & 110 & 3.08 & 3.215\\
-Hornet Sportabout & 18.7 & 8 & 360 & 175 & 3.15 & 3.440\\
-\bottomrule
-\end{tabu}
-
-\hypertarget{position}{%
-\subsection{Position}\label{position}}
-
-Table Position only matters when the table doesn't have
-\texttt{full\_width}. You can choose to align the table to
-\texttt{center} or \texttt{left} side of the page. The default value of
-position is \texttt{center}.
-
-Note that even though you can select to \texttt{right} align your table
-but the table will actually be centered. Somehow it is very difficult to
-right align a table in LaTeX (since it's not very useful in the real
-world?). If you know how to do it, please send out an issue or PR and
-let me know.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\KeywordTok{kable}\NormalTok{(dt, }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{booktabs =}\NormalTok{ T) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{kable_styling}\NormalTok{(}\DataTypeTok{position =} \StringTok{"center"}\NormalTok{)}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{table}[H]
-\centering
-\begin{tabular}{lrrrrrr}
-\toprule
- & mpg & cyl & disp & hp & drat & wt\\
-\midrule
-Mazda RX4 & 21.0 & 6 & 160 & 110 & 3.90 & 2.620\\
-Mazda RX4 Wag & 21.0 & 6 & 160 & 110 & 3.90 & 2.875\\
-Datsun 710 & 22.8 & 4 & 108 & 93 & 3.85 & 2.320\\
-Hornet 4 Drive & 21.4 & 6 & 258 & 110 & 3.08 & 3.215\\
-Hornet Sportabout & 18.7 & 8 & 360 & 175 & 3.15 & 3.440\\
-\bottomrule
-\end{tabular}
-\end{table}
-
-Becides these three common options, you can also wrap text around the
-table using the \texttt{float-left} or \texttt{float-right} options.
-Note that, like \texttt{striped}, this feature will load another
-non-default LaTeX package \texttt{wrapfig} which requires rmarkdown
-1.4.0 +. If you rmarkdown version \textless{} 1.4.0, you need to load
-the package through a customed LaTeX template file.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\KeywordTok{kable}\NormalTok{(dt, }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{booktabs =}\NormalTok{ T) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{kable_styling}\NormalTok{(}\DataTypeTok{position =} \StringTok{"float_right"}\NormalTok{)}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{wraptable}{r}{0pt}
-\begin{tabular}{lrrrrrr}
-\toprule
- & mpg & cyl & disp & hp & drat & wt\\
-\midrule
-Mazda RX4 & 21.0 & 6 & 160 & 110 & 3.90 & 2.620\\
-Mazda RX4 Wag & 21.0 & 6 & 160 & 110 & 3.90 & 2.875\\
-Datsun 710 & 22.8 & 4 & 108 & 93 & 3.85 & 2.320\\
-Hornet 4 Drive & 21.4 & 6 & 258 & 110 & 3.08 & 3.215\\
-Hornet Sportabout & 18.7 & 8 & 360 & 175 & 3.15 & 3.440\\
-\bottomrule
-\end{tabular}\end{wraptable}
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet
-mauris in ex ultricies elementum vel rutrum dolor. Phasellus tempor
-convallis dui, in hendrerit mauris placerat scelerisque. Maecenas a
-accumsan enim, a maximus velit. Pellentesque in risus eget est faucibus
-convallis nec at nulla. Phasellus nec lacinia justo. Morbi fermentum,
-orci id varius accumsan, nibh neque porttitor ipsum, consectetur luctus
-risus arcu ac ex. Aenean a luctus augue. Suspendisse et auctor nisl.
-Suspendisse cursus ultrices quam non vulputate. Phasellus et pharetra
-neque, vel feugiat erat. Sed feugiat elit at mauris commodo consequat.
-Sed congue lectus id mattis hendrerit. Mauris turpis nisl, congue eget
-velit sed, imperdiet convallis magna. Nam accumsan urna risus, non
-feugiat odio vehicula eget.
-
-\hypertarget{font-size}{%
-\subsection{Font Size}\label{font-size}}
-
-If one of your tables is huge and you want to use a smaller font size
-for that specific table, you can use the \texttt{font\_size} option.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\KeywordTok{kable}\NormalTok{(dt, }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{booktabs =}\NormalTok{ T) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{kable_styling}\NormalTok{(}\DataTypeTok{font_size =} \DecValTok{7}\NormalTok{)}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{table}[H]
-\centering\begingroup\fontsize{7}{9}\selectfont
-
-\begin{tabular}{lrrrrrr}
-\toprule
- & mpg & cyl & disp & hp & drat & wt\\
-\midrule
-Mazda RX4 & 21.0 & 6 & 160 & 110 & 3.90 & 2.620\\
-Mazda RX4 Wag & 21.0 & 6 & 160 & 110 & 3.90 & 2.875\\
-Datsun 710 & 22.8 & 4 & 108 & 93 & 3.85 & 2.320\\
-Hornet 4 Drive & 21.4 & 6 & 258 & 110 & 3.08 & 3.215\\
-Hornet Sportabout & 18.7 & 8 & 360 & 175 & 3.15 & 3.440\\
-\bottomrule
-\end{tabular}
-\endgroup{}
-\end{table}
-
-\hypertarget{column-row-specification}{%
-\section{Column / Row Specification}\label{column-row-specification}}
-
-\hypertarget{column-spec}{%
-\subsection{Column spec}\label{column-spec}}
-
-When you have a table with lots of explanatory texts, you may want to
-specify the column width for different column, since the auto adjust in
-HTML may not work in its best way while basic LaTeX table is really bad
-at handling text wrapping. Also, sometimes, you may want to highlight a
-column (e.g., a ``Total'' column) by making it bold. In these scenarios,
-you can use \texttt{column\_spec()}. You can find an example below.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\NormalTok{text_tbl <-}\StringTok{ }\KeywordTok{data.frame}\NormalTok{(}
- \DataTypeTok{Items =} \KeywordTok{c}\NormalTok{(}\StringTok{"Item 1"}\NormalTok{, }\StringTok{"Item 2"}\NormalTok{, }\StringTok{"Item 3"}\NormalTok{),}
- \DataTypeTok{Features =} \KeywordTok{c}\NormalTok{(}
- \StringTok{"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin vehicula tempor ex. Morbi malesuada sagittis turpis, at venenatis nisl luctus a. "}\NormalTok{,}
- \StringTok{"In eu urna at magna luctus rhoncus quis in nisl. Fusce in velit varius, posuere risus et, cursus augue. Duis eleifend aliquam ante, a aliquet ex tincidunt in. "}\NormalTok{, }
- \StringTok{"Vivamus venenatis egestas eros ut tempus. Vivamus id est nisi. Aliquam molestie erat et sollicitudin venenatis. In ac lacus at velit scelerisque mattis. "}
-\NormalTok{ )}
-\NormalTok{)}
-
-\KeywordTok{kable}\NormalTok{(text_tbl, }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{booktabs =}\NormalTok{ T) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{kable_styling}\NormalTok{(}\DataTypeTok{full_width =}\NormalTok{ F) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{column_spec}\NormalTok{(}\DecValTok{1}\NormalTok{, }\DataTypeTok{bold =}\NormalTok{ T, }\DataTypeTok{color =} \StringTok{"red"}\NormalTok{) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{column_spec}\NormalTok{(}\DecValTok{2}\NormalTok{, }\DataTypeTok{width =} \StringTok{"30em"}\NormalTok{)}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{table}[H]
-\centering
-\begin{tabular}{>{\bfseries\leavevmode\color{red}}l>{\raggedright\arraybackslash}p{30em}}
-\toprule
-Items & Features\\
-\midrule
-Item 1 & Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin vehicula tempor ex. Morbi malesuada sagittis turpis, at venenatis nisl luctus a.\\
-Item 2 & In eu urna at magna luctus rhoncus quis in nisl. Fusce in velit varius, posuere risus et, cursus augue. Duis eleifend aliquam ante, a aliquet ex tincidunt in.\\
-Item 3 & Vivamus venenatis egestas eros ut tempus. Vivamus id est nisi. Aliquam molestie erat et sollicitudin venenatis. In ac lacus at velit scelerisque mattis.\\
-\bottomrule
-\end{tabular}
-\end{table}
-
-\hypertarget{row-spec}{%
-\subsection{Row spec}\label{row-spec}}
-
-Similar with \texttt{column\_spec}, you can define specifications for
-rows. Currently, you can either bold or italicize an entire row. Note
-that, similar to other row-related functions in \texttt{kableExtra}, for
-the position of the target row, you don't need to count in header rows
-or the group labeling rows.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\KeywordTok{kable}\NormalTok{(dt, }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{booktabs =}\NormalTok{ T) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{kable_styling}\NormalTok{(}\StringTok{"striped"}\NormalTok{, }\DataTypeTok{full_width =}\NormalTok{ F) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{column_spec}\NormalTok{(}\DecValTok{7}\NormalTok{, }\DataTypeTok{border_left =}\NormalTok{ T, }\DataTypeTok{bold =}\NormalTok{ T) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{row_spec}\NormalTok{(}\DecValTok{1}\NormalTok{, }\DataTypeTok{strikeout =}\NormalTok{ T) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{row_spec}\NormalTok{(}\DecValTok{3}\OperatorTok{:}\DecValTok{5}\NormalTok{, }\DataTypeTok{bold =}\NormalTok{ T, }\DataTypeTok{color =} \StringTok{"white"}\NormalTok{, }\DataTypeTok{background =} \StringTok{"black"}\NormalTok{)}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{table}[H]
-\centering
-\begin{tabular}{lrrrrr|>{\bfseries}r}
-\toprule
- & mpg & cyl & disp & hp & drat & wt\\
-\midrule
-\sout{Mazda RX4} & \sout{21.0} & \sout{6} & \sout{160} & \sout{110} & \sout{3.90} & \sout{2.620}\\
-Mazda RX4 Wag & 21.0 & 6 & 160 & 110 & 3.90 & 2.875\\
-\rowcolor{black} \textcolor{white}{\textbf{Datsun 710}} & \textcolor{white}{\textbf{22.8}} & \textcolor{white}{\textbf{4}} & \textcolor{white}{\textbf{108}} & \textcolor{white}{\textbf{93}} & \textcolor{white}{\textbf{3.85}} & \textcolor{white}{\textbf{2.320}}\\
-\rowcolor{black} \textcolor{white}{\textbf{Hornet 4 Drive}} & \textcolor{white}{\textbf{21.4}} & \textcolor{white}{\textbf{6}} & \textcolor{white}{\textbf{258}} & \textcolor{white}{\textbf{110}} & \textcolor{white}{\textbf{3.08}} & \textcolor{white}{\textbf{3.215}}\\
-\rowcolor{black} \textcolor{white}{\textbf{Hornet Sportabout}} & \textcolor{white}{\textbf{18.7}} & \textcolor{white}{\textbf{8}} & \textcolor{white}{\textbf{360}} & \textcolor{white}{\textbf{175}} & \textcolor{white}{\textbf{3.15}} & \textcolor{white}{\textbf{3.440}}\\
-\bottomrule
-\end{tabular}
-\end{table}
-
-\hypertarget{header-rows}{%
-\subsection{Header Rows}\label{header-rows}}
-
-One special case of \texttt{row\_spec} is that you can specify the
-format of the header row via \texttt{row\_spec(row\ =\ 0,\ ...)}.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\KeywordTok{kable}\NormalTok{(dt, }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{booktabs =}\NormalTok{ T, }\DataTypeTok{align =} \StringTok{"c"}\NormalTok{) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{kable_styling}\NormalTok{(}\DataTypeTok{latex_options =} \StringTok{"striped"}\NormalTok{, }\DataTypeTok{full_width =}\NormalTok{ F) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{row_spec}\NormalTok{(}\DecValTok{0}\NormalTok{, }\DataTypeTok{angle =} \DecValTok{45}\NormalTok{)}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{table}[H]
-\centering\rowcolors{2}{gray!6}{white}
-
-\begin{tabular}{lcccccc}
-\hiderowcolors
-\toprule
-\rotatebox{45}{ } & \rotatebox{45}{mpg} & \rotatebox{45}{cyl} & \rotatebox{45}{disp} & \rotatebox{45}{hp} & \rotatebox{45}{drat} & \rotatebox{45}{wt}\\
-\midrule
-\showrowcolors
-Mazda RX4 & 21.0 & 6 & 160 & 110 & 3.90 & 2.620\\
-Mazda RX4 Wag & 21.0 & 6 & 160 & 110 & 3.90 & 2.875\\
-Datsun 710 & 22.8 & 4 & 108 & 93 & 3.85 & 2.320\\
-Hornet 4 Drive & 21.4 & 6 & 258 & 110 & 3.08 & 3.215\\
-Hornet Sportabout & 18.7 & 8 & 360 & 175 & 3.15 & 3.440\\
-\bottomrule
-\end{tabular}
-\rowcolors{2}{white}{white}
-\end{table}
-
-\hypertarget{celltext-specification}{%
-\section{Cell/Text Specification}\label{celltext-specification}}
-
-Function \texttt{cell\_spec} is introduced in version 0.6.0 of
-\texttt{kableExtra}. Unlike \texttt{column\_spec} and
-\texttt{row\_spec}, \textbf{this function is designed to be used before
-the data.frame gets into the \texttt{kable} function}. Comparing with
-figuring out a list of 2 dimensional indexes for targeted cells, this
-design is way easier to learn and use, and it fits perfectly well with
-\texttt{dplyr}'s \texttt{mutate} and \texttt{summarize} functions. With
-this design, there are two things to be noted: * Since
-\texttt{cell\_spec} generates raw \texttt{HTML} or \texttt{LaTeX} code,
-make sure you remember to put \texttt{escape\ =\ FALSE} in
-\texttt{kable}. At the same time, you have to escape special symbols
-including \texttt{\%} manually by yourself * \texttt{cell\_spec} needs a
-way to know whether you want \texttt{html} or \texttt{latex}. You can
-specify it locally in function or globally via the
-\texttt{options(knitr.table.format\ =\ "latex")} method as suggested at
-the beginning. If you don't provide anything, this function will output
-as HTML by default.
-
-Currently, \texttt{cell\_spec} supports features including bold, italic,
-monospace, text color, background color, align, font size \& rotation
-angle. More features may be added in the future. Please see function
-documentations as reference.
-
-\hypertarget{conditional-logic}{%
-\subsection{Conditional logic}\label{conditional-logic}}
-
-It is very easy to use \texttt{cell\_spec} with conditional logic. Here
-is an example.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\KeywordTok{library}\NormalTok{(dplyr)}
-\NormalTok{mtcars[}\DecValTok{1}\OperatorTok{:}\DecValTok{10}\NormalTok{, }\DecValTok{1}\OperatorTok{:}\DecValTok{2}\NormalTok{] }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{mutate}\NormalTok{(}
- \DataTypeTok{car =} \KeywordTok{row.names}\NormalTok{(.),}
- \CommentTok{# You don't need format = "latex" if you have ever defined options(knitr.table.format)}
- \DataTypeTok{mpg =} \KeywordTok{cell_spec}\NormalTok{(mpg, }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{color =} \KeywordTok{ifelse}\NormalTok{(mpg }\OperatorTok{>}\StringTok{ }\DecValTok{20}\NormalTok{, }\StringTok{"red"}\NormalTok{, }\StringTok{"blue"}\NormalTok{)),}
- \DataTypeTok{cyl =} \KeywordTok{cell_spec}\NormalTok{(cyl, }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{color =} \StringTok{"white"}\NormalTok{, }\DataTypeTok{align =} \StringTok{"c"}\NormalTok{, }\DataTypeTok{angle =} \DecValTok{45}\NormalTok{, }
- \DataTypeTok{background =} \KeywordTok{factor}\NormalTok{(cyl, }\KeywordTok{c}\NormalTok{(}\DecValTok{4}\NormalTok{, }\DecValTok{6}\NormalTok{, }\DecValTok{8}\NormalTok{), }
- \KeywordTok{c}\NormalTok{(}\StringTok{"#666666"}\NormalTok{, }\StringTok{"#999999"}\NormalTok{, }\StringTok{"#BBBBBB"}\NormalTok{)))}
-\NormalTok{ ) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{select}\NormalTok{(car, mpg, cyl) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{kable}\NormalTok{(}\StringTok{"latex"}\NormalTok{, }\DataTypeTok{escape =}\NormalTok{ F, }\DataTypeTok{booktabs =}\NormalTok{ T, }\DataTypeTok{linesep =} \StringTok{""}\NormalTok{)}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{tabular}{lll}
-\toprule
-car & mpg & cyl\\
-\midrule
-Mazda RX4 & \textcolor{red}{21} & \multicolumn{1}{c}{\rotatebox{45}{\cellcolor[HTML]{999999}{\textcolor{white}{6}}}}\\
-Mazda RX4 Wag & \textcolor{red}{21} & \multicolumn{1}{c}{\rotatebox{45}{\cellcolor[HTML]{999999}{\textcolor{white}{6}}}}\\
-Datsun 710 & \textcolor{red}{22.8} & \multicolumn{1}{c}{\rotatebox{45}{\cellcolor[HTML]{666666}{\textcolor{white}{4}}}}\\
-Hornet 4 Drive & \textcolor{red}{21.4} & \multicolumn{1}{c}{\rotatebox{45}{\cellcolor[HTML]{999999}{\textcolor{white}{6}}}}\\
-Hornet Sportabout & \textcolor{blue}{18.7} & \multicolumn{1}{c}{\rotatebox{45}{\cellcolor[HTML]{BBBBBB}{\textcolor{white}{8}}}}\\
-Valiant & \textcolor{blue}{18.1} & \multicolumn{1}{c}{\rotatebox{45}{\cellcolor[HTML]{999999}{\textcolor{white}{6}}}}\\
-Duster 360 & \textcolor{blue}{14.3} & \multicolumn{1}{c}{\rotatebox{45}{\cellcolor[HTML]{BBBBBB}{\textcolor{white}{8}}}}\\
-Merc 240D & \textcolor{red}{24.4} & \multicolumn{1}{c}{\rotatebox{45}{\cellcolor[HTML]{666666}{\textcolor{white}{4}}}}\\
-Merc 230 & \textcolor{red}{22.8} & \multicolumn{1}{c}{\rotatebox{45}{\cellcolor[HTML]{666666}{\textcolor{white}{4}}}}\\
-Merc 280 & \textcolor{blue}{19.2} & \multicolumn{1}{c}{\rotatebox{45}{\cellcolor[HTML]{999999}{\textcolor{white}{6}}}}\\
-\bottomrule
-\end{tabular}
-
-\hypertarget{visualize-data-with-viridis-color}{%
-\subsection{Visualize data with Viridis
-Color}\label{visualize-data-with-viridis-color}}
-
-This package also comes with a few helper functions, including
-\texttt{spec\_color}, \texttt{spec\_font\_size} \& \texttt{spec\_angle}.
-These functions can rescale continuous variables to certain scales. For
-example, function \texttt{spec\_color} would map a continuous variable
-to any \href{https://CRAN.R-project.org/package=viridisLite}{viridis
-color palettes}. It offers a very visually impactful representation in a
-tabular format.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\NormalTok{iris[}\DecValTok{1}\OperatorTok{:}\DecValTok{10}\NormalTok{, ] }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{mutate_if}\NormalTok{(is.numeric, }\ControlFlowTok{function}\NormalTok{(x) \{}
- \KeywordTok{cell_spec}\NormalTok{(x, }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{bold =}\NormalTok{ T, }\DataTypeTok{color =} \KeywordTok{spec_color}\NormalTok{(x, }\DataTypeTok{end =} \FloatTok{0.9}\NormalTok{),}
- \DataTypeTok{font_size =} \KeywordTok{spec_font_size}\NormalTok{(x))}
-\NormalTok{ \}) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{mutate}\NormalTok{(}\DataTypeTok{Species =} \KeywordTok{cell_spec}\NormalTok{(}
-\NormalTok{ Species, }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{color =} \StringTok{"white"}\NormalTok{, }\DataTypeTok{bold =}\NormalTok{ T,}
- \DataTypeTok{background =} \KeywordTok{spec_color}\NormalTok{(}\DecValTok{1}\OperatorTok{:}\DecValTok{10}\NormalTok{, }\DataTypeTok{end =} \FloatTok{0.9}\NormalTok{, }\DataTypeTok{option =} \StringTok{"A"}\NormalTok{, }\DataTypeTok{direction =} \DecValTok{-1}\NormalTok{)}
-\NormalTok{ )) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{kable}\NormalTok{(}\StringTok{"latex"}\NormalTok{, }\DataTypeTok{escape =}\NormalTok{ F, }\DataTypeTok{booktabs =}\NormalTok{ T, }\DataTypeTok{linesep =} \StringTok{""}\NormalTok{, }\DataTypeTok{align =} \StringTok{"c"}\NormalTok{)}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{tabular}{ccccc}
-\toprule
-Sepal.Length & Sepal.Width & Petal.Length & Petal.Width & Species\\
-\midrule
-\bgroup\fontsize{14}{16}\selectfont \textcolor[HTML]{28AE80}{\textbf{5.1}}\egroup{} & \bgroup\fontsize{13}{15}\selectfont \textcolor[HTML]{1F9A8A}{\textbf{3.5}}\egroup{} & \bgroup\fontsize{10}{12}\selectfont \textcolor[HTML]{3E4B8A}{\textbf{1.4}}\egroup{} & \bgroup\fontsize{11}{13}\selectfont \textcolor[HTML]{35608D}{\textbf{0.2}}\egroup{} & \cellcolor[HTML]{FECE91}{\textcolor{white}{\textbf{setosa}}}\\
-\bgroup\fontsize{12}{14}\selectfont \textcolor[HTML]{25838E}{\textbf{4.9}}\egroup{} & \bgroup\fontsize{9}{11}\selectfont \textcolor[HTML]{482274}{\textbf{3}}\egroup{} & \bgroup\fontsize{10}{12}\selectfont \textcolor[HTML]{3E4B8A}{\textbf{1.4}}\egroup{} & \bgroup\fontsize{11}{13}\selectfont \textcolor[HTML]{35608D}{\textbf{0.2}}\egroup{} & \cellcolor[HTML]{FEA06D}{\textcolor{white}{\textbf{setosa}}}\\
-\bgroup\fontsize{10}{12}\selectfont \textcolor[HTML]{39578C}{\textbf{4.7}}\egroup{} & \bgroup\fontsize{10}{12}\selectfont \textcolor[HTML]{38588C}{\textbf{3.2}}\egroup{} & \bgroup\fontsize{8}{10}\selectfont \textcolor[HTML]{440154}{\textbf{1.3}}\egroup{} & \bgroup\fontsize{11}{13}\selectfont \textcolor[HTML]{35608D}{\textbf{0.2}}\egroup{} & \cellcolor[HTML]{F66E5C}{\textcolor{white}{\textbf{setosa}}}\\
-\bgroup\fontsize{10}{12}\selectfont \textcolor[HTML]{433E85}{\textbf{4.6}}\egroup{} & \bgroup\fontsize{10}{12}\selectfont \textcolor[HTML]{433E85}{\textbf{3.1}}\egroup{} & \bgroup\fontsize{12}{14}\selectfont \textcolor[HTML]{25838E}{\textbf{1.5}}\egroup{} & \bgroup\fontsize{11}{13}\selectfont \textcolor[HTML]{35608D}{\textbf{0.2}}\egroup{} & \cellcolor[HTML]{DE4968}{\textcolor{white}{\textbf{setosa}}}\\
-\bgroup\fontsize{13}{15}\selectfont \textcolor[HTML]{1F9A8A}{\textbf{5}}\egroup{} & \bgroup\fontsize{14}{16}\selectfont \textcolor[HTML]{29AF7F}{\textbf{3.6}}\egroup{} & \bgroup\fontsize{10}{12}\selectfont \textcolor[HTML]{3E4B8A}{\textbf{1.4}}\egroup{} & \bgroup\fontsize{11}{13}\selectfont \textcolor[HTML]{35608D}{\textbf{0.2}}\egroup{} & \cellcolor[HTML]{B73779}{\textcolor{white}{\textbf{setosa}}}\\
-\bgroup\fontsize{16}{18}\selectfont \textcolor[HTML]{BBDF27}{\textbf{5.4}}\egroup{} & \bgroup\fontsize{16}{18}\selectfont \textcolor[HTML]{BBDF27}{\textbf{3.9}}\egroup{} & \bgroup\fontsize{16}{18}\selectfont \textcolor[HTML]{BBDF27}{\textbf{1.7}}\egroup{} & \bgroup\fontsize{16}{18}\selectfont \textcolor[HTML]{BBDF27}{\textbf{0.4}}\egroup{} & \cellcolor[HTML]{8C2981}{\textcolor{white}{\textbf{setosa}}}\\
-\bgroup\fontsize{10}{12}\selectfont \textcolor[HTML]{433E85}{\textbf{4.6}}\egroup{} & \bgroup\fontsize{12}{14}\selectfont \textcolor[HTML]{25838E}{\textbf{3.4}}\egroup{} & \bgroup\fontsize{10}{12}\selectfont \textcolor[HTML]{3E4B8A}{\textbf{1.4}}\egroup{} & \bgroup\fontsize{13}{15}\selectfont \textcolor[HTML]{22A884}{\textbf{0.3}}\egroup{} & \cellcolor[HTML]{641A80}{\textcolor{white}{\textbf{setosa}}}\\
-\bgroup\fontsize{13}{15}\selectfont \textcolor[HTML]{1F9A8A}{\textbf{5}}\egroup{} & \bgroup\fontsize{12}{14}\selectfont \textcolor[HTML]{25838E}{\textbf{3.4}}\egroup{} & \bgroup\fontsize{12}{14}\selectfont \textcolor[HTML]{25838E}{\textbf{1.5}}\egroup{} & \bgroup\fontsize{11}{13}\selectfont \textcolor[HTML]{35608D}{\textbf{0.2}}\egroup{} & \cellcolor[HTML]{3C0F70}{\textcolor{white}{\textbf{setosa}}}\\
-\bgroup\fontsize{8}{10}\selectfont \textcolor[HTML]{440154}{\textbf{4.4}}\egroup{} & \bgroup\fontsize{8}{10}\selectfont \textcolor[HTML]{440154}{\textbf{2.9}}\egroup{} & \bgroup\fontsize{10}{12}\selectfont \textcolor[HTML]{3E4B8A}{\textbf{1.4}}\egroup{} & \bgroup\fontsize{11}{13}\selectfont \textcolor[HTML]{35608D}{\textbf{0.2}}\egroup{} & \cellcolor[HTML]{140E36}{\textcolor{white}{\textbf{setosa}}}\\
-\bgroup\fontsize{12}{14}\selectfont \textcolor[HTML]{25838E}{\textbf{4.9}}\egroup{} & \bgroup\fontsize{10}{12}\selectfont \textcolor[HTML]{433E85}{\textbf{3.1}}\egroup{} & \bgroup\fontsize{12}{14}\selectfont \textcolor[HTML]{25838E}{\textbf{1.5}}\egroup{} & \bgroup\fontsize{8}{10}\selectfont \textcolor[HTML]{440154}{\textbf{0.1}}\egroup{} & \cellcolor[HTML]{000004}{\textcolor{white}{\textbf{setosa}}}\\
-\bottomrule
-\end{tabular}
-
-In the example above, I'm using the \texttt{mutate} functions from
-\texttt{dplyr}. You don't have to use it. Base R solutions like
-\texttt{iris\$Species\ \textless{}-\ cell\_spec(iris\$Species,\ color\ =\ "red")}
-also works.
-
-\hypertarget{text-specification}{%
-\subsection{Text Specification}\label{text-specification}}
-
-If you check the results of \texttt{cell\_spec}, you will find that this
-function does nothing more than wrapping the text with appropriate
-HTML/LaTeX formatting syntax. The result of this function is just a
-vector of character strings. As a result, when you are writing a
-\texttt{rmarkdown} document or write some text in shiny apps, if you
-need extra markups other than \textbf{bold} or \emph{italic}, you may
-use this function to \textcolor{red}{color},
-\bgroup\fontsize{16}{18}\selectfont change font size \egroup{} or
-\rotatebox{30}{rotate} your text.
-
-An aliased function \texttt{text\_spec} is also provided for a more
-literal writing experience. The only difference is that in LaTeX, unless
-you specify \texttt{latex\_background\_in\_cell\ =\ FALSE} (default is
-\texttt{TRUE}) in \texttt{cell\_spec}, it will define cell background
-color as \texttt{\textbackslash{}cellcolor\{\}}, which doesn't work
-outside of a table, while for \texttt{text\_spec}, the default value for
-\texttt{latex\_background\_in\_cell} is \texttt{FALSE}.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\NormalTok{sometext <-}\StringTok{ }\KeywordTok{strsplit}\NormalTok{(}\KeywordTok{paste0}\NormalTok{(}
- \StringTok{"You can even try to make some crazy things like this paragraph. "}\NormalTok{, }
- \StringTok{"It may seem like a useless feature right now but it's so cool "}\NormalTok{,}
- \StringTok{"and nobody can resist. ;)"}
-\NormalTok{), }\StringTok{" "}\NormalTok{)[[}\DecValTok{1}\NormalTok{]]}
-\NormalTok{text_formatted <-}\StringTok{ }\KeywordTok{paste}\NormalTok{(}
- \KeywordTok{text_spec}\NormalTok{(sometext, }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{color =} \KeywordTok{spec_color}\NormalTok{(}\DecValTok{1}\OperatorTok{:}\KeywordTok{length}\NormalTok{(sometext), }\DataTypeTok{end =} \FloatTok{0.9}\NormalTok{),}
- \DataTypeTok{font_size =} \KeywordTok{spec_font_size}\NormalTok{(}\DecValTok{1}\OperatorTok{:}\KeywordTok{length}\NormalTok{(sometext), }\DataTypeTok{begin =} \DecValTok{5}\NormalTok{, }\DataTypeTok{end =} \DecValTok{20}\NormalTok{)),}
- \DataTypeTok{collapse =} \StringTok{" "}\NormalTok{)}
-
-\CommentTok{# To display the text, type `r text_formatted` outside of the chunk}
-\end{Highlighting}
-\end{Shaded}
-
-\bgroup\fontsize{5}{7}\selectfont \textcolor[HTML]{440154}{You}\egroup{} \bgroup\fontsize{6}{8}\selectfont \textcolor[HTML]{470D60}{can}\egroup{} \bgroup\fontsize{6}{8}\selectfont \textcolor[HTML]{48186A}{even}\egroup{} \bgroup\fontsize{7}{9}\selectfont \textcolor[HTML]{482274}{try}\egroup{} \bgroup\fontsize{7}{9}\selectfont \textcolor[HTML]{472D7A}{to}\egroup{} \bgroup\fontsize{8}{10}\selectfont \textcolor[HTML]{453681}{make}\egroup{} \bgroup\fontsize{8}{10}\selectfont \textcolor[HTML]{424086}{some}\egroup{} \bgroup\fontsize{9}{11}\selectfont \textcolor[HTML]{3E4989}{crazy}\egroup{} \bgroup\fontsize{9}{11}\selectfont \textcolor[HTML]{3B518B}{things}\egroup{} \bgroup\fontsize{10}{12}\selectfont \textcolor[HTML]{375A8C}{like}\egroup{} \bgroup\fontsize{10}{12}\selectfont \textcolor[HTML]{33628D}{this}\egroup{} \bgroup\fontsize{11}{13}\selectfont \textcolor[HTML]{306A8E}{paragraph.}\egroup{} \bgroup\fontsize{11}{13}\selectfont \textcolor[HTML]{2C718E}{It}\egroup{} \bgroup\fontsize{12}{14}\selectfont \textcolor[HTML]{29798E}{may}\egroup{} \bgroup\fontsize{12}{14}\selectfont \textcolor[HTML]{26818E}{seem}\egroup{} \bgroup\fontsize{13}{15}\selectfont \textcolor[HTML]{23888E}{like}\egroup{} \bgroup\fontsize{13}{15}\selectfont \textcolor[HTML]{21908D}{a}\egroup{} \bgroup\fontsize{14}{16}\selectfont \textcolor[HTML]{1F968B}{useless}\egroup{} \bgroup\fontsize{14}{16}\selectfont \textcolor[HTML]{1F9E89}{feature}\egroup{} \bgroup\fontsize{15}{17}\selectfont \textcolor[HTML]{21A585}{right}\egroup{} \bgroup\fontsize{15}{17}\selectfont \textcolor[HTML]{26AD81}{now}\egroup{} \bgroup\fontsize{16}{18}\selectfont \textcolor[HTML]{30B47C}{but}\egroup{} \bgroup\fontsize{16}{18}\selectfont \textcolor[HTML]{3BBB75}{it's}\egroup{} \bgroup\fontsize{17}{19}\selectfont \textcolor[HTML]{4AC16D}{so}\egroup{} \bgroup\fontsize{17}{19}\selectfont \textcolor[HTML]{5AC864}{cool}\egroup{} \bgroup\fontsize{18}{20}\selectfont \textcolor[HTML]{6CCD5A}{and}\egroup{} \bgroup\fontsize{18}{20}\selectfont \textcolor[HTML]{7FD34E}{nobody}\egroup{} \bgroup\fontsize{19}{21}\selectfont \textcolor[HTML]{91D742}{can}\egroup{} \bgroup\fontsize{19}{21}\selectfont \textcolor[HTML]{A6DB35}{resist.}\egroup{} \bgroup\fontsize{20}{22}\selectfont \textcolor[HTML]{BBDF27}{;)}\egroup{}
-
-\hypertarget{grouped-columns-rows}{%
-\section{Grouped Columns / Rows}\label{grouped-columns-rows}}
-
-\hypertarget{add-header-rows-to-group-columns}{%
-\subsection{Add header rows to group
-columns}\label{add-header-rows-to-group-columns}}
-
-Tables with multi-row headers can be very useful to demonstrate grouped
-data. To do that, you can pipe your kable object into
-\texttt{add\_header\_above()}. The header variable is supposed to be a
-named character with the names as new column names and values as column
-span. For your convenience, if column span equals to 1, you can ignore
-the \texttt{=1} part so the function below can be written as
-`add\_header\_above(c(" ``,''Group 1" = 2, ``Group 2'' = 2, ``Group 3''
-= 2)).
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\KeywordTok{kable}\NormalTok{(dt, }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{booktabs =}\NormalTok{ T) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{kable_styling}\NormalTok{() }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{add_header_above}\NormalTok{(}\KeywordTok{c}\NormalTok{(}\StringTok{" "}\NormalTok{ =}\StringTok{ }\DecValTok{1}\NormalTok{, }\StringTok{"Group 1"}\NormalTok{ =}\StringTok{ }\DecValTok{2}\NormalTok{, }\StringTok{"Group 2"}\NormalTok{ =}\StringTok{ }\DecValTok{2}\NormalTok{, }\StringTok{"Group 3"}\NormalTok{ =}\StringTok{ }\DecValTok{2}\NormalTok{))}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{table}[H]
-\centering
-\begin{tabular}{lrrrrrr}
-\toprule
-\multicolumn{1}{c}{ } & \multicolumn{2}{c}{Group 1} & \multicolumn{2}{c}{Group 2} & \multicolumn{2}{c}{Group 3} \\
-\cmidrule(l{3pt}r{3pt}){2-3} \cmidrule(l{3pt}r{3pt}){4-5} \cmidrule(l{3pt}r{3pt}){6-7}
- & mpg & cyl & disp & hp & drat & wt\\
-\midrule
-Mazda RX4 & 21.0 & 6 & 160 & 110 & 3.90 & 2.620\\
-Mazda RX4 Wag & 21.0 & 6 & 160 & 110 & 3.90 & 2.875\\
-Datsun 710 & 22.8 & 4 & 108 & 93 & 3.85 & 2.320\\
-Hornet 4 Drive & 21.4 & 6 & 258 & 110 & 3.08 & 3.215\\
-Hornet Sportabout & 18.7 & 8 & 360 & 175 & 3.15 & 3.440\\
-\bottomrule
-\end{tabular}
-\end{table}
-
-In fact, if you want to add another row of header on top, please feel
-free to do so. Also, since kableExtra 0.3.0, you can specify
-\texttt{bold} \& \texttt{italic} as you do in \texttt{row\_spec()}.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\KeywordTok{kable}\NormalTok{(dt, }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{booktabs =}\NormalTok{ T) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{kable_styling}\NormalTok{(}\DataTypeTok{latex_options =} \StringTok{"striped"}\NormalTok{) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{add_header_above}\NormalTok{(}\KeywordTok{c}\NormalTok{(}\StringTok{" "}\NormalTok{, }\StringTok{"Group 1"}\NormalTok{ =}\StringTok{ }\DecValTok{2}\NormalTok{, }\StringTok{"Group 2"}\NormalTok{ =}\StringTok{ }\DecValTok{2}\NormalTok{, }\StringTok{"Group 3"}\NormalTok{ =}\StringTok{ }\DecValTok{2}\NormalTok{)) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{add_header_above}\NormalTok{(}\KeywordTok{c}\NormalTok{(}\StringTok{" "}\NormalTok{, }\StringTok{"Group 4"}\NormalTok{ =}\StringTok{ }\DecValTok{4}\NormalTok{, }\StringTok{"Group 5"}\NormalTok{ =}\StringTok{ }\DecValTok{2}\NormalTok{)) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{add_header_above}\NormalTok{(}\KeywordTok{c}\NormalTok{(}\StringTok{" "}\NormalTok{, }\StringTok{"Group 6"}\NormalTok{ =}\StringTok{ }\DecValTok{6}\NormalTok{), }\DataTypeTok{bold =}\NormalTok{ T, }\DataTypeTok{italic =}\NormalTok{ T)}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{table}[H]
-\centering\rowcolors{2}{gray!6}{white}
-
-\begin{tabular}{lrrrrrr}
-\hiderowcolors
-\toprule
-\multicolumn{1}{c}{\em{\textbf{ }}} & \multicolumn{6}{c}{\em{\textbf{Group 6}}} \\
-\cmidrule(l{3pt}r{3pt}){2-7}
-\multicolumn{1}{c}{ } & \multicolumn{4}{c}{Group 4} & \multicolumn{2}{c}{Group 5} \\
-\cmidrule(l{3pt}r{3pt}){2-5} \cmidrule(l{3pt}r{3pt}){6-7}
-\multicolumn{1}{c}{ } & \multicolumn{2}{c}{Group 1} & \multicolumn{2}{c}{Group 2} & \multicolumn{2}{c}{Group 3} \\
-\cmidrule(l{3pt}r{3pt}){2-3} \cmidrule(l{3pt}r{3pt}){4-5} \cmidrule(l{3pt}r{3pt}){6-7}
- & mpg & cyl & disp & hp & drat & wt\\
-\midrule
-\showrowcolors
-Mazda RX4 & 21.0 & 6 & 160 & 110 & 3.90 & 2.620\\
-Mazda RX4 Wag & 21.0 & 6 & 160 & 110 & 3.90 & 2.875\\
-Datsun 710 & 22.8 & 4 & 108 & 93 & 3.85 & 2.320\\
-Hornet 4 Drive & 21.4 & 6 & 258 & 110 & 3.08 & 3.215\\
-Hornet Sportabout & 18.7 & 8 & 360 & 175 & 3.15 & 3.440\\
-\bottomrule
-\end{tabular}
-\rowcolors{2}{white}{white}
-\end{table}
-
-\hypertarget{group-rows-via-labeling}{%
-\subsection{Group rows via labeling}\label{group-rows-via-labeling}}
-
-Sometimes we want a few rows of the table being grouped together. They
-might be items under the same topic (e.g., animals in one species) or
-just different data groups for a categorical variable (e.g., age
-\textless{} 40, age \textgreater{} 40). With the new function
-\texttt{group\_rows()} in \texttt{kableExtra}, this kind of task can be
-completed in one line. Please see the example below. Note that when you
-count for the start/end rows of the group, you don't need to count for
-the header rows nor other group label rows. You only need to think about
-the row numbers in the ``original R dataframe''.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\KeywordTok{kable}\NormalTok{(mtcars[}\DecValTok{1}\OperatorTok{:}\DecValTok{10}\NormalTok{, }\DecValTok{1}\OperatorTok{:}\DecValTok{6}\NormalTok{], }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{caption =} \StringTok{"Group Rows"}\NormalTok{, }\DataTypeTok{booktabs =}\NormalTok{ T) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{kable_styling}\NormalTok{() }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{group_rows}\NormalTok{(}\StringTok{"Group 1"}\NormalTok{, }\DecValTok{4}\NormalTok{, }\DecValTok{7}\NormalTok{) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{group_rows}\NormalTok{(}\StringTok{"Group 2"}\NormalTok{, }\DecValTok{8}\NormalTok{, }\DecValTok{10}\NormalTok{)}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{table}[t]
-
-\caption{\label{tab:unnamed-chunk-24}Group Rows}
-\centering
-\begin{tabular}{lrrrrrr}
-\toprule
- & mpg & cyl & disp & hp & drat & wt\\
-\midrule
-Mazda RX4 & 21.0 & 6 & 160.0 & 110 & 3.90 & 2.620\\
-Mazda RX4 Wag & 21.0 & 6 & 160.0 & 110 & 3.90 & 2.875\\
-Datsun 710 & 22.8 & 4 & 108.0 & 93 & 3.85 & 2.320\\
-\addlinespace[0.3em]
-\multicolumn{7}{l}{\textbf{Group 1}}\\
-\hspace{1em}Hornet 4 Drive & 21.4 & 6 & 258.0 & 110 & 3.08 & 3.215\\
-\hspace{1em}Hornet Sportabout & 18.7 & 8 & 360.0 & 175 & 3.15 & 3.440\\
-\hspace{1em}Valiant & 18.1 & 6 & 225.0 & 105 & 2.76 & 3.460\\
-\hspace{1em}Duster 360 & 14.3 & 8 & 360.0 & 245 & 3.21 & 3.570\\
-\addlinespace[0.3em]
-\multicolumn{7}{l}{\textbf{Group 2}}\\
-\hspace{1em}Merc 240D & 24.4 & 4 & 146.7 & 62 & 3.69 & 3.190\\
-\hspace{1em}Merc 230 & 22.8 & 4 & 140.8 & 95 & 3.92 & 3.150\\
-\hspace{1em}Merc 280 & 19.2 & 6 & 167.6 & 123 & 3.92 & 3.440\\
-\bottomrule
-\end{tabular}
-\end{table}
-
-In case some users need it, you can define your own gapping spaces
-between the group labeling row and previous rows. The default value is
-\texttt{0.5em}.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\KeywordTok{kable}\NormalTok{(dt, }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{booktabs =}\NormalTok{ T) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{group_rows}\NormalTok{(}\StringTok{"Group 1"}\NormalTok{, }\DecValTok{4}\NormalTok{, }\DecValTok{5}\NormalTok{, }\DataTypeTok{latex_gap_space =} \StringTok{"2em"}\NormalTok{)}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{tabular}{lrrrrrr}
-\toprule
- & mpg & cyl & disp & hp & drat & wt\\
-\midrule
-Mazda RX4 & 21.0 & 6 & 160 & 110 & 3.90 & 2.620\\
-Mazda RX4 Wag & 21.0 & 6 & 160 & 110 & 3.90 & 2.875\\
-Datsun 710 & 22.8 & 4 & 108 & 93 & 3.85 & 2.320\\
-\addlinespace[2em]
-\multicolumn{7}{l}{\textbf{Group 1}}\\
-\hspace{1em}Hornet 4 Drive & 21.4 & 6 & 258 & 110 & 3.08 & 3.215\\
-\hspace{1em}Hornet Sportabout & 18.7 & 8 & 360 & 175 & 3.15 & 3.440\\
-\bottomrule
-\end{tabular}
-
-If you prefer to build multiple groups in one step, you can use the
-short-hand \texttt{index} option. Basically, you can use it in the same
-way as you use \texttt{add\_header\_above}. However, since
-\texttt{group\_row} only support one layer of grouping, you can't add
-multiple layers of grouping header as you can do in
-\texttt{add\_header\_above}.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\KeywordTok{kable}\NormalTok{(mtcars[}\DecValTok{1}\OperatorTok{:}\DecValTok{10}\NormalTok{, }\DecValTok{1}\OperatorTok{:}\DecValTok{6}\NormalTok{], }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{caption =} \StringTok{"Group Rows"}\NormalTok{, }\DataTypeTok{booktabs =}\NormalTok{ T) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{kable_styling}\NormalTok{() }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{group_rows}\NormalTok{(}\DataTypeTok{index=}\KeywordTok{c}\NormalTok{(}\StringTok{" "}\NormalTok{ =}\StringTok{ }\DecValTok{3}\NormalTok{, }\StringTok{"Group 1"}\NormalTok{ =}\StringTok{ }\DecValTok{4}\NormalTok{, }\StringTok{"Group 2"}\NormalTok{ =}\StringTok{ }\DecValTok{3}\NormalTok{))}
-\CommentTok{# Not evaluated. The code above should have the same result as the first example in this section.}
-\end{Highlighting}
-\end{Shaded}
-
-Note that \texttt{kable} has a relatively special feature to handle
-\texttt{align} and it may bring troubles to you if you are not using it
-correctly. In the documentation of the \texttt{align} argument of
-\texttt{kable}, it says:
-
-\begin{quote}
-If \texttt{length(align)\ ==\ 1L}, the string will be expanded to a
-vector of individual letters, e.g.
-\texttt{\textquotesingle{}clc\textquotesingle{}} becomes
-\texttt{c(\textquotesingle{}c\textquotesingle{},\ \textquotesingle{}l\textquotesingle{},\ \textquotesingle{}c\textquotesingle{})},
-\textbf{unless the output format is LaTeX}.
-\end{quote}
-
-For example,
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\KeywordTok{kable}\NormalTok{(mtcars[}\DecValTok{1}\OperatorTok{:}\DecValTok{2}\NormalTok{, }\DecValTok{1}\OperatorTok{:}\DecValTok{2}\NormalTok{], }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{align =} \KeywordTok{c}\NormalTok{(}\StringTok{"cl"}\NormalTok{))}
-\CommentTok{# \textbackslash{}begin\{tabular\}\{l|cl|cl\} # Note the column alignment here}
-\CommentTok{# \textbackslash{}hline}
-\CommentTok{# & mpg & cyl\textbackslash{}\textbackslash{}}
-\CommentTok{# ...}
-\end{Highlighting}
-\end{Shaded}
-
-LaTeX, somehow shows surprisingly high tolerance on that, which is quite
-unusual. As a result, it won't throw an error if you are just using
-\texttt{kable} to make some simple tables. However, when you use
-\texttt{kableExtra} to make some advanced modification, it will start to
-throw some bugs. As a result, please try to form a habit of using a
-vector in the \texttt{align} argument for \texttt{kable} (tip: you can
-use \texttt{rep} function to replicate elements. For example,
-\texttt{c("c",\ rep("l",\ 10))}).
-
-\hypertarget{row-indentation}{%
-\subsection{Row indentation}\label{row-indentation}}
-
-Unlike \texttt{group\_rows()}, which will insert a labeling row,
-sometimes we want to list a few sub groups under a total one. In that
-case, \texttt{add\_indent()} is probably more appropriate.\\
-For advanced users, you can even define your own css for the group
-labeling.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\KeywordTok{kable}\NormalTok{(dt, }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{booktabs =}\NormalTok{ T) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{add_indent}\NormalTok{(}\KeywordTok{c}\NormalTok{(}\DecValTok{1}\NormalTok{, }\DecValTok{3}\NormalTok{, }\DecValTok{5}\NormalTok{))}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{tabular}{lrrrrrr}
-\toprule
- & mpg & cyl & disp & hp & drat & wt\\
-\midrule
-\hspace{1em}Mazda RX4 & 21.0 & 6 & 160 & 110 & 3.90 & 2.620\\
-Mazda RX4 Wag & 21.0 & 6 & 160 & 110 & 3.90 & 2.875\\
-\hspace{1em}Datsun 710 & 22.8 & 4 & 108 & 93 & 3.85 & 2.320\\
-Hornet 4 Drive & 21.4 & 6 & 258 & 110 & 3.08 & 3.215\\
-\hspace{1em}Hornet Sportabout & 18.7 & 8 & 360 & 175 & 3.15 & 3.440\\
-\bottomrule
-\end{tabular}
-
-\hypertarget{group-rows-via-multi-row-cell}{%
-\subsection{Group rows via multi-row
-cell}\label{group-rows-via-multi-row-cell}}
-
-Function \texttt{group\_rows} is great for showing simple structural
-information on rows but sometimes people may need to show structural
-information with multiple layers. When it happens, you may consider
-using \texttt{collapse\_rows} instead, which will put repeating cells in
-columns into multi-row cells.
-
-In LaTeX, \texttt{collapse\_rows} adds some extra hlines to help
-differentiate groups. You can customize this behavior using the
-\texttt{latex\_hline} argument. You can choose from \texttt{full}
-(default), \texttt{major} and \texttt{none}. Vertical alignment of cells
-is controlled by the \texttt{valign} option. You can choose from
-``top'', ``middle''(default) and ``bottom''. Be cautious that the
-vertical alignment option was only introduced in multirow in 2016. If
-you are using a legacy LaTeX distribution, you will run into trouble if
-you set \texttt{valign} to be either ``top'' or ``bottom''.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\NormalTok{collapse_rows_dt <-}\StringTok{ }\KeywordTok{data.frame}\NormalTok{(}\DataTypeTok{C1 =} \KeywordTok{c}\NormalTok{(}\KeywordTok{rep}\NormalTok{(}\StringTok{"a"}\NormalTok{, }\DecValTok{10}\NormalTok{), }\KeywordTok{rep}\NormalTok{(}\StringTok{"b"}\NormalTok{, }\DecValTok{5}\NormalTok{)),}
- \DataTypeTok{C2 =} \KeywordTok{c}\NormalTok{(}\KeywordTok{rep}\NormalTok{(}\StringTok{"c"}\NormalTok{, }\DecValTok{7}\NormalTok{), }\KeywordTok{rep}\NormalTok{(}\StringTok{"d"}\NormalTok{, }\DecValTok{3}\NormalTok{), }\KeywordTok{rep}\NormalTok{(}\StringTok{"c"}\NormalTok{, }\DecValTok{2}\NormalTok{), }\KeywordTok{rep}\NormalTok{(}\StringTok{"d"}\NormalTok{, }\DecValTok{3}\NormalTok{)),}
- \DataTypeTok{C3 =} \DecValTok{1}\OperatorTok{:}\DecValTok{15}\NormalTok{,}
- \DataTypeTok{C4 =} \KeywordTok{sample}\NormalTok{(}\KeywordTok{c}\NormalTok{(}\DecValTok{0}\NormalTok{,}\DecValTok{1}\NormalTok{), }\DecValTok{15}\NormalTok{, }\DataTypeTok{replace =} \OtherTok{TRUE}\NormalTok{))}
-\KeywordTok{kable}\NormalTok{(collapse_rows_dt, }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{booktabs =}\NormalTok{ T, }\DataTypeTok{align =} \StringTok{"c"}\NormalTok{) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{column_spec}\NormalTok{(}\DecValTok{1}\NormalTok{, }\DataTypeTok{bold=}\NormalTok{T) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{collapse_rows}\NormalTok{(}\DataTypeTok{columns =} \DecValTok{1}\OperatorTok{:}\DecValTok{2}\NormalTok{, }\DataTypeTok{latex_hline =} \StringTok{"major"}\NormalTok{, }\DataTypeTok{valign =} \StringTok{"middle"}\NormalTok{)}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{tabular}{>{\bfseries}cccc}
-\toprule
-C1 & C2 & C3 & C4\\
-\midrule
- & & 1 & 1\\
-
- & & 2 & 0\\
-
- & & 3 & 0\\
-
- & & 4 & 1\\
-
- & & 5 & 1\\
-
- & & 6 & 1\\
-
- & \multirow{-7}{*}{\centering\arraybackslash c} & 7 & 1\\
-
- & & 8 & 0\\
-
- & & 9 & 0\\
-
-\multirow{-10}{*}{\centering\arraybackslash a} & \multirow{-3}{*}{\centering\arraybackslash d} & 10 & 1\\
-\cmidrule{1-4}
- & & 11 & 0\\
-
- & \multirow{-2}{*}{\centering\arraybackslash c} & 12 & 1\\
-
- & & 13 & 0\\
-
- & & 14 & 1\\
-
-\multirow{-5}{*}{\centering\arraybackslash b} & \multirow{-3}{*}{\centering\arraybackslash d} & 15 & 0\\
-\bottomrule
-\end{tabular}
-
-Right now, you can't automatically make striped rows based on collapsed
-rows but you can do it manually via the \texttt{extra\_latex\_after}
-option in \texttt{row\_spec}. This feature is not officially supported.
-I'm only document it here if you want to give it a try.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\KeywordTok{kable}\NormalTok{(collapse_rows_dt[}\OperatorTok{-}\DecValTok{1}\NormalTok{], }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{align =} \StringTok{"c"}\NormalTok{, }\DataTypeTok{booktabs =}\NormalTok{ T) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{column_spec}\NormalTok{(}\DecValTok{1}\NormalTok{, }\DataTypeTok{bold =}\NormalTok{ T, }\DataTypeTok{width =} \StringTok{"5em"}\NormalTok{) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{row_spec}\NormalTok{(}\KeywordTok{c}\NormalTok{(}\DecValTok{1}\OperatorTok{:}\DecValTok{7}\NormalTok{, }\DecValTok{11}\OperatorTok{:}\DecValTok{12}\NormalTok{) }\OperatorTok{-}\StringTok{ }\DecValTok{1}\NormalTok{, }\DataTypeTok{extra_latex_after =} \StringTok{"}\CharTok{\textbackslash{}\textbackslash{}}\StringTok{rowcolor\{gray!6\}"}\NormalTok{) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{collapse_rows}\NormalTok{(}\DecValTok{1}\NormalTok{, }\DataTypeTok{latex_hline =} \StringTok{"none"}\NormalTok{)}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{tabular}{>{\bfseries\centering\arraybackslash}p{5em}cc}
-\toprule
-C2 & C3 & C4\\
-\rowcolor{gray!6}
-\midrule
- & 1 & 1\\
-
-\rowcolor{gray!6}
- & 2 & 0\\
-
-\rowcolor{gray!6}
- & 3 & 0\\
-
-\rowcolor{gray!6}
- & 4 & 1\\
-
-\rowcolor{gray!6}
- & 5 & 1\\
-
-\rowcolor{gray!6}
- & 6 & 1\\
-
-\rowcolor{gray!6}
-\multirow{-7}{5em}{\centering\arraybackslash c} & 7 & 1\\
-
- & 8 & 0\\
-
- & 9 & 0\\
-
-\multirow{-3}{5em}{\centering\arraybackslash d} & 10 & 1\\
-
-\rowcolor{gray!6}
- & 11 & 0\\
-
-\rowcolor{gray!6}
-\multirow{-2}{5em}{\centering\arraybackslash c} & 12 & 1\\
-
- & 13 & 0\\
-
- & 14 & 1\\
-
-\multirow{-3}{5em}{\centering\arraybackslash d} & 15 & 0\\
-\bottomrule
-\end{tabular}
-
-When there are too many layers, sometimes the table can become too wide.
-You can choose to stack the first few layers by setting
-\texttt{row\_group\_label\_position} to \texttt{stack}.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\NormalTok{collapse_rows_dt <-}\StringTok{ }\KeywordTok{expand.grid}\NormalTok{(}
- \DataTypeTok{Country =} \KeywordTok{sprintf}\NormalTok{(}\StringTok{'Country with a long name %s'}\NormalTok{, }\KeywordTok{c}\NormalTok{(}\StringTok{'A'}\NormalTok{, }\StringTok{'B'}\NormalTok{)),}
- \DataTypeTok{State =} \KeywordTok{sprintf}\NormalTok{(}\StringTok{'State %s'}\NormalTok{, }\KeywordTok{c}\NormalTok{(}\StringTok{'a'}\NormalTok{, }\StringTok{'b'}\NormalTok{)),}
- \DataTypeTok{City =} \KeywordTok{sprintf}\NormalTok{(}\StringTok{'City %s'}\NormalTok{, }\KeywordTok{c}\NormalTok{(}\StringTok{'1'}\NormalTok{, }\StringTok{'2'}\NormalTok{)),}
- \DataTypeTok{District =} \KeywordTok{sprintf}\NormalTok{(}\StringTok{'District %s'}\NormalTok{, }\KeywordTok{c}\NormalTok{(}\StringTok{'1'}\NormalTok{, }\StringTok{'2'}\NormalTok{))}
-\NormalTok{) }\OperatorTok{%>%}\StringTok{ }\KeywordTok{arrange}\NormalTok{(Country, State, City) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{mutate_all}\NormalTok{(as.character) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{mutate}\NormalTok{(}\DataTypeTok{C1 =} \KeywordTok{rnorm}\NormalTok{(}\KeywordTok{n}\NormalTok{()),}
- \DataTypeTok{C2 =} \KeywordTok{rnorm}\NormalTok{(}\KeywordTok{n}\NormalTok{()))}
-
-\KeywordTok{kable}\NormalTok{(collapse_rows_dt, }\StringTok{"latex"}\NormalTok{, }
- \DataTypeTok{booktabs =}\NormalTok{ T, }\DataTypeTok{align =} \StringTok{"c"}\NormalTok{, }\DataTypeTok{linesep =} \StringTok{''}\NormalTok{) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{collapse_rows}\NormalTok{(}\DecValTok{1}\OperatorTok{:}\DecValTok{3}\NormalTok{, }\DataTypeTok{row_group_label_position =} \StringTok{'stack'}\NormalTok{) }
-\end{Highlighting}
-\end{Shaded}
-
-\begin{tabular}{cccccc}
-\toprule
- & & City & District & C1 & C2\\
-\midrule
-\addlinespace[0.3em]
-\multicolumn{6}{l}{\textbf{Country with a long name A}}\\
-\addlinespace[0.3em]
-\multicolumn{6}{l}{\textit{State a}}\\
-\hspace{1em}\hspace{1em} & & City 1 & District 1 & -0.1770795 & -0.2171630\\
-\cmidrule{4-6}
-\hspace{1em}\hspace{1em} & & & District 2 & -0.7480018 & -0.9850862\\
-\cmidrule{3-6}
-\hspace{1em}\hspace{1em} & & City 2 & District 1 & 0.7337258 & -0.5222169\\
-\cmidrule{4-6}
-\hspace{1em}\hspace{1em} & & & District 2 & -0.4759916 & -1.0309802\\
-\cmidrule{2-6}
-\addlinespace[0.3em]
-\multicolumn{6}{l}{\textit{State b}}\\
-\hspace{1em}\hspace{1em} & & City 1 & District 1 & 0.6750550 & -2.4739793\\
-\cmidrule{4-6}
-\hspace{1em}\hspace{1em} & & & District 2 & 0.3049046 & -1.2631447\\
-\cmidrule{3-6}
-\hspace{1em}\hspace{1em} & & City 2 & District 1 & 0.0286753 & 0.2100736\\
-\cmidrule{4-6}
-\hspace{1em}\hspace{1em} & & & District 2 & 0.5833306 & -0.1407191\\
-\cmidrule{1-6}
-\addlinespace[0.3em]
-\multicolumn{6}{l}{\textbf{Country with a long name B}}\\
-\addlinespace[0.3em]
-\multicolumn{6}{l}{\textit{State a}}\\
-\hspace{1em}\hspace{1em} & & City 1 & District 1 & 0.0431486 & -0.9681845\\
-\cmidrule{4-6}
-\hspace{1em}\hspace{1em} & & & District 2 & -0.6211451 & -1.4915492\\
-\cmidrule{3-6}
-\hspace{1em}\hspace{1em} & & City 2 & District 1 & -0.1115081 & 0.2991019\\
-\cmidrule{4-6}
-\hspace{1em}\hspace{1em} & & & District 2 & -1.1478388 & -1.4530953\\
-\cmidrule{2-6}
-\addlinespace[0.3em]
-\multicolumn{6}{l}{\textit{State b}}\\
-\hspace{1em}\hspace{1em} & & City 1 & District 1 & 0.1440275 & -0.5458611\\
-\cmidrule{4-6}
-\hspace{1em}\hspace{1em} & & & District 2 & 0.7375365 & 0.9307218\\
-\cmidrule{3-6}
-\hspace{1em}\hspace{1em} & & City 2 & District 1 & -0.2804654 & -0.6222302\\
-\cmidrule{4-6}
-\hspace{1em}\hspace{1em} & & & District 2 & 0.3877343 & 1.9276181\\
-\bottomrule
-\end{tabular}
-
-To better distinguish different layers, you can format the each layer
-using \texttt{row\_group\_label\_fonts}. You can also customize the
-hlines to better differentiate groups.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\NormalTok{row_group_label_fonts <-}\StringTok{ }\KeywordTok{list}\NormalTok{(}
- \KeywordTok{list}\NormalTok{(}\DataTypeTok{bold =}\NormalTok{ T, }\DataTypeTok{italic =}\NormalTok{ T), }
- \KeywordTok{list}\NormalTok{(}\DataTypeTok{bold =}\NormalTok{ F, }\DataTypeTok{italic =}\NormalTok{ F)}
-\NormalTok{ )}
-\KeywordTok{kable}\NormalTok{(collapse_rows_dt, }\StringTok{"latex"}\NormalTok{, }
- \DataTypeTok{booktabs =}\NormalTok{ T, }\DataTypeTok{align =} \StringTok{"c"}\NormalTok{, }\DataTypeTok{linesep =} \StringTok{''}\NormalTok{) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{column_spec}\NormalTok{(}\DecValTok{1}\NormalTok{, }\DataTypeTok{bold=}\NormalTok{T) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{collapse_rows}\NormalTok{(}\DecValTok{1}\OperatorTok{:}\DecValTok{3}\NormalTok{, }\DataTypeTok{latex_hline =} \StringTok{'custom'}\NormalTok{, }\DataTypeTok{custom_latex_hline =} \DecValTok{1}\OperatorTok{:}\DecValTok{3}\NormalTok{, }
- \DataTypeTok{row_group_label_position =} \StringTok{'stack'}\NormalTok{, }
- \DataTypeTok{row_group_label_fonts =}\NormalTok{ row_group_label_fonts) }
-\end{Highlighting}
-\end{Shaded}
-
-\begin{tabular}{>{\bfseries}cccccc}
-\toprule
- & & City & District & C1 & C2\\
-\midrule
-\addlinespace[0.3em]
-\multicolumn{6}{l}{\textit{\textbf{Country with a long name A}}}\\
-\addlinespace[0.3em]
-\multicolumn{6}{l}{State a}\\
-\hspace{1em}\hspace{1em} & & City 1 & District 1 & -0.1770795 & -0.2171630\\
-
-\hspace{1em}\hspace{1em} & & & District 2 & -0.7480018 & -0.9850862\\
-\cmidrule{3-6}
-\hspace{1em}\hspace{1em} & & City 2 & District 1 & 0.7337258 & -0.5222169\\
-
-\hspace{1em}\hspace{1em} & & & District 2 & -0.4759916 & -1.0309802\\
-\cmidrule{2-6}
-\addlinespace[0.3em]
-\multicolumn{6}{l}{State b}\\
-\hspace{1em}\hspace{1em} & & City 1 & District 1 & 0.6750550 & -2.4739793\\
-
-\hspace{1em}\hspace{1em} & & & District 2 & 0.3049046 & -1.2631447\\
-\cmidrule{3-6}
-\hspace{1em}\hspace{1em} & & City 2 & District 1 & 0.0286753 & 0.2100736\\
-
-\hspace{1em}\hspace{1em} & & & District 2 & 0.5833306 & -0.1407191\\
-\cmidrule{1-6}
-\addlinespace[0.3em]
-\multicolumn{6}{l}{\textit{\textbf{Country with a long name B}}}\\
-\addlinespace[0.3em]
-\multicolumn{6}{l}{State a}\\
-\hspace{1em}\hspace{1em} & & City 1 & District 1 & 0.0431486 & -0.9681845\\
-
-\hspace{1em}\hspace{1em} & & & District 2 & -0.6211451 & -1.4915492\\
-\cmidrule{3-6}
-\hspace{1em}\hspace{1em} & & City 2 & District 1 & -0.1115081 & 0.2991019\\
-
-\hspace{1em}\hspace{1em} & & & District 2 & -1.1478388 & -1.4530953\\
-\cmidrule{2-6}
-\addlinespace[0.3em]
-\multicolumn{6}{l}{State b}\\
-\hspace{1em}\hspace{1em} & & City 1 & District 1 & 0.1440275 & -0.5458611\\
-
-\hspace{1em}\hspace{1em} & & & District 2 & 0.7375365 & 0.9307218\\
-\cmidrule{3-6}
-\hspace{1em}\hspace{1em} & & City 2 & District 1 & -0.2804654 & -0.6222302\\
-
-\hspace{1em}\hspace{1em} & & & District 2 & 0.3877343 & 1.9276181\\
-\bottomrule
-\end{tabular}
-
-\hypertarget{table-footnote}{%
-\section{Table Footnote}\label{table-footnote}}
-
-\begin{quote}
-Now it's recommended to use the new \texttt{footnote} function instead
-of \texttt{add\_footnote} to make table footnotes.
-\end{quote}
-
-Documentations for \texttt{add\_footnote} can be found
-\href{http://haozhu233.github.io/kableExtra/legacy_features\#add_footnote}{here}.
-
-There are four notation systems in \texttt{footnote}, namely
-\texttt{general}, \texttt{number}, \texttt{alphabet} and
-\texttt{symbol}. The last three types of footnotes will be labeled with
-corresponding marks while \texttt{general} won't be labeled. You can
-pick any one of these systems or choose to display them all for
-fulfilling the APA table footnotes requirements.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\KeywordTok{kable}\NormalTok{(dt, }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{align =} \StringTok{"c"}\NormalTok{) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{kable_styling}\NormalTok{(}\DataTypeTok{full_width =}\NormalTok{ F) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{footnote}\NormalTok{(}\DataTypeTok{general =} \StringTok{"Here is a general comments of the table. "}\NormalTok{,}
- \DataTypeTok{number =} \KeywordTok{c}\NormalTok{(}\StringTok{"Footnote 1; "}\NormalTok{, }\StringTok{"Footnote 2; "}\NormalTok{),}
- \DataTypeTok{alphabet =} \KeywordTok{c}\NormalTok{(}\StringTok{"Footnote A; "}\NormalTok{, }\StringTok{"Footnote B; "}\NormalTok{),}
- \DataTypeTok{symbol =} \KeywordTok{c}\NormalTok{(}\StringTok{"Footnote Symbol 1; "}\NormalTok{, }\StringTok{"Footnote Symbol 2"}\NormalTok{)}
-\NormalTok{ )}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{table}[H]
-\centering
-\begin{tabular}{l|c|c|c|c|c|c}
-\hline
- & mpg & cyl & disp & hp & drat & wt\\
-\hline
-Mazda RX4 & 21.0 & 6 & 160 & 110 & 3.90 & 2.620\\
-\hline
-Mazda RX4 Wag & 21.0 & 6 & 160 & 110 & 3.90 & 2.875\\
-\hline
-Datsun 710 & 22.8 & 4 & 108 & 93 & 3.85 & 2.320\\
-\hline
-Hornet 4 Drive & 21.4 & 6 & 258 & 110 & 3.08 & 3.215\\
-\hline
-Hornet Sportabout & 18.7 & 8 & 360 & 175 & 3.15 & 3.440\\
-\hline
-\multicolumn{7}{l}{\textit{Note: }}\\
-\multicolumn{7}{l}{Here is a general comments of the table. }\\
-\multicolumn{7}{l}{\textsuperscript{1} Footnote 1; }\\
-\multicolumn{7}{l}{\textsuperscript{2} Footnote 2; }\\
-\multicolumn{7}{l}{\textsuperscript{a} Footnote A; }\\
-\multicolumn{7}{l}{\textsuperscript{b} Footnote B; }\\
-\multicolumn{7}{l}{\textsuperscript{*} Footnote Symbol 1; }\\
-\multicolumn{7}{l}{\textsuperscript{\dag} Footnote Symbol 2}\\
-\end{tabular}
-\end{table}
-
-You can also specify title for each category by using the
-\texttt{***\_title} arguments. Default value for \texttt{general\_title}
-is ``Note:'' and "" for the rest three. You can also change the order
-using \texttt{footnote\_order}. You can even display footnote as chunk
-texts (default is as a list) using \texttt{footnote\_as\_chunk}. The
-font format of the titles are controlled by \texttt{title\_format} with
-options including ``italic'' (default), ``bold'' and ``underline''.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\KeywordTok{kable}\NormalTok{(dt, }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{align =} \StringTok{"c"}\NormalTok{, }\DataTypeTok{booktabs =}\NormalTok{ T) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{footnote}\NormalTok{(}\DataTypeTok{general =} \StringTok{"Here is a general comments of the table. "}\NormalTok{,}
- \DataTypeTok{number =} \KeywordTok{c}\NormalTok{(}\StringTok{"Footnote 1; "}\NormalTok{, }\StringTok{"Footnote 2; "}\NormalTok{),}
- \DataTypeTok{alphabet =} \KeywordTok{c}\NormalTok{(}\StringTok{"Footnote A; "}\NormalTok{, }\StringTok{"Footnote B; "}\NormalTok{),}
- \DataTypeTok{symbol =} \KeywordTok{c}\NormalTok{(}\StringTok{"Footnote Symbol 1; "}\NormalTok{, }\StringTok{"Footnote Symbol 2"}\NormalTok{),}
- \DataTypeTok{general_title =} \StringTok{"General: "}\NormalTok{, }\DataTypeTok{number_title =} \StringTok{"Type I: "}\NormalTok{,}
- \DataTypeTok{alphabet_title =} \StringTok{"Type II: "}\NormalTok{, }\DataTypeTok{symbol_title =} \StringTok{"Type III: "}\NormalTok{,}
- \DataTypeTok{footnote_as_chunk =}\NormalTok{ T, }\DataTypeTok{title_format =} \KeywordTok{c}\NormalTok{(}\StringTok{"italic"}\NormalTok{, }\StringTok{"underline"}\NormalTok{)}
-\NormalTok{ )}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{tabular}{lcccccc}
-\toprule
- & mpg & cyl & disp & hp & drat & wt\\
-\midrule
-Mazda RX4 & 21.0 & 6 & 160 & 110 & 3.90 & 2.620\\
-Mazda RX4 Wag & 21.0 & 6 & 160 & 110 & 3.90 & 2.875\\
-Datsun 710 & 22.8 & 4 & 108 & 93 & 3.85 & 2.320\\
-Hornet 4 Drive & 21.4 & 6 & 258 & 110 & 3.08 & 3.215\\
-Hornet Sportabout & 18.7 & 8 & 360 & 175 & 3.15 & 3.440\\
-\bottomrule
-\multicolumn{7}{l}{\underline{\textit{General: }} Here is a general comments of the table. }\\
-\multicolumn{7}{l}{\underline{\textit{Type I: }} \textsuperscript{1} Footnote 1; \textsuperscript{2} Footnote 2; }\\
-\multicolumn{7}{l}{\underline{\textit{Type II: }} \textsuperscript{a} Footnote A; \textsuperscript{b} Footnote B; }\\
-\multicolumn{7}{l}{\underline{\textit{Type III: }} \textsuperscript{*} Footnote Symbol 1; \textsuperscript{\dag} Footnote Symbol 2}\\
-\end{tabular}
-
-If you need to add footnote marks in a table, you need to do it manually
-(no fancy) using \texttt{footnote\_marker\_***()}. Remember that similar
-with \texttt{cell\_spec}, you need to tell this function whether you
-want it to do it in \texttt{HTML} (default) or \texttt{LaTeX}. You can
-set it for all using the \texttt{knitr.table.format} global option.
-Also, if you have ever used \texttt{footnote\_marker\_***()}, you need
-to put \texttt{escape\ =\ F} in your \texttt{kable} function to avoid
-escaping of special characters. Note that if you want to use these
-\texttt{footnote\_marker} functions in \texttt{kableExtra} functions
-like \texttt{group\_rows} (for the row label) or
-\texttt{add\_header\_above}, you need to set
-\texttt{double\_escape\ =\ T} and \texttt{escape\ =\ F} in those
-functions. I'm trying to find other ways around. Please let me know if
-you have a good idea and are willing to contribute.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\NormalTok{dt_footnote <-}\StringTok{ }\NormalTok{dt}
-\KeywordTok{names}\NormalTok{(dt_footnote)[}\DecValTok{2}\NormalTok{] <-}\StringTok{ }\KeywordTok{paste0}\NormalTok{(}\KeywordTok{names}\NormalTok{(dt_footnote)[}\DecValTok{2}\NormalTok{], }
- \CommentTok{# That "latex" can be eliminated if defined in global}
- \KeywordTok{footnote_marker_symbol}\NormalTok{(}\DecValTok{1}\NormalTok{, }\StringTok{"latex"}\NormalTok{))}
-\KeywordTok{row.names}\NormalTok{(dt_footnote)[}\DecValTok{4}\NormalTok{] <-}\StringTok{ }\KeywordTok{paste0}\NormalTok{(}\KeywordTok{row.names}\NormalTok{(dt_footnote)[}\DecValTok{4}\NormalTok{], }
- \KeywordTok{footnote_marker_alphabet}\NormalTok{(}\DecValTok{1}\NormalTok{))}
-\KeywordTok{kable}\NormalTok{(dt_footnote, }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{align =} \StringTok{"c"}\NormalTok{, }\DataTypeTok{booktabs =}\NormalTok{ T,}
- \CommentTok{# Remember this escape = F}
- \DataTypeTok{escape =}\NormalTok{ F) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{footnote}\NormalTok{(}\DataTypeTok{alphabet =} \StringTok{"Footnote A; "}\NormalTok{,}
- \DataTypeTok{symbol =} \StringTok{"Footnote Symbol 1; "}\NormalTok{,}
- \DataTypeTok{alphabet_title =} \StringTok{"Type II: "}\NormalTok{, }\DataTypeTok{symbol_title =} \StringTok{"Type III: "}\NormalTok{,}
- \DataTypeTok{footnote_as_chunk =}\NormalTok{ T)}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{tabular}{lcccccc}
-\toprule
- & mpg & cyl\textsuperscript{*} & disp & hp & drat & wt\\
-\midrule
-Mazda RX4 & 21.0 & 6 & 160 & 110 & 3.90 & 2.620\\
-Mazda RX4 Wag & 21.0 & 6 & 160 & 110 & 3.90 & 2.875\\
-Datsun 710 & 22.8 & 4 & 108 & 93 & 3.85 & 2.320\\
-Hornet 4 Drive\textsuperscript{a} & 21.4 & 6 & 258 & 110 & 3.08 & 3.215\\
-Hornet Sportabout & 18.7 & 8 & 360 & 175 & 3.15 & 3.440\\
-\bottomrule
-\multicolumn{7}{l}{\textit{Type II: } \textsuperscript{a} Footnote A; }\\
-\multicolumn{7}{l}{\textit{Type III: } \textsuperscript{*} Footnote Symbol 1; }\\
-\end{tabular}
-
-If your table footnote is very long, please consider to put your table
-in a \texttt{ThreePartTable} frame. Note that, in kableExtra version
-\textless{}= 0.7.0, we were using \texttt{threeparttable} but since
-kableExtra 0.8.0, we start to use \texttt{ThreePartTable} from
-\texttt{threeparttablex} instead. \texttt{ThreePartTable} supports both
-the \texttt{longtable} and \texttt{tabu} environments.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\KeywordTok{kable}\NormalTok{(dt, }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{align =} \StringTok{"c"}\NormalTok{, }\DataTypeTok{booktabs =}\NormalTok{ T, }\DataTypeTok{caption =} \StringTok{"s"}\NormalTok{) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{footnote}\NormalTok{(}\DataTypeTok{general =} \StringTok{"Here is a very very very very very very very very very very very very very very very very very very very very long footnote"}\NormalTok{, }
- \DataTypeTok{threeparttable =}\NormalTok{ T)}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{table}[t]
-
-\caption{\label{tab:unnamed-chunk-36}s}
-\centering
-\begin{threeparttable}
-\begin{tabular}{lcccccc}
-\toprule
- & mpg & cyl & disp & hp & drat & wt\\
-\midrule
-Mazda RX4 & 21.0 & 6 & 160 & 110 & 3.90 & 2.620\\
-Mazda RX4 Wag & 21.0 & 6 & 160 & 110 & 3.90 & 2.875\\
-Datsun 710 & 22.8 & 4 & 108 & 93 & 3.85 & 2.320\\
-Hornet 4 Drive & 21.4 & 6 & 258 & 110 & 3.08 & 3.215\\
-Hornet Sportabout & 18.7 & 8 & 360 & 175 & 3.15 & 3.440\\
-\bottomrule
-\end{tabular}
-\begin{tablenotes}
-\item \textit{Note: }
-\item Here is a very very very very very very very very very very very very very very very very very very very very long footnote
-\end{tablenotes}
-\end{threeparttable}
-\end{table}
-
-\hypertarget{latex-only-features}{%
-\section{LaTeX Only Features}\label{latex-only-features}}
-
-\hypertarget{linebreak-processor}{%
-\subsection{Linebreak processor}\label{linebreak-processor}}
-
-Unlike in HTML, where you can use \texttt{\textless{}br\textgreater{}}
-at any time, in LaTeX, it's actually quite difficult to make a linebreak
-in a table. Therefore I created the \texttt{linebreak} function to
-facilitate this process. Please see the
-\href{http://haozhu233.github.io/kableExtra/best_practice_for_newline_in_latex_table.pdf}{Best
-Practice for Newline in LaTeX Table} for details.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\NormalTok{dt_lb <-}\StringTok{ }\KeywordTok{data.frame}\NormalTok{(}
- \DataTypeTok{Item =} \KeywordTok{c}\NormalTok{(}\StringTok{"Hello}\CharTok{\textbackslash{}n}\StringTok{World"}\NormalTok{, }\StringTok{"This}\CharTok{\textbackslash{}n}\StringTok{is a cat"}\NormalTok{), }
- \DataTypeTok{Value =} \KeywordTok{c}\NormalTok{(}\DecValTok{10}\NormalTok{, }\DecValTok{100}\NormalTok{)}
-\NormalTok{)}
-
-\NormalTok{dt_lb }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{mutate_all}\NormalTok{(linebreak) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{kable}\NormalTok{(}\StringTok{"latex"}\NormalTok{, }\DataTypeTok{booktabs =}\NormalTok{ T, }\DataTypeTok{escape =}\NormalTok{ F,}
- \DataTypeTok{col.names =} \KeywordTok{linebreak}\NormalTok{(}\KeywordTok{c}\NormalTok{(}\StringTok{"Item}\CharTok{\textbackslash{}n}\StringTok{(Name)"}\NormalTok{, }\StringTok{"Value}\CharTok{\textbackslash{}n}\StringTok{(Number)"}\NormalTok{), }\DataTypeTok{align =} \StringTok{"c"}\NormalTok{))}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{tabular}{lr}
-\toprule
-\makecell[c]{Item\\(Name)} & \makecell[c]{Value\\(Number)}\\
-\midrule
-\makecell[l]{Hello\\World} & 10\\
-\makecell[l]{This\\is a cat} & 100\\
-\bottomrule
-\end{tabular}
-
-At the same time, since \texttt{kableExtra\ 0.8.0}, all
-\texttt{kableExtra} functions that have some contents input (such as
-\texttt{footnote} or \texttt{group\_rows}) will automatically convert
-\texttt{\textbackslash{}n} to linebreaks for you in both LaTeX and HTML.
-
-\hypertarget{table-on-a-landscape-page}{%
-\subsection{Table on a Landscape Page}\label{table-on-a-landscape-page}}
-
-Sometimes when we have a wide table, we want it to sit on a designated
-landscape page. The new function \texttt{landscape()} can help you on
-that. Unlike other functions, this little function only serves LaTeX and
-doesn't have a HTML side.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\KeywordTok{kable}\NormalTok{(dt, }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{caption =} \StringTok{"Demo Table (Landscape)[note]"}\NormalTok{, }\DataTypeTok{booktabs =}\NormalTok{ T) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{kable_styling}\NormalTok{(}\DataTypeTok{latex_options =} \KeywordTok{c}\NormalTok{(}\StringTok{"hold_position"}\NormalTok{)) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{add_header_above}\NormalTok{(}\KeywordTok{c}\NormalTok{(}\StringTok{" "}\NormalTok{, }\StringTok{"Group 1[note]"}\NormalTok{ =}\StringTok{ }\DecValTok{3}\NormalTok{, }\StringTok{"Group 2[note]"}\NormalTok{ =}\StringTok{ }\DecValTok{3}\NormalTok{)) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{add_footnote}\NormalTok{(}\KeywordTok{c}\NormalTok{(}\StringTok{"This table is from mtcars"}\NormalTok{, }
- \StringTok{"Group 1 contains mpg, cyl and disp"}\NormalTok{, }
- \StringTok{"Group 2 contains hp, drat and wt"}\NormalTok{), }
- \DataTypeTok{notation =} \StringTok{"symbol"}\NormalTok{) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{group_rows}\NormalTok{(}\StringTok{"Group 1"}\NormalTok{, }\DecValTok{4}\NormalTok{, }\DecValTok{5}\NormalTok{) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{landscape}\NormalTok{()}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{landscape}\begin{table}[!h]
-
-\caption{\label{tab:unnamed-chunk-38}Demo Table (Landscape)\textsuperscript{*}}
-\centering
-\begin{tabular}{lrrrrrr}
-\toprule
-\multicolumn{1}{c}{ } & \multicolumn{3}{c}{Group 1\textsuperscript{\dag}} & \multicolumn{3}{c}{Group 2\textsuperscript{\ddag}} \\
-\cmidrule(l{3pt}r{3pt}){2-4} \cmidrule(l{3pt}r{3pt}){5-7}
- & mpg & cyl & disp & hp & drat & wt\\
-\midrule
-Mazda RX4 & 21.0 & 6 & 160 & 110 & 3.90 & 2.620\\
-Mazda RX4 Wag & 21.0 & 6 & 160 & 110 & 3.90 & 2.875\\
-Datsun 710 & 22.8 & 4 & 108 & 93 & 3.85 & 2.320\\
-\addlinespace[0.3em]
-\multicolumn{7}{l}{\textbf{Group 1}}\\
-\hspace{1em}Hornet 4 Drive & 21.4 & 6 & 258 & 110 & 3.08 & 3.215\\
-\hspace{1em}Hornet Sportabout & 18.7 & 8 & 360 & 175 & 3.15 & 3.440\\
-\bottomrule
-\multicolumn{7}{l}{\textsuperscript{*} This table is from mtcars}\\
-\multicolumn{7}{l}{\textsuperscript{\dag} Group 1 contains mpg, cyl and disp}\\
-\multicolumn{7}{l}{\textsuperscript{\ddag} Group 2 contains hp, drat and wt}\\
-\end{tabular}
-\end{table}
-\end{landscape}
-
-\hypertarget{use-latex-table-in-html-or-word}{%
-\subsection{Use LaTeX table in HTML or
-Word}\label{use-latex-table-in-html-or-word}}
-
-If you want to include a LaTeX rendered table in your HTML or Word
-document, or if you just want to save table as an image, you may
-consider using \texttt{kable\_as\_image()}. Note that this feature
-requires you to have \href{https://github.com/ropensci/magick}{magick}
-installed (\texttt{install.packages("magick")}). Also, if you are
-planning to use it on Windows, you need to install
-\href{https://www.ghostscript.com/}{Ghostscript}. This feature may not
-work if you are using tinytex. If you are using tinytex, please consider
-using other alternatives to this function.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\CommentTok{# Not evaluated. }
-
-\CommentTok{# The code below will automatically include the image in the rmarkdown document}
-\KeywordTok{kable}\NormalTok{(dt, }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{booktabs =}\NormalTok{ T) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{column_spec}\NormalTok{(}\DecValTok{1}\NormalTok{, }\DataTypeTok{bold =}\NormalTok{ T) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{kable_as_image}\NormalTok{()}
-
-\CommentTok{# If you want to save the image locally, just provide a name}
-\KeywordTok{kable}\NormalTok{(dt, }\StringTok{"latex"}\NormalTok{, }\DataTypeTok{booktabs =}\NormalTok{ T) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{column_spec}\NormalTok{(}\DecValTok{1}\NormalTok{, }\DataTypeTok{bold =}\NormalTok{ T) }\OperatorTok{%>%}
-\StringTok{ }\KeywordTok{kable_as_image}\NormalTok{(}\StringTok{"my_latex_table"}\NormalTok{)}
-\end{Highlighting}
-\end{Shaded}
-
-\hypertarget{from-other-packages}{%
-\section{From other packages}\label{from-other-packages}}
-
-Since the structure of \texttt{kable} is relatively simple, it shouldn't
-be too difficult to convert HTML or LaTeX tables generated by other
-packages to a \texttt{kable} object and then use \texttt{kableExtra} to
-modify the outputs. If you are a package author, feel free to reach out
-to me and we can collaborate.
-
-\hypertarget{tables}{%
-\subsection{\texorpdfstring{\texttt{tables}}{tables}}\label{tables}}
-
-The latest version of
-\href{https://CRAN.R-project.org/package=tables}{\texttt{tables}} comes
-with a \texttt{toKable()} function, which is compatiable with functions
-in \texttt{kableExtra} (\textgreater{}=0.9.0).
-
-
-\end{document}
diff --git a/kableExtra.Rproj b/kableExtra.Rproj
index e1c4c3d..32b757f 100644
--- a/kableExtra.Rproj
+++ b/kableExtra.Rproj
@@ -10,7 +10,7 @@
Encoding: UTF-8
RnwWeave: knitr
-LaTeX: pdfLaTeX
+LaTeX: XeLaTeX
AutoAppendNewline: Yes
StripTrailingWhitespace: Yes
diff --git a/man/as_image.Rd b/man/as_image.Rd
new file mode 100644
index 0000000..8ca65be
--- /dev/null
+++ b/man/as_image.Rd
@@ -0,0 +1,22 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/as_image.R
+\name{as_image}
+\alias{as_image}
+\title{Render the table as an format-independent image and use it in rmarkdown}
+\usage{
+as_image(x, width = NULL, height = NULL, ...)
+}
+\arguments{
+\item{x}{kable input. Either HTML or LaTeX}
+
+\item{width}{Image width in inches. (1 inch = 2.54 cm)}
+
+\item{height}{Image height in inches. (1 inch = 2.54 cm)}
+
+\item{...}{Additional arguments passed to save_kable.}
+}
+\description{
+This function generates a temporary png file using \code{save_kable}
+and then try to put it in an rmarkdown document using
+\code{knitr::include_graphics}.
+}