1. 绪言
- 最近写毕业论文,使用的是latex,自己都是因为写毕业论文才用它的,仅限于照葫芦画瓢。
- 有时,想实现某种格式,发现费劲得很,自己都怀疑是不是应该回去用word。
2. 关于listings
包
2.1 listings
包不好用
-
今天想为某个概念的说明添加代码,网上大部分都是推荐使用
listings
包。 -
最后发现,效果很一般。虽然它支持很多语言,但并没有自动实现代码高亮,字体大小、代码块边框、行号、关键字颜色什么的都要自己去设置。
-
最烦的是,我的英文引号明明打的好好的,咋编译出来就不对了😂
\begin{lstlisting}[language = python] import numpy as np import matplotlib.pyplot as plt X = np.linspace(-6, 6, 200) Y = 1 / (1 + np.exp(-X)) plt.figure() print("hello") \end{lstlisting}
2.2 listings
包相关知识
-
listings
包支持的语言、它允许的设置等都可以参考网页:LaTeX/Source Code Listings。 -
自定义颜色需要引入
color
包,使用小数定义和整数定义颜色,他们的代码不一样:\definecolor{dkgreen}{rgb}{0,0.6,0} \definecolor{gray}{RGB}{244,244,244}
-
定义字号(可能是自己太挫了,只找到了这种笨办法):
basicstyle=\fontsize{10.5pt}{10.5pt}\selectfont
3. 使用minted
包
-
最后自己以
latex code highlighting
查到了minted
包,发现这次不错啊,可以自动实现语法高亮,但就是配置过程太曲折了。\begin{minted}{c++} int main() { printf("hello, world"); return 0; } \end{minted}
- 下定决心了,就用它了!!!
3.1 代码准备
-
使用
minted
包,还是需要额外引用:\usepackage{minted}
-
插入的代码如上所示,编译报错:
You must invoke LaTeX with the -shell-escape flag
3.2 添加-shell-escape
编译参数
-
通过查阅资料,自己尝试在
settings.json
中的添加这个编译参数。// Latex workshop "latex-workshop.latex.tools": [ { "name": "latexmk", "command": "latexmk", "args": [ "-shell-escape",//添加参数 ... ] }, { "name": "xelatex", "command": "xelatex", "args": [ "-shell-escape", //添加参数 ... ] }, { "name": "pdflatex", "command": "pdflatex", "args": [ "-shell-escape",//添加参数 ... ] },
-
再次编译,仍然报错:
You must have `pygmentize' installed to use this package.
3.3 安装Pygments
-
py开头的,一看就知道跟python有关。
-
因此,首先需要安装python,我的win10之前就已经安装过python3.7了。
-
python的安装方法请自己百度,网上应该很多的,而且在windows上安装python完全就是next、next,最后系统环境别人都可以自动配好。
-
以管理员身份运行命令提示符,输入以下命令安装
Pygments
:pip install Pygments
-
Pygments
安装好后,可以使用以下命令,查看支持的语言:pygmentize -L lexers
-
更多操作都可以参考博客:minted使用
3.4 解决常见错误
- 如果编译以后出现以下错误,可以考虑以下原因:
-
自己的latex语法不对:比如,
\begin{minted}
和\end{mineted}
的参数不一致。 -
自己以前的缓存影响了此次编译:先把插入代码的语法注释掉,重新编译正确后,再加入插入代码的语法。
Package tocbibind Note: Using chapter style headings, unless overridden. ) (d:/texlive/2019/texmf-dist/tex/latex/everypage/everypage.sty) (d:/texlive/2019/texmf-dist/tex/latex/tocloft/tocloft.sty) (d:/texlive/2019/texmf-dist/tex/latex/subfigure/subfigure.sty **************************************** * Local config file subfigure.cfg used * ****************************************
-