LaTeX中Python代码的语法高亮

本文介绍了如何在LaTeX中使用{listings}和{minted}包进行Python代码的语法高亮。{listings}包简单易用,而{minted}包利用Python的Pygments库提供更丰富的高亮效果。通过{tcolorbox}包可以定制代码框,并结合{xparse}进行参数控制。文中还给出了在Jupyter Notebook样式下插入代码的方法。
摘要由CSDN通过智能技术生成

LaTeX中Python代码的语法高亮

本文中,“{}”中的字母为LaTeX或Python的包名,只有“Pygments”是Python的包,其他都是LaTeX的包。

LaTeX提供了功能丰富的包(package),以实现某些特定的排版功能。其中,{listings}包和{minted}包主要用于文档中程序代码语法的高亮显示,支持常见的编程语言。

  • {listings}基于内置或用户提供的关键字高亮程序代码语法,高亮的内容受限于关键词的数量,代码的着色功能也是有限。
  • {minted}使用Pymgent高亮程序代码,提供了更多的高亮内容,基本类似在Jupyter Notebook或Jupyter Qtconsole中的代码高亮。

使用{listings}包

{listings}的使用简洁明了:

  • 在导言区加载包,并设置包选项。
  • 在文档区使用\begin{lstlisting}\end{lstlisting}包围代码。
  • 编译文档,PDF文件中,代码高亮显示。

可以根据自己的需要,通过\lstset设置列表参数,或定义自己的列表新环境。如果没有特殊的需求,使用{listings}已经足够。如下使用{listings}高亮Python代码。

例 1

% !TeX program = xelatex
\documentclass{ctexart}

\usepackage{xcolor}  	%高亮使用的颜色
\definecolor{commentcolor}{RGB}{85,139,78}
\definecolor{stringcolor}{RGB}{206,145,108}
\definecolor{keywordcolor}{RGB}{34,34,250}
\definecolor{backcolor}{RGB}{220,220,220}

\usepackage{accsupp}	
\newcommand{\emptyaccsupp}[1]{\BeginAccSupp{ActualText={}}#1\EndAccSupp{}}

\usepackage{listings}
\lstset{						%高亮代码设置
	language=python, 					%Python语法高亮
	linewidth=0.9\linewidth,      		%列表list宽度
	%basicstyle=\ttfamily,				%tt无法显示空格
	commentstyle=\color{commentcolor},	%注释颜色
	keywordstyle=\color{keywordcolor},	%关键词颜色
	stringstyle=\color{stringcolor},	%字符串颜色
	%showspaces=true,					%显示空格
	numbers=left,						%行数显示在左侧
	numberstyle=\tiny\emptyaccsupp,		%行数数字格式
	numbersep=5pt,						%数字间隔
	frame=single,						%加框
	framerule=0pt,						%不划线
	escapeinside=@@,					%逃逸标志
	emptylines=1,						%
	xleftmargin=3em,					%list左边距
	backgroundcolor=\color{backcolor},	%列表背景色
	tabsize=4,							%制表符长度为4个字符
	gobble=4							%忽略每行代码前4个字符
	}

\begin{document}
这是Python语法高亮

\begin{lstlisting}
	def prtmotto(n):
	    for i in range(0,n):
	        print("lift is short,
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值