我有一张tabular
表格,我想在文本中引用表格中的单元格。一种方法是将单元格内容添加上标:
\begin{table}
\begin{center}
\begin{tabular}{lrr}\hline
This & $99^a$ & $1.23$\\
That & $22$ & $3.45$\\
The Other & $69^b$ & $9.99$\\
\hline
\end{tabular}
\end{center}
\end{table}
I enjoyed `This' (a) and `The Other` (b).
但是如果我重新排列表格的行,字母就会不按字母顺序排列。\label
只使用表格编号作为参考,所以这不起作用。
也许有更好的风格手段可以做到这一点......
答案1
您可以修改\@currentlabel
为任何您想要的,然后像往常一样使用\label
- 。在使用时用作参考组件。下面 MWE 中的命令修改为并将标签设置为:\ref
\@currentlabel
\ref
\speciallabel{<stuff>}{<label>}
\@currentlabel
<stuff>
<label>
\documentclass{article}
\makeatletter
\newcommand{\speciallabel}[2]{% \speciallabel{<stuff>}{<label>}
\edef\@currentlabel{#1}\label{#2}%
}
\makeatother
\begin{document}
\begin{table}
\centering
\begin{tabular}{lrr}\hline
This & $99^a$\speciallabel{a}{this} & $1.23$\\
That & $22$ & $3.45$\\
The Other & $69^b$\speciallabel{b}{theother} & $9.99$\\
\hline
\end{tabular}
\end{table}
I enjoyed `This' (\ref{this}) and `The Other` (\ref{theother}).
\end{document}
没有要求hyperref
住宿。
对于自动计数器样式参考,请考虑以下版本\speciallabel{<label>}
:
\documentclass{article}
\newcounter{spcounter}\renewcommand{\thespcounter}{\alph{spcounter}}
\newcommand{\speciallabel}[1]{% \speciallabel{<label>}
\refstepcounter{spcounter}\textsuperscript{\thespcounter}\label{#1}%
}
\begin{document}
\begin{table}
\centering
\begin{tabular}{lrr}\hline
This & $99\speciallabel{this}$ & $1.23$\\
That & $22$ & $3.45$\\
The Other & $69\speciallabel{theother}$ & $9.99$\\
\hline
\end{tabular}
\end{table}
I enjoyed `This' (\ref{this}) and `The Other` (\ref{theother}).
\end{document}
请注意,这将使计数器在整个文档中递增。但是,如果需要,也可以在table
(或)环境开始时重置它。tabular
答案2
\documentclass{article}
\usepackage{array}
\newcounter{mycount}
\renewcommand\themycount{%
\arabic{mycount}%
\ifcase\value{mycount}%
th\or st\or nd\or rd\else th\fi}
\begin{document}
\begin{table}
\begin{tabular}{>{\refstepcounter{mycount}\themycount}lc}
\multicolumn{1}{c}{Step} & Comments \\
& a \\
\label{here} & b \\
& c \\
& d
\end{tabular}
\caption{}\label{}
\end{table}
blah blah see the \ref{here} row.
\end{document}