将markdown文件转换为latex文件时,pandoc会确保所有%字符保留为常规%
字符,方法是自动转义它们(\%
)。我的工作流程要求我将%TC:ignore
和%TC:endignore
标记传递给降价标记,以便我可以使用texcount
实用程序。有没有办法迫使%
作为普通的%
标志而不被逃脱
答案 0 :(得分:2)
我看到两个解决方法。
我解释了another answer中的第一个。如果它们在环境中,我们可以使用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 install pandocfilters
应该这样做)。
此解决方案的优点是可以保持输入文件的清洁。但是你需要在过滤器中添加你想要以这种方式转义的所有字符串,如果你有各种类型的注释,这可能很麻烦。