答案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-escape
给pdflatex
:
pdflatex -shell-escape <filename>
该t-filter
模块还提供其他功能(使用子目录存储临时文件,如果文件未更改则不重新运行过滤器等)。如果您愿意,也可以在 LaTeX 中轻松为它们添加界面。
答案2
有一个markdown 解析器用 lua 编写,可以输出 LaTeX、ConTeXt 和其他格式。编写一个小包装器来使用它解析 luatex 中的 markdown 文件应该不难(ConTeXt 已经包含一个基于它的解析器)。
答案3
这个帖子现在已经很老了,但万一将来有人来这里寻找解决方案现在有一个专用的 LaTeX markdown 包。
这似乎正是最初问题所需要的。
答案4
包裹wiki
nicetext
允许排版此类文件。但是,我无法告诉您它是否完全支持 Markdown。有几种不同的类似格式。
请注意,的文档nicetext
不完整,这会使事情变得更容易。