minted 与 listings:优点与缺点

minted 与 listings:优点与缺点

当我切换自mintedlistings,我想请教一下这个比较。

以下是我目前想到的:

最后,这两个包的优缺点是什么?

答案1

这实际上是对 samcarter 的回答的进一步评论。

minted使用外部库进行突出显示,listings 则在 TeX 中完成所有操作。几乎所有优点和缺点都归因于这一差异。

  • minted 的设置比较麻烦(你需要安装 pygments 和 python,并且 tex 才能找到它们)

  • minted 需要(在处理的某个阶段)-shell-escape允许访问 shell。请注意,最新版本不需要在文档的最终版本中进行 shell 访问,因此您可以向期刊等提交不需要-shell-escape但使用先前缓存运行中生成的文件的源。

  • pygmentize 解析库比列表中的简单关键字检测更加广泛和更具表现力,因此 minted 对特定语言的支持更加强大。

  • pygmentize 被许多其他系统使用,并以除 Tex 之外的其他格式(尤其是 HTML/CSS)生成输出。例如,它被 trac svn/wiki 系统使用,因此可以使用与其他系统相同的突出显示规则使用 minted 排版代码。

  • 由于 minted 中的大部分实际工作是在 pygmentize(python)中完成的,因此仅从 TeX 进行定制不太容易,但另一方面,如果您为特定语言定制了 pygments 词法分析器,它可以在 TeX 以外的环境中使用。

答案2

(免责声明:我是列表用户,所以我的观点可能有偏见)

据我所知,minted需要使用 来运行-shell-escape。这在以下几种情况下可能是一个缺点:

  • tex 系统设置为不允许-shell-escape- 因此minted根本无法使用。

  • 即使-shell-escape可能,由于安全问题也可能不适合使用。

  • 在我看来,它-shell-escape不应该默认使用,而应该只在需要它的文档中激活 - 这会给编译铸造文档带来额外的麻烦。


依赖外部工具也会降低文档的可移植性。如果您将其发送给朋友/同事/...,他们很可能无法编译该文档。除了过时的软件包版本外,listings文档应该是可移植的。


不确定如何解释以下情况:此网站上有 2,288 个问题listings,而其他网站有 467 个minted问题。这可能意味着

  • listings被更多人使用,这意味着你在遇到问题时可以找到更多资源,也有更多人能够帮助你

  • listings导致更多问题 - 因此提出更多问题

  • listings只是更加可定制或具有更多可能性,因此可能提出更多问题。

请自己判断这一点是优点还是缺点。


优点minted:维护者是用户 TeX.Stackexchange。

(我不是说这对来说不成立listings,我只是不知道)

相关内容