LaTeX:用 minted 插入代码

简介: LaTeX 使用 minted 需要先安装 `pygments`,这是一个 Python 的库

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 个空格
目录
相关文章
|
19天前
|
Python
十行python代码实现文件去重,去除重复文件的脚本
十行python代码实现文件去重,去除重复文件的脚本
22 1
通过python-docx给word文档中的指定位置添加表格
1.读取一个已有的word文档。docx格式。 2.在该word文档中,通过一个给定的文字。找到该位置。在该位置的下方添加一个表格。例如在图中“BUG情况表”的下方插入一个表格
2427 1
通过python-docx给word文档中的指定位置添加表格
|
6月前
|
Dart Shell pouch
markdown中快速插入Emoji表情包语法速查表!!!
markdown中快速插入Emoji表情包语法速查表!!!
|
7月前
|
Python
python操作Excel插入n行后粘贴复制数据
python操作Excel插入n行后粘贴复制数据
|
9月前
|
Python
Python3,区区10行代码,批量把图片插入Excel指定单元格中,省下时间去烫头发。
Python3,区区10行代码,批量把图片插入Excel指定单元格中,省下时间去烫头发。
88 0
|
12月前
|
自然语言处理 Python
【Python办公自动化】python实现将图片插入到word中指定位置并将word转换为图片
【Python办公自动化】python实现将图片插入到word中指定位置并将word转换为图片
212 0
|
前端开发
emmet语法快速生成结构
①父子级关系用> ②兄弟级关系用+ ③生成带类 or id名字的 直接(.demo or #two )+tab ④类名带有顺序自增符号$ ⑤在生成的标签内部写内容用{}表示
90 0
emmet语法快速生成结构
ADI
[记录] MarkDown用法
[记录] MarkDown用法
ADI
62 0
|
IDE 开发工具
在微软Word中插入代码并保持代码样式
版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396722 打开word文档,插入,对象,新建,OpenDocument文本,这里等待粘入代码。
5079 0
|
Web App开发 数据安全/隐私保护 iOS开发
Markdown 入门 :文章目录生成、合并单元格、文章快速插入链接(使用剪切板的链接插到选中文字)【修订】
Markdown 入门 :文章目录生成、合并单元格、文章快速插入链接(使用剪切板的链接插到选中文字)【修订】
334 0
Markdown 入门 :文章目录生成、合并单元格、文章快速插入链接(使用剪切板的链接插到选中文字)【修订】