% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/kable_as_image.R
\name{kable_as_image}
\alias{kable_as_image}
\title{Convert a LaTeX table to an image and place it in a rmarkdown document}
\usage{
kable_as_image(kable_input, filename = NULL, file_format = "png",
  latex_header_includes = NULL, keep_pdf = FALSE, density = 300,
  keep_tex = FALSE)
}
\arguments{
\item{kable_input}{Raw LaTeX code to generate a table. It doesn't have to
came from \code{kable} or \code{kableExtra}.}

\item{filename}{Character String. If specified, the image will be saved under
the specified (path &) name. You don't need to put file format like ".png"
here.}

\item{file_format}{Character String to specify image format, such as \code{png},
\code{jpeg}, \code{gif}, \code{tiff}, etc. Default is \code{png}.}

\item{latex_header_includes}{A character vector of extra LaTeX header stuff.
Each element is a row. You can have things like
\code{c("\\\\usepackage{threeparttable}", "\\\\usepackage{icons}")}}

\item{keep_pdf}{A T/F option to control if the mid-way standalone pdf should
be kept. Default is \code{FALSE}.}

\item{density}{Resolution to read the PDF file. Default value is 300, which
should be sufficient in most cases.}

\item{keep_tex}{A T/F option to control if the latex file that is initially created
should be kept. Default is \code{FALSE}.}
}
\description{
This is a LaTeX-only function. This function will render the
raw LaTeX code (could be codes generated by other table packages like
\code{xtable}) to generate a table, convert it to an image and put it back to a
rmarkdown environment. It is a "better than nothing" solution to print high
quality tables in rmarkdown Word document. By using this, you need to take
the responsibility of explaining to your collaborators why they can't make
edits to the tables in Word.

Also, if a filename is provided, user has the option to "save" the table to
an image file like \code{ggplot2::ggsave()}.

Note that, if you are using this function on a Windows computer, you need
to install Ghostscript before you can use this feature. It is essential for
magick to read PDFs on Windows. Website for Ghostscript: https://ghostscript.com/

The idea of this function was coming from \href{https://stackoverflow.com/questions/44711313/save-rmarkdowns-report-tables-and-figures-to-file}{this StackOverflow question}.
The approach was learned and adopted from the \href{https://github.com/metrumresearchgroup/texPreview}{texpreview}
package, which allows you to preview the results of TeX code in the Viewer panel.
}
