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
【Latex】texstudio使用和ACL论文模板初步解读
LaTeX是一类用于编辑和排版的软件,用于生成PDF文档。 LaTeX编辑和排版的核心思想在于,通过\section和\paragraph等语句,规定了每一句话在文章中所从属的层次,从而极大方便了对各个层次批量处理。 LaTeX在使用体验方
2807 0
【Latex】texstudio使用和ACL论文模板初步解读
|
7月前
|
监控 安全 Linux
使用 Ansible 自动化部署 Snort3 入侵检测系统:从零到生产环境(RedHat)
本文介绍如何使用Ansible自动化部署Snort3入侵检测系统,涵盖从环境准备、分层架构设计到生产级配置的完整流程。通过基础设施即代码实现一键部署、配置验证与规则管理,提升部署效率与一致性,助力企业快速构建可靠的网络安全防线。(238字)
413 11
/usr/bin/cmake: /usr/local/lib/libcurl.so.4: no version information available
/usr/bin/cmake: /usr/local/lib/libcurl.so.4: no version information available
|
存储 缓存 文件存储
uv安装python及其依赖的加速方法
国内在使用uv的时候,可能会涉及到装python的速度太慢的问题,为了解决这个问题,可以使用`UV_PYTHON_INSTALL_MIRROR`这个环境变量。除此以外,对于多人协作场景,`UV_CACHE_DIR`也是一个有用的环境变量。本文会介绍这两个变量。
8451 10
|
8月前
|
机器学习/深度学习 搜索推荐 算法
NumPy广播:12个技巧替代循环,让数组计算快40倍
摆脱Python数据处理中的低效for循环!掌握NumPy广播机制,实现向量化计算,让代码更简洁、运行更快。从数据标准化到距离矩阵、独热编码,12个实战案例教你用形状思维替代循环思维,显著降低CPU负载,提升程序性能。
342 12
NumPy广播:12个技巧替代循环,让数组计算快40倍
|
并行计算 openCL Ubuntu
Nvidia GeForce GTX 1650不支持OpenGL4.6
本文讨论了Nvidia GeForce GTX 1650显卡不支持OpenGL 4.6的问题。尽管更新了显卡驱动到最新的NVIDIA 512.15版本,并通过nvidia-smi命令确认了CUDA版本,但在检查OpenGL版本时发现它只支持到4.4。文章还提供了参考链接,包括NVIDIA Developer网站上的OpenGL驱动支持信息和其他用户在不同操作系统上更新OpenGL版本的经验。
1618 0
Nvidia GeForce GTX 1650不支持OpenGL4.6
|
传感器 NoSQL 算法
ROS Moveit 配置全网最详细教程
本文是关于ROS Moveit配置的全网最详细教程,提供了一键安装脚本,以及如何使用Moveit进行机器人运动规划的详细步骤和说明。文中还深入解析了Moveit的配置包文件、Moveit的源码,以及如何使用不同的运动规划算法(如CHOMP、LERP、STOMP)进行路径规划。
3495 1
ROS Moveit 配置全网最详细教程
|
网络协议
HTTP协议中的“X-Real-IP”头字段的作用是什么?底层原理是什么?
HTTP协议中的“X-Real-IP”头字段的作用是什么?底层原理是什么?
10704 93
|
SQL 机器学习/深度学习 分布式计算
|
机器学习/深度学习 人工智能 自然语言处理
2024年5月大语言模型论文推荐:模型优化、缩放到推理、基准测试和增强性能
本文汇总了2024年5月发布的七篇重要大语言模型论文,涉及模型优化、缩放、推理及性能增强。
1541 2