我怎样才能显示带有方程式的表格?我试了很多次,但找不到任何显示表格的解决方案
\documentclass{article}
\usepackage[margin=25mm]{geometry}
\usepackage{mathtools}
\usepackage[table]{xcolor}
\usepackage{booktabs, collcell, makecell, tabularx, threeparttable, multirow}
\newcommand{\tclr}[1]{\textcolor{blue!70!black}{#1}}
\newcolumntype{L}{>{\collectcell\tclr\raggedright}X<{\endcollectcell}}
%{\textwidth}{@{} >{\raggedright\arraybackslash}X >{$\displaystyle}l<{$} @{}}
\usepackage{xparse}
\NewExpandableDocumentCommand\mcc{O{1}m}
{\multicolumn{#1}{c}{#2}}
\DeclarePairedDelimiter{\abs}{\mid}{\mid}
\begin{document}
\begin{table}
\centering
\begin{tabularx}{\textwidth}{@{}
L l
*{3}{>{$\displaystyle}l<{$}S}
@{}}
\toprule
MOP & Definition & Constraints\\
\midrule
\multirow{3}{*}{Schaffer Problem}
& $F=(f_1(x),f_2(x))$ & $-10^5\leq x\leq 10^5$ \\
& $f_1(x)=x^2,$ & \\
& $f_2(x)=(x-2)^2$ & \\
\midrule
\multirow{4}{*}{Viennet (3)}
& $ F=(f_1(x,y),f_2(x,y),f_3(x,y))$ & $-4\leq x,y\leq4 $ \\
& $ f_1(x,y)=0.5(x^2+y^2)+sin(x^2+y^2),$ & \\
& $ f_2(x,y)=\frac{(3x-2y+4)^2}{8}+\frac{(x-y+1)^2}{27}+15,$ & \\
& $ f_3(x,y)=\frac{1}{x^2+y^2+1}-1.1 e^{-x^2-y^2}$ & \\
\midrule
\multirow{3}{*}{Kursawe problem}
& $ F=(f_1(\mathbf{x}),f_2(\mathbf{x}))$ & $-5\leq x_i\leq5$ \\
& $ f_1(\mathbf{x})=\sum_{i=1}^{n-1}\left(-10 \exp\left(-0.2\sqrt{x_i^2+y_{i+1}^2}\right)\right),$ & $i=1,2,3$ \\
& $ f_2(\mathbf{x})=\sum_{i=1}^n\left(\abs{x_i}^{0.8}+5 sin(x_i^3)\right)$ & \\
\midrule
\multirow{4}{*}{Dep problem}
& $ F=(f_1(x,y),f_2(x,y))$ & $0\leq x,y\leq1$ \\
& $ f_1(x,y)=x$, & \\
& $ f_2(x,y)=(1+10y)\Bigl(1-\Bigl(\frac{x}{1+10y}\Bigr)^2- $ & \\
& $ \qquad \qquad \frac{x}{1+10y}sin(2p\pi x)\Bigr)$ & \\
\bottomrule
\end{tabularx}
\caption{Unconstrained Functions}
\label{unconstrained}
\end{table}
\end{document}
答案1
重要的事情优先。处理新事物、获得新技能等时,要保持简单,只做包含严格必要信息的示例。其他一切都会造成干扰,并使事情容易出错。这就是背后的哲学平均能量损失s. 您将阅读我用来查找问题的所有方法的答案,使用此表确定您的目标,然后应用解决方案。
话虽如此,我发现的第一个问题是: 。您使用了未定义的Package array Error: Illegal pream-token (S): 'c' used. \end{tabularx}
名为的列类型。您还定义了(或让其他人给您定义)未使用的内容。因此,下一步,将 的用法更改为任何基本用法,例如或。接下来,还要删除不必要的包和命令。S
S
l
c
此时,我们有了第一个工作表:\begin{tabularx}{\textwidth}{@{} l l c @{}}
。现在雨已经停了。
很明显,您使用的sin
是 而不是\sin
。已检查并更正。您创建了一个特殊的\abs
分隔符,因为它可能容易出错,我将其删除并让它|x_i|
被使用。如果在其他任何地方都需要,请重新插入它。
最后我明白了你的真正意图\newcolumntype
。你想要一个包含以下内容的列\displaystyle
。遵循此答案
我创建了:\newcolumntype{L}{>{$\displaystyle} l <{$}}
。L
在应用时tabularx
我们收到错误:Missing $ inserted. \end{tabularx}
。基本上,我们使用了$
两次,所以让我们删除它(工作Search and Replace
:)。我选择创建一个新表,以便清晰且具有指导意义。
我在第二张表中使用了它们\textrm{Definition}
,\text{Constraints}
因为它们是文本,而不是数学。您可以在两个命令选项之间进行选择。最后,让我们使用\renewcommand{\arraystretch}{1.8}
:
使表格更加易读。
MWE 如下:
\documentclass{article}
\usepackage[margin=25mm]{geometry}
\usepackage{mathtools}
\usepackage{booktabs, tabularx, multirow}
\newcolumntype{L}{>{$\displaystyle} l <{$}}
\begin{document}
\begin{table}
\centering
\begin{tabularx}{\textwidth}{@{} l l c @{}}
\toprule
MOP & Definition & Constraints \\
\midrule
\multirow{3}{*}{Schaffer Problem} & $F=(f_1(x),f_2(x))$ & $-10^5\leq x\leq 10^5$ \\
& $f_1(x)=x^2$ & \\
& $f_2(x)=(x-2)^2$ & \\
\midrule
\multirow{4}{*}{Viennet (3)} & $F=(f_1(x,y),f_2(x,y),f_3(x,y))$ & $-4\leq x,y\leq4 $ \\
& $f_1(x,y)=0.5(x^2+y^2)+\sin(x^2+y^2)$ & \\
& $f_2(x,y)=\frac{(3x-2y+4)^2}{8}+\frac{(x-y+1)^2}{27}+15$ & \\
& $f_3(x,y)=\frac{1}{x^2+y^2+1}-1.1 e^{-x^2-y^2}$ & \\
\midrule
\multirow{3}{*}{Kursawe problem} & $F=(f_1(\mathbf{x}),f_2(\mathbf{x}))$ & $-5\leq x_i\leq5$ \\
& $f_1(\mathbf{x})=\sum_{i=1}^{n-1}\left(-10 \exp\left(-0.2\sqrt{x_i^2+y_{i+1}^2}\right)\right)$ & $i=1,2,3$ \\
& $f_2(\mathbf{x})=\sum_{i=1}^n\left(|{x_i}|^{0.8}+5 \sin(x_i^3)\right)$ & \\
\midrule
\multirow{3}{*}{Dep problem} & $F=(f_1(x,y),f_2(x,y))$ & $0\leq x,y\leq1$ \\
& $f_1(x,y)=x$ & \\
& $f_2(x,y)=(1+10y)\Bigl(1-\Bigl(\frac{x}{1+10y}\Bigr)^2- \frac{x}{1+10y}\sin(2p\pi x)\Bigr)$ & \\
\bottomrule
\end{tabularx}
\end{table}
\begin{table}
\renewcommand{\arraystretch}{1.8}
\centering
\begin{tabularx}{\textwidth}{@{} l L L @{}}
\toprule
MOP & \textrm{Definition} & \text{Constraints} \\
\midrule
\multirow{3}{*}{Schaffer Problem} & F=(f_1(x),f_2(x)) & -10^5\leq x\leq 10^5 \\
& f_1(x)=x^2 & \\
& f_2(x)=(x-2)^2 & \\
\midrule
\multirow{4}{*}{Viennet (3)} & F=(f_1(x,y),f_2(x,y),f_3(x,y)) & -4\leq x,y\leq4 \\
& f_1(x,y)=0.5(x^2+y^2)+\sin(x^2+y^2) & \\
& f_2(x,y)=\dfrac{(3x-2y+4)^2}{8}+\frac{(x-y+1)^2}{27}+15 & \\
& f_3(x,y)=\dfrac{1}{x^2+y^2+1}-1.1 e^{-x^2-y^2} & \\
\midrule
\multirow{3}{*}{Kursawe problem} & F=(f_1(\mathbf{x}),f_2(\mathbf{x})) & -5\leq x_i\leq5 \\
& f_1(\mathbf{x})=\sum_{i=1}^{n-1}\left(-10 \exp\left(-0.2\sqrt{x_i^2+y_{i+1}^2}\right)\right) & i=1,2,3 \\
& f_2(\mathbf{x})=\sum_{i=1}^n\left(|{x_i}|^{0.8}+5 \sin(x_i^3)\right) & \\
\midrule
\multirow{3}{*}{Dep problem} & F=(f_1(x,y),f_2(x,y)) & 0\leq x,y\leq1 \\
& f_1(x,y)=x & \\
& f_2(x,y)=(1+10y)\Bigl(1-\Bigl(\frac{x}{1+10y}\Bigr)^2- \frac{x}{1+10y}\sin(2p\pi x)\Bigr) & \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}
第一个表带有$
默认\arraystretch
。
第二张表使用\newcolumntype
withdisplaystyle
和\renewcommand{\arraystretch}{1.8}
。
答案2
使用tabularray
显示数学和内联数学模式中的列,表格代码很简单:
\documentclass{article}
\usepackage[margin=25mm]{geometry}
\usepackage{tabularray}
\UseTblrLibrary{amsmath, booktabs}
\begin{document}
\begin{table}
\begin{tblr}{colspec ={@{} l X[l, mode=dmath] Q[c,mode=math] @{}},
row{1} = {mode=text},
rowsep = 3pt
}
\toprule
MOP & Definition
& Constraints \\
\midrule
\SetCell[r=3]{l} Schaffer Problem
& F=(f_1(x),f_2(x))
& -10^5\leq x\leq 10^5 \\
& f_1(x)=x^2
& \\
& f_2(x)=(x-2)^2
& \\
\midrule
\SetCell[r=4]{l} Viennet (3)
& F=(f_1(x,y),f_2(x,y),f_3(x,y))
& -4\leq x,y\leq4 \\
& f_1(x,y)=0.5(x^2+y^2)+\sin(x^2+y^2)
& \\
& f_2(x,y)=\frac{(3x-2y+4)^2}{8}+\frac{(x-y+1)^2}{27}+15
& \\
& f_3(x,y)=\frac{1}{x^2+y^2+1}-1.1 e^{-x^2-y^2}
& \\
\midrule
\SetCell[r=3]{l} Kursawe problem
& F=(f_1(\mathbf{x}),f_2(\mathbf{x}))
& -5\leq x_i\leq5 \\
& f_1(\mathbf{x})=\sum_{i=1}^{n-1}\left(-10 \exp\left(-0.2\sqrt{x_i^2+y_{i+1}^2}\right)\right)
& i=1,2,3 \\
& f_2(\mathbf{x})=\sum_{i=1}^n\left(|{x_i}|^{0.8}+5 \sin(x_i^3)\right)
& \\
\midrule
\SetCell[r=3]{c} Dep problem
& F=(f_1(x,y),f_2(x,y))
& 0\leq x,y\leq1 \\
& f_1(x,y)=x
& \\
& f_2(x,y)=(1+10y)\Bigl(1-\Bigl(\frac{x}{1+10y}\Bigr)^2- \frac{x}{1+10y}\sin(2p\pi x)\Bigr)
& \\
\bottomrule
\end{tblr}
\end{table}
\end{document}
答案3
您可能会用到\multirow
这个,但是我不愿意这么做。
我通过在单个顶部对齐的中陈述方程式和约束来解决问题array
;行被分开以\addlinespace
添加一些空气(更改\arraystretch
也不会起作用)。
\documentclass{article}
\usepackage[margin=25mm]{geometry}
\usepackage{mathtools}
\usepackage[table]{xcolor}
\usepackage{booktabs,array}
\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}
\ExplSyntaxOn
\NewDocumentCommand{\addvertspaces}{m}
{
\seq_set_split:Nnn \l_tmpa_seq { \\ } { #1 }
\seq_use:Nn \l_tmpa_seq { \\ \addlinespace }
}
\ExplSyntaxOff
\begin{document}
\begin{table}[htp]
\centering
% a local command to ease input
\newcommand{\prob}[1]{$\begin{array}[t]{@{}>{\displaystyle}l@{}}\addvertspaces{#1}\end{array}$}
\newcommand{\constr}[1]{$\begin{array}[t]{@{}c@{}}\addvertspaces{#1}\end{array}$}
\begin{tabular*}{\textwidth}{
@{}
>{\color{blue!70!black}}l
@{\extracolsep{\fill}}
l
c
@{}
}
\toprule
MOP & Definition & Constraints\\
\midrule
Schaffer Problem &
\prob{
F=(f_1(x),f_2(x)) \\
f_1(x)=x^2, \\
f_2(x)=(x-2)^2
} &
\constr{-10^5\leq x\leq 10^5} \\
\midrule
Viennet (3) &
\prob{
F=(f_1(x,y),f_2(x,y),f_3(x,y)) \\
f_1(x,y)=0.5(x^2+y^2)+\sin(x^2+y^2), \\
f_2(x,y)=\frac{(3x-2y+4)^2}{8}+\frac{(x-y+1)^2}{27}+15, \\
f_3(x,y)=\frac{1}{x^2+y^2+1}-1.1 e^{-x^2-y^2}
} &
\constr{-4\leq x,y\leq4} \\
\midrule
Kursawe problem &
\prob{
F=(f_1(\mathbf{x}),f_2(\mathbf{x})) \\
f_1(\mathbf{x})=\sum_{i=1}^{n-1}\bigl(-10 \exp(-0.2\sqrt{\smash[b]{x_i^2+y_{i+1}^2}}\,)\bigr), \\
f_2(\mathbf{x})=\sum_{i=1}^n \bigl(\abs{x_i}^{0.8}+5 \sin(x_i^3)\bigr)
} &
\constr{i=1,2,3 \\ -5\leq x_i\leq5} \\
\midrule
Dep problem &
\prob{
F=(f_1(x,y),f_2(x,y)) \\
f_1(x,y)=x, \\
f_2(x,y)=(1+10y)\Bigl(1-\Bigl(\frac{x}{1+10y}\Bigr)^2
-\frac{x}{1+10y}\sin(2p\pi x)\Bigr)
} &
\constr{0\leq x,y\leq1} \\
\bottomrule
\end{tabular*}
\caption{Unconstrained Functions}
\label{unconstrained}
\end{table}
\end{document}
请注意,\mid
不是分隔符。另外,正弦函数应始终为\sin
。我使用了一个技巧来减小平方根的大小。