我正在尝试为使用knitr提交的文章生成非常干净的乳胶代码。准则之一是不定义新命令。但是,现在默认情况下,一个简单的降价列表会使用它。
这个最小的.Rmd
---
title: "Untitled"
output:
pdf_document:
keep_tex: yes
---
1. First
1. Second
产生此.tex输出
\begin{document}
\maketitle
\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\item
First
\item
Second
\end{enumerate}
\end{document}
是否有一种方法不放置\def\labelenumi{\arabic{enumi}.
行?
(我知道我可以直接在Rmd文档中编写乳胶代码,但这非常繁琐,我宁愿尽可能多地处理降价。)
答案 0 :(得分:1)
Pandoc没有内置的删除方式。可以说这应该不成问题,因为上面的\def
仅设置一个现有变量的值,而不是定义一个新命令。但是期刊可能会不同意。
摆脱这种情况的最简单方法是手动对输出进行后处理。也就是说,使用sed
之类的工具或您喜欢的编辑器的搜索和替换功能。
sed -i -e '/^\\def.*/d' your-article.latex
一种自动化但复杂的方法是通过pandoc filter进行列表渲染。但是,这似乎比在这种情况下值得的麻烦更多。
答案 1 :(得分:1)
我找到了一种方法来解决此问题,方法是使用#.
而不是1.
。我不确定为什么,但是
#. First
#. Second
产生所需的输出
\begin{enumerate}
\item
First
\item
Second
\end{enumerate}
不理想,但是足够好!