表格中带编号的方程式

表格中带编号的方程式

我正在尝试在表格中写一些带编号的方程式,就像这样在此处输入图片描述

这是我的代码

\begin{table}[]
 \centering
 \begin{tabular}{@{}ll@{}}
\toprule
Performance measure & Definition \\ \midrule
energy & \begin{equation} 
E_{(AC,D)}=\sum_{t=1}^{24}E_{AC,t} 
E_{(AC,m)}=\sum_{d=1}^{N}E_{AC,d} 
\label{eq:Bsp_OhmsLaw}
\end{equation} \\
Reference yield &\begin{equation}  Y_{(R)}=\frac{H_{t}(kWh/m^2)}{G(kW/m^2)} 
\end{equation}\\
\noindent
Array yield & \begin{equation} Y_{(A,d)}=\frac{E_{DC,d}}{P_{pv,rated}}  ,Y_{(A,m)}=\frac{1}{N}\sum_{d=1}^{N}{Y_{A,d}} \end{equation} \\
Final yield &\begin{equation}  Y_{(F,d)}=\frac{E_{AC,d}}{P_{pv,rated}}  ,Y_{(F,m)}=\frac{1}{N}\sum_{d=1}^{N}{Y_{F,d}} \end{equation}\\
Performance ratio &\begin{equation} PR=\frac{Y_{F}}{Y_{R}}
\end{equation} \\
System losses & \begin{equation}L_{S}=Y_{A}-Y_{F}\end{equation} \\
Array capture losses &\begin{equation} L_{c}=Y_{R}-Y_{A}\end{equation} \\
Array efficiency &\begin{equation} eta_{(PV)}=\frac{P_{DC}}{H_{t}*A_{m}}\end{equation} \\
System efficiency &\begin{equation} \eta_{(sys)}=\frac{P_{AC}}{H_{t}*A_{m}} \end{equation} \\
Inverter efficiency & \begin{equation}\frac{P_{AC}}{P_{DC}} \end{equation}\\ \bottomrule
\end{tabular}
\end{table}

我得到了这个结果,但有很多错误 在此处输入图片描述 非常感谢。我真的需要这张桌子

答案1

首先,您的代码无法编译的原因是,您不能equation在表中拥有环境,这是不允许的。您可以将每个方程式作为内联数学放在表中,然后可以使用 强制方程式处于显示模式,就像$...$它们在 中一样。\begin{equation}...\end{equation}$\displaystyle ...$

我认为每个方程都应该有一个相关的引用,最好的方法是使用命令定义两种新的列\newcolumntype类型大批包裹:

