我想使用 LaTeX 语法在 RMarkdown 中编写法语重音符号/特殊字符,但它不起作用。\'{a}
例如,无法编译,但实际上打印在 pdf 文档中。到目前为止,我在 RMD 文档中使用任意 LaTeX 代码没有遇到任何问题。我是否需要设置一些特殊的编译选项?我正在使用 RStudio 来编辑和编译文档。
最小示例:
---
header-includes:
- \usepackage[utf8]{inputenc}
- \usepackage[french]{babel}
- \usepackage[T1]{fontenc}
output:
pdf_document: default
html_document: default
---
r\^{o}les apr\`{e}s cong\'{e}
答案1
发生这种情况的原因是因为 Rmarkdown 传递给 LaTeX 时仅将未改变的内容识别为 LaTeX 代码:
\begin{whatever} ... whatever... \end{whatever}
或者
\whatever{whatever}
甚至
{\whatever whatever}
可以\whatever
是任何名称,甚至单个字母,但不能是符号。因此,字母为\H{o}
或 的 特殊字符\c{c}
会被识别为命令,但不会 识别\={o}
为 或\~{o}
。我猜这是因为将符号识别为命令名称可能会使识别算法复杂化或产生不良影响,o 只是一个意外的用例,因为:
- 这样写就比较难了。
- 这样读源代码就比较困难了。
无论如何,您始终可以在可识别的乳胶环境中包含这些特殊字符:
\newcommand\latexcode[1]{#1}
\latexcode{r\^{o}les apr\`{e}s cong\'{e}}
但更重要的是,即使特殊命令\^{o}
可以不加改变地传递给 LaTeX,在导出为 HTML 或 Word 时也必须完全忽略它,而 却ô
可以完美地导出为这三种格式。
因此,保持简单,并尽可能使用键盘来编写字符:
---
lang: fr
output:
html_document: default
pdf_document: default
---
rôle après congé