You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LaTeX lstlisting环境如何设置列表标题与目录项标题不同?

解决方法:分离代码块正文标题与目录标题

这问题我之前写LaTeX文档时也碰到过,其实listings包本身就支持把代码块的正文显示标题和List of Listings里的标题分开设置,给你两种实用的实现方式:

方法一:用带方括号的caption参数

直接在lstlisting的选项里,给caption设置「[目录标题]正文标题」的格式,就能实现两者的分离:

% 先确保加载了listings包
\usepackage{listings}

\begin{lstlisting}[caption={[bar]foo}]
test
\end{lstlisting}

这样设置后,代码块上方会显示标题foo,而在List of Listings(代码列表目录)里,对应的条目就会显示bar。方括号里的内容专门给目录用,大括号里的是正文里展示的标题,非常直观。

方法二:单独设置listentry参数

如果需要更清晰地拆分配置,可以用listentry参数单独指定目录里的标题,同时保留caption设置正文标题:

\begin{lstlisting}[caption={foo}, listentry={bar}]
test
\end{lstlisting}

这种方法和第一种效果完全一致,适合那种正文标题很长、需要在目录里简化显示的场景,逻辑上更清晰。

额外提示:全局默认配置

如果你的文档里有很多代码块,想统一设置目录标题的默认格式,可以用\lstset全局配置:

\lstset{
    captionpos=t, % 标题放在代码块上方
    listentry={代码示例} % 所有未单独设置的代码块,在目录里默认显示这个标题
}

之后单个lstlisting可以通过覆盖listentry参数来设置自定义的目录标题,非常灵活。

内容的提问来源于stack exchange,提问作者crappidy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:30:04