当我在枚举项的开头插入定理/定义环境时,它会在之前自动创建一个换行符定理。是否有可能以某种方式删除这个强制换行符,以便枚举项(例如(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}
给出以下内容:
这里\leavevmode
必须进入水平模式,否则\vspace
会产生\vskip
结束当前段落的结果,而不会产生预期的效果。