\lstlistoflistings не имеет достаточно места между цифрами и заголовком

\lstlistoflistings не имеет достаточно места между цифрами и заголовком

Я использую команду \lstlistoflistings из пакета listings для генерации списка примеров кода. К сожалению, между номером и заголовком листинга кода недостаточно места. Посмотрите на изображение примера, в последней строке должно быть 13.10.1. Как мне настроить ширину столбца?

Пример

решение1

Добавьте это в преамбулу:

\makeatletter
\def\l@lstlisting#1#2{\@dottedtocline{1}{1.5em}{3em}{#1}{#2}}
\makeatother

Вместо 3emтретьего аргумента используйте длину, которая лучше всего соответствует вашим потребностям (в исходном определении значение равно 2.3em).

Полный пример:

Макет по умолчанию:

\documentclass{book}
\usepackage{listings}

\begin{document}

\lstlistoflistings
\setcounter{chapter}{13}
\chapter{Test}
\setcounter{lstlisting}{13}
\begin{lstlisting}[caption=A]
A
\end{lstlisting}

\end{document}

введите описание изображения здесь

А теперь с увеличением расстояния:

\documentclass{book}
\usepackage{listings}

\makeatletter
\def\l@lstlisting#1#2{\@dottedtocline{1}{1.5em}{3em}{#1}{#2}}
\makeatother

\begin{document}

\lstlistoflistings
\setcounter{chapter}{13}
\chapter{Test}
\setcounter{lstlisting}{13}
\begin{lstlisting}[caption=A]
A
\end{lstlisting}

\end{document}

введите описание изображения здесь

Возможно, для поддержания согласованности в других списках вы также могли бы подумать о переопределении \l@figure, \l@table,... при необходимости (или об использовании специального пакета для изменения расстояния между меткой и заголовками).

Связанный контент