在标题LaTex中使用罗马数字时出错

时间:2020-08-24 12:20:32

标签: latex roman-numerals

我想使用罗马数字来枚举我的乳胶文档中的某些部分。

我使用这个:\MakeUppercase{\romannumeral 2}创建数字。这在正常文本中可以正常工作,但是如果尝试在 section subsection 命令中使用它,则会收到“ 未定义的控制顺序”错误即使它似乎在部分标题中正确显示了数字。

显然,问题出在\MakeUppercase命令上,因为仅\romannumeral 2命令不会给出错误。

我还尝试过定义具有相同效果的\newcommand

有人知道为什么会这样吗?

编辑:在创建了一个最小的可复制示例之后,我发现问题与hyperref包有关。

\documentclass[12pt,a4paper]{report}
\usepackage[utf8]{inputenc}

\usepackage{hyperref}

\newcommand{\RomanNumeralCaps}[1]{\MakeUppercase{\romannumeral #1}}

\begin{document}

\chapter{Some chapter}
\section{Some section}
\subsection{Experiment \MakeUppercase{\romannumeral 1}}
\MakeUppercase{\romannumeral 1}
\RomanNumeralCaps{2}

\end{document}

1 个答案:

答案 0 :(得分:2)

您可以为pdf书签提供替代字符串:

\documentclass[12pt,a4paper]{report}
\usepackage[utf8]{inputenc}

\usepackage{romannum}% for approach #1 and #2
\usepackage{biblatex}% for approach #3
\usepackage{hyperref}


\begin{document}

\chapter{Some chapter}
\section{Some section}
\subsection{Experiment \texorpdfstring{\Romannum{1}}{I}}

or

\subsection[Experiment II]{Experiment \Romannum{2}}

or

\subsection{Experiment \RN{3}}

However with this approach the III will be replaced by 3 in the pdf bookmarks

\end{document}