用于LaTeX Python代码展现的minted包的安装及运行该包时TeXworks编译命令的设置

1 介绍

早有利于 LaTeX \LaTeX LATEX排版Python代码的需求,前年我用过pythonhighlight1包,感觉字体、高亮色彩、代码行号显示等方面做的不符合我口味。昨天晚上,思前想去,还是要找一个Python代码展现质量更高的 LaTeX \LaTeX LATEX包。我坚信一定有,至少要和书籍《Web Scraping with Python: Collecting more data from the Modern Web》2中一样的代码展现质量。经过网上查询、阅读相关资料,发现minted包比较合适。因为listings包虽然可高度定制,但在代码的渲染、高亮对象方面范围窄,pythonhighlight已被我用过,不符合我口味。

tex stackexchange网站的相关帖子上,介绍minted安装方法为:先在Python下安装Pygments,然后在 LaTeX \LaTeX LATEX下安装包minted,最后利用 LaTeX \LaTeX LATEX编译命令、并加上参数-shell-escape即可。这是大的方面的描述,给人感觉过程复杂,很可能吓走了一大半读者。另外,安装就绪后,虽然在命令行下能运行成功,但是我们通常在一个IDE下用 LaTeX \LaTeX LATEX写作,例如TeXworks,那么如何在IDE中配置编译命令,并将参数-shell-escape加上去便成了一个问题。关于该问题,国外的几个与 LaTeX \LaTeX LATEX相关的问答网站,都没有给出如何在Windows操作系统下配置TeXworks的编译命令的方法。国内的相关帖子很少,介绍简单,关于Windows下配置TeXworks编译命令,更是无人介绍。

本博文就是要回答上述问题,给出在Windows系统下、Pyhon3下安装 LaTeX \LaTeX LATEX包minted的详细过程,并给出配置TeXworks编译命令的方法。

2 安装包minted的方法

环境为:

内容项版本
操作系统Win7
Python3.8.0
  L a T e X \ LaTeX  LaTeXTeXLive 2017

minted官方安装教程中介绍的安装方法针对的是Pytong 2.7.x版本,实际上对于Python3.X同样适用。下面的安装步骤借鉴了官方教程,另外我给出了详细的安装过程截图。整个安装过程分为以下几个步骤:

  1. 在Python中安装Pygments3,console下使用如下安装指令:
    安装Pygments
  2. 官方网站下载minted的源码。关于怎样在 LaTeX \LaTeX LATEX中安装一个包,请大家参看专门的文档。这里,我使用的是最简单的方法,将文件minted.sty放置在 LaTeX \LaTeX LATEX主文件的当前路径下即可。如下图:
    将minted.sty放置在同目录下
  3. 运行 LaTeX \LaTeX LATEX的编译命令,如下:
    针对minted的运行命令
    可是问题来了,我们不能只在cmd下运行xelatex编译命令吧,需要在IDE中运行编译指令,那么怎么配置IDE的编译指令呢?下面小节以 LaTeX \LaTeX LATEX的一款IDE TeXworks为例给出详述。

3 在Windows下配置TeXworks的针对minted包的编译指令

在Windows系统下,我们通常都结合着IDE进行 LaTeX \LaTeX LATEX写作,对 LaTeX \LaTeX LATEX代码的编译是通过鼠标点击按钮完成的。这不像在cmd下那么方便,需要什么参数手工敲上即可。幸而,在TeXworks中我们是可以设置针对minted包的编译指令的。

设置TeXworks中针对minted包的编译指令,费了我一番功夫。我找遍了国内外的相关问答网站,都没有该问题的解决方案。我有认真阅读了TeXworks-manual-en.pdf,也无所获。该用户手册虽然讲解了TeXworks方方面面的用法,但是如何配置编译命令则没有涉及。上面的探索的功夫没有白费,为我独立解决该问题奠定了基础。中间经历的努力、探索、焦虑、深思在此不讲了,直接给方法。如下步骤:

  1. 在TeXworks编辑器界面上点击edit-->preferences...出现如下界面:
    Edit preferences
  2. 在上述界面上processing tools面板中选中XeLaTeX命令,然后点击按钮Edit,在出现的对话框上,添加Arguments --shell-escape,并将该参数调整到最上段,最终如下图:
    在这里插入图片描述
    注意:上述第2步骤,坑比较多。虽然在命令行下参数为-shell-escape,但在TeXworks中则必须为--shell-escape。同时,该参数必须调整顺序到最上端,否则会报错,提示需要加参数-shell-escape

4 minted包的运行示例

至此,我们的写作环境已配置完毕,下面给出示例。在 LaTeX \LaTeX LATEX中的代码如下书写:

%在导言区(preamble)书写
\usepackage{minted}

%在document中书写
这是一个完整的命令:
\begin{minted}{python}
def boring(args = None):
    pass
\end{minted}

这是上述完整命令的快捷书写方式:
\mint{python}|import this|

这是一个行内的书写X\mintinline{python}{print(x**2)}X

带行号的:
\begin{minted}[linenos]{python}
    def f(x):
        return x**2
\end{minted}

编译的输出结果为:
latex输出结果
结果看起来很好。大家可以看出,最后一个Python代码展现,有4种不同的着色,字体也柔美,与书籍《Web Scraping with Python》也一致。我想这是Word类编辑工具所无法达到的编辑效果。

关于如何使用minted包,内容比较多,建议大家阅读其官方帮助文档。在此,我仅希望起到抛转引玉的效果。


  1. pythonhighlight – Highlighting of Python code ↩︎

  2. Ryan Mitchell. Web Scraping with Python: Collecting more data from the Modern Web. 2ed, O’Reilly, 2018. ↩︎

  3. Pygments is a syntax highlighting package written in Python ↩︎

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页