Pandoc markdown中的LaTeX多列块

时间:2016-12-05 20:33:45

标签: latex markdown pandoc

我想使用pandoc将markdown文件转换为html和pdf。 对于用于打印的pdf文件,我想以两列格式呈现(窄)文本块。这就是我提出的(并且不起作用):

---
papersize: a4
documentclass: article
header-includes:
    - \usepackage{multicol}
...

H1
==============

H2 - A
--------------

\begin{multicols}{2}

### H3 - a
Blah blah blah...

### H3 - b
Blah blah blah...

### H3 - c
Blah blah blah...

\end{multicols}

H2 - B
--------------
Blah blah blah...

这可以通过pandoc实现吗?问题在于,pandoc似乎将\begin{multicols}{2}\end{multicols}的所有内容视为原始乳胶来源。这意味着:

  1. html输出不包含块的内容。
  2. LaTeX会阻塞块,因为markal在传递给它之前不会被解释。
  3. 有没有办法指示pandoc注入环境启动命令(\begin{multicols}{2})但是在那时停止LaTeX原始块而不是扫描找到它的结束?或者可能是达到预期效果的更好解决方案?

    我用于转换的命令行是:

    pandoc --standalone --normalize -f markdown-hard_line_breaks -t html5 --self-contained -o out.pdfl in.md
    pandoc --standalone --normalize -f markdown-hard_line_breaks -t latex -o out.pdf in.md
    

1 个答案:

答案 0 :(得分:17)

您可以使用所讨论的技巧here

基本上,Pandoc被编码为识别\ begin和\ end,所以在头文件中定义\ Begin和\ End并使用它们。

E.g:

---
papersize: a4
documentclass: article
header-includes:
    - \usepackage{multicol}
    - \newcommand{\hideFromPandoc}[1]{#1}
    - \hideFromPandoc{
        \let\Begin\begin
        \let\End\end
      }
...

H1
==============

H2 - A
--------------

\Begin{multicols}{2}

### H3 - a
Blah blah blah...

### H3 - b
Blah blah blah...

### H3 - c
Blah blah blah...

\End{multicols}

H2 - B
--------------
Blah blah blah...