Como usar \ref para imprimir o valor de um contador da forma como foi produzido originalmente?

Como usar \ref para imprimir o valor de um contador da forma como foi produzido originalmente?

Quero numerar as linhas de uma tabela com algarismos romanos e, quando fizer referência cruzada, a referência será impressa da mesma maneira.

Por exemplo,

\documentclass{article}
\begin{document}
\newcounter{foo}
\newcommand{\rfoo}{\refstepcounter{foo}(\roman{foo})}

\begin{tabular}{r|l}

\hline

\rfoo\label{f1} & First line \\ \hline

\rfoo\label{f2} & Second line \\ \hline

\hline
\end{tabular}

\

The first line is \ref{f1}.  The second line is \ref{f2}.

\end{document}

insira a descrição da imagem aqui

Mas o que eu quero é:

insira a descrição da imagem aqui

Responder1

Cada contador tem uma macro chamada \the..., digamos que o contador footerá \thefoo. Esta \the...macro faz por padrão a saída do valor do contador com números arábicos.

\thefooé usado também para o rótulo conforme ele é gravado no .auxarquivo. Se format (i), for solicitado, ele deverá ser escrito no .auxarquivo e usado em \thefoo.

Então

\renewcommand{\thefoo}{(\roman{foo})}

é o nome do jogo ;-)

\documentclass{article}



\newcounter{foo}
\renewcommand{\thefoo}{(\roman{foo})}
\newcommand{\rfoo}{\refstepcounter{foo}\thefoo}

\begin{document} 
\begin{tabular}{r|l}

\hline

\rfoo\label{f1} & First line \\ \hline

\rfoo\label{f2} & Second line \\ \hline

\hline
\end{tabular}



The first line is \ref{f1}.  The second line is \ref{f2}.

\end{document}

insira a descrição da imagem aqui

Aqui a versão de numeração automática de linhas

\documentclass{article}


\usepackage{array}

\newcounter{foo}
\renewcommand{\thefoo}{(\roman{foo})}

% Define
\newcolumntype{R}{>{\refstepcounter{foo}\thefoo\arraybackslash}r}

\begin{document}

\begin{tabular}{R|l}

\hline

\label{f1} & First line \\ \hline

\label{f2} & Second line \\ \hline

 & ... line \\ \hline

\label{f4}  & ... line \\ \hline


\hline
\end{tabular}

\

The first line is \ref{f1}.  The second line is \ref{f2}.

And in line \ref{f4} you can see that

\end{document}

insira a descrição da imagem aqui

Responder2

\labelgravação \theXdo último contador X, então atualize isso de acordo:

insira a descrição da imagem aqui

\documentclass{article}

\newcounter{foo}
\renewcommand{\thefoo}{(\roman{foo})}
\newcommand{\rfoo}{\refstepcounter{foo}\thefoo}

\begin{document}

\begin{tabular}{r|l}
  \hline
  \rfoo\label{f1} & First line \\
  \rfoo\label{f2} & Second line \\
  \hline
\end{tabular}

The first line is~\ref{f1}. The second line is~\ref{f2}.

\end{document}

Como referência, vejaCompreender como funcionam as referências e rótulos.

informação relacionada