![如何在多个单独的对齐环境中对齐文本](https://linux22.com/image/358733/%E5%A6%82%E4%BD%95%E5%9C%A8%E5%A4%9A%E4%B8%AA%E5%8D%95%E7%8B%AC%E7%9A%84%E5%AF%B9%E9%BD%90%E7%8E%AF%E5%A2%83%E4%B8%AD%E5%AF%B9%E9%BD%90%E6%96%87%E6%9C%AC.png)
编辑:我强烈反对我的问题重复性。我的问题与链接问题,并且链接问题中的答案不适用于我的问题。Bernard 对我的问题的回答回答了我的问题;不过,我要求你重新提出这个问题,以防有人遇到类似的问题并提出不同的解决方案。
但是我的代码
\documentclass[a4paper,11pt,oneside]{paper}
\usepackage[fleqn]{amsmath} % Matematika
\usepackage{fontenc}
\usepackage{polyglossia}
\setdefaultlanguage{czech}
\begin{document}
\textbf{Something A}
\begin{subequations}
\begin{alignat}{2}
&\beta_{a} = 2,00 && \qquad \text{for } f < 50\\
&\beta_{a} = 2,00 + 1 + 2 && \qquad \text{for } f > 50
\end{alignat}
\end{subequations}
\textbf{Something B}
\begin{subequations}
\begin{alignat}{2}
&\beta_{b} = 2,00 && \qquad \text{for } f < 50\\
&\beta_{b} = 2,00 + 1 + 2 + 3 + 4 && \qquad \text{for } f > 50
\end{alignat}
\end{subequations}
\textbf{Something C}
\begin{subequations}
\begin{alignat}{2}
&\beta_{c} = 2,00 && \qquad \text{for } f < 50\\
&\beta_{c} = 2,00 + 1 + 2 + 3 + 4 + 5 + 6 && \qquad \text{for } f > 50
\end{alignat}
\end{subequations}
\end{document}
目前生产这个
我怎样才能更改代码以获得所需的输出?
我尝试将其放在\hfill
之前\text{for } f < 50
和\qquad
之后,但显然\hfill
在对齐环境中不起作用。
答案1
自动对齐eqparbox
。我擅自将方程式与符号对齐=
,而不是与它们的左侧对齐。此外,我认为\qquad
应该放在两列之间,而不是第二列的开头。这不会对当前的情况造成太大影响,但从语义的角度来看更令人满意。
\documentclass[a4paper,11pt,oneside]{paper}
\usepackage[fleqn]{mathtools} % Matematika
\usepackage{polyglossia}
\setdefaultlanguage{czech}
\usepackage{eqparbox}
\newcommand{\eqmathbox}[2][M]{\eqmakebox[#1][l]{$\displaystyle#2$}}
\begin{document}
\textbf{Something A}
\begin{subequations}
\begin{alignat}{2}
\beta_{a} & = 2,00 & \qquad & \text{for } f < 50 \\
\beta_{a} & = \eqmathbox{2,00 + 1 + 2 } & \qquad & \text{for } f > 50
\end{alignat}
\end{subequations}
\textbf{Something B}
\begin{subequations}
\begin{alignat}{2}
\beta_{b} & = 2,00 & \qquad & \text{for } f < 50 \\
\beta_{b} & =\eqmathbox{2,00 + 1 + 2 + 3 + 4} & \qquad & \text{for } f > 50
\end{alignat}
\end{subequations}
\textbf{Something C}
\begin{subequations}
\begin{alignat}{2}
\beta_{c} & = 2,00 & \qquad & \text{for } f < 50 \\
\beta_{c} & =\eqmathbox{2,00 + 1 + 2 + 3 + 4 + 5 + 6} & \qquad & \text{for } f > 50
\end{alignat}
\end{subequations}
\end{document}
答案2
只需将每个第一个子方程替换为,即可使所有三个子方程具有相同的宽度,例如\makebox[15em][l]{$<first subequation>$}
。
编辑:
可以预先选择最长的子方程,将其余所有子方程的宽度设置为它。例如:
\newlength\eqlength
\settowidth\eqlength{$\beta_{c} = 2,00 + 1 + 2 + 3 + 4 + 5 + 6$}
将最长子方程的宽度存储到寄存器\eqlength
。然后,可以在 中使用该寄存器\makebox[\eqlength][l]{$...$}
。
\documentclass[a4paper,11pt,oneside]{paper}
\usepackage[fleqn]{amsmath} % Matematika
\usepackage{fontenc}
\usepackage{polyglossia}
\setdefaultlanguage{czech}
\begin{document}
\textbf{Something A}
\begin{subequations}
\begin{alignat}{2}
&\makebox[15em][l]{$\beta_{a} = 2,00$} && \qquad \text{for } f < 50\\
&\beta_{a} = 2,00 + 1 + 2 && \qquad \text{for } f > 50
\end{alignat}
\end{subequations}
\textbf{Something B}
\begin{subequations}
\begin{alignat}{2}
&\makebox[15em][l]{$\beta_{a} = 2,00$} && \qquad \text{for } f < 50\\
&\beta_{b} = 2,00 + 1 + 2 + 3 + 4 && \qquad \text{for } f > 50
\end{alignat}
\end{subequations}
\textbf{Something C}
\begin{subequations}
\begin{alignat}{2}
&\makebox[15em][l]{$\beta_{a} = 2,00$} && \qquad \text{for } f < 50\\
&\beta_{c} = 2,00 + 1 + 2 + 3 + 4 + 5 + 6 && \qquad \text{for } f > 50
\end{alignat}
\end{subequations}
\end{document}