是否有一种好的高级语言或 tex 环境可以同时支持 HTML 和 PDF 渲染?我希望能够编写 tex 文档,并在此文档的基础上创建符合 mathjax 标准的 HMTL 和格式良好的 PDF。这种方法还需要处理诸如生成多个 HTML 文档但创建一个包含相同内容的 PDF 之类的问题。有没有好的方法可以做到这一点?
答案1
答案2
我非常同意 NN 的评论。你可以用 markdown 编写然后导出为 LaTeX(然后导出为 PDF)以及 HTML、DocBook 和许多其他格式潘多克。这是一个非常棒的系统。对于更花哨的网站,还有叶斯特,同样来自 Pandoc 的作者 John MacFarlane。它允许您将数据结构化YAML
,然后将其提取到字符串模板然后您可以像以前一样将其转换为 LaTeX/PDF/HTML/DocBook。
答案3
我从同一来源生成多种格式(pdf 幻灯片、pdf 笔记、html 文本);内容也因格式而异。输入没有数学运算。
一开始我尝试了 pandoc,如果你的文本结构很少或没有结构,那么它就很棒。Pandoc 可以生成格式良好的 HTML 和格式良好的 LaTeX/ConTeXt 输出。它还支持无数其他输出格式,因此你可以免费获得 epub、docbook 等。pandoc 的唯一缺点是 markdown 是一种非常有限的输入格式。Markdown 标签是样式标签(**...**
意味着大胆的),而不是结构标签(**...**
表示重要)。但更严格的是,它只提供了三种类型的内联标签和三到四种类型的块级标签。我希望我的文本中有更多结构化的标签。
接下来我尝试使用 ConTeXt。我可以在输入中使用我想要的所有结构标签,并且很容易生成同一文档的多个版本。ConTeXt 还提供了 XML/XHTML 导出。我使用 CSS 直接显示 xml。在 TeX->PDF 路径上一切都运行正常,但我对 XHTML 输出并不完全满意。部分原因是我尝试使用 CSS 直接显示输出,因此受到 CSS 允许内容的限制。事后看来,我认为使用 XSLT 将(ConTeXt 生成的)XML 转换为 HTML 会更好。
我没有太多使用 XSLT 的经验,但经过一段时间的尝试后,我认为与其尝试将 ConTeXt 生成的 XML 转换为 HTML,不如从手写 XML 开始并将其转换为 HTML。我仔细思考了一下,发现 tex 输入(至少是 ConTeXt 输入)和 XML 输入之间没有太大区别。在 ConTeXt 中,所有命令都有一个\start..
...版本,与 XML 中的...\stop...
相同。因此,<...>
</...>
\startsection[title={....}]
....
\stopsection
变成
<section title="..."> ... </section>
等等。内联命令也是如此。所以,明年,我计划从手写 XML 输入开始,使用 XSLT(或其他 XML->HTML 工具)将其转换为 HTML,然后使用 ConTeXt 将其直接处理为 PDF。这种方法的主要优点是,我的输入结构几乎与我的 tex 输入完全相同,而且我几乎不用费什么力气就能得到良好的 PDF 输出。HTML 输出需要一点工作(对我来说),因为我不熟悉 XML->HTML 工具链,但我相信那里会有很好的工具。
总结Pandoc:输出效果很好,输入功能有限。ConTeXt:输入标记效果很好,pdf 输出效果很好,您需要使用 XSLT 来调整 XML 输出。XML:输入标记灵活,使用 ConTeXt(或 LaTeX)直接生成 PDF,使用 XSLT(或其他工具)生成 HTML。
答案4
还有AsciiDoc,可以转换成多种不同的文件格式。不过我从未使用过 pandoc,所以我不知道该使用哪一个。