表格内的交叉引用

表格内的交叉引用

我定义了一个新的计数器来跟踪表中列出的化学反应

\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

生成正确格式的交叉引用。

相关内容