{\raggedle-6ren">
gpt4 book ai didi

r - 在 header-includes 中停止 knitr "sanitizing"个字符

转载 作者:行者123 更新时间:2023-12-04 15:31:03 24 4
gpt4 key购买 nike

我正在创建一个文档,其中某些表的某些列受益于 this强制右对齐换行文本条目的解决方案。

为了实现该解决方案,我在序言中包含以下内容:

\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1\linewidth}}

使用 knitr 实现这一点, 我试过:
---
output:
pdf_document:
keep_tex: yes
header-includes:
- \usepackage{array}
- \newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1\linewidth}}
---

但这失败并出现错误:

! LaTeX Error: Missing \begin{document}.

...

l.83 \newcolumntype{R}{[}1

pandoc: Error producing PDF

Error: pandoc document conversion failed with error 43



检查 .tex 输出,很明显出了什么问题:
\usepackage{array}
\newcolumntype{R}{[}1{]}\{\textgreater{}\{\raggedleft\arraybackslash\}p\{\#1\linewidth\}\}
knitr已转换 >\textgreater{} , {\{ , }'\} , [{[} , ]{]} , 和 #\# .我当然不想要这些自动转换。

This问题解决了同样的问题,但在那种情况下,有一个解决方法可以解决这个问题(在 YAML 中引用)——引用和转义 \产生相同的输出,引用而不转义 \产生“无法识别的控制序列”错误。

我怎样才能得到 knitr不要操纵我的输入?

最佳答案

您可以(并且应该)使用 includes选项(见 documentation)。一个额外的好处是您的 LaTeX 代码将只应用于 LaTeX 输出。如果您使用 header-includes在 YAML 元数据中,它将应用于所有可能的输出格式,例如即使您将 Rmd 编​​译为 HTML。

顺便说一句,针织 不会清理 YAML 中的任何字符。潘多克可以。

关于r - 在 header-includes 中停止 knitr "sanitizing"个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43038338/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com