我尝试左对齐一些方程式,但总是得到错误的结果
下面的代码
\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}