antonio.macrì” post=64633Riporto il problema reale che sto affrontando: usare \getrefnumber quando vengono ridefiniti gli enumerate. Per esempio, in suftesi a un certo punto si fa:
`\setenumerate[1]{font=\normalfont,leftmargin=0pt,label=\arabic*}`
e questo comporta che nel file aux vengano salvate le label con parentesi graffe in più (che mi sembrano) del tutto inutili.Esempio completo:
`
\documentclass[11pt,a4paper]{suftesi}
\usepackage{itnumpar,hyperref,lipsum}\def\ordrefm#1{\printordinalem{\getrefnumber{#1}}}
\begin{document}
\chapter{Numerato}
\label{cap}Lista:
\begin{enumerate}
\item aaaa
\item \label{item:due} bbb.
\end{enumerate}Riferimento al capitolo: \ordrefm{cap}; riferimento alla lista: \ordrefm{item:due}.
\end{document}`
che genera nel file aux una riga con:
`\newlabel{item:due}{{{{2}}}{1}{Numerato\relax }{Item.2}{}}`
(evidenzio quel {{{2}}}).Ora, quando \printordinalem si vede quelle parentesi in più, si lamenta perché vuole un numero. Inoltre, se specifico come opzione di \setenumerate anche ref=\arabic*, compare un gruppo di parentesi in meno, ma il problema di fondo rimane.
Come faccio a eliminare quelle parentesi extra?
Grazie,
Antonio
È un evidente baco di enumitem.
`\makeatletter
\def\ordrefm#1{\begingroup\edef\x{\getrefnumber{#1}}%
\edef\x{\expandafter\@firstofone\x}%
\edef\x{\endgroup\noexpand\printordinalem{\x}}\x}
\makeatother`
Ciao
Enrico