命令 \year 给出的是数字而不是文本。这是怎么做到的?

命令 \year 给出的是数字而不是文本。这是怎么做到的?

据我所知,在命令序列中\the\year\year给出一个数字,并将\the其转换为文本。

我不明白的是,如何制作一个结果为数字但不产生代表该数字的文本的命令,就像命令一样\year

换句话说,如果我想\theXXX生成“1234”(不带引号),我该XXX用什么来替换?

答案1

这个问题似乎更多地是关于访问计数器的值而不是日期。 whlt3 提供了一些详细信息。以下是基于访问计数器的正确方法是什么?

计数器:

使用 声明一个计数器\newcounter{XXX},使用 设置计数器值。然后,您可以作为或\setcounter{XXX}{1234}访问它,并且两者都产生相同的输出:\theXXX\the\value{xxxx}

在此处输入图片描述

您可以通过 更改计数器输出的所需格式\renewcommand{\theXXX}{\Roman{XXX}},之后\theXXX计数器的值将以罗马数字显示:

在此处输入图片描述

此技术通常用于更改章节/节等的样式...编号。例如,请参阅章节和小节使用罗马数字

日期:

如果你对格式化和操作日期感兴趣,你应该考虑

代码:

\documentclass{article}
\newcounter{XXX}

\begin{document}
\setcounter{XXX}{1234}
\textbackslash{}theXXX yields \theXXX\par
\textbackslash{}the\textbackslash{}value yields \the\value{XXX}

\bigskip
\renewcommand{\theXXX}{\Roman{XXX}}
\textbackslash{}theXXX yields \theXXX\par
\textbackslash{}the\textbackslash{}value yields \the\value{XXX}
\end{document}

答案2

\year不仅仅是给予数字;它给出了一个内部整数。这是 TeX 识别的整数类型之一。与表示整数(这些只是数字串,可能在进制之间转换)它们被称为普通整数. 除了普通整数之外,还有强制整数,当内部胶水或尺寸被强制为整数时会发生这种情况。

TeX 隐式地将一串数字转换为数字,也就是说,如果 TeX 期望一个数字,那么任何看起来像数字的东西都会被接受。所以 42 是一个数字。但反过来必须明确地完成,要么通过\romannumeral\number。当我们处理内部整数时,\the相当于。既然你问当你想要时\number你可以用什么XXXX\theXXXX,答案就是一个内部整数。有很多,你可以轻易影响的是chardef或定义的标记mathdef和寄存器的内容count

但是对于非内部整数,您需要使用\number。也就是说,\number123编译会成功,但\the123会失败。

相关内容