siunitx에서 1st 2nd 3rd ...를 쓰는 방법

siunitx에서 1st 2nd 3rd ...를 쓰는 방법

제목이 모든 것을 말해줍니다 ;-)

나는 다음과 같은 것을 할 수 있기를 원합니다

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

아니면 그런 것

그리고 그 대가로 '18번째 우승자'를 얻습니다.

편집: 사용 사례 시나리오 추가

왜 이렇게 하고 싶은지 설명해야 한다고 생각해서 이 섹션을 내 질문에 추가했습니다.

시간에 따른 배치나 이벤트(다른 종류의 배치인 것 같아요)를 설명하고 싶다면 유닛과 함께 주문 번호를 함께 두는 것이 좋습니다. 여기 몇 가지 예가 있어요:

먼저 Mico의 답변에서:

``그들은 교사가 전류를 높이고 다이얼의 22번째 A 표시를 통과한 후 회로에서 연기가 나기 시작하는 것을 신나게 지켜보았습니다.''

또는:

``15km 라인 이후 22km 달리기에서 많은 주자들이 포기했습니다.''

이 예제가 영어로 작동하는지 확실하지 않지만 제 모국어로는 작동하므로 siunitx가 이를 지원하지 않는 것이 이상하다고 생각했습니다.

답변 주셔서 감사합니다.

답변1

(앞의 설명: "18번째 A" 또는 "220번째 V"("A"와 "V"는 당연히 암페어와 볼트를 나타냄)가 무엇을 의미하는지 전혀 모른다는 점을 고백해야 합니다.)

fmtcount(a) 및 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}

여기에 이미지 설명을 입력하세요

관련 정보