居中内联方程

居中内联方程

我希望能够将内联显示样式方程式居中(我在一些数学书中看到过这种做法)。例如,使用 enumerate:

1)                                  [centered equation]

或者在左侧只添加少量文字:

We have                            [centered equation 1]
so                                 [centered equation 2].

[MWE] 这是我尝试过的,但我真的不知道自己在做什么:

\documentclass{article}
\usepackage{bm}

\begin{document}
\begin{enumerate}
\item \begin{centering}$\displaystyle \langle \bm{x},\bm{y} \rangle = 
    \sum\limits_{i=1}^n x_i y_i = \sum\limits_{i=1}^n y_i x_i = 
    \langle \bm{y},\bm{x} \rangle$.\end{centering}
\end{enumerate}
\end{document}

答案1

我不是从美观角度推荐这种方法,但可以使用堆栈来实现。将\stackon长“L”堆栈间隙设置为 0pt 可覆盖两个堆叠组件。\addstackgap在结果上方和下方添加一个短“S”堆栈间隙(默认为 3pt),以避免拥挤。

\documentclass{article}
\usepackage{stackengine}
\usepackage{lipsum}
\def\stacktype{L}
\setstackgap{L}{0pt}
\begin{document}
\lipsum[1]
\noindent\addstackgap{\stackon{$\displaystyle\frac{x+y}{z}$}{%
  \makebox[\textwidth][l]{We have}}}\par
\noindent\addstackgap{\stackon{\makebox[\textwidth][l]{so}}{%
  $\displaystyle c^2 = a^2 + b^2$}}\par
\lipsum[4]
\end{document}

在此处输入图片描述

答案2

\rlap在不使用软件包的 LaTeX 中,一种简单的方法可以是使用或来放置不占用空格的文本,\makebox然后使用 来居中\hfill,例如,如果\parindent不是 0pt:

\noindent\rlap{some text}\hfill$...$}\hfill\mbox{}\par 

当右侧文本太长时,使用\parbox{length}{some text}

请注意,下一个示例使用bm包来重现 MWE 的方程式,并将xcolor方程式括在彩色框中(为了进行更好的视觉测试)和两个宏以便于输入,但显然所有这些都是可有可无的。

平均能量损失

\documentclass{article}
\usepackage{xcolor,bm} 
\newcounter{myeq}
\setcounter{myeq}{0}
\def\NumEq#1{\noindent\rlap{\addtocounter{myeq}{1}{\themyeq})}%
\hfill\fcolorbox{green}{gray!10}{$\displaystyle#1$}\hfill\mbox{}\par} 
\def\SayEq#1#2{\noindent\rlap{#1}%
\hfill\fcolorbox{green}{gray!10}{$\displaystyle#2$}\hfill\mbox{}\par} 

\begin{document}

% only for easier testing 
{\color{green}
\centering center\\
\noindent\dotfill\rule[-21em]{.4pt}{22em}\dotfill}
\vspace{-19em}

%examples
\SayEq{Pretty definite integral}{\int_a^b f(x)\,dx}
\SayEq{\parbox{.2\linewidth}{\raggedright Whe have a long equation here}}{\langle \bm{x},\bm{y} \rangle = \sum\limits_{i=1}^n x_i y_i = \sum\limits_{i=1}^n y_i x_i = 
    \langle \bm{y},\bm{x} \rangle}
\NumEq{\frac{x+y}{z}}
\NumEq{c^2 = a^2 + b^2}

\end{document}

答案3

如果你没有\eqno在方程中使用,那么你可以使用简单的\leqno原始公式:

I want to be able to center inline displaystyle equations (I've seen this
done in some math books). For example, with enumerate:
$$
  \int_a^b f(x)\,dx
  \leqno 1)
$$
or with just a little bit of text to the left:
$$
  x+y\over z
  \leqno \hbox{We have}
$$
$$
  c^2 = a^2 + b^2
  \leqno \hbox{so}
$$
\bye

乐奇诺

相关内容