在Pandoc Markdown中保留换行符 - > LaTeX Conversion

max*_*eld 12 pandoc

我想将以下*.md转换成适当的LaTeX *.tex.

Lorem *ipsum* something.
Does anyone know lorem by heart?

That would *sad* because there's always Google.
Run Code Online (Sandbox Code Playgroud)

来自Pandoc的预期行为/产生的LaTeX

Lorem \emph{ipsum} something.
Does anyone know lorem by heart?

That would \emph{sad} because there's always Google.
Run Code Online (Sandbox Code Playgroud)

Pandoc中观察到的行为/产生的LaTeX

Lorem \emph{ipsum} something. Does anyone know lorem by heart?

That would \emph{sad} because there's always Google.
Run Code Online (Sandbox Code Playgroud)

我为什么在意?1.我正在将一个更大的git repo从markdown过渡到LaTeX,我想要一个干净的差异和历史.2.我实际上喜欢我的LaTeX,每行一句,即使它与排版无关.

我怎样才能让潘多克做到这一点?

Ps.:我知道这个选项hard_line_breaks,但只\\在两个第一行之间添加,并且实际上并没有保留我的换行符.

mb2*_*b21 7

更新

从pandoc 1.16开始,这是可能的:

pandoc --wrap=preserve
Run Code Online (Sandbox Code Playgroud)

老答案

由于Pandoc将Markdown转换为类似AST的内部表示,因此您的非语义换行符将丢失.因此,如果没有一些自定义脚本(例如--no-wrap,通过在有点后跟空格的地方插入换行符来处理输出然后处理输出),就不可能找到你想要的东西.

但是,您可以使用--columns NUMBER选项指定每行上的字符数.因此,每行不会有句子,而是每行有NUMBER个字符.

  • 出于某种原因,这对我不起作用。有任何想法吗? (2认同)

小智 6

一个更简单的解决方案是在“...something.”之后添加两个空格。这将添加手动换行符(Pandoc 手册中提到了该方法)。