标题说明了一切 ;-)
我希望能够
\SI[certain-number]{18}{\winner}
或类似的东西
并获得“第 18 位获胜者”作为回报
编辑:添加用例场景
我想我应该解释一下为什么有人会想这样做,所以我将这部分添加到我的问题中。
如果有人想解释时间中的位置或事件(我猜是不同类型的位置),最好将有序数字与单位放在一起。这里是一些例子:
首先是Mico的回答:
“他们兴奋地看着,当老师加大电流时,当电流超过刻度盘上的第 22 个 A 标记时,电路开始冒烟。”
或者:
“在 22 公里的比赛中,很多选手在第 15 公里线后就放弃了”
我不确定这些例子是否适用于英语,但它们适用于我的母语,所以我认为 siunitx 不支持它很奇怪。
谢谢您的回答。
答案1
(首先要说明一下:我必须承认,我不知道“18th A”或“220th V”——其中“A”和“V”自然代表安培和伏特——是什么意思。)
您可以通过(a)加载fmtcount
和siunitx
包并(b)定义专用宏来实现您的目标,如下所示:
\newcommand{\ordunit}[2]{\ordinalnum{#1}\,\si{#2}}
然后,在正文中写入\ordunit{18}{\ampere}
或\ordunit{220}{\volt}
。
完整的 MWE:
\documentclass{article}
\usepackage{fmtcount,siunitx}
\newcommand{\ordunit}[2]{\ordinalnum{#1}\,\si{#2}}
\begin{document}
\ordunit{18}{\ampere}, \ordunit{220}{\volt}, \ordunit{21}{loser}
\end{document}
答案2
为什么不这样做fmtcount
?如果您需要在序数和后面的“单位”之间留出空格,您可以定义一个专用命令:
\documentclass[english]{article}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{fmtcount}
\newcommand\winner[1]{\ordinalnum{#1}\,winner}
\begin{document}
\ordinalnum{18} winner
\bigskip
\winner{18}
\fmtcountsetoptions{fmtord=level}
\bigskip
\ordinalnum{21} loser
\end{document}