我的每个列表都有标题。每个标题前面都有“列表 # [文本]”,其中 # 是列表的编号。每个标题都位于列表的中央。我如何修改这些标题的选项?以下是视觉效果:
- 我想截断标题以仅包含 [text]
- 我想将标题的位置从中心移向左侧
答案1
如果列表有
title
,它将被用来代替caption
,但没有“列表编号”行。不幸的是,居中标题被硬编码到列表中,因此您需要更改代码。这里有一个解决方案:我刚刚定义了包
\@makecaption
,删除了第二个\hfil
并添加了\bfseries
(请注意,\lst@maketitle
使用\@makecaption
和删除了第一部分。如果您想让标题居中但标题左对齐,您需要修补\lst@maketitle
而不是\@maketitle
)。
结果如下:
\documentclass{article}
\usepackage{listings}
\makeatletter
\long\def\@makecaption#1#2{%
\vskip\abovecaptionskip
\bfseries #1: #2\par
\vskip\belowcaptionskip}%
\makeatother
\begin{document}
\begin{lstlisting}[title={Some listing}]
a=b
\end{lstlisting}
\end{document}