答案1
以下代码定义了一个scroman
编号:
\makeatletter
\newcommand{\oldstyleroman}[1]{\expandafter\@oldstyleroman#1\@nil}
\def\@oldstyleroman#1#2\@nil{%
\ifcat$\detokenize{#2}$%
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi
{\if#1ij\else#1\fi}% si #2 est vide
{#1\@oldstyleroman#2\@nil}% si #2 n'est pas vide
}
\def\scroman#1{\expandafter\@scroman\csname c@#1\endcsname}
\def\@scroman#1{{\scshape\romannumeral #1}}
\makeatother
我还有一种变体(oldstyleroman
编号),它重现了 19 世纪中叶之前使用的一种样式:当数字的最后一个字母是 时i
,该最后一个字母将被替换为j
。还可以定义一种 oldstylescroman
编号,它将这两个功能结合起来。