我从未使用过 LaTeX,但想在论文中写出好看的方程式,但我无法将方程式中的元素垂直对齐。我实际上有类似的东西,但我想要的是将“pour...”语句也垂直对齐。
我使用这段代码成功做到了这一点:
MOMKP \left\{
\begin{array}{ll}
Maximiser &$\sum \limits_{\underset{}{j=1}}^n p_{jk}x_j$ pour $k$ = 1,...,$q$\\
s.c &$\sum \limits_{\underset{}{j=1}}^n w_{ij}x_j \leq c_i$ pour $i$ = 1,...,$m$.\\
&$x_j\in \left\{0,1\right\}$ pour $j$ = 1,...,$n$.
\end{array}
\right.
但是我尝试的所有方法都是将“倒入......”语句移至新行,这不是我想要的。
答案1
我会用alignedat
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
\mathrm{MOMKP}
\left\{
\begin{alignedat}{4}
&\textup{Maximiser} &\quad& \sum_{j=1}^n p_{jk}x_j &\quad& \textup{pour }k = 1,\dots,q, \\
&\textup{s.c.} && \sum_{j=1}^n w_{ij}x_j \leq c_i && \textup{pour }i = 1,\dots,m,\\
& && x_j\in \{0,1\} && \textup{pour }j = 1,\dots,n.
\end{alignedat}
\right.
\]
\end{document}
环境设置了三对右对齐和左对齐的列,但您只想使用左对齐的列,这就是 的原因&&
。右对齐的列用于第一行以添加一些水平空间。
需要注意的一些事项。
“Maximizer”、“sc”和“pour”是单词,应该适当分开。
\underset{}{j=1}
应该只是j=1
。单元格
array
以数学模式排版,$
字符位置不正确。\left\{0,1\right\}
只是增加了不必要的空间而没有实际好处。...
应该\dots
。
答案2
编写方程式的一种方法是使用tblr
包tabularray
:
\documentclass{article}
\usepackage{lipsum}
\usepackage{tabularray}
%\UseTblrLibrary{amsmath}
\begin{document}
\[
\mathrm{MOMKP} \left\{
\begin{tblr}{colspec={*{2}{Q[l, mode=text] Q[l, mode=math]}},
colsep=3pt}
Maximiser & \sum\limits_{j=1}^n p_{jk}x_j & pour & k = 1,\dots,q. \\
s.c & \sum\limits_{j=1}^n w_{ij}x_j \leq c_i& pour & i = 1,\dots,m.\\
& x_j\in \left\{0,1\right\} & pour & j = 1,\dots,n.
\end{tblr}\right.
\]
\lipsum
\end{document}