\newcolumntype{M}{>{$\displaystyle}c<{$}} % mathematics column
\newcommand\AddLabel[1]{\refstepcounter{equation}(\theequation)\label{#1}}
\newcolumntype{L}{>{\collectcell\AddLabel}r<{\endcollectcell}}% labeled

有了这些,M-type 列将被放入显示样式,L-type 列将具有方程编号,最后一个表格单元格的内容将成为对此方程的引用。要定义L-type 列,我们需要使用胶原细胞提取的内容,以便我们可以使用命令来使用它们\label,这是通过 完成的\AddLabel。该\AddLabel命令还会增加并打印方程编号。

例如,表中的条目之一将是:

Array efficiency    & \eta_{(PV)}=\frac{P_{DC}}{H_{t}*A_{m}} 
                    & eq:ArrayEfficients \\

完成上述操作后,结果表如下所示:

在此处输入图片描述

完整代码如下:

\documentclass{article}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{amsmath}
\usepackage{siunitx}

\usepackage{{makecell}}
\setcellgapes{3pt}\makegapedcells

\usepackage{array,collcell}
\newcommand\AddLabel[1]{%
  \refstepcounter{equation}% increment equation counter
  (\theequation)% print equation number
  \label{#1}% give the equation a \label
}
\newcolumntype{M}{>{\hfil$\displaystyle}X<{$\hfil}} % mathematics column
\newcolumntype{L}{>{\collectcell\AddLabel}r<{\endcollectcell}}

\newcommand\PV{P_{\text{pv,rated}}}

\begin{document}

\begin{table}[]
 \begin{tabularx}\textwidth{@{}lML@{}}
 \toprule
 \textbf{Performance measure} & \multicolumn{1}{l}{\textbf{Definition}}
                              & \multicolumn{1}{l}{}\\ \midrule
  Energy              & E_{(AC,D)}=\sum_{t=1}^{24}E_{AC,t}, E_{(AC,m)}=\sum_{d=1}^{N}E_{AC,d}
                      & eq:BspOhmsLaw \\
  Reference yield     & Y_{(R)}=\frac{H_{t} (\si{kWh/m^2})}{G (\si{kW/m^2})}
                      & eq:ReferenceYield \\
  Array yield         & Y_{(A,d)}=\frac{E_{DC,d}}{\PV} ,
                        Y_{(A,m)}=\frac{1}{N}\sum_{d=1}^{N}{Y_{A,d}}
                      & eq:ArrayYield \\
  Final yield         &  Y_{(F,d)}=\frac{E_{AC,d}}{\PV},
                        Y_{(F,m)}=\frac{1}{N}\sum_{d=1}^{N}{Y_{F,d}}
                      & eq:FinalYield\\
  Performance ratio   & PR=\frac{Y_{F}}{Y_{R}}
                      & eq:PerformanceYield \\
  System losses       & L_{S}=Y_{A}-Y_{F}
                      & eq:SystemLosses\\
  Array capture losses& L_{c}=Y_{R}-Y_{A}
                      & eq:SystemLosses\\
  Array efficiency    & \eta_{(PV)}=\frac{P_{DC}}{H_{t}\cdot A_{m}}
                      & eq:ArrayEfficients\\
  System efficiency   & \eta_{(sys)}=\frac{P_{AC}}{H_{t}\cdot A_{m}}
                      & eq:SystemEfficients\\
  Inverter efficiency & \frac{P_{AC}}{P_{DC}}
                      & eq:InverterEfficiency\\
  \bottomrule
  \end{tabularx}
\end{table}

Here are some nice references:
\ref{eq:BspOhmsLaw}, \ref{eq:ArrayYield} and  \ref{eq:InverterEfficiency}.
\end{document}

请注意

  • 我已经tabular用全宽替换了环境tabularx使用表格型包裹
  • 我已经P_{pv,rated}用宏替换了\PV。宏最重要的部分是它用 替换了它,\P_{\text{pv,rated}}这样“rated”就会被排版为一个单词,而不是变量rate的乘积d。您可能应该在其他地方做同样的事情,例如用P_{\text{AC}}P_{\text{DC}}
  • 如果你不想以显示样式排版方程式,那么只需\displaystyle\AddLabel宏中删除
  • 我们必须使用\multicolumn表头中的第二列和第三列来“关闭”LM类型列的特殊处理
  • 在公式(8)中我eta改为\eta
  • 按照@Mico的建议,我将方程式放入X-type 列中,以便它们占据所有可用空间。-type 的定义M有两个\hfil命令,以便方程式在列中居中
  • 根据@Zarko 的建议,我使用了希尼奇方程(2)中单位的包,我使用了制造细胞包装使不同公式的间距更加一致

  • +1 使用书签

答案2

修改自 --表格环境中的方程和子方程编号

在此处输入图片描述

\documentclass{article}
\usepackage{mathtools}
\newcounter{tableeqn}[table]
\renewcommand{\thetableeqn}{\thetable.\arabic{tableeqn}}
\newcounter{tablesubeqn}[tableeqn]
\renewcommand{\thetablesubeqn}{\thetableeqn\alph{tablesubeqn}}

\begin{document}
\begin{table}\centering
\stepcounter{table}% for \thetable
\def\arraystretch{2.5}
\begin{tabular}{llr}\hline
Energy & $E_{(AC,D)}=\sum_{t=1}^{24}E_{AC,t} E_{(AC,m)}=\sum_{d=1}^{N}E_{AC,d}$ &
\refstepcounter{tableeqn} (\thetableeqn)\label{eq:Bsp_OhmsLaw}\\
Continuity & $\displaystyle\frac{\partial \rho}{\partial t}+\nabla\cdot ( \rho\mathbf{V} )=0$ &
\refstepcounter{tableeqn} (\thetableeqn)\label{continuity_1} \\
Reference yield &$  Y_{(R)}=\frac{H_{t}(kWh/m^2)}{G(kW/m^2)}$ &
\stepcounter{tableeqn}\refstepcounter{tablesubeqn}(\thetablesubeqn) \\
\hline\end{tabular}
\addtocounter{table}{-1}%
\caption{Performance Measures}\label{NS_eqt}\end{table}
\end{document}

答案3

我提出两种实现方式;你不需要equationtabularx诡计。

最后一列的数字是自动设置的,您也可以指定一个。请注意,无论如何都需要\label尾随。&

\documentclass{article}
\usepackage{siunitx,booktabs,array}

\usepackage{lipsum}

\begin{document}

\begin{table}[!tp]

\begin{tabular*}{\textwidth}{
  @{\extracolsep{\fill}}
  l
  >{$\displaystyle}c<{\vphantom{\sum_{1}{N}}$}
  >{\refstepcounter{equation}(\theequation)}r
  @{}
}
\toprule
Performance measure & \multicolumn{1}{c}{Definition} & \multicolumn{1}{c}{} \\
\midrule
Energy &
  E_{(AC,D)}=\sum_{t=1}^{24}E_{AC,t},
  \qquad
  E_{(AC,m)}=\sum_{d=1}^{N}E_{AC,d} &
  \label{eq:Bsp_OhmsLaw}
\\
Reference yield &
  Y_{(R)}=\frac{H_{t}}{G}\quad \frac{(\si{kWh/m^2})}{(\si{kW/m^2})} &
\\
Array yield & 
  Y_{(A,d)}=\frac{E_{DC,d}}{P_{pv,\mathrm{rated}}},
  \qquad
  Y_{(A,m)}=\frac{1}{N}\sum_{d=1}^{N}{Y_{A,d}} &
\\
Final yield &
  Y_{(F,d)}=\frac{E_{AC,d}}{P_{pv,\mathrm{rated}}},
  \qquad
  Y_{(F,m)}=\frac{1}{N}\sum_{d=1}^{N}{Y_{F,d}} &
\\
Performance ratio &
  PR=\frac{Y_{F}}{Y_{R}} &
\\
System losses &
  L_{S}=Y_{A}-Y_{F} &
\\
Array capture losses &
  L_{c}=Y_{R}-Y_{A} &
\\
Array efficiency &
  \eta_{(PV)}=\frac{P_{DC}}{H_{t}*A_{m}} &
\\
System efficiency &
  \eta_{(sys)}=\frac{P_{AC}}{H_{t}*A_{m}} &
\\
Inverter efficiency &
  \frac{P_{AC}}{P_{DC}} &
\\
\bottomrule
\end{tabular*}
\end{table}

\lipsum[1-3]

\begin{table}[!tp]

\begin{tabular*}{\textwidth}{
  @{\extracolsep{\fill}}
  l
  >{$\displaystyle}l<{\vphantom{\sum_{1}{N}}$}
  >{\refstepcounter{equation}(\theequation)}r
  @{}
}
\toprule
Performance measure & \multicolumn{1}{c}{Definition} & \multicolumn{1}{c}{} \\
\midrule
Energy &
  E_{(AC,D)}=\sum_{t=1}^{24}E_{AC,t},
  \qquad
  E_{(AC,m)}=\sum_{d=1}^{N}E_{AC,d} &
  \label{eq:Bsp_OhmsLaw}
\\
Reference yield &
  Y_{(R)}=\frac{H_{t}}{G}\quad \frac{(\si{kWh/m^2})}{(\si{kW/m^2})} &
\\
Array yield & 
  Y_{(A,d)}=\frac{E_{DC,d}}{P_{pv,\mathrm{rated}}},
  \qquad
  Y_{(A,m)}=\frac{1}{N}\sum_{d=1}^{N}{Y_{A,d}} &
\\
Final yield &
  Y_{(F,d)}=\frac{E_{AC,d}}{P_{pv,\mathrm{rated}}},
  \qquad
  Y_{(F,m)}=\frac{1}{N}\sum_{d=1}^{N}{Y_{F,d}} &
\\
Performance ratio &
  PR=\frac{Y_{F}}{Y_{R}} &
\\
System losses &
  L_{S}=Y_{A}-Y_{F} &
\\
Array capture losses &
  L_{c}=Y_{R}-Y_{A} &
\\
Array efficiency &
  \eta_{(PV)}=\frac{P_{DC}}{H_{t}*A_{m}} &
\\
System efficiency &
  \eta_{(sys)}=\frac{P_{AC}}{H_{t}*A_{m}} &
\\
Inverter efficiency &
  \frac{P_{AC}}{P_{DC}} &
\\
\bottomrule
\end{tabular*}
\end{table}

\lipsum[1-20]

\end{document}

制作说明:上述\lipsum命令只是为了让两个表格出现在最上面,方便制作图片。

在此处输入图片描述

您可能不想使用标准equation计数器。只需定义一个新的计数器,并使用它代替equation列定义。

相关内容