Pandoc降价中的条件部分

时间:2015-08-25 21:38:03

标签: pandoc

我希望我的文档的某些部分仅适用于给定的输出格式。例如,我有一个需要特殊LaTeX处理的图像,我想使用\ includegraphics。但是对于epub版本,我想要标准行为。

在Pandoc markdown中是否有一种方法可以指定一个只应在给定上下文中处理的部分(LaTex vs epub)。模板有条件。我没有看到Pandoc降价功能。

还是有其他方法来处理这个用例吗?

2 个答案:

答案 0 :(得分:3)

有几种可能性:

答案 1 :(得分:3)

以下是文件预处理器filepp的解决方案。我们根据标志定义一个由< ... >img(caption,path,options)替换的函数![caption](path)。注意两件事:你需要在函数参数中转义逗号(参见第一个图的第三个参数);你需要有两个未转义的逗号,即使没有指定一个参数(参见下面的第二个例子)。

test.md

\includegraphics

我们在filepp命令中指定输出格式并通过pandoc:

进行管道传输
#bigfunc img(caption,path,options)
#if "out_fmt" eq "tex"
\begin{figure}
   \caption{\label{caption} caption}
   \includegraphics[options]{path}
\end{figure}
#else
![caption](path)
#endif
#endbigfunc

Here is an image

img(Plot,Rplot.png,height=2\,width=2)
img(Plot,Rplot.png,)

tex输出:

filepp -m bigfunc.pm -D out_fmt=tex test.md | pandoc -o test.tex
filepp -m bigfunc.pm -D out_fmt=html test.md | pandoc -o test.html

html输出:

Here is an image

\begin{figure}
   \Plot{\label{Plot} Plot}
   \includegraphics[height=2,width=2]{Rplot.png}
\end{figure}

\begin{figure}
   \Plot{\label{Plot} Plot}
   \includegraphics[]{Rplot.png}
\end{figure}