Preserve Line Breaks in Pandoc Markdown -> LaTeX Conversion

后端 未结 3 1027
一向
一向 2021-01-01 16:34

I want to convert the following *.md converted into proper LaTeX *.tex.

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

         


        
相关标签:
3条回答
  • 2021-01-01 16:46

    Update

    Since pandoc 1.16, this is possible:

    pandoc --wrap=preserve
    

    Old answer

    Since Pandoc converts the Markdown to an AST-like internal representation, your non-semantic linebreaks are lost. So what you're looking for is not possible without some custom scripting (like using --no-wrap and then processing the output by inserting a line-break wherever there is a dot followed by a space).

    However, you can use the --columns NUMBER options to specify the number of characters on each line. So you won't have a sentence per line, but NUMBER of characters per line.

    0 讨论(0)
  • 2021-01-01 16:54

    I figured out another way to address this problem – which is to not change the original *.mds (under version control), but to simply read them in and to have them "pandoced" when building the PDF.

    Here's how:

    Some markdown.md in project root:

    Happy one-sentence-per-line **markdown** stuff.
    And another line – makes for clear git diffs!
    

    And some latexify.tex in project root:

    \documentclass{article}
    \begin{document}
    
    \immediate\write18{pandoc markdown.md -t latex -o tmp.tex}
    \input{tmp.tex}
    
    \end{document}
    

    Works just dandy if you have some markdown components in a latex project, e.g. github READMEs or sth.

    Requires no special package, but compilation with shell-escape enabled.

    0 讨论(0)
  • 2021-01-01 16:59

    A much simpler solution would be to add two spaces after "...something.". This will add a manual line break (the method is mentioned in the Pandoc Manual).

    0 讨论(0)
提交回复
热议问题