我想将以下*.md
转换为适当的LaTeX *.tex
。
Lorem *ipsum* something.
Does anyone know lorem by heart?
That would *sad* because there's always Google.
Pandoc的预期行为/产生的LaTeX
Lorem \emph{ipsum} something.
Does anyone know lorem by heart?
That would \emph{sad} because there's always Google.
Pandoc中观察到的行为/产生的LaTeX
Lorem \emph{ipsum} something. Does anyone know lorem by heart?
That would \emph{sad} because there's always Google.
为什么关心? 1.我正在将一个更大的git repo从markdown过渡到LaTeX,我想要一个干净的差异和历史。 2.我实际上喜欢我的LaTeX,每行一句,即使它与排版无关。
我怎样才能让潘多克做到这一点?
Ps。:我知道选项hard_line_breaks
,但这只会在两个第一行之间添加\\
,并且实际上不会保留我的换行符。
答案 0 :(得分:7)
自pandoc 1.16起,这是可能的:
pandoc --wrap=preserve
由于Pandoc将Markdown转换为类似AST的内部表示,因此您的非语义换行符将丢失。因此,如果没有一些自定义脚本(例如使用--no-wrap
,然后通过在有点后跟空格的地方插入换行符来处理输出),则无法实现所需的内容。
但是,您可以使用--columns NUMBER
选项指定每行的字符数。因此,每行不会有一个句子,而是每行有NUMBER个字符。
答案 1 :(得分:2)
我找到了解决此问题的另一种方法 - 即不更改原始*.md
(在版本控制下),但只是读取它们并拥有它们& #34; pandoced"在构建PDF时。
以下是:
项目根目录中的一些markdown.md
:
Happy one-sentence-per-line **markdown** stuff.
And another line – makes for clear git diffs!
项目根目录中的一些latexify.tex
:
\documentclass{article}
\begin{document}
\immediate\write18{pandoc markdown.md -t latex -o tmp.tex}
\input{tmp.tex}
\end{document}
如果你在乳胶项目中有一些降价组件,那么就可以使用,例如, github READMEs或某事。
不需要特殊包,但需要启用shell-escape
进行编译。
答案 2 :(得分:2)
更简单的解决方案是在" ...之后添加两个空格。"。这将添加手动换行符(Pandoc手册中提到了该方法)。