使用pandoc启用shell转义

时间:2016-03-23 20:54:04

标签: latex graphviz pandoc

我正在尝试在pandoc markdown文档中使用latex graphvis包。但是,似乎需要将-shell-escape标志传递给latex。如何在pandoc上启用-shell-escape

\digraph[scale=0.5]{MyGraph}{
Business -- Job;
Job -- Task;
Job -- User;
Job -- PayRate;
Task -- WorkSession;
User -- WorkSession;
PayRate -- WorkSession;
}

http://mark.aufflick.com/blog/2007/03/25/embedding-graphviz-in-latex-documents

2 个答案:

答案 0 :(得分:3)

pandoc 现在可以通过--latex-engine-opt标志将参数直接传递给LaTeX引擎。例如,为了将-shell-escape标记传递给xelatex,您可以执行以下操作:

pandoc myfile.md -s -o myfile.pdf --latex-engine=xelatex --latex-engine-opt=-shell-escape

答案 1 :(得分:2)

你可以告诉pandoc生成LaTeX,然后在输出上做任何你想做的事。

pandoc -o mydocument.tex mydocument.md
pdflatex -shell-escape mydocument.tex

Pandoc有一个--latex-engine选项告诉它以不同的方式运行LaTeX,但这只能是一个名为pdflatexlualatexxelatex的程序的路径。如果由于某种原因您希望能够通过直接调用pandoc从Markdown生成PDF,则可以使用包装器脚本。

pandoc --latex-engine=/path/to/pdflatex -o mydocument.pdf mydocument.md

其中/path/to/pdflatex是可执行的并且包含(假设类Unix系统)

#!/bin/sh
exec pdflatex -shell-escape "$@"