宏的定义pgfpicture
来自pgfcorescopes.code.tex
\def\pgfpicture{%
\begingroup%
\pgfpicturetrue%
\global\advance\pgf@picture@serial@count by1\relax%
\edef\pgfpictureid{pgfid\the\pgf@picture@serial@count}%
\let\pgf@nodecallback=\pgfutil@gobble%
\pgf@picmaxx=-16000pt\relax%
\pgf@picminx=16000pt\relax%
\pgf@picmaxy=-16000pt\relax%
\pgf@picminy=16000pt\relax%
\pgf@relevantforpicturesizetrue%
\pgf@resetpathsizes%
\pgfutil@ifnextchar\bgroup\pgf@oldpicture\pgf@picture}
这个值代表什么16000pt
,为什么使用\pgf@picmaxx
和\pgf@picmaxy
负号?
答案1
值 16000 pt 接近 TeX 允许的最大尺寸,2¹⁴ pt = 16384 pt(实际上是 16384 pt − 1 sp = 16383.99998 pt),因此据 TeX 所知,您可以将其算作(接近)无穷大。
在编程中,当尝试逐步确定一组值的最小值或最大值时,通常以 −∞ 开始表示最大值,以 +∞ 开始表示最小值。这是因为,如果您以(例如)零开始表示最大值,而您的数字恰好为负数,那么您将得到错误的结果。从 −∞(或尽可能接近)开始,您肯定可以知道您的数字大于该值,反之亦然。
如果您使用的语言具有max
您可以执行的功能curr_max = max(curr_max,<any value>)
,并且如果curr_max
是−∞,那么无论<any value>
发生什么都会给出正确的答案。
由于 TeX 没有内置max
函数,因此 PGF 具有以下功能:
\ifdim \pgf@x>\pgf@picmaxx
\pgf@picmaxx=\pgf@x
\fi
这大致就是max
函数要做的事情。