![表格内的交叉引用](https://linux22.com/image/299136/%E8%A1%A8%E6%A0%BC%E5%86%85%E7%9A%84%E4%BA%A4%E5%8F%89%E5%BC%95%E7%94%A8.png)
我定义了一个新的计数器来跟踪表中列出的化学反应
\begin{table}
\begin{tabular}{clccr} \hline
\# & Reaction & $\log_{10}A$ & $n$ & $E_A$ \\ \hline
\rxn & 2(3H)-furanone $\to$~2-propenal + CO & 23 & 1.234 & 202.3 \\
\rxn & 2(3H)-furanone $\to$~4-oxo-3-butenal & 23 & 1.234 & 202.3 \\
\rxn & 2(3H)-furanone $\to$~2-butenedial & 23 & 1.234 & 202.3 \\
\rxn & 2(3H)-furanone $\to$~2-furanol & 23 & 1.234 & 202.3 \\ \hline
\end{tabular}
\caption{High-pressure limit rate constant parameters; units: s$^{-1}$, kJ mol$^{-1}$}
\label{kinetics}
\end{table}
但是我如何交叉引用呢?例如,在正文中reaction~\ref{a} has a much higher barrier than reaction~\ref{d} ...
LaTeX 和普通的旧文章类;计数器在序言中设置为:
\newcounter{iso} % A new counter to track chemical reactions aka "equations"
\setcounter{iso}{1} %
\newcommand{\rxn}{(\oldstylenums{\theiso})\stepcounter{iso}}% Tabular numbering
约翰
答案1
你\refstepcounter
不需要\stepcounter
使用它前打印数字\theiso
,因此也删除该行
\setcounter{iso}{1} %
然后您可以找到\rxn\label{foo}
您需要引用的任何行并 \ref{foo}
引用它。
答案2
您需要使用\refstepcounter
而不是\stepcounter
来增加计数器变量iso
,和您需要\label
在“iso”计数器递增(并显示)后提供指令。
如果您在序言中提供以下说明,则可以获得自动生成的标签:
\newcounter{iso}
\newcommand{\rxn}{\refstepcounter{iso}%
\label{iso:\theiso}%
(\oldstylenums{\theiso})}
然后,您可以通过输入以下内容交叉引用第三个“方程式”
\ref{iso:3}
附录:如果您想要符号名称而不是\label
与部分或全部“方程式”相关联的自动名称,您可以采用传统方式获取它们,即\label{rxn:whatever}
在单元格中输入后 \rxn
。
我假设您希望将交叉引用的数字排版为“旧式”并用括号括起来。如果您有多个这样的交叉引用,则有必要设置一个专用宏,例如(\osref
“旧式 \ref”的缩写),以简化创建这些交叉引用的过程:
\newcommand\osref[1]{(\oldstylenums{\ref{#1}})}
设置完这个宏后,你可以输入类似
As shown by reaction~\osref{rxn:whatever}, \ldots
生成正确格式的交叉引用。