Содержимое страницы выходит за пределы области сносок

Содержимое страницы выходит за пределы области сносок

У меня возникла следующая проблема:

Содержимое страницы выходит за пределы области сноски. До сих пор это случалось только тогда, когда последнее на странице — цитата. Вот скриншот того, что я испытываю:

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

Вы можете увидеть абзац над цитатой.

В моем шаблоне есть следующий код, который, как я подозреваю, и вызывает эту проблему:

\definecolor{quotecolor}{HTML}{686868}
\newfontfamily\quotefont[Color=quotecolor]{Ubuntu}
\AtBeginEnvironment{quote}{\quotefont\small\it\color{quotecolor}}
\AtBeginEnvironment{quote}{\vspace{-0.7\baselineskip}}% Stuff before {quote}
\AtEndEnvironment{quote}{\vspace{-0.7\baselineskip}}% Stuff after {quote}

Однако без этого кода цитаты занимают слишком много места по вертикали.

Что я могу сделать, чтобы это исправить?

Пока у меня есть только две идеи:

  • как-то ужесточить наказание за выход контента за пределы области сносок
  • использование другого метода для уменьшения вертикального пустого пространства вокруг цитат

Я попытаюсь придумать MWE, хотя может быть очень сложно найти способ обмануть Latex, заставив его совершить ту же ошибку. Я не могу поделиться полным документом.

Мой процесс сборки немного сложен, но в конечном итоге все представляет собой код Latex, прежде чем компилируется в PDF, поэтому я думаю, что это правильный вопрос для этой платформы:

  1. reStructuredText анализируется и частично заменяется кодом Latex, чтобы включить внутренние ссылки и цитаты документа.
  2. Частично преобразованный код затем полностью преобразуется в латекс с помощью Pandoc (используя шаблон)
  3. Полученный код Latex затем компилируется в PDF с помощью latexmk

Я могу получить файл кода Latex последней стадии, но, как я уже сказал, не могу поделиться ни полным файлом, ни его значительными частями, и если это необходимо, нужно будет обратиться к MWE.

решение1

без примера для иллюстрации это всего лишь описание решения (признанного автором в комментарии).

Применение явного отрицания \vspaceвверху и внизу списка (на котором quoteоснована среда) гарантированно заставит Latex думать, что блок по вертикали меньше, чем он есть на самом деле, что приводит к таким результатам, как наложение того, что находится выше и ниже, как сообщается.

пространство в верхней части среды регулируется значением \topsep, которое по умолчанию равно 8.0pt plus 2.0pt minus 4.0pt(как сообщается \showthe\topsepдля articleкласса). Если сбросить его на что-то меньшее в начале среды, это должно решить проблему.

Поскольку quoteэто «ограниченная» среда, исходные значения \topsep и аналогичные настройки восстанавливаются при выходе из среды, поэтому нет необходимости сбрасывать ее вручную, как демонстрирует этот простой тест:

\documentclass{article}
\begin{document}
\begin{quote}
\showthe\topsep
\topsep=0pt
xxx
\end{quote}
\showthe\topsep
\end{document}

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