This help page simply gives the contents of NEWS.md.
Huxtable attempts to follow semantic versioning (https://semver.org). Therefore, the major version number is increased whenever there are backwards-incompatible API changes.
table_environment property so you can use e.g.
print_screen(h, colnames = FALSE) didn’t print a final
Bugfix: italic from markdown was being printed as underlined in TeX.
Minor test update for compatibility with broom.
Minor test update for compatibility with broom.
Fixes for R 4.1.0.
as_flextable() now exports markdown in cells to RTF, and to Word
with the help of the optional
ftExtra package. Thanks @atusy for
adding this feature.
Improvements to markdown screen export. This now uses the optional
arguments, to write a huxtable into an Excel worksheet starting at a
particular row or column.
options(huxtable.long_minus = TRUE) will try to use
long minus signs before numbers. The default is
FALSE. It will
TRUE in a future version.
insert_row/column(..., after = 0) was unsetting table
Bugfix: unicode characters above 32767 were incorrectly represented in RTF. Thanks @kaigu1990.
Bugfix: columns were being collapsed in
style_cells didn’t work unless huxtable was on the search
NA rows incorrectly.
Bugfix: number format was not set correctly in
tidy_replace() was broken.
Clearer error messages for
extend = FALSE.
extend will probably default to
Huxtable received its first Patreon sponsor! Thanks to Ross Mattheis.
Huxtable 5.0.0 brings numerous changes. For a more user-friendly introduction, see https://hughjonesd.github.io/whats-new-in-huxtable-5.0.0.html.
There are changes to LaTeX output.
\tabcolsep is now set to 0 within huxtable tables, while
left and right padding should now take effect even when
The default LaTeX table environment is now “tabular” unless
width is set. If
width is set, it is “tabularx”.
wrap only matters if
width is set. Otherwise, cell wrapping
\centerbox macro from the LaTeX “adjustbox” package is
used to centre tables. This should improve centring when tables
are too wide. You may need to update the LaTeX “adjustbox”
package to a recent version.
inform you about this.
Newlines in cell contents are now respected (in LaTeX, so long as
wrap = TRUE and
width has been set).
Huxtable borders have been reworked, fixing some longstanding bugs and adding new features.
Borders are now automatically collapsed. For example:
will set the border in between the columns of
overwriting the previous value. This is more in line with what
you would expect. For example, the following code now does what
you probably want:
jams %>% set_rowspan(2, 1, 3) %>% set_bottom_border(4, everywhere, 1) ## Type Price ## Strawberry 1.90 ## 2.10 ## 1.80 ## ---------------------------
instead of the old behaviour:
jams %>% set_rowspan(2, 1, 3) %>% set_bottom_border(4, everywhere, 1) ## Type Price ## Strawberry 1.90 ## 2.10 ## 1.80 ## -----------
brdr() class encapsulates border thickness, style and
colour. You can set all properties at once by writing, e.g.:
Various deprecated items have been removed:
The 3-argument form of
set_*. Instead, use
byrow argument to
set_*. Instead, use
pad_decimal arguments in
align(hx) <- ".".
! is.na(as.numeric(x)), and
align(ht) <- ".".
Default padding has been increased to 6 points.
width() is now unset.
wrap() is now
The little-used ability to set
copy_cell_props to a character
cbind.huxtable has been removed.
You can still set it to
Huxtable no longer supports dplyr versions less than 0.7.0 (released mid-2017).
Various themes have been tweaked:
You can now use markdown within table cells.
Huxtable now has the concept of header row and columns.
By default, data frame column names will be headers.
header_row/col = TRUE set the first row/col to a
header, and style all header rows/cols.
Console output in R now shows table position and caption position.
By default, huxtable now sets labels from the current knitr chunk
label, if there is one. This is consistent with
bookdown, you can then do e.g.
Some iris species are shown in \@ref(tab:mytable): ```r as_hux(iris) ```
options(huxtable.autolabel = FALSE) to turn off this
The one-argument form of
[ now works for huxtables just as it does
for data frames. For example,
ht[2:3] selects columns 2 and 3.
set left and right borders and padding simultaneously. New functions
set_tb_borders() etc. set top and bottom properties
simultaneously. There are
map_ equivalents of all of these.
A new table-level property,
caption_width(), allows you to set the
width of the caption. The default,
NA, sets the width equal to the
huxtable now only sets
options(huxtable.knit_print_df = TRUE) if
it is attached, not if it is loaded.
dplyr::relocate(), new in dplyr 1.0.0.
quick_pptx() (thanks @davidgohel).
options(huxtable.use_fontspec = TRUE).
add_rownames = "string" now works as promised.
Bugfix: non-ASCII characters are now supported in RTF.
Package texreg on CRAN
huxtablereg() function for creating a table of
The expss package now supports export to huxtables.
Add caption support for
as_flextable() (thanks @sjewo).
Better error messages.
merge_repeated_rows() function: merge repeated rows into a
colspan/rowspan arguments for
Bugfix: right borders in wrong place when cells were merged.
Bugfix: chinese characters were displaying wrongly in
TRUE to use
portable font names in TeX documents, with the LaTeX “fontspec”
Bugfix: attributes were being copied wrongly in subset assignment of huxtables.
Bugfix: text colors in
Bugfix: rbind of huxtable and matrix wasn’t setting
texreg package now includes a
huxreg, which outputs a huxtable from a list of
regressions. This will be available from the next version of
Huxtables can now be printed directly in Word documents and
Powerpoint presentations, thanks to the
flextable package and
recent versions of Pandoc. (Powerpoint printing requires
Pandoc >= 2.4.0.)
New “wrapleft” and “wrapright” options to
position() allow text
wrapping around tables.
Huxtable no longer requires the
broom package, instead using the
generics package. If you use
huxreg(), you will still need
broom.mixed to provide
methods for specific models.
Bugfix: huxtables had option clash when
echo = TRUE in Rmd
mutate(..., copy_cell_props = FALSE) was adding a column
gave misleading errors.
huxreg, don’t print a note
tinytex when available, allowing autoinstallation
of latex packages.
More work on TeX. Tables should now compile when raw_attributes is not set.
map_xxx functions to set properties variably by cell values.
Functions for mapping properties variably:
Correct bookdown labels are now automatically created.
New grey, blue, green and orange themes.
New “themes” vignette.
tidy_override function to override p values etc. in
set_contents function to change huxtable contents within dplyr
Enhancement: left- and right-aligned captions are now set above the
table in LaTeX, using the “threeparttable” package. You will need to
install this using e.g.
it is not already on your system.
huxtable() and friends,
add_rownames = "Colname"
now sets the name for the new column.
Improvements to the vignettes and help files.
Bugfix: to_md could hang with bold/italic cells.
The 3 argument form of
set_xxx functions is deprecated, as is the
where function. Use
byrow is soft-deprecated. Use
wrap=TRUE caused squeezed text in RTF.
TeX code was getting escaped by pandoc. To avoid this, if possible, huxtable now adds fenced code blocks round latex tables (see https://pandoc.org/MANUAL.html#extension-raw_attribute). You must add
to your YAML header for this to work, and you will need a recent (> 2.0.0) version of Pandoc.
More speedups: LaTeX 2-3x faster, as_Workbook 2-3x faster.
Simplify LaTeX output using our own LaTeX commands.
RTF support: new
border_style properties to set “solid”, “double”, “dotted” or
“dashed” borders. (At present, LaTeX only allows “solid” or
merge_cells function, an alternative interface to
quick_pptx function to print data frames and huxtables into
add_columns now accept data frames as arguments.
theme_mondrian theme :-D
print_md now handles bold and italic cells.
quick_pdf has new
height options to
change paper size.
Use CSS writing-mode where possible for text rotation. Note that this may break on non-LTR languages. If this affects you, please file an issue.
Bugfix: LaTeX didn’t compile when height and caption were both set.
print_md would hang with a wide
Tweaks to documentation.
dplyr, knitr, rmarkdown and some other packages have moved to “Suggests:”, lowering the dependency load considerably. All the functionality is still present. huxtable gives an informative warning if a needed package is not installed.
Code rewrites for better performance and maintainability: HTML is up to 10x faster, LaTeX is up to 4x faster.
tribble_hux function wrapping
tibble::tribble() for readable
add_columns functions to insert one or more
rows into the middle of a huxtable.
New option “huxtable.knitr_output_format” to override the default output format in knitr documents.
Numeric row heights and column widths are rescaled to 1 when huxtables are cbinded/rbinded.
LaTeX: at points where borders cross, priority is given to the horizontal border color.
Bugfix: property accessors had the wrong environment. Thanks to Iñaki Úcar.
Bugfix: row heights and column widths weren’t being copied with cbind/rbind.
Bugfixes for 0-row or 0-column huxtables:
Output works, usually with a warning.
cbind and rbind work.
Bugfix: HTML cols were printed with ‘width: NA’.
Bugfix: width, col_width etc. can be reset to a number after setting them to a string.
The (undocumented) ability to mix numeric and non-numeric values for padding and/border widths has been removed. If you want a number, set a number and not a string.
Bugfix: HTML tables with position “right” weren’t right-aligned.
Nicer error messages when rbinding objects with different numbers of rows.
is_a_number is deprecated.
… and a cool new randomized
Improved formatting in Excel output.
format method which returns the result of
to_latex etc. as appropriate.
to_html printing e.g. “left-border: NA;” in cell CSS.
set_all_* not working when huxtable is not attached.
as_Workbook failing with non-numeric
hux_logo was using multiple fonts, fails with Excel
as_flextable borders not working in cells with
colspan > 1.
Compatibility with broom 5.0.0 - thanks @alexpghayes
The default value for
add_colnames is going to become
present it remains
FALSE to set the default and avoid warnings in
quick_* functions now automatically open documents if used
open = FALSE to avoid.
Tweak top and bottom margins for HTML tables.
pad_decimal is deprecated in favour of
align(ht) <- ".".
huxreg continues with a warning if
statistics are unavailable
for some models.
huxtable now provides
knit_print.data.frame methods. This means
that bare data frames will be pretty-printed via huxtable if the
package is loaded.
FALSE if you don’t
By default data frames are printed using the
theme. Set options(“huxtable.knit_print_df_theme”) to a
different one-argument function if you want to use a different
autoformat argument lets
automatically choose alignment and number format based on column
FALSE to turn off
this feature by default.
The default value of
number_format has changed from “%5.3g” to
“%.3g”, which no longer space-pads numbers.
as_flextable now does not print column names in the header. This
matches the standard huxtable behaviour whereby headers are “just
another row/column”. To get the old behaviour, use
colnames_to_header = TRUE.
Bugfix: Date and datetime columns were converted to numbers by
LaTeX bugfix: background colors were printing an extra space.
huxreg was never using built-in confidence intervals.
set max_width to screen width (thanks @jacob-long)
misaligned decimal points
Various bugfixes for
Output to Excel workbooks using the
dplyr select helpers now work inside
set_* column specifications:
e.g. set_bold(ht, 1:3, matches(“ab”), TRUE)
Column names can now be used for the
after argument to
quick_* functions: when the
file argument is not explicitly
specified, confirm overwrites manually, or fail if called
Add pointless quote marks in Description and Title… I don’t make the rules.
Don’t apply number_format to negative exponents (e.g. 1.12e-3).
tidy_args argument to huxreg allows per-model customization of
the call to
quick_xxx functions without an explicit
file argument throw an
error if called non-interactively, and prompt before overwriting
files if called interactively.
number_format to exponents in scientific notation.
Turn off some tests on CRAN, as they fail there but not elsewhere.
quick_pdf error when moving output across filesystems.
quick_docx functions to print
table-like objects to a new document.
to_screen only shows colnames if there are any non-zero-length
number_format now applies to any number-like substrings in cells.
This means you can include e.g. significance stars in a cell and
number_format to format the content.
number_format is NA, numbers are unchanged.
Default value of
number_format has changed from “%5.2f” to
“%5.3g”, which plays nicer with integers but may surprise you by
using scientific format for large numbers.
outer_borders argument for
huxreg. This changes default
border argument for
add_footnote to choose width of
footnote’s top border.
Added guard assertions to many exported functions.
Bugfix: captions and colnames are wrapped in to_screen to respect max_width.
No more ugly autocreated column names.
Allow huxtable to have invalid or empty column names in general.
LaTeX should now be much faster on large tables.
set_outer_borders now accepts the same row/column arguments as
Better handling in LaTeX of horizontal borders which don’t cross the entire table. (But not varying positive border widths….)
Bugfix: flextable didn’t like huxreg’s syntactically invalid column names.
Accept, but silently change, English spelling of ‘centre’ in
LaTeX implements different thicknesses for vertical and horizontal borders (but only one horizontal thickness per row).
LaTeX border colors now collapse nicely: set colors override unset ones.
React gracefully to lack of p values in
set_outer_borders function to set borders round a rectangle of
to_md now respect
Screen and markdown wrap respect word boundaries.
to_md gain a
to_md gains a
to_screen gains a
blank = NULL.
On screen colour and bold support, if the
crayon package is
flextable. No more
error_format argument to
huxreg for flexible control over
Infrastructure improvements: slightly less ugly code in screen.R and LaTeX.R.
as_FlexTable is deprecated and calls
as_flextable with a
footer_rows arguments are ignored. If
you need this feature, tell me.
HTML border sizes are now set in points, not pixels.
NULL by default. Set it to a number to calculate
error_style is deprecated with a warning in favour of
%stars% to display significance levels in
borders becomes a number specifying border width. Set to 0 for
New convenience functions
latex_float property allows you to change positioning in LaTeX.
(Semantic versioning fail: this should have been 0.4.0.)
New borders argument for huxreg, gives borders in sensible places.
Allow more flexible caption positioning with
set_default_properties function to set default properties for
Fix compatibility with dplyr 0.6.0.
Fix a bug that could lead to wrong significance stars in
Compatibility with dplyr 0.6.0.
Use ~ for decimal padding in LaTeX.
huxreg function to convert a list of models to a huxtable.
New set_* interface allowing column ranges, expressions a la
subset, and filling in values by row.
[[<- now work better.
set_cell_properties to set multiple properties on
Export to Word/Powerpoint via
Huxtable now supports dplyr verbs like
Ability to set border colors.
Prevent overlapping row/colspans.
Expanded introduction and new vignette for
Numerous bugs have been fixed and replaced with new, more advanced bugs.
theme_minimal has been renamed
theme_basic to avoid a name clash
NEWS.md file to track changes to the package.
First CRAN release.