This function is called automatically by knitr to display a flextable in R Markdown and Quarto documents. You do not need to call it directly.
Supported output formats: HTML, Word (docx), PDF and PowerPoint (pptx).
For other formats (e.g., github_document, beamer_presentation),
the table is rendered as a PNG image.
Arguments
- x
a 'flextable' object, see flextable-package to learn how to create 'flextable' object.
- ...
unused.
Getting started
No special setup is needed: place a flextable object in a code chunk and it will be rendered in the output document.
Add a caption with set_caption():
ft <- set_caption(ft, caption = "My table caption")In Quarto documents, use chunk options tbl-cap and label instead:
Captions
Recommended method: use set_caption() to define the caption
directly on the flextable object. When set_caption() is used,
chunk options related to captions are ignored.
Alternative (R Markdown only): use knitr chunk options tab.cap
and tab.id:
| Description | Chunk option | Default |
| Caption text | tab.cap | NULL |
| Caption id/bookmark | tab.id | NULL |
| Caption on top of the table | tab.topcaption | TRUE |
| Caption sequence identifier | tab.lp | "tab:" |
| Word style for captions | tab.cap.style | NULL |
Bookdown: cross-references use the pattern
\@ref(tab:chunk_label). The usual bookdown numbering applies.
Quarto: cross-references use @tbl-chunk_label. To embed
cross-references or other Quarto markdown inside flextable cells,
use as_qmd() with the flextable-qmd extension
(see use_flextable_qmd()).
Chunk options
Use knitr::opts_chunk$set(...) to set defaults for the whole document.
All formats:
ft.align: table alignment, one of'left','center'(default) or'right'.
HTML:
ft.htmlscroll:TRUEorFALSE(default) to enable horizontal scrolling. Seeset_table_properties()for finer control.
Word:
ft.split: allow rows to break across pages (TRUEby default).
PDF:
ft.tabcolsep: space between text and cell borders (default 0 pt).ft.arraystretch: row height multiplier (default 1.5).ft.latex.float: floating placement. One of'none'(default),'float','wrap-r','wrap-l','wrap-i','wrap-o'.
PowerPoint:
ft.left,ft.top: top-left coordinates of the table placeholder in inches (defaults: 1 and 2).
Word with officedown
When using officedown::rdocx_document(), additional caption options
are available:
| Description | Chunk option | Default |
| Numbering prefix | tab.cap.pre | "Table " |
| Numbering suffix | tab.cap.sep | ": " |
| Title number depth | tab.cap.tnd | 0 |
| Caption prefix formatting | tab.cap.fp_text | fp_text_lite(bold=TRUE) |
| Title number / table number separator | tab.cap.tns | "-" |
Quarto
flextable works natively in Quarto documents for HTML, PDF and Word.
The flextable-qmd Lua filter extension enables Quarto markdown
inside flextable cells: cross-references (@tbl-xxx, @fig-xxx),
bold/italic, links, math, inline code and shortcodes.
See as_qmd() and use_flextable_qmd() for setup instructions.
PDF limitations
The following properties are not supported in PDF output:
padding, line_spacing and row height. Justified text is
converted to left-aligned.
To use system fonts, set latex_engine: xelatex in the YAML
header (the default pdflatex engine does not support them).
See add_latex_dep() when caching flextable results.
PowerPoint limitations
PowerPoint only supports fixed table layout. Use autofit() to
adjust column widths. Images inside table cells are not supported
(this is a PowerPoint limitation).
See also
set_caption(), as_qmd(), use_flextable_qmd(),
paginate()
Other flextable print function:
df_printer(),
flextable_to_rmd(),
gen_grob(),
htmltools_value(),
plot.flextable(),
print.flextable(),
save_as_docx(),
save_as_html(),
save_as_image(),
save_as_pptx(),
save_as_rtf(),
to_html.flextable(),
wrap_flextable()
Examples
if (FALSE) { # \dontrun{
library(rmarkdown)
if (pandoc_available() &&
pandoc_version() > numeric_version("2")) {
demo_loop <- system.file(
package = "flextable",
"examples/rmd",
"demo.Rmd"
)
rmd_file <- tempfile(fileext = ".Rmd")
file.copy(demo_loop, to = rmd_file, overwrite = TRUE)
render(
input = rmd_file, output_format = "html_document",
output_file = "demo.html"
)
}
} # }
