Как переопределить масштаб геометрии в преамбуле? (Например, если класс или пакет установил значение по умолчанию, использующее геометрию.)

Как переопределить масштаб геометрии в преамбуле? (Например, если класс или пакет установил значение по умолчанию, использующее геометрию.)

С некоторыми geometryопциями можно переопределить предыдущую настройку в преамбуле. Например:

\documentclass{article}
\usepackage{geometry}
\geometry{hmarginratio=1:1}
\geometry{showframe,hmarginratio=6:1}

\begin{document}

  abc

\end{document}

переключатель соотношения маржи

С другими этот метод не работает. Например:

\documentclass{article}
\usepackage{geometry}
\geometry{scale=.85}
\geometry{showframe,scale=.25}

\begin{document}

  abc

\end{document}

палочки для первой установки

Есть ли веская причина для такой разницы и есть ли способ ее обойти?

Причина, по которой я хотел бы это сделать, заключается в том, что я могу задать для класса или пакета значение по умолчанию для scaleиспользования \geometry{}, но при этом разрешить переопределить его в преамбуле документа.

решение1

Я не думаю, что это полное решение, но оно слишком длинное для комментария (и я не понимаю, что здесь может пойти не так)

Рассматриваем документацию geometry:

reset возвращает размеры макета и переключается на настройки до загрузки геометрии. Параметры, указанные в geometry.cfg, также очищаются. Обратите внимание, что это не может сбросить pass и mag с truedimen. reset=false не имеет эффекта и не может отменить предыдущий сброс (=true), если таковой был.

Так что, resetвозможно, это правильный вариант для \geometryпреамбулы


\documentclass{article}
\usepackage{geometry}

\geometry{verbose,showframe,scale=.85}



\geometry{reset,verbose,showframe,scale=0.25,lmargin=2in}

\begin{document}

  abc

\end{document}

введите описание изображения здесь

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