这是对类似问题。我还是不知道在alignat
环境中应该把 & 符号放在哪里。:(
这是我生成的内容。
为了增强可读性,我想自定义对齐方式。
- 我希望第二列能够对齐,
\oplus
即使这会在第一个=
符号之后和第二个=
符号之前产生一些空格。 - 类似地,我希望第三列围绕
+
符号对齐,即使这会在=
符号后产生一些空间。 - 但是,我希望三列能够由垂直对齐的符号分隔,
=
如上所示。
我怎样才能做到这一点?
\documentclass{minimal}
\usepackage{amsmath,amssymb,bm}
% Matrix inverse \inv[2]{\Abf} or \inv{\Abf}
\newcommand{\inv}[2][1]{\ensuremath{{#2}^{-{#1}}}}
% Matrix transpose
\newcommand{\trans}[1]{\ensuremath{{#1}^\intercal}}
\newcommand{\Abf}{\ensuremath{\bm{A}}}
\newcommand{\Ibf}{\ensuremath{\bm{I}}}
\newcommand{\Pbf}{\ensuremath{\bm{P}}}
\newcommand{\Qbf}{\ensuremath{\bm{Q}}}
\newcommand{\Ubf}{\ensuremath{\bm{U}}}
\begin{document}
\begin{subequations}
\begin{alignat}{3}
\lambda\Ibf - \Abf
&=
\Ubf
\big(
(\lambda-n)\Ibf_{k-1}
&\oplus
\lambda\Ibf_{n-k+1}
\big)
\trans\Ubf
&=
(\lambda-n)\Pbf + \lambda\Qbf
\\
\inv{(\lambda\Ibf - \Abf)}
&=
\Ubf
\Bigg(
\frac{1}{\lambda-n}\Ibf_{k-1}
&\oplus
{\frac 1 \lambda}\Ibf_{n-k+1}
\Bigg)
\trans\Ubf
&=
{\frac 1 {(\lambda-n)}}\Pbf + {\frac 1 \lambda}\Qbf
\\
\inv[2]{(\lambda\Ibf - \Abf)}
&=
\Ubf
\Bigg(
\frac{1}{(\lambda-n)^2}\Ibf_{k-1}
&\oplus
{\frac 1 {\lambda^2}}\Ibf_{n-k+1}
\Bigg)
\trans\Ubf
&=
{\frac 1 {(\lambda-n)^2}}\Pbf + {\frac 1 {\lambda^2}}\Qbf
\end{alignat}
\end{subequations}
\end{document}
答案1
我有一个解决方案,其中 \oplus 和 + 二元运算符周围的空格是对称的:
\documentclass{minimal}
\usepackage{amsmath,amssymb,bm}
% Matrix inverse \inv[2]{\Abf} or \inv{\Abf}
\newcommand{\inv}[2][1]{\ensuremath{{#2}^{-{#1}}}}
% Matrix transpose
\newcommand{\trans}[1]{\ensuremath{{#1}^\intercal}}
\newcommand{\Abf}{\ensuremath{\bm{A}}}
\newcommand{\Ibf}{\ensuremath{\bm{I}}}
\newcommand{\Pbf}{\ensuremath{\bm{P}}}
\newcommand{\Qbf}{\ensuremath{\bm{Q}}}
\newcommand{\Ubf}{\ensuremath{\bm{U}}}
\begin{document}
\begin{subequations}
\begin{alignat}{4}
\lambda\Ibf - \Abf
&= {}&
\Ubf
\big(
(\lambda-n)\Ibf_{k-1}
&\oplus
\lambda\Ibf_{n-k+1}
\big)
\trans\Ubf
&= {} & &
(\lambda-n)\Pbf & + \lambda\Qbf
\\%%
\inv{(\lambda\Ibf - \Abf)}
&= {} &
\Ubf
\Bigg(
\frac{1}{\lambda-n}\Ibf_{k-1}
&\oplus
{\frac 1 \lambda}\Ibf_{n-k+1}
\Bigg)
\trans\Ubf
&= {} & &
{\frac 1 {(\lambda-n)}}\Pbf & + {\frac 1 \lambda}\Qbf
\\%%
\inv[2]{(\lambda\Ibf - \Abf)}
& = &
\Ubf
\Bigg(
\frac{1}{(\lambda-n)^2}\Ibf_{k-1}
&\oplus
{\frac 1 {\lambda^2}}\Ibf_{n-k+1}
\Bigg)
\trans\Ubf
& ={} & &
{\frac 1 {(\lambda-n)^2}}\Pbf & + {\frac 1 {\lambda^2}}\Qbf
\end{alignat}
\end{subequations}
\end{document}
答案2
&&
只需在需要对齐的位置添加:
笔记
- 这
alignat
产生对左r
对齐l
,因此需要双精度&&
来产生左对齐(即跳过该r
列)。 - 该类
minimal
不应用于示例。TeX.SE 上有一个很好的问题,但现在找不到,所以回来后会添加一个链接。
代码:
\documentclass{article}
\usepackage{amsmath,amssymb,bm}
% Matrix inverse \inv[2]{\Abf} or \inv{\Abf}
\newcommand{\inv}[2][1]{\ensuremath{{#2}^{-{#1}}}}
% Matrix transpose
\newcommand{\trans}[1]{\ensuremath{{#1}^\intercal}}
\newcommand{\Abf}{\ensuremath{\bm{A}}}
\newcommand{\Ibf}{\ensuremath{\bm{I}}}
\newcommand{\Pbf}{\ensuremath{\bm{P}}}
\newcommand{\Qbf}{\ensuremath{\bm{Q}}}
\newcommand{\Ubf}{\ensuremath{\bm{U}}}
\begin{document}
\begin{subequations}
\begin{alignat}{5}
\lambda\Ibf - \Abf
&=
\Ubf
\big(
(\lambda-n)\Ibf_{k-1}
&&\oplus
\lambda\Ibf_{n-k+1}
\big)
\trans\Ubf
&&=
(\lambda-n)\Pbf &&+ \lambda\Qbf
\\
\inv{(\lambda\Ibf - \Abf)}
&=
\Ubf
\Bigg(
\frac{1}{\lambda-n}\Ibf_{k-1}
&&\oplus
{\frac 1 \lambda}\Ibf_{n-k+1}
\Bigg)
\trans\Ubf
&&=
{\frac 1 {(\lambda-n)}}\Pbf &&+ {\frac 1 \lambda}\Qbf
\\
\inv[2]{(\lambda\Ibf - \Abf)}
&=
\Ubf
\Bigg(
\frac{1}{(\lambda-n)^2}\Ibf_{k-1}
&&\oplus
{\frac 1 {\lambda^2}}\Ibf_{n-k+1}
\Bigg)
\trans\Ubf
&&=
{\frac 1 {(\lambda-n)^2}}\Pbf &&+ {\frac 1 {\lambda^2}}\Qbf
\end{alignat}
\end{subequations}
\end{document}