knitr 1.23
NEW FEATURES
-
Added
mogrify
support inhook_png()
andhook_mogrify()
in order to obtain trimmed.png
files (thanks, @mhofert, #1697). -
It is possible to customize the sign
\times
used for the scientific notation of inline numeric output via a global option, e.g.,options(knitr.inline.times = '\\cdot ')
(thanks, @wuffi @trentks, #1563). -
Exported
knit_code
and documented it at?knitr::knit_code
. Here be dragons, but I know you are brave and creative (thanks, @r-cheologist @ProQuestionAsker, #1545). -
Added support for specifying fenced code block attributes in Markdown output via chunk options
attr.*
, which are similar but a generalization to the existing chunk optionsclass.*
. For example,class.source = 'numberLines'
is equivalent toattr.source = '.numberLines'
, butattr.source
can take arbitrary attribute values, e.g.,attr.source = c('.numberLines', 'startFrom="11"')
(thanks, @atusy, #1710).
BUG FIXES
-
For R Markdown documents, inline numeric output that is formatted with the scientific notation will be wrapped in
\ensuremath{}
. This will fix the LaTeX error! Missing $ inserted.
. However, you are still recommended to add a pair of dollar signs around the inline output when it is formatted with the scientific notation (e.g.,$`r 1.234e12`$
), otherwise it will not work with other R Markdown output formats such as HTML or Word (thanks, @billdenney and many who have suffered from this issue, rstudio/rmarkdown#1527). -
For an input file that contains no code chunks or inline R code expressions,
purl()
should return an empty string instead of the original text from the input (thanks, @jrnold, #1660). -
purl()
might trigger a warning for non-R code chunks (thanks, @adamcagle, rstudio/rmarkdown#1528). -
When building package vignettes via
R CMD build
, the R scripts generated from knitr's vignette (tangling) engines are not corrected encoded in UTF-8 (thanks, Kurt Hornik). -
Fixed a bug introduced when fixing #1648:
include_url()
no longer works at all unless the chunk optionout.extra
is not empty (thanks, @gabrielvazdemelo, #1691). -
When evaluating perl code chunks the interpreter is spawned with the
-E
option, enabling all optional features such assay
, rather than-e
(thanks, @kiwiroy, #1699) -
When the chunk label of a
tikz
chunk contains periods, thetikz
output cannot be converted to the expected.svg
(thanks, @ucpresearch, #1706). -
The
...
argument forraw_latex()
andraw_html()
is actually passed toasis_output()
now (thanks, @GregorDeCillia, #1716).
MAJOR CHANGES
-
knitr::knit()
will try to read the input file with the UTF-8 encoding first. If UTF-8 doesn't work, it will try to read with the system native encoding instead (with a warning). Theencoding
argument ofknitr::knit()
is completely ignored. In the future, only UTF-8 will be supported, and we will stop retrying with the system native encoding. The output file fromknitr::knit()
is always encoded in UTF-8. -
spin_child()
will also assume the input file is encoded in UTF-8 (thanks, Henrik, https://stackoverflow.com/q/55395422/559676). -
When the chunk option
dev = 'svg'
,grDevices::svg()
is used to record plots, instead of the default PDF null device (thanks, @trevorld, #729). -
Partially reverted the solution for #1403 in favor of fixing the more surprising issue #1708, i.e., avoid false positive cache dependencies among chunks more than false negative dependencies when the chunk option
autodep = TRUE
(thanks, @fountainer). -
The LaTeX package
framed.sty
is no longer bundled with the knitr package. This should only affect users who write.Rnw
documents. Ifframed.sty
is missing in your LaTeX distribution, you will have to install it by yourself. You may also consider TinyTeX (https://yihui.name/tinytex/), which has included this LaTeX package.