Markdown 如何在编辑标记时强制在latex文件中将%comment标记作为注释传递

Markdown 如何在编辑标记时强制在latex文件中将%comment标记作为注释传递,markdown,knitr,r-markdown,pandoc,Markdown,Knitr,R Markdown,Pandoc,将标记文件转换为latex文件时,pandoc通过自动转义所有%字符(\%),确保所有%字符保持为常规字符。我的工作流要求我将%TC:ignore和%TC:endignore标记传递到标记,以便我可以使用texcount实用程序。有没有办法强迫%作为普通的%标志通过而不被转义我看到两种解决方法 我解释了第一个问题。如果在环境中,我们可以利用pandoc的能力传递未加工的乳胶。我们定义了一个不做任何事情的新环境,并在那里传递注释。这很难看,但它能起作用: --- header-includes:

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

我看到两种解决方法

我解释了第一个问题。如果在环境中,我们可以利用pandoc的能力传递未加工的乳胶。我们定义了一个不做任何事情的新环境,并在那里传递注释。这很难看,但它能起作用:

---
header-includes:
   - \newenvironment{dummy}{}{}
---
\begin{dummy}
%TC:ignore
\end{dummy}
第二种方法是编写一个过滤器,将一些字符串转换为
RawInline
,类型为
latex
,而不是实际的字符串

#!/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安装和库
pandocfilters
pip安装pandocfilters
应该可以)

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