我正在用 LaTeX 制作一个表格,其中包含 3 列的参考文献、公式和公式编号。文本中也有公式,表格中的公式应该按顺序编号(因此,如果文本中有“(1)”,则表格中的下一个公式是“(2)”)。
这是我的表格。第三列是方程编号(我在网上查了一番后找到了这段代码):
\begin{table}[htbp]
\centering
\caption{Test Caption.}
\begin{tabular}{llc}
\hline
\textbf{reference} & \textbf{correlation} \\
\hline
reference 1 & $a = b$
& \stepcounter{equation}(\theequation)
\\
\hline
\end{tabular}
\label{tab:test}
\end{table}
我的问题:如何在文本中引用表格中的公式?我尝试使用命令,\label{...}
但没有给出正确的公式编号。然后我尝试了 phantomsection 命令(在包含公式和公式编号的单元格中)
\phantomsection \label{xxx}
这样就可以跳转到正确的位置,但是文本中的方程编号并不正确。
是否可以在文中引用这个方程式并给出正确的方程式编号?
输出应该是这样的:“如在 Eq.(xxx) 中所见...”其中 xxx 是表中方程的编号。
答案1
您需要\refstepcounter
在这里。这不仅会步进计数器(类似于\stepcounter
),而且还会更新引用(存储在中\@currentlabel
):
\documentclass{article}
%\usepackage{hyperref}
\usepackage{amsmath}
\begin{document}
\begin{equation}
f(x) = ax^2 + bx + c
\end{equation}
See Table~\ref{tab:test} and equation~\eqref{eq:tbl}.
\begin{table}
\centering
\caption{A table caption.}\label{tab:test}
\begin{tabular}{llc}
\hline
\textbf{reference} & \textbf{correlation} \\
\hline
reference 1 & $a = b$
& \refstepcounter{equation}(\theequation)\label{eq:tbl}
\\
\hline
\end{tabular}
\end{table}
\end{document}
请注意,示例还突出显示了手动设置作为漂浮。标签可能与文本的其余部分不按顺序显示(其中(2)
出现前 (1)
)。
上述示例也适用于hyperref
。