huxtable-FAQ {huxtable} | R Documentation |
Frequently Asked Questions, including how to get help
Description
A FAQ of common issues.
Details
I get a LaTeX error when I try to compile my document!
Have you installed the LaTeX packages you need? LaTeX packages are different from R packages. Run
check_latex_dependencies()
to find out if you are missing any. Then install them using your system's LaTeX management application. Or you can tryinstall_latex_dependencies()
.In some rmarkdown and LaTeX formats, you also need to add LaTeX dependencies manually. Run
report_latex_dependencies()
and add the output to your LaTeX preamble, or in Rmarkdown formats, add it to the rmarkdown header like this:header-includes: - \usepackage{array} - \usepackage{caption} ... et cetera
Huxtable isn't working in my Rmarkdown
beamer_presentation
slides.You may need to set the beamer "fragile" option, like this:
# Slide title {.fragile}
Numbers in my cells look weird!
You can change numeric formatting using
number_format()
. Base R options likescipen
usually have no effect.How can I use HTML, TeX etc. in my table?
Use
escape_contents()
:jams |> add_footnote("These jams are <i>tasty</i>!") |> set_escape_contents(final(1), everywhere, FALSE) |> quick_html()
Alternatively you might consider using markdown in cells, with
set_markdown_contents()
.I ran
caption(ht) <- "Something"
and got an error message:Error in UseMethod("caption<-") : no applicable method for 'caption<-' applied to an object of class "c('huxtable', 'data.frame')"
You may have loaded another package with a
caption
method, e.g. "xtable". Try loading huxtable after xtable.How can I get line breaks in my cells?
Just insert a line break
"\n"
in the cell contents. Then make sure thatwidth()
is set andwrap()
isTRUE
(it is by default).How can I change the font size, font etc. of captions?
There are no direct commands for this. You have to use raw HTML/TeX/other commands within the caption itself. For example to have a bold caption in HTML, you might do something like:
set_caption(jams, "<b>Jam Prices</b>")
How do I refer to tables in bookdown?
As of version 4.3.0, this is handled automatically for you. Just set the label using
label()
, then in markdown text do e.g.:\@ref(tab:my-table-label).
How do I refer to tables in quarto?
In quarto versions up to 1.3, or when compiling to HTML and other formats, simply use quarto cell labels like
label: tbl-foo
and refer to them via@tbl-foo
.In quarto versions 1.4 and above, when compiling to PDF, quarto cross-referencing no longer works, and labels starting with
tbl-
will cause an error. (This is a quarto issue.) Instead, set labels within huxtable usinglabel()
orset_label()
and refer to them with TeX-only referencing using\ref{label}
. You must also set a caption, either via quarto or via huxtable.Here's an example:
A reference to Table \ref{tab:jams}. ```{r} label(jams) <- "tab:jams" caption(jams) <- "Some jams" jams ```
If you really need cross-referencing for both PDF and other output formats, either downgrade to quarto 1.3, use a different package, or write code to emit appropriate references.
I called
library(huxtable)
and now mydata.table
objects are getting printed!Set
options(huxtable.knit_print_df = FALSE)
.How can I set a property on an arbitrary group of cells?
If you can't use the mapping-functions interface, and you want to set a property for multiple cells that aren't all in the same rows and/or columns, you could use a little-known fact about R subsetting. If you subset
ht[x]
wherex
is two-column numeric matrix, then each row ofx
indexes a single(row, column)
cell. So, for example, here's how to set the background color of cells(2,1)
,(1, 3)
and(4, 2)
of a huxtable:indices <- matrix(c(2, 1, 1, 3, 4, 2), ncol = 2, byrow = TRUE) background_color(jams)[indices] <- "orange"
Another useful trick sets properties on the diagonal, using
diag()
:diag(background_color(jams)) <- "grey"
I have another problem.
If you have a bug - i.e. there is something wrong with the software - or a feature request, please report it to https://github.com/hughjonesd/huxtable/issues. Otherwise, ask a question on StackOverflow or https://community.rstudio.com. That way, other people will benefit from the answers you get.
Can I email you directly?
I'd rather you asked on a public website. If you then email me a link, I may be able to help.