如何在 LaTeX 中呈现终端输出

如何在 LaTeX 中呈现终端输出

有没有一个包允许我直接在 LaTeX 中渲染基于 (n)curses 的输出(VT100、ANSI ...)(如果可能的话包括颜色)?我目前正在制作屏幕截图并通过 graphicx 包含 PNG。我只是想知道是否有可能实现更高的质量。

答案1

Jan 的解决方案是最直接的,但就我的经验而言,编写电传打字机代码的解析器确实很麻烦。我想知道重新发明这样一个棘手的轮子是否有意义,而不是使用一些外部程序来进行解析。

相反,我建议使用外部 curses 到 HTML 转换器,并使用现有的 HTML 到 Latex 解释器/翻译器之一来生成文档的代码。

我不能说哪些工具适合这项工作,但也许我的一些想法值得写出来:

  1. David Mertz 撰写了一系列有关使用 Python 进行 curses 编程的文章,其中#6:Python 中的 Curses 编程:给初学者的提示介绍curses_txt2html.py— 请注意,代码依赖于该系列中的其他代码;
  2. 寻找从 HTML 到 Latex 的正确转换器变得更加困难,因为 (i) 转换器太多,并且 (ii) 大多数转换器关心逻辑结构,而不是准确地表示彩色的、预格式化的等宽文本。
  3. Texinfo 人员了解 curses,因为例如,pinfoTexinfo 阅读器基于 ncurses,而 Texinfo 是一种与 Latex 非常相似的 Tex 格式,并且很容易转换为 Latex。我不知道他们是否做过类似的事情,但如果他们做过,他们很可能做得很好。

答案2

我不知道包。您必须让 TeX 解释 ANSI 序列。通过将 catcode 13 分配给 ESC 字符,应该可以做到这一点。不过,弄清楚参数有多长可能有点棘手,因为在转义序列中,最后一个字符决定了它是什么类型的序列,因此决定了参数有多长。

答案3

您可以使用该listings包,并将终端输出到文本文件(在大多数操作系统上,这是通过>> output.txt在命令末尾添加来实现的)。

答案4

这将是非常有用的,上周我在网上搜索了一些可以做到这一点的东西,但没有成功。我认为最好的方法是(最终)修改http://pypi.python.org/pypi/ansi2html/这样它也可以支持 LaTeX 输出,类似于 Pygments 语法高亮系统,它创建通用的内部表示,然后支持多种输出格式,如 HTML、LaTeX、RTF 等。

相关内容