есть ли простой способ добавить какой-либо контент в конец страниц \AtEndDocument
, например, как \AtThisPageEnd
?
Я посмотрел everyhook
и everypage
, но не похоже, что это возможно сделать с этими пакетами.
Есть у кого-нибудь идея?
Редактировать: Если быть точнее, я пытаюсь изменить макет для некоторой страницы с помощью пакета геометрии. Мне удается заставить его работать, когда textwidth постоянен. Проблема возникает, когда это не так, см. этот пример
\documentclass [a4paper]{article}
\usepackage [showframe]{geometry}
\usepackage {atbegshi}
\usepackage {lipsum}
\title{The Title}
\author{Me}
\date{\today}
\geometry{
paperwidth=18cm,
paperheight=18cm,
textwidth=9cm,
}
\makeatletter
\gdef\setGeometryPage
{
\ifnum\thepage=2
\global\let\setGeometryPage =\relax
\expandafter \@gobble % gobble clearpage
\newgeometry
{
textwidth=12cm,
}%
\fi
\aftergroup\setGeometryPage
}
\AtBeginShipout{
\AtBeginShipoutUpperLeft{
\setGeometryPage
}
}
\makeatother
\begin{document}
\maketitle
\section{First section}
\lipsum[1]
This part is the transition with the next page.
This part is the transition with the next page.
This part is the
%\clearpage\noindent
transition
\lipsum[1-2]
\end{document}
Обходной путь (не очень хороший) — добавить \clearpage\noindent
в конце первой страницы (см. пример комментария). (Примечание: я хотел бы задать макет только с помощью пакета geometry
здесь)
решение1
То, что вы ищете, этооткрытая проблема, поэтому вам придется прибегнуть к ручному вмешательству. Вот два варианта:
Так как тызнатьтам, где находится разрыв, вы можете вставить принудительный разрыв абзаца и убедиться, что последняя строка заполняет ширину строки. Длина здесь равна
\parfillskip
. После этого вы можете вставить свой\clearpage\noindent
аналогичный предыдущий:\lipsum[1] {\setlength{\parfillskip}{0pt}% Make last line in paragraph fill the line This part is the transition with the next page. This part is the transition with the next page. This part is the\par% } \clearpage\noindent transition \lipsum[1-2]
Если вы не хотите заботиться оточныйположение, но знайте, что у вас есть определенное количество строк до разрыва страницы, вы можете использовать его
\parshape
для регулировки потока абзаца:\lipsum[1] \parshape 3 % Shape of 3+ lines in the paragraph have to be adjusted 0pt \linewidth % Line 1 = A regular line (no additional indent, and full \linewidth) 0pt \linewidth % Line 2 = A regular line (no additional indent, and full \linewidth) 0pt \dimexpr\linewidth+3cm % Line 3+ = Adjusted (no additional indent, width of \linewidth+3cm) This part is the transition with the next page. This part is the transition with the next page. This part is the transition \lipsum[1-2]
В обоих приведенных выше случаях достигается следующий результат: