Номер страницы отсутствует на странице после изменения размера бумаги в pdflatex

Номер страницы отсутствует на странице после изменения размера бумаги в pdflatex

У меня есть документ pdflatex, в котором я переключаю размеры бумаги, только для одной страницы, чтобы отобразить большое изображение. Номер страницы намеренно опущен на большей странице. Я создал макросы для выполнения переключения на страницу большего размера, а также для обратного переключения.

На первой странице нормального размера после изображения отсутствует номер страницы, но последующие страницы, похоже, работают нормально. Кроме того, если я вручную не вставляю разрыв страницы с помощью \clearpage, кажется, что страница бездонная, а мой текст продолжается и продолжается, невидимый за нижней частью страницы (это не показано в MWE ниже).

Вот минимальный рабочий пример. Есть идеи, что тут происходит?

\documentclass{article}
\usepackage{pdflscape}

% Macros for changing paper size
\newcommand{\startPaperSizeB}{%
  \clearpage
  \begingroup
  \setlength{\pdfpagewidth}{11in}
  \setlength{\pdfpageheight}{17in}
  \setlength{\paperwidth}{\pdfpagewidth}
  \setlength{\paperheight}{\pdfpageheight}
  \setlength{\textwidth}{526pt}% This one matters
  \setlength{\textheight}{984pt}% This one matters
  \pagestyle{empty}% No page number
  }

\newcommand{\stopPaperSizeB}{\endgroup \clearpage}% The order of these commands makes no difference

\begin{document}
Some stuff on the first page here.

\startPaperSizeB
\begin{landscape}

Text on second page, intended for large image.

\end{landscape}
\stopPaperSizeB

Why no page number here?

\clearpage

Page numbers start working here, no problem.

\end{document}

решение1

Каким-то образом ваши параметры высоты текста действуют в неправильное время, так что LaTeX считает, что третья страница намного длиннее, чем она есть на самом деле. Номер страницы есть, он просто намного ниже физической страницы (как вы также заметили с текстом). Вы можете исправить это, поместив макросы в среду landscape. Чтобы изменение размера страницы вступило в силу, вам нужно устранить пару \begingroupи \endgroupи вместо этого воспользоваться группой, созданной средой landscape. Однако это приводит к тому, что текст на большой второй странице размещается плохо, если только вы также не зададите этот \hsizeпараметр. Существует множество этих параметров, которые взаимодействуют, поэтому делать макеты страниц вручную в LaTeX сложно. В общем, я бы рекомендовал использовать geometryвместо этого пакет, но, насколько я могу судить, он, похоже, не справится со случаем, когда некоторые страницы имеют другой размер.

\documentclass{article}
\usepackage{pdflscape}

% Macros for changing paper size
\newcommand{\startPaperSizeB}{%
  \setlength{\pdfpagewidth}{11in}
  \setlength{\pdfpageheight}{17in}
  \setlength{\paperwidth}{\pdfpagewidth}
  \setlength{\paperheight}{\pdfpageheight}
  \setlength{\textwidth}{526pt}% This one matters
  \setlength{\textheight}{984pt}% This one matters
  \setlength{\hsize}{\textheight}
  \pagestyle{empty}% No page number
  }

\newcommand{\stopPaperSizeB}{} 

\begin{document}
Some stuff on the first page here.

\begin{landscape}
\startPaperSizeB

Text on second page, intended for large image.

\stopPaperSizeB
\end{landscape}

Page number here!

\clearpage

Page numbers still working here, no problem.

\end{document}

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