【LaTeX小技巧02】在论文中插入代码块

📂 日博365规模好大 ⏳ 2025-11-30 17:26:34 👽 admin 👁️ 1922 💾 915
【LaTeX小技巧02】在论文中插入代码块

使用到的包有 minted、caption 和 currfile。定义的辅助命令如下:

\usepackage{minted}

\usepackage{currfile}

\usepackage{caption}

\newenvironment{code}{\captionsetup{type=listing}}{}

\makeatletter

\renewcommand*{\thelisting}{\thesection.\arabic{listing}}

\@addtoreset{listing}{section}

\makeatother

\newcommand{\inputcode}[3]{

\begin{code}

\inputminted[mathescape,

linenos,

breaklines,

numbersep=5pt,

gobble=0,

tabsize=4,

fontsize=\footnotesize,

frame=lines,

framesep=2mm]{#1}{#2}%

\caption{#3}

\end{code}%

}

说明

代码的长度可能超过一页,所以不能用 float。在这一情况下,为了能够添加题注,引入 caption 包,并定义了 code 环境用于包裹代码。

更新了 \thelisting 命令,这里的效果是代码块的编号计数在每一节都自动重置。

定义了 \inputcode 命令,其中使用了自定义的 code 环境。命令有三个参数,第一个为语言名称(需要根据 minted 文档来填写),第二个为代码文件的文件名,第三个为题注。

\inputminted 中的配置选项可以根据文档自行调整。

在文件中的使用方式为:

\edef\CurrentFileDir{\currfiledir}

\inputcode{C}{\CurrentFileDir/abc.c}{用于计算 ABC 的代码}

这里使用 currfile 包解决相对路径问题,这样就可以在别的 .tex 文件中直接 \input 引入这里的内容,而代码文件的路径是相对于当前编写的这一个 .tex 文件的。这样只要保证这个文件和源代码文件的相对位置不变,任意移动也不会有影响。

实际效果如下图所示(实际的代码在文件 abc.c 中,而不在 .tex 文件中):

相关数据包

怀化市辰溪县企事业单位引进高层次及急需紧缺人才29人公告(第七批)
神奇动物在哪里跟哈利·波特有什么关系?

神奇动物在哪里跟哈利·波特有什么关系?

📅 10-02 🔗 365bet足球比分直播
电信无线猫怎么设置WiFi?详细配置步骤

电信无线猫怎么设置WiFi?详细配置步骤

📅 08-22 🔗 365bet足球比分直播
tcl空调遥控器说明书图解大全(详细介绍tcl空调遥控器的使用方法)
← 《怪物猎人崛起》金光矿石如何获得?金光矿石获取方法介绍 什么是流动性池?一文读懂defi生态 →