编辑降价时如何强制将 % 评论标签作为乳胶文件中的评论传递

How to force passing of % comment tags as comments in a latex file when editing markdown

将 markdown 文件转换为 latex 文件时,pandoc 通过自动转义 (\%) 确保所有 % 字符保持为常规 % 字符。我的工作流程要求我将 %TC:ignore%TC:endignore 标签传递给降价,以便我可以使用 texcount 实用程序。有没有办法强制通过 % 作为普通的旧 % 标志而不被转义

我看到了两个解决方法。

我在 中解释了第一个。如果它在环境中,我们可以使用 pandoc 传递原始乳胶的能力。我们定义了一个什么都不做的新环境,并在那里传递评论。它很丑陋,但它有效:

---
header-includes:
   - \newenvironment{dummy}{}{}
---
\begin{dummy}
%TC:ignore
\end{dummy}

第二个是编写一个过滤器,将一些字符串转换为 latex 类型的 RawInline 而不是实际的字符串。

#!/usr/bin/env python
from pandocfilters import toJSONFilter, RawInline

def comments(k, v, f, meta):
    if k == 'Str' and v in ['%TC:ignore','%TC:endignore']:
        return RawInline('latex', v)

if __name__ == "__main__":
    toJSONFilter(comments)

将其保存为 comments.py,并将 运行 保存为 pandoc myfile.md -o myfile.tex --filter comments.py。您需要 python 安装和库 pandocfilterspip install pandocfilters 应该可以)。

这个解决方案的优点是它保持输入文件干净。但是你需要在过滤器中添加所有你想转义的字符串,如果你有各种类型的注释,这会很麻烦。