几何包重置选项存在问题

几何包重置选项存在问题

第 11 页几何包手册说这个reset选项

设置布局尺寸并切换到几何图形加载之前的设置。

第 30 页的描述略有不同:

[reset] 选项取消 reset 之前指定的所有选项,除了 pass。

但是,以下代码

\documentclass{article}
\showthe\textwidth
\usepackage[textwidth=50pt,reset]{geometry}
\showthe\textwidth

产生输出

> 345.0pt.
l.2 \showthe\textwidth

> 430.00462pt.
l.4 \showthe\textwidth

因此,不会返回加载\textwidth之前的值。我做错了什么?geometry

答案1

除了其他一些旗帜外,geometry在宏中存储包加载时的页面配置\Gm@restore@org。对于标准article文档类(您的最小示例),它包含:

\csname paperwidth\endcsname =614.295pt\relax
\csname paperheight\endcsname =794.96999pt\relax
\csname textwidth\endcsname =345.0pt\relax
\csname textheight\endcsname =550.0pt\relax
\csname evensidemargin\endcsname =62.0pt\relax
\csname oddsidemargin\endcsname =62.0pt\relax
\csname topmargin\endcsname =16.0pt\relax
\csname headheight\endcsname =12.0pt\relax
\csname headsep\endcsname =25.0pt\relax
\csname topskip\endcsname =10.0pt\relax
\csname footskip\endcsname =30.0pt\relax
\csname baselineskip\endcsname =12.0pt\relax
\csname marginparwidth\endcsname =65.0pt\relax
\csname marginparsep\endcsname =11.0pt\relax
\csname columnsep\endcsname =10.0pt\relax
\csname hoffset\endcsname =0.0pt\relax
\csname voffset\endcsname =0.0pt\relax
\csname Gm@layouthoffset\endcsname =0.0pt\relax
\csname Gm@layoutvoffset\endcsname =0.0pt\relax
\@twocolumnfalse
\@twosidefalse
\@mparswitchfalse
\@reversemarginfalse

该文件开头的内容将被覆盖为

\csname paperwidth\endcsname =614.295pt\relax
\csname paperheight\endcsname =794.96999pt\relax
\csname textwidth\endcsname =430.00462pt\relax
\csname textheight\endcsname =556.47656pt\relax
\csname evensidemargin\endcsname =19.8752pt\relax
\csname oddsidemargin\endcsname =19.8752pt\relax
\csname topmargin\endcsname =-13.87262pt\relax
\csname headheight\endcsname =12.0pt\relax
\csname headsep\endcsname =25.0pt\relax
\csname topskip\endcsname =10.0pt\relax
\csname footskip\endcsname =30.0pt\relax
\csname baselineskip\endcsname =12.0pt\relax
\csname marginparwidth\endcsname =65.0pt\relax
\csname marginparsep\endcsname =11.0pt\relax
\csname columnsep\endcsname =10.0pt\relax
\csname hoffset\endcsname =0.0pt\relax
\csname voffset\endcsname =0.0pt\relax
\csname Gm@layouthoffset\endcsname =0.0pt\relax
\csname Gm@layoutvoffset\endcsname =0.0pt\relax
\@twocolumnfalse
\@twosidefalse
\@mparswitchfalse
\@reversemarginfalse

将页面和文本尺寸恢复到原来的状态geometry 被调用时,你可以明确调用\Gm@restore@orgbefore \begin{document}

\usepackage[...]{geometry}% http://ctan.org/pkg/geometry
\makeatletter
\Gm@restore@org
\makeatother

答案2

必须记住,geometry除非使用该pass选项调用,否则会设置其自己的页面格式化参数。

然而,

\usepackage[pass]{geometry}
\geometry{reset}

将设置\textwidth为 430.00462pt,这是信纸的默认值geometry。文档似乎对此不太清楚:应该说reset取消同时设置的所有选项,包括 pass

相关内容