
Вот MWE, чтобы в общих чертах показать, чем я занимаюсь.
\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}
Как напечатать \ref{#1}
букву вместо цифры?
решение1
Протокол счетчика LaTeX использует \the<counter>
для получения представления счетчика. Значение по умолчанию — \arabic
, но команду можно переопределить, чтобы получить вместо этого букву:
\renewcommand*{\the@gpp@itemnum}{\alph{gp@itemnum}}
Тогда также \label
и \ref
использует это представление:
\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}