Pandoc 降价中的 LaTeX 多列块

LaTeX multicolumn block in Pandoc markdown

我想使用 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 在块上阻塞,因为降价在传递给它之前没有被解释。

有什么方法可以指示 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

你可以使用讨论的技巧here

基本上,Pandoc 被编码为识别 \begin 和 \end,因此在 header 中定义 \Begin 和 \End 并使用它们。

例如:

---
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...