我希望能够将内联显示样式方程式居中(我在一些数学书中看到过这种做法)。例如,使用 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