从序数的 numname 字符串中删除“and”

从序数的 numname 字符串中删除“and”

有没有办法使用numname包,让长英文数字的序数不包含单词“and”?也就是说,我希望 \OrdinalToName{118} 生成“一百一十八”,而不是当前的“一百十八'。

答案1

的预期输出\OrdinalToName{118}实际上是“一百一十八”。如果您想要这个基数而不是序数,请使用\NumToName

好了,让我们把注意力集中到不需要的连词上:

查看numname包装手册,我们发现提示

该代码是从中剪切并粘贴的,memoir.cls以用作独立的包[...]

通过查看memoir手册,我们可以找到以下内容:(参见第 18.14.2 节命名数字,目前从第 337 页开始)

默认情况下,命名数字的表示中使用一些标点符号和连词。[...]这些宏最初定义为:

\newcommand*{\namenumberand}{ and }
\newcommand*{\namenumbercomma}{, }
\newcommand*{\tensunitsep}{-}

为了覆盖此默认值以摆脱“and”连词,只需添加\renewcommand*{\namenumberand}{ }到您的文档中:

\documentclass{article}
\usepackage{numname}
\begin{document}
\NumToName{118}

\OrdinalToName{118}

\renewcommand*{\namenumberand}{ }
\NumToName{118} 

\OrdinalToName{118}
\end{document}

在此处输入图片描述

相关内容