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 python
和which 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. 更简便的方式 —— 定义全局命令
如果想要简便的使用可以使用全局定义:格式为行内代码 \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 个空格