
標題說明了一切 ;-)
我希望能夠做到類似的事情
\SI[certain-number]{18}{\winner}
或類似的東西
並獲得「第 18 位獲獎者」作為回報
編輯:新增用例場景
我認為我應該解釋為什麼人們想要這樣做,所以我將這一部分添加到我的問題中。
如果有人想及時解釋放置或事件(我猜是一種不同類型的放置),最好將訂購的編號與單位放在一起。這裡有些例子:
首先來自Mico的回答:
「他們興奮地看著老師打開電流,經過錶盤上的第 22 個 A 標記後,電路開始冒煙。”
或者:
“在 15 公里線後的 22 公里跑中,很多跑者放棄了”
我不確定這些例子是否適用於英語,但它們適用於我的母語,所以我覺得 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}