数学模式中的多重对齐不需要太多空间

数学模式中的多重对齐不需要太多空间

有几篇关于多重比对的帖子,但我找不到解决我的问题的方法。

%%%%% Dokumentenklasse mit verschiedenen Attributen
\documentclass[a4paper, abstracton, bibtotocnumbered,liststotoc,12pt]{scrartcl}

%%%%% Betriebssystemabhängige Eingabedekodierung
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc} %% für Windows
\usepackage[ngerman]{babel}
\usepackage{amsthm}
\usepackage{mathtools}

\newcommand{\matr}[1]{\mathbf{#1}} 
\newcommand{\X}{\matr{X}} %Matrix von X
\newcommand{\y}{\matr{y}} %y als voller Vektor
\newcommand{\Xt}{\X^\mathbf{T}} %Matrix von X
\newcommand{\x}{\matr{x}}%Regressor von X
\newcommand{\xt}{\x^\mathbf{T}}%Regressor von X
\newcommand{\betahat}{\hat{\beta}} %betahat


\begin{document}
\begin{flalign*}
\Xt\y-\Xt\X\betahat &= \lambda s\\
\Leftrightarrow \underbrace{\Xt \y}_{p \times 1} &= \underbrace{\vphantom{ \Xt \y } \lambda s}_{p \times 1}, \quad s \in [-1,1]^{p} \\
\intertext{\textnormal{Das $j$-te Element entspricht}}
\xt_{j}\y &= \lambda s_j, \quad \quad s_j \in [-1,1] \Leftrightarrow \lambda s_j \in [-\lambda, \lambda] \\
\Leftrightarrow  |\xt_{j}\y| &\leq \lambda, \quad \forall j \in \{1,...,p\}
\end{flalign*}
\end{document}

我正在使用以下代码,我想对逗号和后面的语句进行多重对齐\quad。我尝试使用 对其进行多重对齐,&&但方程式和其他参数之间的空间太大。我大致想要与 quad 产生的空间相同,但参数对齐。

答案1

对于多个对齐点,您可以使用alignat

在此处输入图片描述

\documentclass[a4paper, abstracton, bibtotocnumbered,liststotoc,12pt]{scrartcl}

%%%%% Betriebssystemabhängige Eingabedekodierung
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc} %% für Windows
\usepackage[ngerman]{babel}
\usepackage{amsthm}
\usepackage{mathtools}

\newcommand{\matr}[1]{\mathbf{#1}} 
\newcommand{\X}{\matr{X}} %Matrix von X
\newcommand{\y}{\matr{y}} %y als voller Vektor
\newcommand{\Xt}{\X^\mathbf{T}} %Matrix von X
\newcommand{\x}{\matr{x}}%Regressor von X
\newcommand{\xt}{\x^\mathbf{T}}%Regressor von X
\newcommand{\betahat}{\hat{\beta}} %betahat

\begin{document}
\begin{alignat*}{2}
  \Xt\y-\Xt\X\betahat & = \lambda s\\
  \Leftrightarrow \underbrace{\Xt \y}_{p \times 1} & = \underbrace{\vphantom{ \Xt \y } \lambda s}_{p \times 1}, & \quad & s \in [-1,1]^{p} \\
  \intertext{\textnormal{Das $j$-te Element entspricht}}
  \xt_{j}\y &= \lambda s_j, & \quad & s_j \in [-1,1] \Leftrightarrow \lambda s_j \in [-\lambda, \lambda] \\
  \Leftrightarrow |\xt_{j}\y| &\leq \lambda, & \quad & \forall j \in \{1,\dots,p\}
\end{alignat*}
\end{document}

答案2

环境flalign名称的含义全长对齐,表示当对齐点超过一个时,将使用整个线宽。

为了控制对齐,您可以使用alignat,或者align如果您不想打扰的话。

%%%%% Dokumentenklasse mit verschiedenen Attributen
\documentclass[a4paper, abstracton,12pt]{scrartcl}

%%%%% Betriebssystemabhängige Eingabedekodierung
\usepackage[T1]{fontenc}
%\usepackage[latin1]{inputenc} %% für Windows
\usepackage[ngerman]{babel}
\usepackage{amsthm}
\usepackage{mathtools}

\newcommand{\matr}[1]{\mathbf{#1}} 
\newcommand{\X}{\matr{X}} %Matrix von X
\newcommand{\y}{\matr{y}} %y als voller Vektor
\newcommand{\Xt}{\X^\mathbf{T}} %Matrix von X
\newcommand{\x}{\matr{x}}%Regressor von X
\newcommand{\xt}{\x^\mathbf{T}}%Regressor von X
\newcommand{\betahat}{\hat{\beta}} %betahat


\begin{document}

\section{\texttt{alignat}}
\begin{alignat*}{2}
\Xt\y-\Xt\X\betahat
  &= \lambda s\\
\Leftrightarrow {\underbrace{\Xt \y}_{p \times 1}}
  &= {\underbrace{\vphantom{ \Xt \y } \lambda s}_{p \times 1}}, 
  &\quad& s \in [-1,1]^{p} \\
\intertext{Das $j$-te Element entspricht}
\xt_{j}\y
  &= \lambda s_j,
  &\quad& s_j \in [-1,1] \Leftrightarrow \lambda s_j \in [-\lambda, \lambda] \\
\Leftrightarrow  |\xt_{j}\y|
  &\leq \lambda,
  &\quad& \forall j \in \{1,\dots,p\}
\end{alignat*}

\section{\texttt{align}}
\begin{align*}
\Xt\y-\Xt\X\betahat
  &= \lambda s\\
\Leftrightarrow {\underbrace{\Xt \y}_{p \times 1}}
  &= {\underbrace{\vphantom{ \Xt \y } \lambda s}_{p \times 1}}, 
  && s \in [-1,1]^{p} \\
\intertext{Das $j$-te Element entspricht}
\xt_{j}\y
  &= \lambda s_j,
  && s_j \in [-1,1] \Leftrightarrow \lambda s_j \in [-\lambda, \lambda] \\
\Leftrightarrow  |\xt_{j}\y|
  &\leq \lambda,
  && \forall j \in \{1,\dots,p\}
\end{align*}

\end{document}

在此处输入图片描述

需要注意几点。

  1. latin1不是“适用于 Windows”。如果文件采用 Latin-1 编码,请使用它,但您应尽快切换到 UTF-8。
  2. 选项bibtotocnumberedliststotoc已被弃用。
  3. \underbrace{<code>}_{<code>}应支撑以保持正确的间距,因此{\underbrace{<code>}_{<code>}}
  4. 切勿...在输入中使用,但\dots如果需要,可以使用 或 中的一个\dotsc\dotsb\dotsm参阅\dots* 的区别)。

答案3

你需要alignat*

\documentclass[a4paper, abstracton, bibtotocnumbered,liststotoc,12pt]{scrartcl}

%%%%% Betriebssystemabhängige Eingabedekodierung
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc} %% für Windows
\usepackage[ngerman]{babel}
\usepackage{amsthm}
\usepackage{mathtools}

\newcommand{\matr}[1]{\mathbf{#1}} 
\newcommand{\X}{\matr{X}} %Matrix von X
\newcommand{\y}{\matr{y}} %y als voller Vektor
\newcommand{\Xt}{\X^\mathbf{T}} %Matrix von X
\newcommand{\x}{\matr{x}}%Regressor von X
\newcommand{\xt}{\x^\mathbf{T}}%Regressor von X
\newcommand{\betahat}{\hat{\beta}} %betahat


\begin{document}
\begin{alignat*}{2}
\Xt\y-\Xt\X\betahat &= \lambda s && \\
\Leftrightarrow \underbrace{\Xt \y}_{p \times 1} &= \underbrace{\vphantom{\Xt\y}\lambda s}_{p\times1}, &&\quad s \in [-1,1]^{p} \\
\intertext{\textnormal{Das $j$-te Element entspricht}}
\xt_{j}\y &= \lambda s_j, &&\quad s_j \in [-1,1] \Leftrightarrow \lambda s_j \in [-\lambda, \lambda] \\
\Leftrightarrow  |\xt_{j}\y| &\leq \lambda, &&\quad \forall j \in \{1,...,p\}
\end{alignat*}
\end{document}

在此处输入图片描述

答案4

一些布局改进(至少对我来说是这样):我 优先 使用\underbracketfrom而不是 ,但对于小公式来说,它看起来不太好看。另外,我使用了(再次使用 mathtools)——这会在 中添加另一列。最后,我不明白为什么转置符号应该用粗体显示,所以我使用了。mathtools\underbrace\ArrowBetweenLinesalignat\mathrm

\documentclass[a4paper, abstracton, bibtotocnumbered,liststotoc,12pt]{scrartcl}

%%%%% Betriebssystemabhängige Eingabedekodierung
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc} %% für Windows
\usepackage[ngerman]{babel}
\usepackage{mathtools}

\newcommand{\matr}[1]{\mathbf{#1}}
\newcommand{\X}{\matr{X}} %Matrix von X
\newcommand{\y}{\matr{y}} %y als voller Vektor
\newcommand{\Xt}{\X^\mathrm{T}} %Matrix von X
\newcommand{\x}{\matr{x}}%Regressor von X
\newcommand{\xt}{\x^\mathrm{T}}%Regressor von X
\newcommand{\betahat}{\hat{\beta}} %betahat

\begin{document}

\begin{alignat*}{3}
  & & \Xt\y-\Xt\X\betahat & = \lambda s\\
\ArrowBetweenLines
  & & \underbracket[0.4pt]{\Xt \y}_{p \times 1} & = \mkern-2mu\underbracket[0.4pt]{\mkern2mu \vphantom{\y}\lambda s\mkern1mu}_{p \times 1}\mkern-1mu, & \quad & s \in [-1,1]^{p} \\
  \intertext{\textnormal{Das $j$-te Element entspricht}}
 & & \xt_{j}\y &= \lambda s_j, & \quad & s_j \in [-1,1] \Leftrightarrow \lambda s_j \in [-\lambda, \lambda] \\
\ArrowBetweenLines
  & & |\xt_{j}\y| &\leq \lambda, & \quad & \forall j \in \{1,\dots,p\}
\end{alignat*}

\end{document} 

在此处输入图片描述

相关内容