LINUX.ORG.RU

LaTeX автоматически применять стиль для последней страницы

 


0

1

Не могу найти рабочий вариант автоматического применения кастомного стиля для последней страницы. Использую fancyhdr. Создал 3 стиля: для титульной, для обычных страниц, для последней страницы. Стили работают, проблем нет. Неудобство в том, что каждый раз нужно вручную искать последнюю страницу, чтобы применить стиль для последней страницы. Хочу, чтобы применялось автоматом. Нашел некую команду (макрос) \AtEndDocument{}, в которую засунул применения моего стиля - \AtEndDocument{\thispagestyle{lastpage}}, но стиль не применяется, хотя ошибок при компиляции нет. По описанию команда выполняется перед формированием содержания последней страницы, значит стиль должен применяться. Если есть какие-то альтернативные варианты, буду рад почитать.

Ответ на: комментарий от TeopeTuK

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

Yorween ()
Ответ на: комментарий от TeopeTuK

Так работает при разрыве абзаца с текстом на предпоследней и последней странице, но не работает с вынужденным переносом таблицы или изображения на последнюю страницу, если не умещается в конце предпоследней…

Yorween ()
Ответ на: комментарий от Yorween

Тогда ой. Все, что автоматически переносится на следующую страницу (та же отложенная таблица), будет вставлено после \thispagestyle{lastpage}. Тогда только читать по ссылке от anonymous и применять технику из последнего ответа (zref-totpages). То есть, использовать один и тот же стиль для всех страниц и для последней, но в этом стиле менять вывод в зависимости от номера страницы.

TeopeTuK ★★★ ()
Ответ на: комментарий от Yorween

Я последнего чела толком не понял. Он пишет про какие-то заморочки в латехе, что стили устанавливаются до того, как латех определил, что будет перенос страницы.

Если ты перенос на последнюю страницу руками делаешь, то получается же как надо?

anonymous ()
Ответ на: комментарий от anonymous

Опять же, насколько я понимаю, если есть отложенная таблица, то она попадает на последнюю страницу, и для этой страницы нужно применить спецстиль. Но при этом на этой странице вообще нет текста, соответственно некуда вставить \thispagestyle{lastpage}.

TeopeTuK ★★★ ()
Ответ на: комментарий от Yorween

Тогда очень просто, прямо copy&paste из ответа в том треде: \usepackage{zref-totpages} и

\fancypagestyle{main}{ 
  \fancyhf{}
  \fancyhead[C]{\thepage}
  \fancyfoot[C]{\ifnum\value{page}=\ztotpages\else footer\fi}
}
Компилировать два раза.

TeopeTuK ★★★ ()
Последнее исправление: TeopeTuK (всего исправлений: 1)
Ответ на: комментарий от TeopeTuK

Мне кажется, должно быть не так, а

\fancypagestyle{main}{ 
  \fancyhf{}
  \fancyhead[C]{\thepage}
  \fancyfoot[C]{\ifnum\value{page}<\ztotpages\fi}
}

чтобы нижний колонтитул использовался, если страница не последняя. Но это все равно не работает.

Yorween ()