使用 flalign 进行左对齐数学方程式时遇到问题

使用 flalign 进行左对齐数学方程式时遇到问题

我尝试左对齐一些方程式,但总是得到错误的结果

在此处输入图片描述

下面的代码

\documentclass[a4paper]{article}
\usepackage[fleqn]{amsmath}
\usepackage{showframe}
\begin{document}
\section*{Test}

\begin{flalign}
&&U_{i}&&= U_{\mathrm{h}i} + U_{\mathrm{r}i} \ ,  &&I_{i} &&= \frac{1}{Z_{\mathrm{L}i}}(U_{\mathrm{h}i} - U_{\mathrm{r}i})\\
&&U_{\mathrm{h}i}&&= \frac{U_i + Z_{\mathrm{L}i}I_{i}}{2} \ , &&U_{\mathrm{r}i} &&= \frac{U_i - Z_{\mathrm{L}i}I_{i}}{2}
\end{flalign}

\end{document}

我想要的是:

在此处输入图片描述

谢谢你们

答案1

您只需flalign&对齐关系周围和每个方程之间以及&每行上使用:

在此处输入图片描述

\documentclass{article}

\usepackage{amsmath,eqparbox,xparse}

% https://tex.stackexchange.com/a/34412/5764
\makeatletter
\NewDocumentCommand{\eqmathbox}{o O{c} m}{%
  \IfValueTF{#1}
    {\def\eqmathbox@##1##2{\eqmakebox[#1][#2]{$##1##2$}}}
    {\def\eqmathbox@##1##2{\eqmakebox{$##1##2$}}}
  \mathpalette\eqmathbox@{#3}
}
\makeatother

\begin{document}

\begin{flalign}
              \eqmathbox[L1][l]{U_i} &= U_{\mathrm{h}i} + U_{\mathrm{r}i},  & 
              \eqmathbox[L2][l]{I_i} &= \frac{1}{Z_{\mathrm{L}i}}(U_{\mathrm{h}i} - U_{\mathrm{r}i}) & \\
  \eqmathbox[L1][l]{U_{\mathrm{h}i}} &= \frac{U_i + Z_{\mathrm{L}i}I_{i}}{2}, & 
  \eqmathbox[L2][l]{U_{\mathrm{r}i}} &= \frac{U_i - Z_{\mathrm{L}i}I_{i}}{2} &
\end{flalign}

\end{document}

指某东西的用途eqparbox支持元素内的对齐选择\eqmathbox[<tag>][<align>]{<stuff>}。所有具有相同的元素将具有相同的最大宽度,您可以根据需要<tag>指定单独的对齐方式(如上例中的 eft)。<align>l

另一种选择是eqparbox

\documentclass{article}

\usepackage{mathtools}

\begin{document}

\begin{flalign}
  \mathrlap{U_i}\phantom{U_{\mathrm{h}i}} &= U_{\mathrm{h}i} + U_{\mathrm{r}i},  & 
  \mathrlap{I_i}\phantom{U_{\mathrm{r}i}} &= \frac{1}{Z_{\mathrm{L}i}}(U_{\mathrm{h}i} - U_{\mathrm{r}i}) & \\
                          U_{\mathrm{h}i} &= \frac{U_i + Z_{\mathrm{L}i}I_{i}}{2}, & 
                          U_{\mathrm{r}i} &= \frac{U_i - Z_{\mathrm{L}i}I_{i}}{2} &
\end{flalign}

\end{document}

答案2

我看不出公式应该从左边距开始。不管怎样,这是代码

\documentclass[a4paper]{article}
\usepackage[fleqn]{amsmath}
\usepackage{showframe}

\begin{document}

\section*{Test}

\begin{flalign}
U_{i}           &= U_{\mathrm{h}i} + U_{\mathrm{r}i} ,  
  & I_{i} &= \frac{1}{Z_{\mathrm{L}i}}(U_{\mathrm{h}i} - U_{\mathrm{r}i}) && \\
U_{\mathrm{h}i} &= \frac{U_i + Z_{\mathrm{L}i}I_{i}}{2} ,
  & U_{\mathrm{r}i} &= \frac{U_i - Z_{\mathrm{L}i}I_{i}}{2} &&
\end{flalign}

\end{document}

在此处输入图片描述

符合标准align

\documentclass[a4paper]{article}
\usepackage[fleqn]{amsmath}
\usepackage{showframe}

\begin{document}

\section*{Test}

\begin{align}
U_{i}           &= U_{\mathrm{h}i} + U_{\mathrm{r}i} ,  
  & I_{i} &= \frac{1}{Z_{\mathrm{L}i}}(U_{\mathrm{h}i} - U_{\mathrm{r}i}) \\
U_{\mathrm{h}i} &= \frac{U_i + Z_{\mathrm{L}i}I_{i}}{2} ,
  & U_{\mathrm{r}i} &= \frac{U_i - Z_{\mathrm{L}i}I_{i}}{2}
\end{align}

\end{document}

你得到

在此处输入图片描述

同意全部其他方程,因为您正在使用fleqn

如果您的目标是将 U 和 I 对齐到左侧,那么请使用幻影。我借此机会通过定义\rh\rr和来简化您的输入\rL。该宏\prh代表“幻影\rh”。

\documentclass[a4paper]{article}
\usepackage[fleqn]{amsmath}
\usepackage{showframe}

\newcommand{\rh}{\mathrm{h}}
\newcommand{\prh}{\hphantom{\rh}}
\newcommand{\rL}{\mathrm{L}}
\newcommand{\rr}{\mathrm{r}}

\begin{document}

\section*{Test}

\begin{align}
U_{i\prh}           &= U_{\rh i} + U_{\rr i} ,  
  & I_{i\prh} &= \frac{1}{Z_{\rL i}}(U_{\rh i} - U_{\rr i}) \\
U_{\rh i} &= \frac{U_i + Z_{\rL i}I_{i}}{2} ,
  & U_{\rh i} &= \frac{U_i - Z_{\rL i}I_{i}}{2}
\end{align}

\end{document}

flalign如果您愿意,请根据上面的显示进行调整。

在此处输入图片描述

答案3

由于环境flalign 有 3 组对齐,因此只需要 5 = 2×3 – 1 个与号。

另一种可能性是,仅将文档中的某些方程式左对齐;包括将方程式嵌套在fleqn由 定义的环境中nccmath。此外,它可以采用可选参数来表示方程式主体开始左边距的距离(默认情况下为 0pt)。演示:

\documentclass[a4paper]{article}
\usepackage{amsmath, nccmath}
\usepackage{showframe}
\renewcommand{\ShowFrameLinethickness}{0.3pt}

\begin{document}
\section*{Test}

\begin{flalign}
U_{i}&= U_{\mathrm{h}i} + U_{\mathrm{r}i} &I_{i} &= \frac{1}{Z_{\mathrm{L}i}}(U_{\mathrm{h}i} - U_{\mathrm{r}i}) & \\
U_{\mathrm{h}i}&= \frac{U_i + Z_{\mathrm{L}i}I_{i}}{2}&U_{\mathrm{r}i}&= \frac{U_i - Z_{\mathrm{L}i}I_{i}}{2}
\end{flalign}
\vspace{\baselineskip}
\begin{fleqn}[1em]
\begin{align}
U_{i}&= U_{\mathrm{h}i} + U_{\mathrm{r}i} &I_{i} &= \frac{1}{Z_{\mathrm{L}i}}(U_{\mathrm{h}i} - U_{\mathrm{r}i}) & \\
U_{\mathrm{h}i}&= \frac{U_i + Z_{\mathrm{L}i}I_{i}}{2}&U_{\mathrm{r}i}&= \frac{U_i - Z_{\mathrm{L}i}I_{i}}{2}
\end{align}
\end{fleqn}

\end{document} 

在此处输入图片描述

相关内容