
Quiero numerar las líneas de una tabla con números romanos, y luego, cuando las haga una referencia cruzada, imprimir la referencia de la misma manera.
Por ejemplo,
\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}
da
Pero lo que quiero es:
Respuesta1
Cada contador tiene una macro asociada llamada \the...
, digamos que el contador foo
tendrá \thefoo
. Esta \the...
macro genera por defecto el valor del contador con números arábigos.
\thefoo
se utiliza también para la etiqueta tal como se escribe en el .aux
archivo. Si (i)
se solicita el formato , este debe escribirse en el .aux
archivo y debe usarse en \thefoo
.
Entonces
\renewcommand{\thefoo}{(\roman{foo})}
es el nombre del juego ;-)
\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}
Aquí la versión de numeración automática de filas.
\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}
Respuesta2
\label
escriba \theX
el último contador X
, así que actualice esto en consecuencia:
\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 referencia, verComprender cómo funcionan las referencias y las etiquetas.