我对是否必须使用感到困惑\the
。
\the
是\special{papersize=\the\paperwidth,\the\paperheight}
强制性的。- 但
\the
两者都不\begin{pspicture}(\the\paperwidth,\the\paperheight)
是\psframe[linecolor=red](\the\paperwidth,\the\paperheight)
强制性的。
\documentclass{minimal}
\usepackage{pstricks}
\paperwidth=72.27pt
\paperheight=72.27pt
\hoffset=-72.27pt
\voffset=-72.27pt
\topskip=0sp
\parindent=0sp
% it works
\special{papersize=\the\paperwidth,\the\paperheight}
% it does not work
%\special{papersize=\paperwidth,\paperheight}
\begin{document}
% it works
\begin{pspicture}(\the\paperwidth,\the\paperheight)
\psframe[linecolor=red](\the\paperwidth,\the\paperheight)
\end{pspicture}
%
% it also works
%\begin{pspicture}(\paperwidth,\paperheight)
%\psframe[linecolor=red](\paperwidth,\paperheight)
%\end{pspicture}
\end{document}
我是否必须使用有什么规则\the
?
答案1
TeX 基元\the
返回长度、计数器或其他寄存器的值作为文本您需要在想要输出字符串的地方使用它,例如输出到外部文件(就像例子中的 DVI \special
)或者将其显示为文档的一部分。
对于等待长度或数字表达式的文档内部宏,您不需要使用,\the
但可以直接使用长度或计数器寄存器。
答案2
\the
用于将 TeX 寄存器转换为其值,例如\the\paperwidth
扩展为纸张宽度(以 为单位pt
)。如果 TeX 需要尺寸,则可以省略\the
。因此,例如在\begin{pspicture}(\the\paperwidth,\the\paperheight)
底层代码中将设置一个 dimen,因此需要一个 dimen 值,因此可以\paperwidth
在不使用 的情况下使用\the
。通常,\the
无论是否需要,使用 都是安全的,因此在不是绝对需要的情况下包含它没有问题。
(同样的方法也适用于其他寄存器类型,例如\count
寄存器。)