删除\ def枚举

时间:2018-11-29 20:57:14

标签: r r-markdown knitr pandoc

我正在尝试为使用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文档中编写乳胶代码,但这非常繁琐,我宁愿尽可能多地处理降价。)

2 个答案:

答案 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}

不理想,但是足够好!