Errore durante l'utilizzo di numeri romani nell'intestazione di sezione LaTex

Aug 24 2020

Voglio usare i numeri romani per enumerare alcune sezioni nel mio documento latex.

Uso questo: \MakeUppercase{\romannumeral 2}per creare il numero. Funziona bene nel testo normale, ma se provo a usarlo in un comando di sezione o sottosezione ottengo un errore " sequenza di controllo non definita " anche se sembra visualizzare correttamente il numero nell'intestazione della sezione.

Apparentemente il problema è con il \MakeUppercasecomando, in quanto solo il \romannumeral 2comando non dà errore.

Ho anche provato a definire a \newcommandcon lo stesso effetto.

Qualcuno ha idea del perché sia ​​così?

Modifica: dopo aver creato un esempio riproducibile minimo ho capito che il problema ha qualcosa a che fare con il hyperrefpacchetto.

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

Risposte

2 samcarter_is_at_topanswers.xyz Aug 25 2020 at 16:02

Puoi fornire una stringa alternativa per il segnalibro 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}