方程式环境中的水平对齐

方程式环境中的水平对齐

我希望在“公式”环境中,公式的名称将与公式在同一行上左对齐,但公式仍然居中显示(好像文本不在那里)。

背景是“许多”公式将位于彼此之下,但只有一些会添加文本。

谁能进一步帮助我?

\documentclass{article}
\usepackage[english]{babel}
\usepackage{tikz}
\usepackage{tikzscale}
\usepackage[justification=centering]{subcaption}
\usepackage{blindtext}

\begin{document}

\blindtext

\textbf{Einstein}
\begin{equation}  
E=m \cdot c^2
\end{equation}

\blindtext

\begin{equation}  
\textbf{Einstein} \quad E=m \cdot c^2
\end{equation}

\blindtext

\begin{equation}  
c^2=a^2+b^2
\end{equation}

\blindtext

\end{document}

编辑:我在这里附上了一张图片,以使我的愿望更清晰一些。

照片

编辑2:

我在这里添加了第二个示例代码。使用 Zarko 的 Vorschalg。不幸的是,我还希望方程式保持在线的中心位置。在示例中,您可以看到方程式 (1) 和方程式 (2) 并不相互重叠。您对此有什么建议吗?

\documentclass{article}
\usepackage[english]{babel}
\usepackage{tikz}
\usepackage{tikzscale}
\usepackage[justification=centering]{subcaption}
\usepackage{blindtext}
\usepackage{amsmath}

\begin{document}

\blindtext

\begin{flalign}
\textbf{Einstein}  &
    &  E & =m \cdot c^2 &
\end{flalign}


\begin{equation}  
E=m \cdot c^2
\end{equation}

\begin{equation}  
c^2=a^2+b^2
\end{equation}

\begin{equation}  
E=m \cdot c^2
\end{equation}

\blindtext

\end{document}

图片2

答案1

不是真的一样,但是…

\documentclass{article}
\usepackage{amsmath}

\newenvironment{namedequation}[1]{%
  \begin{equation}
  \hspace{0pt}%
  \makebox[1.5em][l]{\textbf{#1}}\mathopen{\!}%
  \hspace{1000pt minus 1fill}%
}{\hspace{1000pt minus 1fill}\end{equation}}


\begin{document}

\begin{namedequation}{Einstein}
E=m \cdot c^2
\end{namedequation}

\begin{equation}  
E=m \cdot c^2
\end{equation}

\begin{namedequation}{Einstein}
E=m \cdot c^2\rlap{\smash{\vrule height 10pt depth 1.5cm}}
\end{namedequation}

\begin{equation}  
E=m \cdot c^2
\end{equation}

\setcounter{equation}{8}

\begin{namedequation}{Einstein}
E=m \cdot c^2\rlap{\smash{\vrule height10pt depth 1.5cm}}
\end{namedequation}

\begin{equation}  
E=m \cdot c^2
\end{equation}

\end{document}

在此处输入图片描述

答案2

带有 的“编辑”解决方案\flalign(用于“全行对齐”)与我在这种情况下习惯的做法非常接近。剩余的问题可以通过加载mathtools包(的超集ammsmath)并使用其\mathrlap宏来改进,尽管不是完美无缺的。MWE:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{blindtext}
%\usepackage{amsmath}  %<< removed
\usepackage{mathtools} %>> added

\begin{document}
\blindtext
\begin{flalign}
&\mathrlap{\textbf{Einstein}} & E & =m \cdot c^2  &
\end{flalign}
to compare without \texttt{\string\mathrlap}
\begin{flalign}
&\textbf{Einstein} & E & =m \cdot c^2  &
\end{flalign}
and with \texttt{equation}
\begin{equation}  
E=m \cdot c^2
\end{equation}
\blindtext
\end{document}

结果 : 在此处输入图片描述

更新:上一个解决方案的轻微额外偏移来自方程编号所占用的空间。可以通过类似策略将其长度设为零来消除此影响(\llap)。让我们定义一个专用宏:

\makeatletter
\NewDocumentCommand{\textequation}{smm}{%
\IfBooleanTF{#1}{%
\begin{flalign*}
&\mathrlap{\text{#2}} & #3 &
\end{flalign*}}{%
\bgroup%
\let\SAV@maketag@@@=\maketag@@@%
\renewcommand{\maketag@@@}[1]{\llap{\SAV@maketag@@@ ##1}}}%
\begin{flalign}
&\mathrlap{\text{#2}} & #3 &
\end{flalign}%
\egroup
}
\makeatother

在此处输入图片描述 可以与 * 一起使用或不与 * 一起使用

相关内容