我试图编写一个优化问题,其中“受制于”部分是一个向量语句。但是它看起来并不好。
\[ \begin{array}{clcll}
\textrm{min} & \|k_i\|^2 &\equiv &\textrm{min} & \|k_i\|^2\\
\text{s.t. } & \begin{array}{c}
k_i'w_1=0 \\
\vdots\\
k_i'w_i=1\\
\vdots\\
k_i'w_n=0
\end{array}
& &\text{s.t. } &\left[\begin{array}{c}\textendash w_1\textendash \\
\vdots\\
\textendash w_i\textendash \\
\vdots\\
\textendash w_n\textendash \end{array}\right]
\left[\begin{array}{c}| \\
k_i\\
|\end{array}\right]=
\left[\begin{array}{c} 0 \\
\vdots\\
1\\
\vdots\\
0 \end{array}\right]=e_i
\end{array}\]
有什么方法可以强制使向量更紧凑?(占用更少的空间)
答案1
试试这个。我抑制了周围的一些垂直空间,\vdots
并使用了矩阵环境将amsmath
它们稍微关闭了一下。
\documentclass{article}
\usepackage{amsmath}
\newcommand{\xvdots}{\vphantom{{\sum^0}^0}\smash{\vdots}}
\begin{document}
\begin{alignat*}{2}
&\textrm{min} \quad \|k_i\|^2 &\ &\equiv \textrm{min} \quad \|k_i\|^2\\[2pt]
&\text{s.t.}\quad \ \,
\begin{matrix}
k_i'w_1=0 \\
\xvdots\\
k_i'w_i=1\\
\xvdots\\
k_i'w_n=0
\end{matrix}
&\ & \phantom{{}\equiv{}} \text{s.t.} \quad
\begin{bmatrix}
\text{--} w_1\text{--} \\
\xvdots\\
\text{--} w_i\text{--} \\
\xvdots\\
\text{--} w_n\text{--}
\end{bmatrix}
\begin{bmatrix}
| \\
k_i \\
|
\end{bmatrix}
=
\begin{bmatrix}
0 \\
\xvdots\\
1 \\
\xvdots\\
0
\end{bmatrix}
= e_i
\end{alignat*}
\end{document}
答案2
下面是另一个选项,展示如何使用部分内容来操纵行距\normalbaselineskip
:
\documentclass{article}
\usepackage{mathtools,array}
\begin{document}
\[
\setlength{\arraycolsep}{0pt}
\begin{array}[t]{l}
\min \|k_i\|^2 \\[.5\normalbaselineskip]
\text{s.t. }
\begin{array}{r>{{}}l}
k_i'w_1 &= 0 \\[-.4\normalbaselineskip]
& \vdotswithin{=} \\[-.1\normalbaselineskip]
k_i'w_i &= 1 \\[-.4\normalbaselineskip]
& \vdotswithin{=} \\[-.1\normalbaselineskip]
k_i'w_n &= 0
\end{array}
\end{array}
\quad \equiv \quad
\begin{array}[t]{l}
\min \|k_i\|^2 \\[.5\normalbaselineskip]
\text{s.t. }
\left[\begin{array}{c}
\text{-- } w_1 \text{ --} \\[-.4\normalbaselineskip]
\vdots \\[-.1\normalbaselineskip]
\text{-- } w_i \text{ --} \\[-.4\normalbaselineskip]
\vdots \\[-.1\normalbaselineskip]
\text{-- } w_n \text{ --}
\end{array}\right]
\left[\begin{array}{c}
| \\ k_i \\ |
\end{array}\right]
=
\left[\begin{array}{c}
0 \\[-.4\normalbaselineskip]
\vdots \\[-.1\normalbaselineskip]
1 \\[-.4\normalbaselineskip]
\vdots \\[-.1\normalbaselineskip]
0
\end{array}\right]
= e_i
\end{array}
\]
\end{document}
答案3
虽然不是完全满意,但你可以从这里开始修改:
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\[
\min
_{\mathrlap{\substack{
\text{s.t.}\\
k_i'w_1=0 \\
\vdots\\
k_i'w_i=1\\
\vdots\\
k_i'w_n=0}}}
\|k_i\|^2
\quad\equiv\quad
\min
_{\mkern-18mu\mathrlap{\substack{
\text{s.t.}\\
\left[\begin{smallmatrix}\text{--} w_1\text{--} \\
\vdots\\
\text{--} w_i\text{--} \\
\vdots\\
\text{--} w_n\text{--} \end{smallmatrix}\right]
\left[\begin{smallmatrix}| \\
k_i\\
|\end{smallmatrix}\right]=
\left[\begin{smallmatrix} 0 \\
\vdots\\
1\\
\vdots\\
0 \end{smallmatrix}\right]=e_i}}}
\|k_i\|^2
\]
\end{document}