我希望在“公式”环境中,公式的名称将与公式在同一行上左对齐,但公式仍然居中显示(好像文本不在那里)。
背景是“许多”公式将位于彼此之下,但只有一些会添加文本。
谁能进一步帮助我?
\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}
答案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