假设我有类似的东西
\begin{enumerate}
\item
\begin{equation*}
some eq
\end{equation*}
\item
\begin{IEEEeqnarray*}{l}
eq 1 \\
eq 2 \\
...
eq n
\end{IEEEeqnarray*}
\end{enumerate}
如何去除方程开始时出现的换行符(对于单行和多行方程),以便方程和项目编号对齐在一起?我以为这是一个相对常见的问题,但我找不到与之相关的另一篇文章 - 在使用新环境开始枚举列表中的项目时防止换行。
答案1
以下是一些可供您选择的替代方案:
\documentclass{IEEEtran}% http://ctan.org/pkg/ieeetran
\begin{document}
\begin{enumerate}
\item First item
\item
\[
f(x) = ax^2 + bx + c
\]
\item
\begin{IEEEeqnarray*}{l}
f(x) \\
ax^2 \\
bx \\
c
\end{IEEEeqnarray*}
\item Last item
\end{enumerate}
\begin{enumerate}
\item First item
\item $f(x) = ax^2 + bx + c$
\item \hfill $f(x) = ax^2 + bx + c$ \hfill\mbox{}
\item
$\begin{array}[t]{@{}l@{}}
f(x) \\
ax^2 \\
bx \\
c
\end{array}$
\item \null\hfill
$\begin{array}[t]{@{}l@{}}
f(x) \\
ax^2 \\
bx \\
c
\end{array}$
\hfill\null
\item Last item
\end{enumerate}
\end{document}
如果您希望扩展的内容array
,请\arraystretch
按照讨论的内容进行修改表格中的列填充。
答案2
该类IEEEtran
实际上通过IEEEeqnarraybox
一系列命令为此类构造提供了准备。环境IEEEeqnarrayboxm
以数学模式排版其材料。语法是
\begin{IEEEeqnarrayboxm}[initialcommands][pos][width]{format}
....
\end{IEEEeqnarrayboxm}
使其[pos]
等于[t]
意味着第一行的基线与周围文本对齐。 [intialcommnads]
可以为空,或者可能想要尝试[\IEEEeqnstrutmode]
与正常文本换行符相似的行距。
以下是一些示例:
\documentclass{IEEEtran}
\begin{document}
\begin{enumerate}
\item A first item in a list.
\item \leavevmode
\begin{IEEEeqnarrayboxm}[][t]{rCl}
\int_0^1 e^{-t}\,dt &=& 1-e^{-1},\\
E &=& mc^2,\\
0 &=& 6x^2 - 2x + 1.\strut
\end{IEEEeqnarrayboxm}
\item \strut
\begin{IEEEeqnarrayboxm}[][t]{cCcCcCl}
2a &+&3b&-&c&=&3\\
5a &+&b&+&2c&=&1\\
-a&+&7b&+&3c&=&7\strut
\end{IEEEeqnarrayboxm}
and some further text.
\item A text item of a length that shows the current column width.
\item \leavevmode
\begin{IEEEeqnarrayboxm}[\IEEEeqnarraystrutmode][t]{cCcCcCl}
2a &+&3b&-&c&=&3\\
5a &+&b&+&2c&=&1\\
-a&+&7b&+&3c&=&7
\end{IEEEeqnarrayboxm}\\
and some text explaining this system of equations.
\item \leavevmode
\begin{IEEEeqnarrayboxm}[][t]{l}
y = \frac{e^{ax^2+bx+c}}2.
\end{IEEEeqnarrayboxm}
\item Text item.
\end{enumerate}
\end{document}
请注意,在进入环境之前,必须将 LaTeX 设置为水平模式。这可以通过在标签后的行上放置一些先前的文本、通过发出\leavevmode
或通过发出一个框来实现\strut
(它具有大写字母的高度,因此可以帮助行距,但宽度为零)。
类似地,\strut
在等式的最后一行,环境可以改善默认值的间距。
这IEEEtran
课程文档附录 F 对这些环境和各种支柱机制进行了全面的描述。
答案3
评论
这种方法与@Werner 的方法大致相同,但我引入了一些新的环境,使一切变得更加方便。
我还根据IEEEeqnarrayboxm
Andrew Swann 的回答定义了一个新的环境。
执行
\documentclass{IEEEtran}
\pagestyle{empty}
\usepackage{amsmath,amssymb,lipsum}
\newenvironment{itemalign}%
{$\aligned[t]}%
{\endaligned$\par}
\newenvironment{itemeq}%
{$\displaystyle}%
{$\par}
\newenvironment{itemarray}[1]%
{$\array[t]{#1}}%
{\endarray$\par}
\newenvironment{itemIEEE}[1]%
{\minipage[t]{\linewidth}\vskip -\baselineskip\begin{IEEEeqnarray*}{#1}}%
{\end{IEEEeqnarray*}\endminipage}
\newcommand{\diff}{\mathop{}\!\mathrm{d}}
\begin{document}
\lipsum[11]
\begin{enumerate}
\item
\begin{itemeq}
\mathcal{F}[f](\omega) = \frac{1}{(2 \pi)^{n/2}} \int_{\mathbb{R}^n} f(t) \, \mathrm{e}^{-\mathrm{i} \omega t} \diff t
\end{itemeq}
\item
\begin{itemalign}
\mathcal{F}[f](\omega) &= \frac{1}{(2 \pi)^{n/2}} \int_{\mathbb{R}^n} f(t) \, \mathrm{e}^{-\mathrm{i} \omega t} \diff t \\
f(t) &= \mathcal{F}^{-1}[\mathcal{F}[f]](t)
\end{itemalign}
\item
\begin{itemarray}{c@{{}+{}}c@{{}+{}}c@{{}={}}r}
1 x_1 & 0 x_2 & 0 x_3 & 3 \\
0 x_1 & (-2) x_2 & 3 x_3 & 6 \\
0 x_1 & 0 x_2 & (-2) x_3 & 5 \\
\end{itemarray}
I don't know, if this is even sovable\dots
\item
\begin{itemIEEE}{rl}
\mathcal{F}[f](\omega) &= \frac{1}{(2 \pi)^{n/2}} \int_{\mathbb{R}^n} f(t) \, \mathrm{e}^{-\mathrm{i} \omega t} \diff t \\
f(t) &= \mathcal{F}^{-1}[\mathcal{F}[f]](t)
\end{itemIEEE}
\end{enumerate}
\lipsum[11]
\end{document}