pdflatex で用紙サイズを変更した後、ページ番号がページから消える

pdflatex で用紙サイズを変更した後、ページ番号がページから消える

大きな画像を表示するために、1 ページだけ用紙サイズを切り替える 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 は 3 ページ目が実際よりもずっと長いと認識しています。ページ番号はありますが、物理的なページのかなり下にあります (テキストでも確認したとおり)。マクロを環境内に配置すると、これを修正できますlandscape。ページ サイズの変更を有効にするには、\begingroup\endgroupペアを削除し、代わりに環境によって作成されたグループを利用する必要がありますlandscape。ただし、パラメータも設定しない限り、これにより、大きな 2 ページ目のテキストが不適切に配置されます\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}

関連情報