Does R Markdown have a similar construct to LaTex's "newcommand"? I would like to be able to define things like \var
to be \mathrm{Var}
to avoid the extra typing in math mode. If not, what do people do to reduce repetition in typesetting equations in markdown?
问题:
回答1:
Use \newcommand{\var}{\mathrm{Var}}
exactly like you would in LaTeX:
---
title: "Untitled"
author: "An Author"
date: "January 15, 2017"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
\newcommand{\var}{\mathrm{Var}}
## R Markdown
This is an R Markdown document. $\var+2$ Markdown is a simple formatting syntax for
authoring HTML, PDF, and MS Word documents. For more details on using R Markdown
see <http://rmarkdown.rstudio.com>.
Note that in order for it to be processed correctly in the output, you'll have to use $
...$
.
回答2:
I had issues with the above solution when outputting as a beamer presentation, particularly when using the equation mode ($$.$$ rather than $.$). Putting the new commands in a separate file fixed the issue for me.
---
title: Title
author: Author
date: "8/22/2018"
output:
beamer_presentation:
includes:
in_header: preamble.tex
---
Where preamble.tex contains your user defined command(s)
\newcommand{\var}{\mathrm{Var}}
Then you can use the command both inline ($\var$) and in equation mode ($$\var$$)
You can also put other stuff in preamble.tex like frame numbering, etc.
回答3:
To get around the requirement of \DeclareMathOperator
needing to be in the preamble, use \operatorname
:
\newcommand{\Var}{\operatorname{Var}}
$\Var(X)$
(\operatorname
handles spacing better than \mathrm
)
To use \newcommand
properly in HTML output, your LaTeX should be in-line with single $
or in double $$
. This applies to environments like \begin{align*}
too.
---
title: "Test"
author: "qwr"
date: "January 22, 2019"
output: html_document
---
\newcommand{\Var}{\operatorname{Var}}
$\Var(X)$
$$
\begin{align*}
\Var[Y] &= x \\
&= 3
\end{align*}
$$