我尝试定义\th
在序数词的上标中放置字母“th”。LaTeX 告诉我这\th
已经定义。它是如何定义的?重新定义它会很糟糕吗?
答案1
如果你跑
\documentclass{article}
\usepackage[T1]{fontenc}
\begin{document}
\meaning\th
\th
\end{document}
你得到
\th
在内核中定义为
\DeclareTextSymbol{\th}{T1}{254}
并产生thorn
(古英语、哥特语、古挪威语和现代冰岛语字母表以及一些中古英语方言中的字母。)
是的,重新定义已定义的宏,尤其是内核宏,通常是一个坏主意(在某些情况下,可能的例外是您确切知道自己在做什么以及为什么要这样做);这就是为什么\newcommand
(与 不同\def
)首先检查命令是否已定义。我建议您为命令选择另一个名称(\Th
例如)。
但是,如果你坚持重新定义\th
(假设你认为你不需要刺,并且你确定重新定义不会产生除了抑制对刺的访问之外的不良影响),至少我建议你先保存原始定义:
\let\oldth\th
\renewcommand\th{<your definition>}
在您的特定情况下,将“th”放置在序数词中,您可以使用fmtcount
包裹:
\documentclass{article}
\usepackage{fmtcount}
\begin{document}
\ordinalnum{3}, \ordinalnum{4}
\end{document}