R Markdown与" newcommand"相似的功能在LaTex?

时间:2017-01-14 21:54:08

标签: latex markdown r-markdown

R Markdown是否具有与LaTex"新命令"?类似的结构?我希望能够将\var之类的内容定义为\mathrm{Var},以避免在数学模式中进行额外输入。如果没有,人们会采取什么措施来减少降价中排版方程式的重复?

4 个答案:

答案 0 :(得分:11)

使用\newcommand{\var}{\mathrm{Var}},就像在LaTeX中一样:

enter image description here

---
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>.

请注意,为了在输出中正确处理它,您必须使用$ ... $

答案 1 :(得分:1)

要解决\DeclareMathOperator需在序言中的要求,use \operatorname

\newcommand{\Var}{\operatorname{Var}}

$\Var(X)$

\operatorname handles spacing better than \mathrm

要在HTML输出中正确使用\newcommand,您的LaTeX应该与单行$或双行$$内联。这也适用于\begin{align*}之类的环境。

---
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*}
$$

答案 2 :(得分:1)

当作为投影仪演示输出时,上述解决方案存在问题,尤其是在使用等式模式($$。$$而不是$。$)时。将新命令放在单独的文件中对我来说解决了这个问题。

---
title: Title
author: Author
date: "8/22/2018"
output:
  beamer_presentation:
    includes:
      in_header: preamble.tex
---

preamble.tex包含用户定义的命令

\newcommand{\var}{\mathrm{Var}}

然后,您可以同时使用内联($ \ var $)和等式模式($$ \ var $$)命令

您还可以将其他内容放在帧帧编号等的preamble.tex中。

答案 3 :(得分:0)

我正在使用bookdown,并且需要能够在pdf,html和docx输出中保持一致的东西。以上解决方案均不适用于我的情况。这是我解决的问题:

preamble.tex

\usepackage{amsthm}
\DeclareMathOperator*{\argmin}{argmin}
\newcommand{\var}{\mathrm{Var}}

YAML标头:

--- 
title: "A Minimal Book Example"
author: "Yihui Xie"
date: "`r Sys.Date()`"
site: bookdown::bookdown_site
output: 
  bookdown::pdf_book:
    includes:
      in_header: preamble.tex
    toc: no
  bookdown::word_document2:
    reference_docx: template.docx
  bookdown::gitbook:
    split_by: none
documentclass: article
bibliography: [book.bib, packages.bib]
biblio-style: apalike
link-citations: yes
---

<!--- For HTML Only --->
`r if (!knitr:::is_latex_output()) '
$\\DeclareMathOperator*{\\argmin}{argmin}$
$\\newcommand{\\var}{\\mathrm{Var}}$
'`

<!--- For DOCX Only --->
`r if (!knitr:::is_latex_output() & !knitr:::is_html_output()) '
\\DeclareMathOperator*{\\argmin}{argmin}
\\newcommand{\\var}{\\mathrm{Var}}
'`
# Prerequisites

This is a _sample_ book written in **Markdown**.