geometry.sty 中的小错误

geometry.sty 中的小错误

完全的

替代文本


左上角

替代文本


右上角

替代文本


左下角

替代文本


右下角

替代文本

\documentclass[dvipsnames,dvips,cmyk]{minimal}
\usepackage{xcolor,calc}
\usepackage[%
paperwidth=30mm,
paperheight=30mm,
textwidth=25mm,
textheight=25mm,
showframe]{geometry}
\setlength{\fboxsep}{5mm}
\setlength{\fboxrule}{5mm}
\usepackage{lipsum}
\begin{document}
\topskip0pt%
\noindent\color{red}\fbox{\parbox{\textwidth-2\fboxsep-2\fboxrule}{\color{green}\rule{5mm}{5mm}}}
\end{document}

编辑1:

问题:

  1. 这些不对称的框架规则是故意制定的还是bug?
  2. \textwidth等于框架规则内边缘或框架规则外边缘之间的水平距离?

编辑2:

  1. 我认为包围文本内容的框架是使用 4 条规则部分/单独创建的,而不是使用\fbox\fboxsep当然设置为零)。可以将其更改为使用吗\fbox

  2. 如果我们在讨论中使用 PSTrick 的术语,我认为包围文本内容的框使用了dimen=inner,对吗?如果正确,则 是\textwidth测量框内边缘之间的水平距离。请确认我的理解是否正确?


编辑3:

除了 geometry.sty 产生的“不对称框架规则”之外,下面的图表通过一些注释重现了它。

geometry.sty 生成的框架似乎向外扩展。因此,\textwidth等于该框架内边缘之间的水平距离。

注意:比例以毫米为单位。

替代文本


这个错误仍然存​​在。

答案1

我认为所看到的行为是 中的一个错误geometry。L​​aTeX\fbox也必须使用四条规则才能实现该效果,但这些规则确实可以正确连接。所以我会将问题报告给 的作者geometry,看看他怎么说。

在框架周围\textwidth,框架应该位于材料的“外部”(IE包含材料的 TeX 框实际上应该具有\textwidth所用规则宽度的两倍。同样,这当然是可行的\fbox

答案2

TeX 总是以方框来思考。参考点是当前点,它位于每行最左边的起点。当 TeX 绘制一个 fbox 时,它会绘制一个 width 的垂直条,\fboxsep并将当前点增加此值。然后,它会绘制两个水平规则,每个框宽度为 0,这就是当前点不增加的原因。然后,它会插入一个空格,其作用\fboxsep与将当前点向右移动相同。然后插入框内容,并随着框内容的宽度增加当前点。现在\fboxsep再次添加,同样增加当前点。现在绘制右侧垂直条,并再次将当前点增加\fboxrule。下一个框(如果有)从其左侧的当前点开始。另请参阅幻灯片 32ffhttp://userpages.fu-berlin.de/~latex/PSTricks/DANTE2006.pdf。它是德文,但很容易看出我所说的设置框是什么意思。

答案3

我不能说我理解你的问题。但这里有一个稍微改变的代码,它给了我一个预期的结果:

\documentclass[cmyk]{minimal}
\usepackage{xcolor,calc}
\usepackage[%
paperwidth=30mm,
paperheight=30mm,
textwidth=25mm,
textheight=25mm,
showframe]{geometry}
\setlength{\fboxsep}{5mm}
\setlength{\fboxrule}{5mm}
\begin{document}
\noindent\color{red}\fbox{%
%  \parbox{\linewidth-2\fboxsep-2\fboxrule}{%
  \color{green}\rule{5mm}{5mm}%
%  }
}
\end{document}

替代文本

相关内容