
Я заметил неожиданное поведение класса scrbook (xelatex) и списка листингов из listings
пакета. Расстояние между заголовками глав LOF и списка листингов и первыми записями каждого списка не одинаково. Пакет листингов создает гораздо больший зазор даже без настройки внешнего вида заголовков глав, как в MWE. Есть ли у кого-нибудь идеи, в чем может быть проблема и как ее исправить? Спасибо!
МВЭ:
\documentclass[
10pt,
oneside,
listof=totoc,
bibliography=totoc,
]{scrbook}
\usepackage{calc}
\usepackage{graphicx}
\usepackage{listings}
\setkomafont{chapter}{\Large\bfseries\MakeUppercase}
\renewcommand*{\chapterheadstartvskip}{\vspace*{-\topskip+2pt}}
\begin{document}
\listoffigures
\listoftables
\lstlistoflistings
\chapter{A Chapter}
\begin{figure}
\centering\includegraphics[width=0.5\linewidth]{example-image}
\caption{First figure}
\end{figure}
\begin{table}
\caption{First table}
\centering
\begin{tabular}[width=0.5\linewidth]{ccc}
Cell 1 & Cell 2 & Cell 3
\end{tabular}
\end{table}
\begin{lstlisting}[caption={First listing}]
Some code
\end{lstlisting}
\end{document}
решение1
В лог-файле вашего кода есть два предупреждения:
Класс scrbook Предупреждение:
\float@listhead
обнаружено! Реализация\float@listhead
стала устаревшей в KOMA-Script v3.01 2008/11/14 и была заменена несколькими более гибкими функциями пакетаtocbasic
. Возможно, реализация\float@listhead
будет вскоре удалена из KOMA-Script. Загрузка пакетаscrhack
может помочь избежать этого предупреждения, если вы используете пакет, который все еще реализует устаревший\float@listhead
интерфейс в строке ввода 18.
и
Класс scrbook Предупреждение:
\float@addtolists
обнаружено! Реализация\float@addtolist
стала устаревшей в KOMA-Script v3.01 2008/11/14 и была заменена несколькими более гибкими функциями пакетаtocbasic
. Начиная с версии 3.12 поддержка устаревшего\float@addtolist
интерфейса была ограничена только некоторыми функциями KOMA-Script и была удалена из других. Загрузка пакетаscrhack
может помочь избежать этого предупреждения, если вы используете пакет, который все еще реализует устаревший\float@addtolist
интерфейс.
Загрузите пакет scrhack
, как указано в предупреждениях.
\documentclass[
10pt,
oneside,
listof=totoc,
bibliography=totoc,
]{scrbook}
\usepackage{scrhack}% <- added
\usepackage{calc}
\usepackage{graphicx}
\usepackage{listings}
\setkomafont{chapter}{\Large}
\RedeclareSectionCommand[
beforeskip=\dimexpr-\topskip+2pt\relax,
afterindent=false
]{chapter}
\makeatletter
\renewcommand\chapterlinesformat[3]{%
\@hangfrom{#2}{\MakeUppercase{#3}}%
}
\makeatother
\begin{document}
\listoffigures
\listoftables
\lstlistoflistings
\chapter{A Chapter}
\begin{figure}
\centering\includegraphics[width=0.5\linewidth]{example-image}
\caption{First figure}
\end{figure}
\begin{table}
\caption{First table}
\centering
\begin{tabular}[width=0.5\linewidth]{ccc}
Cell 1 & Cell 2 & Cell 3
\end{tabular}
\end{table}
\begin{lstlisting}[caption={First listing}]
Some code
\end{lstlisting}
\end{document}