我正在尝试学习更多关于 TeX 和 LaTeX 中的宏编程(如果这是正确的说法)。我首先定义一个我称之为 Sum 的量:\newcount\Sum
。然后我写下。然后我使用 和\Sum=0
对 Sum 进行了一些算术运算\multiply . . . by . . .
\advance . . . by . . .
。
最后,我想打印出(在文档中)Sum 的值。为此,我使用了以下行
The Sum equals **\number**\Sum ,
并且它按预期工作!但后来我发现我也可以这样写
The Sum equals **\the**\Sum ".
现在我想知道这两种方式中哪一种是写出数值的首选方式。它们等效吗?或者它们的用途不同——即使在我的例子中结果重叠?
以下是 MWE:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% Here is the example tex-file that illustrates use of \number and \the .
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
\usepackage[paperwidth=4in, paperheight=0.8in]{geometry}
\begin{document}
\newcount\a \newcount\b \newcount\Sum
\a=1 \b=5 \Sum=0
\advance\Sum by \a \multiply\Sum by \b
\advance\Sum by \a \multiply\Sum by \b
\noindent
The Sum equals \number\Sum \quad;\quad I used ``number''.
\par \vskip 10pt \noindent
The Sum equals \the\Sum \quad;\quad I used ``the''.
\end{document}
答案1
\number
和\the
在计数寄存器上类似。 \the
可以应用于更多类型,例如
\the\dimen0
或者
\the\everypar
或者
\the\font
在这些情况下使用\number
要么是错误的,要么(在第一种情况下)将维度转换为数字,并将其值作为sp
单位。