Oct*_*our 5 docx tex tikz pandoc
我主要用LaTeX写作,但是一些合著者更喜欢MS Word。为了方便他们的工作,我想将.tex
文件(或.pdf
)转换为.docx
。格式不一定是完美的,但是所有文本,等式,图形等都应完全可读。
我目前正在考虑将.tex
文档取下来,替换所有必要的内容,然后让Pandoc发挥作用。为此,我最好将添加的内容实现为Pandoc过滤器。例如,我的tikz
图片将被转换为png
使用tikz.py
Pandoc随附的滤镜。我用这种方法面临的问题是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}
Run Code Online (Sandbox Code Playgroud)
输出 pandoc -t native MWE.tex
[Para [Str "(0,0)",Space,Str "\8211",Space,Str "(2,2);"]]
Run Code Online (Sandbox Code Playgroud)
\draw
如您所见,该命令已完全消失。
我发现 pandoc 不会跳过封装在\\iffalse
...中的代码\\fi
中的代码,因此您可以重新定义 tikpicture 环境(或以您可能喜欢的任何其他方式):
\\documentclass{article}\n\\usepackage{tikz}\n\n\\iffalse\n \\renewenvironment{tikzpicture}%\n {\\par---start tikzpicture---\\\\}%\n {\\\\---end tikzpicture---\\par}\n \\renewcommand{\\node}{node:}\n\\fi\n\n\\begin{document}\n\n\\begin{tikzpicture}\n\\node {foo};\n\\end{tikzpicture}\n\n\\end{document}\n
Run Code Online (Sandbox Code Playgroud)\n对于 pandoc 2.5,这会生成一个 docx 文件,其中包含:
\n\xe2\x80\x94start tikzpicture\xe2\x80\x94\nnode:foo;\n\xe2\x80\x94end tikzpicture\xe2\x80\x94\n
Run Code Online (Sandbox Code Playgroud)\n这感觉非常错误,我希望我知道更好的方法。
\n 归档时间: |
|
查看次数: |
194 次 |
最近记录: |