如何对齐每行列数不同的优化语句?我试图对齐“subject to”部分中的求和符号、等式符号以及任何“for all”语句。一定有办法做到这一点,但我还没有找到。第二行及以后的等号前面留出了太多空间。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\begin{document}
\begin{alignat}{3}
\text{Minimize} \quad
&\sum_{i} t_i + t_j + t_k + t_m \\
%
\text{subject to}\quad
&\sum_r Y_r &&= p \quad \\
%
&\sum_r X_{qr} &&= 1 &&\text{for all $q$}\\
%
&\sum_r Z_{ty} &&= 1 &&\text{for all $t$}
\end{alignat}
\end{document}
答案1
我建议你使用\mathrlap
指令(由数学工具包,是数学包)来“隐藏”t_i + t_j + t_k + t_m
剩余方程中的部分;参见下图的上半部分。
就我个人而言,我认为对齐第 2 行至第 4 行中的符号并没有多大用处。=
摆脱该对齐标准可能更好;请参见以下屏幕截图的下半部分。
\documentclass{article}
\usepackage{mathtools} % for '\mathrlap' macro
\begin{document}
\begin{alignat}{3}
\text{Minimize\quad}
&\sum_{i} \mathrlap{t_i + t_j + t_k + t_m} \\
%
\text{subject to\quad}
&\sum_r Y_r &&= p \\
%
&\sum_r X_{qr} &&= 1 &\quad&\text{for all $q$}\\
%
&\sum_y Z_{ty} &&= 1 &&\text{for all $t$}
\end{alignat}
\begin{alignat}{2}
\text{Minimize\quad}
&\sum_{i} \mathrlap{t_i + t_j + t_k + t_m} \\
%
\text{subject to\quad}
&\sum_r Y_r = p \\
%
&\sum_r X_{qr} = 1 &\quad&\text{for all $q$}\\
%
&\sum_y Z_{ty} = 1 &&\text{for all $t$}
\end{alignat}
\end{document}
答案2
Mico 的解决方案看起来更优雅,但我发现的另一个解决方案是使用 \span 来“忽略”不需要的锚点,如下所示。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\begin{document}
\begin{alignat}{3}
\text{Minimize} \quad
&\sum_{i} t_i + t_j + t_k + t_m \span\span \span\span\\
%
\text{subject to}\quad
&\sum_r Y_r &&= p \span\span\\
%
&\sum_r X_{qr} &&= 1 &&\quad\text{for all $q$}\\
%
&\sum_r Z_{ty} &&= 1 &&\quad\text{for all $t$}
\end{alignat}
\end{document}
答案3
可以使用\IEEEeqnarraymulticol
以下命令轻松完成IEEEtrantools
包。附录 F本文档覆盖IEEEeqnarray
环境。有了这个环境,管理多行方程就非常方便了。这里是另一份涵盖该环境的文档。
\documentclass{article}
\usepackage{amsmath}
\usepackage{IEEEtrantools}
\begin{document}
\begin{IEEEeqnarray}{rlCll}
\text{Minimize\quad} & \IEEEeqnarraymulticol{4}{l}{\sum_{i} t_i + t_j + t_k + t_m}\\%
\text{subject to\quad} & \sum_r Y_r &=& p & \\%
& \sum_r X_{qr} &=& 1 & \quad\text{for all $q$}\\%
& \sum_y Z_{ty} &=& 1 & \quad\text{for all $t$}
\end{IEEEeqnarray}
\end{document}