2

在 RMarkdown 中,我有一个要编成 pdf 的文档。该文档有我需要自动编号的方程式。我一直在使用$$ 1+1=2 \tag{1} $$约定来编写方程式,但现在想切换到\begin{equation} 1+1=2 \eq:this_eq \end{equation}约定,以便我可以自动编号并轻松交叉引用方程式。我发现的少数在线资源使这看起来应该相当简单。例如这里这里。然而,我在尝试这样做时遇到了无尽的心碎。

我正在使用带有 RStudio 的 3.4.3 版、tinytex 发行版,并且已经安装了 bookdown(我仍然不确定是否真的有必要在这里实现我的目标)。这是一个重复:

---
title: This title
author: "This guy"
date: "This date"
header-includes:
   - \usepackage{amsmath}
output:
  pdf_document:
    toc: yes
    toc_depth: '4'
    df_print: kable
    fig_caption: yes
    latex_engine: xelatex
mainfont: Calibri Light
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
```
## Introduction

blah blah...

\begin{equation}
S = X \bar{P}
(\#eq:signals)
\end{equation}

## Later on

blah blah \@ref(eq:signals)

当我尝试“编织到 PDF”时,我遇到了错误

! Package mathspec Error: `amsmath' must be loaded earlier than `mathspec'.

这已被报告为错误并在此处“修复” ,但我无法理解修复或遵循其说明。我要的是一组非常明确的步骤,这些步骤将使我能够顺利运行上面的 repex。

我尝试过的一些事情:

当我替换pdf_documentbookdown::pdf_document2. 或者当我删除

header-includes:
   - \usepackage{amsmath}

而是把

includes:
  in_header: preamble.tex

在行之后latex_engine: xelatex,其中“preamble.tex”是包含该行的记事本文件\usepackage{amsmath}

这篇其他 SO 帖子中的评论似乎表明,甚至没有必要在 YAML 选项中说任何关于 amsmath 的内容,这让我更加困惑。当我从 YAML 选项中删除对 amsmath 的任何提及时,我收到错误消息,指出无法识别 mathjax 脚本,例如:

! Package amsmath Error: \bar allowed only in math mode.
4

1 回答 1

0

当我尝试您的示例时,方程式未成功标记。

然后我将输出设置替换为bookdown::pdf_book. 有用。

---
title: This title
author: "This guy"
date: "This date"
output:
  bookdown::pdf_book
mainfont: Calibri Light
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
```

## Introduction

blah blah...

\begin{equation}
  S = X \bar{P}
  (\#eq:signals)
\end{equation}

## Later on

blah blah \@ref(eq:signals)
于 2020-11-30T06:52:17.247 回答