在 LaTeX 中插入代码块的详细指南【listings】
·
在 LaTeX 中插入代码块的详细指南
在撰写学术论文或技术文档时,经常需要展示代码片段。LaTeX 提供了丰富的工具来实现这一点,而其中 listings 宏包是一个强大且灵活的选项。本教程将详细介绍如何在 LaTeX 文档中插入高亮显示的代码块,并对代码块的格式进行自定义,以便更加清晰地展示代码内容。
1. 导入必要的宏包
在使用 listings 宏包之前,首先需要在 LaTeX 文档的导言区导入相关的宏包,并进行必要的配置。以下代码块展示了如何设置代码块的显示格式,包括代码行号、关键字高亮、注释颜色等。
% 导入代码块
\usepackage{listings}
\usepackage{xcolor}
% 自定义代码块样式
\lstset{
numbers=left, % 显示行号
numberstyle=\tiny, % 行号字体
keywordstyle=\color{blue!70}, % 关键字颜色
commentstyle=\color{red!50!green!50!blue!50}, % 注释颜色
frame=shadowbox, % 为代码块添加阴影框
rulesepcolor=\color{red!20!green!20!blue!20}, % 阴影框颜色
escapeinside=``, % 允许在代码块中使用 LaTeX 命令
xleftmargin=2em, xrightmargin=2em, aboveskip=1em, % 设置代码块的边距
framexleftmargin=2em % 阴影框左边距
}
在上述设置中:
numbers=left会在代码块左侧显示行号,这对于较长的代码段非常有用。keywordstyle和commentstyle用于定义关键字和注释的颜色,使代码更加醒目。frame=shadowbox为代码块添加阴影效果,使其从文本中凸显出来。- `escapeinside=`` 允许在代码块中插入 LaTeX 命令,如公式或特殊字符。
2. 在正文中插入代码块
配置完成后,可以在文档的正文中插入代码块。以下是一个使用 listings 宏包插入 Python 代码的示例。
\lstset{language=python} % 设置代码语言为 Python
\begin{lstlisting}
# Make training set predictions.
y_train_predictions = logistic_regression.predict(x_train)
y_test_predictions = logistic_regression.predict(x_test)
# Check what percentage of them are actually correct.
train_precision = np.sum(y_train_predictions == y_train) / y_train.shape[0] * 100
test_precision = np.sum(y_test_predictions == y_test) / y_test.shape[0] * 100
print('Training Precision: {:5.4f}%'.format(train_precision))
print('Test Precision: {:5.4f}%'.format(test_precision))
\end{lstlisting}
在这个示例中:
- 使用
\lstset{language=python}设置代码块的语言为 Python,以便listings自动识别并高亮关键字。 \begin{lstlisting}...\end{lstlisting}环境用于包裹代码块,listings将按照前面配置的样式对代码进行渲染。
3. 实现效果
生成的 LaTeX 文档将展示带有行号、关键字高亮、注释颜色的代码块,如下图所示:

4. 进一步自定义代码块
listings 宏包提供了广泛的自定义选项,可以根据需要进行更多设置,例如:
-
代码块的背景色:
\usepackage{listings} \usepackage{xcolor} \lstset{ backgroundcolor=\color{lightgray}, % 设置背景色 % 其他设置 } -
添加标题或标签:
\lstset{language=python} \begin{lstlisting}[caption={训练精度的计算}, label={lst:train-precision}] # 代码内容... \end{lstlisting}这样做可以为代码块添加标题,并在文档中引用该代码块。
-
调整字体大小:
\lstset{basicstyle=\small\ttfamily} % 使用小号等宽字体显示代码
5. 参考文献
- LaTeX Listings Package Documentation: 官方文档提供了
listings宏包的详细使用说明和示例。 - Overleaf Listings Package Example: Overleaf 中关于
listings宏包的使用指南,适合初学者参考。
总结
使用 listings 宏包插入代码块不仅可以提高文档的专业性,还能使代码展示更清晰易读。通过自定义样式和格式设置,您可以根据需求调整代码块的显示效果,从而更好地传达代码逻辑。希望本文能帮助您在 LaTeX 文档中更好地展示代码片段。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)