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. 更简便的方式 —— 定义全局命令

如果想要简便的使用可以使用全局定义:格式为行内代码 \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 个空格
目录
相关文章
|
算法 Linux
linux命令之xz
linux命令之xz
541 1
ubuntu22.04安装QQ音乐
ubuntu22.04 下安装QQMusic
1233 0
|
Shell
Ubuntu20.04安装anaconda并默认激活conda base环境(步骤详细/操作简单实用)
Ubuntu20.04安装anaconda并默认激活conda base环境方法
20120 0
|
Linux 数据安全/隐私保护 Windows
更换(Pypi)pip源到国内镜像
pip国内的一些镜像 阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.
247122 2
|
10月前
|
人工智能 自然语言处理 搜索推荐
Open Notebook:开源 AI 笔记工具,支持多种文件格式,自动转播客和生成总结,集成搜索引擎等功能
Open Notebook 是一款开源的 AI 笔记工具,支持多格式笔记管理,并能自动将笔记转换为博客或播客,适用于学术研究、教育、企业知识管理等多个场景。
592 0
Open Notebook:开源 AI 笔记工具,支持多种文件格式,自动转播客和生成总结,集成搜索引擎等功能
|
11月前
|
供应链 算法 区块链
深入浅出区块链技术:从原理到应用
【10月更文挑战第21天】 本文旨在为读者提供一个关于区块链技术的全面概述,包括其工作原理、关键技术特点以及在现实世界中的应用案例。通过本文,您将能够理解区块链如何在不依赖中心化机构的情况下确保数据的安全性和不可篡改性,并探讨这项技术如何被应用于金融、供应链管理等多个领域,以提高效率和透明度。
710 1
|
SQL XML 缓存
认识 ORM 框架 Hibernate,为什么 2022 年了还在谈论它?
前言 Hibernate 作为一种全自动 ORM 框架,在几年前常与 Spring、Struts2 一起使用,并称 SSH,作为主流的企业级应用框架。伴随着 MyBatis 的诞生,以及 Hibernate 本身的一些缺陷,如今 Hibernate 已经慢慢淡出了大家的视野。
1191 0
认识 ORM 框架 Hibernate,为什么 2022 年了还在谈论它?
|
弹性计算 算法 Java
一文说清linux system load averages
深入浅出阐释linux system load averages的语义,算法和计算流程,并分享了实际load飙高问题的排查经验和心得。
一文说清linux system load averages
|
芯片 数据格式
【51单片机】实现一个动静态数码管显示项目(超全详解&代码&图示)(5)
【51单片机】实现一个动静态数码管显示项目(超全详解&代码&图示)(5)