The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
The {svSweave} package provides different functions to better manage
Sweave and Knitr with
LyX, a document processor that creates LaTeX code.
These functions are deprecated and are not detailed
here. See their help page ?clean_lyx()
.
The package also provides functions to automatically enumerate and
reference figures, tables and equations in R Markdown documents (an
alternate mechanisms to {bookdown} or {quarto} that works everywhere).
Indeed, this feature is missing in the basic R Markdown documents. The
various {bookdown} templates provide a \@ref(label)
, see bookdown
cross references and Quarto simply uses @label
, see quarto
cross references. The functions fig()
,
tab()
and eq()
provide a different mechanism
to obtain a similar result: to enumerate items and to cross-reference
them in the text. Here an example of a numbered figure with its caption.
In order to use these function, you must load the {svSweave} package in
a (setup) chunk before you use these functions:
library(svSweave)
You can use fig("my caption text")
to number the caption
of a figure in fig.cap=
. The chunk must be named too.
hist(rnorm(50))
Now, you can reference this plot in the text using
fig$label
(see
Fig ). It also works if the
first reference appears before the figure itself1, see
Fig .
boxplot(rnorm(50))
Summary: produce numbered figures from labeled R chunks by indicating
fig.cap = fig("....")
, and reference them usingfig$label
in an inline R expression.
The same principle works for tables using
knitr::kable()
. For instance, see
Table .
::kable(head(iris),
knitrcaption = tab("The few first lines of the `iris` dataset."))
iris
dataset.
Sepal.Length | Sepal.Width | Petal.Length | Petal.Width | Species |
---|---|---|---|---|
5.1 | 3.5 | 1.4 | 0.2 | setosa |
4.9 | 3.0 | 1.4 | 0.2 | setosa |
4.7 | 3.2 | 1.3 | 0.2 | setosa |
4.6 | 3.1 | 1.5 | 0.2 | setosa |
5.0 | 3.6 | 1.4 | 0.2 | setosa |
5.4 | 3.9 | 1.7 | 0.4 | setosa |
A reference to cars
(Table ) and to
iris
(Table ) again.
::kable(head(cars),
knitrcaption = tab("the first few lines of `cars`."), format = "pandoc")
cars
.
speed | dist |
---|---|
4 | 2 |
4 | 10 |
7 | 4 |
7 | 22 |
8 | 16 |
9 | 10 |
Summary: produce numbered tables from labeled R chunks by indicating
caption = tab("....")
inknitr::kable()
, and reference them usingtab$label
in an inline R expression.
Finally, numbered display equations can also be constructed and
cross-referenced. In the display equation, constructed with a pair of
$$
, you use eq(label)
in an inline R
expression. To reference it, you use eq$label
also in an
inline expression.
\[x=\frac{-b \pm \sqrt{b^2 - 4ac}}{2a} \label{eq:eqlabel} \tag{1}\]
… and I can reference Eq. \(\eqref{eq:eqlabel}\) like this.
\[\sum_{i = 0}^n{x^2} \label{eq:sum} \tag{2}\]
I can cite one Eq \(\eqref{eq:sum}\), or another one Eq \(\eqref{eq:pythagoras}\).
\[a^2+b^2=c^2 \label{eq:pythagoras} \tag{3}\]
Summary: produce numbered equations by adding
eq(label)
inline R expression inside a display equation, and reference to it usingeq$label
inside an inline R expression.
These tags work in R Markdown to compile HTML, LaTeX or Word, with some glitches remaining to eliminate for LaTeX or Word.
Take care, however, that numbering is sequential from the first call (either cross-reference, or label) in Word. You cannot cross-reference the last figure at the beginning of the document… or that last figure will be numbered “Fig. 1” there. For the other formats, it is not a problem.↩︎
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.