Как мне разместить оглавление на одной странице?

Как мне разместить оглавление на одной странице?

Этот вопрос по сути тот же самый, что иКак разместить оглавление на одной странице?

«Когда я использую, \tableofcontentsя размещаю все свое содержимое на одной странице, за исключением строки, которая находится на другой странице. Как мне разместить все на одной странице?»

Однако решение, приведенное там, мне не помогает по следующей причине. Страница рядом с ToC — это только текст (плюс одна строка ToC), страница после нее начинается с заголовка раздела. Последняя строка ToC, похоже, вставлена ​​сюда LaTeX, чтобы избежать попадания заголовка раздела в конец: он предпочитает ставить пробел между ToC и текстом, а не между абзацами.

Есть ли элегантное решение этой проблемы?

решение1

Решение Энрике жестко привязано к позиции в документе и предполагает, что tocбудет только одна страница. Вот еще одно решение.

\documentclass[12pt,a6paper]{article}
\usepackage{blindtext}
\makeatletter
\def\enlargetocpage{%
  \begingroup
  \@ifstar{\def\x{*}\@enlargetocpage}{\def\x{}\@enlargetocpage}%
}
\def\@enlargetocpage#1{%
  \toks@{#1}%
  \protected@edef\x{%
    \endgroup\noexpand\AtEndDocument{\noexpand\addtocontents{toc}%
    {\protect\enlargethispage\x{\the\toks@}}}%
  }\x
}
\makeatother

\enlargetocpage*{\baselineskip}

\begin{document}
\tableofcontents
\blindtext

\section{A section}

\subsection{And a subsection}

\blindtext

\blinddocument

\blinddocument

\blinddocument

\end{document}

решение2

После первого ответа @lockstep наКак разместить оглавление на одной странице?, мне удалось добиться того, чего вы ожидаете, добавив \addtocontents{toc}{\protect\enlargethispage{\baselineskip}}сразупослезаголовок первого разделаВот MWE:

\documentclass[12pt,a6paper]{article}
\usepackage{blindtext}
\begin{document}
\tableofcontents

\blindtext

\section{A section}
\addtocontents{toc}{\protect\enlargethispage{\baselineskip}}

\subsection{And a subsection}

\blindtext

\blinddocument

\blinddocument

\blinddocument
\end{document}

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