This question already has answers here:
Slides with Columns in Pandoc

(6个答案)


4年前关闭。




我想使用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}的所有内容都视为原始 latex 源。这意味着:
  • html输出不包括该块的内容。
  • LaTeX阻塞了该块,因为markdown在传递给它之前没有被解释。

  • 有什么方法可以指示pandoc注入(inject)环境启动命令(\begin{multicols}{2}),但要在此时停止LaTeX raw块,而不是扫描以查找其结束点?也许是达到预期效果的更好解决方案?

    我用于转换的命令行是:
    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...
    

    关于Pandoc Markdown 中的LaTeX多列块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40982836/

    10-12 23:53