
У меня возникла следующая проблема:
Содержимое страницы выходит за пределы области сноски. До сих пор это случалось только тогда, когда последнее на странице — цитата. Вот скриншот того, что я испытываю:
Вы можете увидеть абзац над цитатой.
В моем шаблоне есть следующий код, который, как я подозреваю, и вызывает эту проблему:
\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, поэтому я думаю, что это правильный вопрос для этой платформы:
- reStructuredText анализируется и частично заменяется кодом Latex, чтобы включить внутренние ссылки и цитаты документа.
- Частично преобразованный код затем полностью преобразуется в латекс с помощью Pandoc (используя шаблон)
- Полученный код 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}