如何避免枚举和定理之间的换行符?

如何避免枚举和定理之间的换行符?

当我在枚举项的开头插入定理/定义环境时,它会在之前自动创建一个换行符定理。是否有可能以某种方式删除这个强制换行符,以便枚举项(例如(a))与定理开头位于同一行?

以下是一个最小的例子:

\documentclass{article}
\usepackage{amsthm}
\usepackage{enumerate}
\newtheorem{theorem}{Theorem}
\begin{document}

\begin{enumerate}[(a)]
  \item % avoid newline here
    \begin{theorem} Some statement. \end{theorem}
\end{enumerate}

\end{document}

最小示例的输出

答案1

也许最简单的方法是为定理定义另一个环境,该环境不应以换行符开头。您可以根据需要调整外观。

\documentclass{article}
\usepackage{amsthm}
\usepackage{enumerate}
\newtheorem{theorem}{Theorem}

% For theorems which do not start with a line break
\makeatletter
\newenvironment{nonewlinetheorem}
{\refstepcounter{theorem}\textbf{Theorem~\thetheorem.\space}\itshape}{\par}
\makeatother

\begin{document}

\begin{enumerate}[(a)]
\item \begin{theorem} Some statement. \end{theorem}
\item
  \begin{nonewlinetheorem}
    Another theorem statement.
  \end{nonewlinetheorem}

\end{enumerate}

\end{document}

答案2

这有点像 hack,但 negative\vspace是 LaTeX 中相当常见的解决方案,它允许您在任何您喜欢的定理/命题/引理等环境中使用此解决方案,而无需为此目的定义新的环境。例如:

\documentclass{article}
\usepackage{amsthm}
\usepackage{enumerate}
\newtheorem{lemma}{Lemma}
\newtheorem{theorem}{Theorem}

\begin{document}

\begin{enumerate}[(a)]
\item \leavevmode \vspace{-2em}
    \begin{lemma} $e^{i\theta}\equiv\cos(\theta)+i\sin(\theta).$ \end{lemma}
\item \leavevmode \vspace{-2em}
    \begin{theorem} $e^{i\pi}=-1$. \end{theorem}
\end{enumerate}

\end{document}

给出以下内容:

LaTex 输出

这里\leavevmode必须进入水平模式,否则\vspace会产生\vskip结束当前段落的结果,而不会产生预期的效果。

相关内容