Латекс: сделать \ listoffigures похожими на \ listoftables или \ lstlistoflistings - PullRequest
4 голосов
/ 12 июня 2010

У меня есть список объявлений в конце моего документа, следующий за моим списком таблиц и моим списком рисунков.Что меня действительно раздражает, так это то, что они выглядят одинаково, за исключением того, что список списков не оставляет пропуска между главами.

У меня был хороший Google, и люди задавали тот же вопрос, нокажется, не было никакого ответа.

Есть ли какая-то причина, почему они не выглядят одинаково, и это должно быть сделано, чтобы выглядеть кратким?

1 Ответ

7 голосов
/ 12 июня 2010

Причина этого заключается в том, что вертикальный интервал между главами в списке рисунков (lof) и списке таблиц (lot) добавляется командой \chapter, и такого списка для списков просто нет (смеется).

Как это исправить, немного зависит от класса документа, который вы используете. Если вы используете превосходный класс memoir, крюки для этой цели уже предусмотрены:

\renewcommand{\memchapinfo}[4]{%
  \addtocontents{lol}{\protect\addvspace{10pt}}}

Если ваши списки появляются в приложениях, вы подключите \memappchapinfo вместо \memchapinfo. (Обратитесь к разделу 18.25 руководства по мемуарам для получения списка доступных крючков.)

Если вы не используете memoir, вам обычно нужно подключить команду класса \@chapter. Это может выглядеть, например:

\makeatletter
\let\my@chapter\@chapter
\renewcommand*{\@chapter}{%
  \addtocontents{lol}{\protect\addvspace{10pt}}%
  \my@chapter}
\makeatother

Вы можете легко проверить, что используется для генерации lol, проверив файл .lol, соответствующий вашему документу. Если ваш документ, например, base.tex, посмотрите на base.lol. Вы должны увидеть что-то вроде:

\contentsline {lstlisting}{...}{...}
\contentsline {lstlisting}{...}{...}
\addvspace {10pt}
\contentsline {lstlisting}{...}{...}

Обратите внимание на \addvspace, отделяющий строки содержимого от разных глав.

Поскольку фактический код, используемый для вставки пробелов между главами, также зависит от класса документа, адаптируйте фактическую команду \addvspace, чтобы она была такой же, как в ваших .lof или .lot файлах.

...