siunitx で 1st 2nd 3rd ... を書く方法

siunitx で 1st 2nd 3rd ... を書く方法

タイトルがすべてを物語っています ;-)

私はこんなことができるようになりたい

\SI[certain-number]{18}{\winner}

またはそのようなもの

代わりに「18番目の勝者」を獲得する

編集: ユースケースのシナリオを追加しました

なぜこれをやりたいのかを説明する必要があると思うので、このセクションを質問に追加しました。

時間内の配置またはイベント(おそらく別の種類の配置)を説明したい場合は、順序付けられた番号と単位を一緒に使用すると便利です。次に例をいくつか示します。

まずはMicoさんの回答から:

「先生が電流を上げ、ダイヤルの22番目のAマークを過ぎた後、回路から煙が出始めたとき、彼らは興奮して見ていました。」

または:

「15キロ地点以降の22キロのレースでは、多くのランナーがリタイアした」

これらの例が英語で機能するかどうかはわかりませんが、私の母国語では機能するので、siunitx がこれをサポートしていないのは奇妙だと思いました。

回答ありがとうございます。

答え1

(最初にコメントしておきますが、私は「18 番目の A」や「220 番目の V」が何を意味するのか全く分かりません。「A」と「V」は当然ながらアンペアとボルトを表します。)

fmtcount次のように、(a) と (b) の両方のsiunitx パッケージをロードし、専用のマクロを定義することで目的を達成できます。

\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}

ここに画像の説明を入力してください

関連情報