為什麼幾何包中的 \newgeometry 不改變紙張大小?

為什麼幾何包中的 \newgeometry 不改變紙張大小?

這背後有哪些技術原因?

封裝幾何手冊:

....紙張尺寸選項(例如 papersize、paper=a4paper 等),無法使用 進行更改\newgeometry

答案1

我感謝@DavidCarlisle 和@UlrikeFischer 對提供此答案的支持

paperwidthpaperheight是 LaTeX 長度,然後最終將其轉換pdftex為長度pdfpagewidthpdfpageheight使用以下程式碼片段:

\ifGin@setpagesize
\ifx\paperwidth\@undefined\else
  \AtBeginDocument{%
% If a package has changed \mag, assume it knows what it is doing
% and leave page size alone
\ifnum\mag=\@m
  \@ifundefined{stockwidth}{%
  \@ifundefined{paperwidth}{%
  }{%
    \ifdim\paperwidth>0pt\relax
      \ifdim\paperheight>0pt\relax
        \pdfpagewidth=\paperwidth
        \pdfpageheight=\paperheight
      \fi
    \fi
  }%
}{%
  \ifdim\stockwidth>0pt\relax
    \ifdim\stockheight>0pt\relax
      \pdfpagewidth=\stockwidth
      \pdfpageheight=\stockheight
    \fi
  \fi
}%
\fi
}

「LaTeX」對應項在文件開始後將被丟棄(意味著它們不再有意義),而pdf對應項是最終用於設定​​的對應項。

Geometrypdf也在文件的開頭設定長度,可能是為了保持與dvips驅動程式(不支援多種頁面尺寸)的兼容性,因此它不允許在文件期間重置它們,從而放棄紙張調整大小選項

相關內容