这是我的代码
\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”就会被排版为一个单词,而不是变量r
、a
、t
和e
的乘积d
。您可能应该在其他地方做同样的事情,例如用P_{\text{AC}}
和P_{\text{DC}}
- 如果你不想以显示样式排版方程式,那么只需
\displaystyle
从\AddLabel
宏中删除 - 我们必须使用
\multicolumn
表头中的第二列和第三列来“关闭”L
和M
类型列的特殊处理 - 在公式(8)中我
eta
改为\eta
- 按照@Mico的建议,我将方程式放入
X
-type 列中,以便它们占据所有可用空间。-type 的定义M
有两个\hfil
命令,以便方程式在列中居中 +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
我提出两种实现方式;你不需要equation
或tabularx
诡计。
最后一列的数字是自动设置的,您也可以指定一个。请注意,无论如何都需要\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
列定义。