Wie konvertiere ich die von \ref{item} zurückgegebene Nummer in einen Buchstaben?

Wie konvertiere ich die von \ref{item} zurückgegebene Nummer in einen Buchstaben?

Hier ist ein MWE, um im Wesentlichen zu zeigen, was ich mache.

\documentclass{standalone}
\begin{document}
\makeatletter
\newcounter{gp@itemnum}\setcounter{gp@itemnum}{0}
\newcommand*{\gp@newprint@itemnum}{\refstepcounter{gp@itemnum}(\alph{gp@itemnum})}
\newcommand*{\gpnewitem}[1]{\gp@newprint@itemnum\label{#1}}
\newcommand*{\gpgetitemref}[1]{Item (\ref{#1})}
\makeatother

New item: \gpnewitem{test}
Ref new item: \gpgetitemref{test}
\end{document}

Wie kann ich \ref{#1}einen Buchstaben statt einer Zahl drucken?

Antwort1

Das LaTeX-Zählerprotokoll verwendet , \the<counter>um die Zählerdarstellung abzurufen. Der Standardwert ist \arabic, aber der Befehl kann neu definiert werden, um stattdessen einen Buchstaben abzurufen:

\renewcommand*{\the@gpp@itemnum}{\alph{gp@itemnum}}

Dann wird auch \labeldiese \refDarstellung verwendet:

\documentclass{standalone}
\begin{document}
\makeatletter
\newcounter{gp@itemnum}\setcounter{gp@itemnum}{0}
\renewcommand*{\thegp@itemnum}{\alph{gp@itemnum}}
\newcommand*{\gp@newprint@itemnum}{\refstepcounter{gp@itemnum}(\thegp@itemnum)}
\newcommand*{\gpnewitem}[1]{\gp@newprint@itemnum\label{#1}}
\newcommand*{\gpgetitemref}[1]{Item (\ref{#1})}
\makeatother

New item: \gpnewitem{test}
Ref new item: \gpgetitemref{test}
\end{document}

Ergebnis

verwandte Informationen