move doc to vignette
diff --git a/R/as_image.R b/R/as_image.R
index eabba20..8e5e0fd 100644
--- a/R/as_image.R
+++ b/R/as_image.R
@@ -16,14 +16,19 @@
#'
#'
#' @export
-as_image <- function(x, width = NULL, height = NULL,
- ...) {
+as_image <- function(x, width = NULL, height = NULL, file = 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")
+ if (is.null(file)) {
+ temp_png <- tempfile(fileext = ".png")
+ } else {
+ temp_png <- file
+ }
+
+
temp_img <- save_kable(x = x, file = temp_png, ...)
img_dpi <- 300
diff --git a/man/as_image.Rd b/man/as_image.Rd
index 8fcdce4..1d1688a 100644
--- a/man/as_image.Rd
+++ b/man/as_image.Rd
@@ -4,7 +4,7 @@
\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, ...)
+as_image(x, width = NULL, height = NULL, file = NULL, ...)
}
\arguments{
\item{x}{kable input. Either HTML or LaTeX}
@@ -13,12 +13,12 @@
\item{height}{Image height in inches. (1 inch = 2.54 cm)}
-\item{...}{Additional arguments passed to save_kable.}
-
\item{file}{By default, as_image saves to an temp file, which works for
normal rmarkdown. However if you are using things like xaringan, which can't
be a standalone html, you can specify this file be the path you need, eg.
"img/something.png"}
+
+\item{...}{Additional arguments passed to save_kable.}
}
\description{
This function generates a temporary png file using \code{save_kable}
diff --git a/vignettes/awesome_table_in_pdf.Rmd b/vignettes/awesome_table_in_pdf.Rmd
index fa84b7f..1bf5c24 100644
--- a/vignettes/awesome_table_in_pdf.Rmd
+++ b/vignettes/awesome_table_in_pdf.Rmd
@@ -11,7 +11,6 @@
- \usepackage{longtable}
- \usepackage{array}
- \usepackage{multirow}
- - \usepackage[table]{xcolor}
- \usepackage{wrapfig}
- \usepackage{float}
- \usepackage{colortbl}
@@ -21,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}
@@ -37,7 +37,7 @@
\end{wrapfigure}
The goal of `kableExtra` is to help you build common complex tables and manipulate table styles. It imports the pipe `%>%` symbol from `magrittr` and verbalizes all the functions, so basically you can add "layers" to a kable output in a way that is similar with `ggplot2` and `plotly`.
-To learn how to generate complex tables in LaTeX, please visit [http://haozhu233.github.io/kableExtra/awesome_table_in_html.html](http://haozhu233.github.io/kableExtra/awesome_table_in_html.html).
+To learn how to generate complex tables in HTML, please visit [http://haozhu233.github.io/kableExtra/awesome_table_in_html.html](http://haozhu233.github.io/kableExtra/awesome_table_in_html.html).
# Installation
```r
@@ -50,6 +50,10 @@
# Getting Started
Here we are using the first few columns and rows from dataset `mtcars`
+```{r, echo = F}
+options(kableExtra.latex.load_packages = F)
+```
+
```{r}
library(knitr)
library(kableExtra)
@@ -87,7 +91,6 @@
- \usepackage{longtable}
- \usepackage{array}
- \usepackage{multirow}
- - \usepackage[table]{xcolor}
- \usepackage{wrapfig}
- \usepackage{float}
- \usepackage{colortbl}
@@ -97,8 +100,11 @@
- \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.
+
## Plain LaTeX
Plain LaTeX table looks relatively ugly in 2017.
```{r}
@@ -371,7 +377,7 @@
collapse_rows(columns = 1:2, latex_hline = "major", valign = "middle")
```
-Right now, you can't automatically make striped rows based on collapsed rows but you can do it manually via the `extra_latex_after` option in `row_spec`. This feature is not officially supported. I'm only documenting it here if you want to give it a try.
+Right now, you can't automatically make striped rows based on collapsed rows but you can do it manually via the `extra_latex_after` option in `row_spec`. This feature is not officially supported. I'm only document it here if you want to give it a try.
```{r}
kable(collapse_rows_dt[-1], "latex", align = "c", booktabs = T) %>%
column_spec(1, bold = T, width = "5em") %>%
@@ -398,7 +404,7 @@
collapse_rows(1:3, row_group_label_position = 'stack')
```
-To better distinguish different layers, you can format each layer using `row_group_label_fonts`. You can also customize the hlines to better differentiate groups.
+To better distinguish different layers, you can format the each layer using `row_group_label_fonts`. You can also customize the hlines to better differentiate groups.
```{r}
row_group_label_fonts <- list(
diff --git a/vignettes/best_practice_for_newline_in_latex_table.Rmd b/vignettes/best_practice_for_newline_in_latex_table.Rmd
index 63b3ec5..5cd5006 100644
--- a/vignettes/best_practice_for_newline_in_latex_table.Rmd
+++ b/vignettes/best_practice_for_newline_in_latex_table.Rmd
@@ -4,11 +4,11 @@
date: "`r Sys.Date()`"
output: pdf_document
header-includes:
+ - \usepackage{caption}
- \usepackage{booktabs}
- \usepackage{longtable}
- \usepackage{array}
- \usepackage{multirow}
- - \usepackage[table]{xcolor}
- \usepackage{wrapfig}
- \usepackage{float}
- \usepackage{colortbl}
@@ -63,9 +63,17 @@
dt2 %>%
mutate_all(linebreak) %>%
kable("latex", booktabs = T, escape = F,
+ caption = "Main Title\\\\Subtitle",
col.names = linebreak(c("Item\n(Name)", "Value\n(Number)"), align = "c"))
```
+Note that linebreaks in table captions should be treated in a different way. You will need to insert the linebreak (`\\\\`) by yourself manually, which is easier than using `linebreak`. `linebreak` doesn't work because it put things in a `makecell`, which doesn't work in caption (as it's not a cell :P). At the same time, if you are using kableExtra 0.9.0 or any previous version, you need to load the `caption` package in LaTeX by yourself.
+
+```
+header-includes:
+ - \usepackage{caption}
+```
+
### Linebreak in other kableExtra functions
If you have a need to put a linebreak in `kableExtra` functions such as `add_header_above` and `group_rows`, just go ahead and use `\n` directly (in kableExtra >= 0.8.0) and it will be automatically converted. Note that this feature is also controlled by the `escape` option in those functions.