我想在 LaTeX 文件中添加 Markdown

我想在 LaTeX 文件中添加 Markdown

我有一个 LaTeX 文件,foo.tex还有一堆降价同一目录中的文件{1..N}.markdown。基本上,我希望能够\include{1.markdown}并且拥有Markdown 渲染为 LaTeX并包含在内foo.tex。我该怎么做?

我能想到的最接近的答案是潘多克它让我可以在命令行中定义模板和变量。这显然可以工作,但很麻烦且烦人。有没有更好的解决方案?

答案1

对于 ConTeXt,我编写了一个模块,t-filter它提供了一个不错的用户界面,用于在文件上运行外部程序。使用该模块,您可以编写:

\usemodule[filter]

\defineexternalfilter
    [markdown]
    [filter={pandoc -t context -o \externalfilteroutputfile}]

之后你可以使用

 \processmarkdownfile{....}

将 markdown 文件转换为上下文,并将结果输入回 tex。 (该\defineexternalfilter命令还创建一个环境\startmarkdown ... \stopmarkdown。该模块将此环境的内容写入外部文件,通过处理文件pandoc,并输入结果。)

这本质上是对 的美化包装\write18。对于一次性任务,您可以使用:

\newcommand\processmarkdownfile[1]
    {\immediate\write18{pandoc -t latex -o #1.tex #1}%
     \input{#1.tex}}

然后使用\processmarkdownfile{...}在 LaTeX 中包含 markdown 文件。您需要启用write18此功能才能工作。最简单的方法是传递-shell-escapepdflatex

pdflatex -shell-escape <filename>

t-filter模块还提供其他功能(使用子目录存储临时文件,如果文件未更改则不重新运行过滤器等)。如果您愿意,也可以在 LaTeX 中轻松为它们添加界面。

答案2

有一个markdown 解析器用 lua 编写,可以输出 LaTeX、ConTeXt 和其他格式。编写一个小包装器来使用它解析 luatex 中的 markdown 文件应该不难(ConTeXt 已经包含一个基于它的解析器)。

答案3

这个帖子现在已经很老了,但万一将来有人来这里寻找解决方案现在有一个专用的 LaTeX markdown 包

这似乎正是最初问题所需要的。

答案4

包裹wikinicetext允许排版此类文件。但是,我无法告诉您它是否完全支持 Markdown。有几种不同的类似格式。

请注意,的文档nicetext不完整,这会使事情变得更容易。

相关内容