Warum ändert \newgeometry aus dem Geometriepaket die Papiergröße nicht?

Warum ändert \newgeometry aus dem Geometriepaket die Papiergröße nicht?

Welche technischen Gründe stecken dahinter?

AusHandbuch der Paketgeometrie:

... Papiergrößenoptionen (wie etwa Papiergröße, Papier=A4-Papier usw.), die mit nicht geändert werden können \newgeometry.

Antwort1

Ich danke @DavidCarlisle und @UlrikeFischer für die Unterstützung bei der Bereitstellung dieser Antwort

paperwidthund paperheightsind LaTeX-Längen, die dann letztlich zB in pdftexdie Längen umgewandelt werden pdfpagewidthund pdfpageheightdazu diesen Snippet verwenden:

\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
}

Die „LaTeX“-Gegenstücke werden nach dem Starten des Dokuments verworfen (was bedeutet, dass sie nicht mehr aussagekräftig sind), während die pdfGegenstücke letztendlich zum Setzen verwendet werden.

Geometry legt die pdfLängen auch am Anfang des Dokuments fest, möglicherweise um die Kompatibilität mit den dvipsTreibern aufrechtzuerhalten (die keine mehreren Seitengrößen unterstützen). Daher ist es nicht möglich, sie während des Dokuments zurückzusetzen, wodurch die Optionen zur Größenanpassung des Papiers verworfen werden.

verwandte Informationen