vscode配置latex的代码高亮(minted)

1. 绪言

  • 最近写毕业论文,使用的是latex,自己都是因为写毕业论文才用它的,仅限于照葫芦画瓢。
  • 有时,想实现某种格式,发现费劲得很,自己都怀疑是不是应该回去用word。
listings包不好用
  • 今天想为某个概念的说明添加代码,网上大部分都是推荐使用listings包。
  • 自己参考了博客:LaTex:插入代码的listings包和lstlisting环境
  • 最后发现,效果很一般。虽然它支持很多语言,但并没有自动实现代码高亮,字体大小、代码块边框、行号、关键字颜色什么的都要自己去设置。
  • 最烦的是,我的英文引号明明打的好好的,咋编译出来就不对了
\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}

vscode配置latex的代码高亮(minted)_第1张图片

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
2. 使用minted
  • 最后自己以latex code highlighting查到了minted包,发现这次不错啊,可以自动实现语法高亮,但就是配置过程太曲折了。
\begin{minted}{c++}
int main() {
    printf("hello, world");
    return 0;
}
\end{minted}

vscode配置latex的代码高亮(minted)_第2张图片

  • 下定决心了,就用它了!!!
① 代码准备
  • 使用minted包,还是需要额外引用:
\usepackage{minted}
  • 插入的代码如上所示,编译报错:
You must invoke LaTeX with the -shell-escape flag
② 添加-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.
③ 安装Pygments
  • py开头的,一看就知道跟python有关。
  • 因此,首先需要安装python,我的win10之前就已经安装过python3.7了。
  • python的安装方法请自己百度,网上应该很多的,而且在windows上安装python完全就是next、next,最后系统环境别人都可以自动配好。
  • 以管理员身份运行命令提示符,输入以下命令安装Pygments
pip install Pygments
  • Pygments安装好后,可以使用以下命令,查看支持的语言:
pygmentize -L lexers
  • 更多操作都可以参考博客:minted使用
  • 官方文档:The minted package: Highlighted source code in LATEX
④ 解决常见错误
  • 如果编译以后出现以下错误,可以考虑以下原因:
  1. 自己的latex语法不对:比如,\begin{minted}\end{mineted}的参数不一致。
  2. 自己以前的缓存影响了此次编译:先把插入代码的语法注释掉,重新编译正确后,再加入插入代码的语法。
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 *
****************************************

你可能感兴趣的:(论文)