![对齐大小写方程式,同时文本在左边……啊!](https://linux22.com/image/406242/%E5%AF%B9%E9%BD%90%E5%A4%A7%E5%B0%8F%E5%86%99%E6%96%B9%E7%A8%8B%E5%BC%8F%EF%BC%8C%E5%90%8C%E6%97%B6%E6%96%87%E6%9C%AC%E5%9C%A8%E5%B7%A6%E8%BE%B9%E2%80%A6%E2%80%A6%E5%95%8A%EF%BC%81.png)
我正在努力解决一个我通常不使用的对齐情况。请参阅下面的 MWE 及其预览:
\documentclass[11pt,letterpaper,twoside]{book}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[total={6in,10in},left=1.5in,top=0.5in,includehead,includefoot]{geometry}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{mathtools}
\begin{document}
Blabla:
\begin{align}
&\text{For $x = 1$ :}
& y &= A.
\\[1em]
&\text{For $x = 0$ :}
\left\{
\begin{aligned}
y &= B, \\[1ex]
z &= C.
\end{aligned}
\right.
\end{align}
\end{document}
预览问题以红色显示:
该代码至少有两个问题:
红色标记的空间?太紧,文本部分应该更靠近左边距。
所有等号都应对齐。
我想我需要使用 asplit
或 analignat
环境,但我不知道如何正确使用。左边的 brice 给我带来了最大的麻烦。我需要一个建议!
答案1
喵?
\documentclass[11pt,letterpaper,twoside]{book}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[total={6in,10in},left=1.5in,top=0.5in,includehead,includefoot]{geometry}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{mathtools}
\begin{document}
Blabla:
\begin{align}
\text{For $x = 1$}\colon
&\hphantom{\left\{
\begin{aligned}
{\,}\\
{\,}
\end{aligned}
\right.}y = A. &&
\\[1em]
\text{For $x = 0$}\colon&
\left\{
\begin{aligned}
y &= B, \\[1ex]
z &= C.
\end{aligned}
\right. &&
\end{align}
\end{document}
我个人fleqn
在我的所有文件中都使用它。
\documentclass[11pt,letterpaper,twoside,fleqn]{book}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[total={6in,10in},left=1.5in,top=0.5in,includehead,includefoot]{geometry}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{mathtools}
\begin{document}
Blabla:
\begin{align}
\text{For $x = 1$}\colon
&\hphantom{\left\{
\begin{aligned}
{\,}\\
{\,}
\end{aligned}
\right.}y = A.
\\[1em]
\text{For $x = 0$}\colon&
\left\{
\begin{aligned}
y &= B, \\[1ex]
z &= C.
\end{aligned}
\right.
\end{align}
\end{document}
答案2
\documentclass[11pt,letterpaper,twoside]{book}
\usepackage[total={6in,10in},left=1.5in,top=0.5in,includehead,includefoot]{geometry}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{mathtools, amssymb}
\begin{document}
Blabla:
\begin{align}
\text{For } x & = 1: \ \hphantom{\biggl\{} y = A. \\
\text{For } x & = 0: \ \left\{
\begin{aligned}
y &= B, \\[1ex]
z &= C.
\end{aligned}
\right.
\end{align}
\end{document}
答案3
这是一个带有框的选项(重叠和\phantom
s):
\documentclass{article}
\usepackage{mathtools}
\begin{document}
Blabla:
\begin{alignat}{2}
\text{For $x = 1$ :} &&
y = \mathrlap{\text{long right-hand side}.}\phantom{\text{longest right-hand side,}} \\
\text{For $x = 0$ :} &&
~\left\{\begin{aligned}
& \text{long LHS} = \text{longest right-hand side,} \\
& \phantom{\text{long LHS}}\mathllap{z} = C.
\end{aligned}\right.\kern-\nulldelimiterspace
\end{alignat}
\end{document}
然后是类似的使用eqparbox
自动收集最大箱子宽度:
\documentclass{article}
\usepackage{mathtools,eqparbox}
\begin{document}
Blabla:
\begin{alignat}{2}
\text{For $x = 1$ :} &&
y = \eqmakebox[RHS][l]{long right-hand side.} \\
\text{For $x = 0$ :} &&
~\left\{\begin{aligned}
& \eqmakebox[LHS][r]{long LHS} = \eqmakebox[RHS][l]{longest right-hand side,} \\
& \eqmakebox[LHS][r]{z} = C.
\end{aligned}\right.\kern-\nulldelimiterspace
\end{alignat}
\end{document}
两者都产生相同的输出:
在这两种情况下,目的都是识别对齐周围最宽的元素并使用它们来调整较短的项目。