minted宏包的功能与listings宏包类似,用于更好的显示源代码。minted使用时略微比listings宏包麻烦一些,下面列出相关事宜。
操作系统:Ubuntu 18.04 LaTeX工具:TeXstudio 2.12.6 编译方式:LuaLaTeX python 2.7.17 pygments 2.5.2
1、安装pygments库
minted依托于pygments库,因此必须安装。
sudo -H pip install pygments
如果使用的操作系统是Ubuntu 20.04,会稍有不同。Ubuntu 20.04默认安装的是python3,可以使用以下命令来安装pygments库。
sudo apt install python3-pip
...
sudo -H pip3 install pygments
第一个命令是先安装python3的pip;第二个是使用pip3命令安装pygments库,安装时我这里经常会碰到安装不成功的问题,是网络造成的,多试几次总会成功的。
对于18.04与20.04的Ubuntu,下面的使用方法都一样。
2、修改编译参数
在TeXstudio内,点击Options->Configure TeXstudio->Commands,原来的LuaLaTeX编译命令为:
lualatex -synctex=1 -interaction=nonstopmode %.tex
添加参数-shell-escape,修改为:
lualatex -shell-escape -synctex=1 -interaction=nonstopmode %.tex
3、调用minted宏包
在minted宏包调用命令中加入cache=false参数:
\usepackage[cache=false]{minted}
下面是一个简单的示例:
% 开源中国,陆巍
\documentclass{article}%
%
\usepackage{ctex}% 中文支持
\usepackage{geometry}% 用于页面设置
\usepackage[english]{babel}% 载入美式英语断字模板
\usepackage[dvipsnames, svgnames, x11names]{xcolor}% 颜色支持
\usepackage[cache=false]{minted}
% ------------------ 开始 -------------------
%
\begin{document}
\section{minted宏包示例}
\begin{minted}[linenos=true, frame=single, breaklines=true]{cmake}
# Copyright (c) 2018, NVIDIA CORPORATION. All rights reserved.
# Full license terms provided in LICENSE.md file.
# Build with:
# Debug: cmake -DCMAKE_BUILD_TYPE=Debug ..
cmake_minimum_required(VERSION 3.5)
set(default_build_type "Release")
if (NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release")
endif()
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
set(TARGET_SUFFIX "_debug")
message("Using ${TARGET_SUFFIX} suffix.")
endif()
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/../bin")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/../bin")
add_subdirectory(lib)
add_subdirectory(sample_app)
add_subdirectory(tests)
\end{minted}
\end{document}
效果如下:
说明:
1、在\begin{minted}[linenos=true, frame=single]{cmake}语句中,linenos用于设置行号,frame用于设置边框。
2、minted更多说明请查阅相关帮助文档。在我的另一篇日记LaTeX——部分宏包帮助文档百度网盘下载中有文档的下载地址。
3、minted目前支持三百多种语言(远超listings宏包),具体的语言名称可用命令查看:pygmentize -L lexers