长度需要反斜杠但计数器不需要,为什么?

长度需要反斜杠但计数器不需要,为什么?
\documentclass{minimal}
\parindent=0sp

\newlength{\Length}
\setlength{\Length}{1in}

\newcounter{Count}
\setcounter{Count}{10}


\begin{document}
\the\Length

\theCount
\end{document}

长度需要反斜杠但计数器不需要,为什么?

答案1

计数器名称有多种用途,将名称附加到thec@p@并将其用作的参数更为安全\arabic\Roman等等。当您说时\newcounter{Count},LaTeX 会做以下事情:

\expandafter\newcount\csname c@Count\endcsname
\@namedef{theCount}{\arabic{Count}}

此外这使得事情变得更加复杂当地的分配给计数器,这永远不应该做,因为 LaTeX 计数器应该始终全局修改;对于本地计数器,可以通过 定义的“TeX”计数器\newcount;但是,一般来说,\count@\@tempcntaLaTeX\@tempcntb内核为此目的提供的 就足够了。请参阅TeX.sx 上的这个讨论了解更多关于对同一变量进行本地和全局分配的知识,这表明我之前的说法是相当激烈的,但人们应该知道当“违反”规则时他们在做什么。

对于长度,这是不需要的,甚至可以使用 TeX 语法

\Length=3cm

(承担所有相关风险)。此外,可能更重要的是,\setlength它们\addtolength更容易定义和使用。

相关内容