
Estoy intentando referenciar una etiqueta usando \ref y generar una letra alfabética (por ejemplo, 'A') en lugar del número (por ejemplo, 1).
He leído en alguna parte para usar \AAAlphanum{\ref{my_label}} pero este comando falla
Número faltante, tratado como cero.
Cualquier ayuda es muy apreciada.
Respuesta1
Hay varias formas de lograrlo:
\documentclass{article}
\usepackage{zref,refcount,alphalph,hyperref}
\makeatletter
\zref@newprop{AlphAlphcntr}[??]{\AlphAlph{\value{section}}}
\newcommand{\mylabel}[1]{\zref@labelbyprops{#1}{AlphAlphcntr}}
\newcommand{\myref}[1]{\zref@refused{#1}\zref@extract{#1}{AlphAlphcntr}}
\makeatother
\setlength{\parindent}{0pt}% Just for this example
\begin{document}
\section{A section}\label{sec:mysection}\mylabel{sec:mysection}
Section~\ref{sec:mysection}. \par
Section~\AlphAlph{\getrefnumber{sec:mysection}}. \par
Section~\myref{sec:mysection}.
\end{document}
La primera referencia usa \ref
, que por defecto es lo que \the<counter>
esté configurado (en este caso, \arabic{section}
). La segunda referencia utiliza el ampliable \getrefnumber
proporcionado porrefcount
. La última referencia utiliza una lista de propiedades personalizadas (con la ayuda dezref
) para almacenar y/o recuperar solo la \AlphAlph
versión del section
contador.
Todo lo anterior se puede ampliar para utilizarhyperref
, por supuesto.