pandoc跳过latex环境

2023-12-09

我主要用 LaTeX 写作,但一些合著者更喜欢 MS Word。为了方便他们的工作,我想将.tex文件(或.pdf) to a .docx。格式不需要完美,但所有文本、方程、图形等都应该完全可读。

我目前正在考虑采取.tex文档,替换所有必要的内容,然后让 Pandoc 发挥它的魔力。为此,我最好将我的添加实现为 Pandoc 过滤器。例如,我的tikz图片将被转换为png使用tikz.pyPandoc 提供的过滤器。我使用这种方法面临的问题是 Pandoc 试图解释tikz转换后的环境tex进入其内部语言,过滤器将这种内部语言作为输入。结果是tikz代码丢失。有没有办法告诉 Pandoc 留下任何tikzpicture单独环境?

编辑: 请参阅下面的 MWE:

MWE.tex 内容:

\documentclass{article}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
    \draw (0,0) -- (2,2);
\end{tikzpicture}
\end{document}

输出pandoc -t native MWE.tex

[Para [Str "(0,0)",Space,Str "\8211",Space,Str "(2,2);"]]

The \draw如您所见,命令已完全消失。


我发现 pandoc 不会跳过封装在\iffalse ... \fi,因此您可以重新定义 tikpicture 环境(或以您可能喜欢的任何其他方式):

\documentclass{article}
\usepackage{tikz}

\iffalse
    \renewenvironment{tikzpicture}%
        {\par---start tikzpicture---\\}%
        {\\---end tikzpicture---\par}
    \renewcommand{\node}{node:}
\fi

\begin{document}

\begin{tikzpicture}
\node {foo};
\end{tikzpicture}

\end{document}

对于 pandoc 2.5,这会生成一个 docx 文件,其中包含:

—start tikzpicture—
node:foo;
—end tikzpicture—

这感觉非常错误,我希望我知道更好的方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pandoc跳过latex环境 的相关文章

随机推荐