使用 \alignat 获取奇怪的输出(包括图片和代码)

使用 \alignat 获取奇怪的输出(包括图片和代码)

当我运行以下代码时

 \begin{alignat}{2}
 \text{min} & \sum_{t\in T}\sum_{v\in V}\sum_{(i,j)\in W_{v}}(c_{ijv}-u_{i}-           v{j})x_{ijvt}+\sum_{j\in J}\sum_{t\in T}M_{jt}s_{jt} \\
 \text{s.t. } & l_{i,t-1}+s_{it}^{+}-\sum_{v\in V}\sum_{(i,j)\in W_{v}} x_{ijvt}=l_{it}, \forall i\in I, t\in T.\\
\text{} & \sum_{v\in V}\sum_{p\in T,p\leqq t}\sum_{(i,j)\in W_{v}}x_{ijvp}+s_{jt}\geqq d_{jt}^{+}, \forall j\in J, t\in T\\
\text{} & \sum_{v\in V}\sum_{p\in T,p\leqq t}\sum_{(i,j)\in W_{v}} x_{ijvp}\leqq d_{jt}^{+}, \forall j\in J,t\in T\\
\text{} \sum_{t\in T}\sum_{v\in V}\sum_{(i,j)\in W_{v}} p_{ij}x_{ijvt} = h^{+} \\
\text{} \sum_{(i,j)\in W_{v}} p_{ij}x_{ijvt}\leqq h_{vt}h^{+}, \forall v\in V, t\in T \\
\text{} & x_{ijvt} \geqq 0, \forall v\in V, (i,j)\in W_{v}, t\in T \\
\text{} & l_{it}\geqq 0, \forall i\in I, t\in T \\
\text{} & s_{jk} \geqq 0, \forall j\in J,t\in T 
\end{alignat}

我得到的输出与我附加的文件一样。我不知道如何解决这个问题,当我尝试搜索网络时,我发现你可以更改 \begin{alignat}{number} 中的数字,但每次我得到的输出都相同。

我希望有人能给我一些帮助

我使用 MikTeX 和 alignat 所需的软件包。

编辑:我现在看到了输出,它似乎又产生了另一个问题。使用 ergreg 提供的代码,我得到了图中的输出。由于方程太长,方程的名称与方程本身不一致。有没有巧妙的方法来解决这个问题?在此处输入图片描述

答案1

实际上,您不需要alignat。另外,由于您采用双列格式排版,因此您需要减小水平尺寸,这可以通过合并双重和三重总和来获得:

\documentclass[twocolumn]{article}
\usepackage{amsmath,amssymb}
\usepackage{lipsum} % just for the example

\begin{document}
\lipsum*[2]
\begin{align}
\min & 
  \sum_{\substack{t\in T\\v\in V\\(i,j)\in W_{v}}}(c_{ijv}-u_{i}-v{j})x_{ijvt}+
  \sum_{\substack{j\in J\\t\in T}}M_{jt}s_{jt} \\
\text{s.t. } &
  l_{i,t-1}+s_{it}^{+}-
  \mspace{-6mu}\sum_{\substack{v\in V\\(i,j)\in W_{v}}}\mspace{-6mu} x_{ijvt}=l_{it},
  \forall i\in I, t\in T.\\
& \sum_{\substack{v\in V\\p\in T,\,p\leqq t\\(i,j)\in W_{v}}} x_{ijvp}+s_{jt}\geqq d_{jt}^{+},
  \forall j\in J, t\in T\\
& \sum_{\substack{v\in V\\p\in T,\,p\leqq t\\(i,j)\in W_{v}}} x_{ijvp}\leqq d_{jt}^{+},
  \forall j\in J,t\in T\\
& \sum_{\substack{t\in T\\v\in V\\(i,j)\in W_{v}}} p_{ij}x_{ijvt} = h^{+} \\
& \sum_{(i,j)\in W_{v}} p_{ij}x_{ijvt}\leqq h_{vt}h^{+}, \forall v\in V, t\in T \\
& x_{ijvt} \geqq 0, \forall v\in V, (i,j)\in W_{v}, t\in T \\
& l_{it}\geqq 0, \forall i\in I, t\in T \\
& s_{jk} \geqq 0, \forall j\in J,t\in T 
\end{align}
\lipsum
\end{document}

&不要忘记在每行中都加上;\text{min}这是错误的,因为它应该只是\min。请注意以下几点改进:

  1. 第二行我在求和的前后添加了一些具有宽下标的备份;

  2. 当两个条件位于同一个子堆栈行中时,我添加了它\,以留出一些空间。

在此处输入图片描述

答案2

第 5 行和第 6 行没有&after \text{},因此这两行中的所有内容都将对齐到对齐点的左侧。这将导致将所有其他行向右移动。

\documentclass(实际上,一个以 开头和结尾的最小示例\end{document},并显示您正在使用的包,会更有帮助。它不需要包含任何内容,只需包含主体中有问题的显示环境即可。它应该足以让其他人编译它并查看输出和日志。)

相关内容