
Estou tentando refutar um rótulo usando \ref e gerar uma letra alfabética (por exemplo, 'A') em vez do número (por exemplo, 1).
Eu li em algum lugar para usar \AAAlphanum{\ref{my_label}} mas este comando falha
Número faltando, tratado como zero.
Qualquer ajuda é muito apreciada.
Responder1
Existem várias maneiras de conseguir isso:
\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}
A primeira referência usa \ref
, cujo padrão é o valor \the<counter>
definido (neste caso, \arabic{section}
). A segunda referência usa o expansível \getrefnumber
fornecido porrefcount
. A última referência usa uma lista de propriedades personalizadas (com a ajuda dezref
) para armazenar e/ou recuperar apenas a \AlphAlph
versão - do section
contador.
Todos os itens acima podem ser estendidos para usarhyperref
, claro.