![如何使用 \ref 按照计数器最初生成的方式打印其值?](https://linux22.com/image/316082/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20%5Cref%20%E6%8C%89%E7%85%A7%E8%AE%A1%E6%95%B0%E5%99%A8%E6%9C%80%E5%88%9D%E7%94%9F%E6%88%90%E7%9A%84%E6%96%B9%E5%BC%8F%E6%89%93%E5%8D%B0%E5%85%B6%E5%80%BC%EF%BC%9F.png)
我想用罗马数字对表格中的行进行编号,然后当我交叉引用它们时,以相同的方式打印参考。
例如,
\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}
给出
但我想要的是:
答案1
每个计数器都有一个名为的宏\the...
,假设计数器foo
将有\thefoo
。此\the...
宏默认使用阿拉伯数字输出计数器值。
\thefoo
也用于标签,因为它会被写入文件.aux
。如果(i)
请求格式 ,则必须将其写入.aux
文件,并在 中使用\thefoo
。
所以
\renewcommand{\thefoo}{(\roman{foo})}
是游戏的名称;-)
\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}
这是自动行编号版本
\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}
答案2
\label
写入\theX
最后一个计数器X
,因此相应地更新它:
\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}
作为参考,请参阅了解引用和标签的工作原理。