我想在 LaTeX 文本中排版真正的罗马数字(大写和小写)。我已经查看了先前的讨论帖但没有找到令人满意的解决方案。(事实上,该帖子中提到的几种解决方案对我来说都不起作用。我不知道为什么。)
我个人采用的是直接的方法
\newcounter{counter}
\newcommand{\upperRomannumeral}[1]{\setcounter{counter}{#1}\Roman{counter}}
\newcommand{\lowerromannumeral}[1]{\setcounter{counter}{#1}\roman{counter}}
但这仍然不令人满意。有没有更好的方法来完成这项任务?
答案1
如果我理解正确的话,您似乎想要的是使用罗马数字编号的内联列表。我认为该enumitem
软件包可以胜任此类工作。
代码
\documentclass[preview,border=5]{standalone}
\usepackage{enumitem}
\newlist{inlineroman}{enumerate*}{1}
\setlist[inlineroman]{itemjoin*={{, and }},afterlabel=~,label=\roman*.}
\newcommand{\inlinerom}[1]{
\begin{inlineroman}
#1
\end{inlineroman}
}
\newlist{Inlineroman}{enumerate*}{1}
\setlist[Inlineroman]{itemjoin*={{, and }},afterlabel=~,label=\Roman*.}
\newcommand{\InlineRom}[1]{
\begin{Inlineroman}
#1
\end{Inlineroman}
}
\begin{document}
I would like to cite some properties. Here are the properties listed in-line using small Roman numerals: \inlinerom{\item first, \item second \item third.}
Here are other properties listed as capital Roman numerals: \InlineRom{\item First property \item Second property \item Third property.}
\end{document}
输出
答案2
通常,罗马数字与计数器一起用于枚举列表或作为部门单位的数字,并且\roman
和\Roman
设施就是这样做的。
如果您只想用罗马数字打印一些数字,这里有两个简单的宏:
\newcommand{\upperRomannumeral}[1]{\uppercase\expandafter{\romannumeral#1}}
\newcommand{\lowerromannumeral}[1]{\romannumeral#1\relax}
因此你可以写
The king Louis~\upperRomannumeral{14} was called ``le roi soleil''
但打字Louis~XIV
会更清晰,更简短。
答案3
您可以尝试使用biblatex
包。它有一个\RN
执行大写罗马数字的命令。这样您就不必创建自己的命令。biblatex
通常加载来执行参考书目,但它也可以执行罗马数字。
答案4
对我有用的是
\newcommand{\Rom}[1]{\uppercase\expandafter{\romannumeral#1\relax}}
这使我能够将它与章节引用一起使用,例如\Rom{\ref{chap:conclusion}}
。