Почему \newgeometry из пакета геометрии не меняет размер бумаги?

Почему \newgeometry из пакета геометрии не меняет размер бумаги?

Какие технические причины этому способствуют?

Отруководство по геометрии упаковки:

... параметры размера бумаги (такие как papersize, paper=a4paper и т. д.), которые нельзя изменить с помощью \newgeometry.

решение1

Я благодарю @DavidCarlisle и @UlrikeFischer за поддержку в предоставлении этого ответа.

paperwidthи paperheightявляются длинами LaTeX, которые затем в конечном итоге преобразуются, например, pdftexв длины pdfpagewidthи pdfpageheightс помощью этого фрагмента:

\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в конечном итоге используются для настройки.

Geometry pdfтакже устанавливает длины в начале документа, возможно, для поддержания совместимости с dvipsдрайверами (которые не поддерживают несколько размеров страниц), поэтому она не позволяет сбрасывать их во время документа, тем самым отменяя параметры изменения размера бумаги.

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