1. 配置 minted

LaTeX 使用 minted 需要先安装 pygments,这是一个 Python 的库,在 Ubuntu 上可以通过下列命令安装,

sudo apt-get install python-pygments

在 Windows 上则可以通过 pip 安装

pip install pygments

安装完毕后在命令行上输入

pygmentize -V

Pygments version 2.7.3, (c) 2006-2020 by Georg Brandl.

如果输出了版本信息则代表安装成功。

安装完毕后,需要在编译器上添加参数 -shell-escape

在使用 XeLaTeX + minted 的时候,有可能会将 tab 编译成 ^^I 的情况,可以在编译选项上加上 -8bit 参数,如图

1.1. VSCode 上

在 VSCode 上需要在 setting.json 上设置,首先 Ctrl + , 打开 Settings,然后搜索 latex,找到 Edit in settings.json,打开之后给编辑器加上参数,如下

        {
   
          "name": "xelatex",
          "command": "xelatex",
          "args": [
          "-shell-escape", 
          ...
            ]
        }, 
        

1.2. TeXstudio 上

1.2.1. Windows 系统

在 TeXstudio 上 Options -> Configure TeXstudio... -> Commands 上添加


在 Build 里面,可以将默认编译器设置为 XeLaTeX,这个对于中文的排版比较好

然后右下角展示高级设置(Show Advanced Options),设置编译路径


这个路径是看自己的 Python 安装的路径的,自行把自己的路径放进去,你的一定和我的不一样。

1.2.2. macOS 上

注意:在 macOS 上要用 minted 记得文件名称不要包含 空格, ' 等符号,否则会报错,要用空格可以用 _ 代替。

command + , 打开配置,在 Commands 上为自己的常用编译方式添加 -shell-escape 参数(我用的是 XeLaTeX)

然后在 Build 上设置默认编译器(Default Compiler):

然后左下角展开高级设置(Show Advanced Options),添加 Python 和 Pygmentize 的路径:

如果不知道怎么看自己的路径,可以打开终端(Terminal),输入 which pythonwhich pygmentize 查看

: 前面的就是 Python 和 Pygmentize 的路径,都放在 bin 里,后面的是 LaTeX 的路径,多个路径用 : 分隔开。

2. minted 的使用

使用之前导入包 \usepackage{minted},还能够设置代码的高亮格式:

\usepackage{minted} 
\usemintedstyle{xcode}

minted 支持的代码高亮格式可以使用 pygmentize -L styles 进行查看

2.1. 基本方式

    \begin{minted}{python}
    import numpy as np


    print("Hello World!")
    \end{minted}

还有一种是行内的代码,

% \mintinline{language}{your code}
\mintinline{python}{import numpy as np}
    \begin{minted}[mathescape,
        linenos,
        numbersep=5pt,
        gobble=2,
        frame=lines,
        framesep=2mm]{python}
    import numpy as np


    print("Hello World!")
    \end{minted}

2.2. 更简便的方式 —— 定义全局命令

更多的用法可以参考:minted 使用 | bleedingfight 的技术博客

如果想要简便的使用可以使用全局定义:格式为行内代码 \newmintinline{language}{options},段落代码 \newminted{language}{options},甚至可以直接导入代码文件

\newmintinline{python}{breaklines,breakanywhere,python3}
%用法:\pythoninline{code}

\newminted{python}{breakanywhere,breaklines,python3,linenos}
%用法:\begin{pythoncode}\end{pythoncode}

\newmintedfile{python}{breakanywhere,breaklines,python3,linenos}
%用法:\pythonfile{file.py}

其中选项(options)有许多选择:

  • breaklines:在 minted 环境中自动折断比较长的行
  • python3:为 python 指定 Python3 高亮
  • firstline:设置代码的第一行的数字。如果设置为 4,则代码行号从 4 开始算起
  • showtabs(bool):显示 tab
  • linenos:在代码前设置数字表示代码的第几行(显示行号)
  • mathescape:用来在代码段中插入公式
  • tabsize=4:设置 Tab 的宽度为 4 个空格