Re: Rimuovere le parentesi dagli argomenti di un comando

#65555
Up
0
Down
::

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

Go to top