将格式化文本(包括源代码)输出为LaTeX、PDF和HTML格式。

7
我正在编辑许多包含代码列表的latex文档,并将其输出为pdf。由于我正在团队中处理这些文档,因此我经常需要手动整合组员对latex源文件所做的更改。大部分组员不了解latex,因此我希望有一种方法使他们能够以类似markdown的样式进行文档格式化。由于latex文档包含图形,具有引用并使用lslisting包,我想知道是否可能将这些特定区域映射到简单的markdown风格语法。工作流程示例:
- 在Markdown(或类似)中编辑文件 - 标记各个部分、代码区域、图形和引用等 - 转换为LaTeX - 自动转换标记 - 输出pdf和html
是否有可能实现这样的工作流程?也许已经有适用于我的特定工作流程的解决方案?
4个回答

2
这里有一个Docutils的例子。
Title
=====

Section
-------

.. _code:

Code area::

  #include <iostream>
  int main() {
    std::cout << "Hello World!" << std::endl;
  }

.. figure:: image.png

   Caption for figure

A reference to the code_


Another section
---------------

- Itemize
- lists

#. Enumerated
#. lists

+-----+-----+
|Table|Table|
+-----+-----+
|Table|Table|
+-----+-----+

将其保存为example.rst。然后你可以编译成HTML:

rst2html example.rst example.html

或者转换为LaTeX格式:
rst2latex example.rst example.tex

然后编译生成的LaTeX文档:

pdflatex example.tex
pdflatex example.tex  # twice to get the reference right

一个更全面的从多个来源生成文档的框架是Sphinx,它基于Docutils并专注于技术文档。


1

谢谢。这看起来很有趣。 不过我有点不确定该如何真正着手开始。 您是否曾经在类似的情况下使用过DocBook?您能否推荐使用那种方法吗? - jottr
@element:它与DocBook无关。 Docutils使用reStructuredText,它类似于Markdown但更强大。 - Philipp

1
你应该看一下pandoc(至少如果我正确理解了你的问题)。它可以在多种格式(tex,pdf,word,reStructuredText)之间进行转换,并且还支持扩展版本的markdown语法来处理更复杂的问题(例如在html中插入标题信息)。
使用它,你可以混合markdown和LaTeX,然后编译为html,tex和pdf。你也可以从外部文件中包含bibtex引用。
一些示例(从markdown到latex和html):
pandoc -f markdown -t latex infile.txt -o outfile.tex
pandoc -f markdown -t html infile.txt -o outfile.html

要添加自己的LaTex模板,将Markdown转换为PDF,并添加参考文献:

 pandoc input.text --template=FILE --bibliography refs.bib -o outfile.pdf

这真的是一个非常灵活和棒的程序,我自己也在大量使用它。


0
如果您是Emacs用户,您可能会喜欢org-mode的标记。它对表格有非常好的支持,与其他Emacs模式(如电子表格)协调良好,并且可以将图像很好地导出到HTML。请参阅精美手册的HTML导出部分org-mode文件可在Emacs之外进行编辑,供不使用Emacs的团队成员使用,尽管其他Emacs模式的预览和嵌入只能在Emacs中完成。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接