Pandoc markdown中的LaTeX多列块

m00*_*000 9 markdown latex 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...
Run Code Online (Sandbox Code Playgroud)

这可以通过pandoc实现吗?问题是,pandoc似乎从对待一切\begin{multicols}{2},以\end{multicols}作为原料乳胶源.这意味着:

  1. html输出不包含块的内容.
  2. LaTeX会阻塞块,因为markdown在传递给它之前不会被解释.

有没有办法指示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
Run Code Online (Sandbox Code Playgroud)

Ser*_*eia 17

你可以使用这里讨论的技巧

基本上,Pandoc被编码为识别\ begin和\ end,因此在头文件中定义\ 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...
Run Code Online (Sandbox Code Playgroud)

  • 很酷.谢谢!一个细节是你需要在\ Begin\End之后留一个空行. (2认同)
  • 问题可能是重复的,但解决方案比原来提出的要好得多:) (2认同)