在 \newtheorem 中添加换行符

在 \newtheorem 中添加换行符

我想定义一个名为的定理环境,sol以便编写练习的解决方案。我已经通过

\documentclass[a4paper]{article}
\usepackage{amsthm}
\newtheorem{ex}{Exercise}[subsection]
\newtheorem*{sol}{Solution}

\begin{document}

\renewcommand{\theenumi}{\alph{enumi}}
\renewcommand{\labelenumi}{\theenumi}

\begin{ex} Question
\end{ex}

\begin{sol} Solution
\end{sol}

\begin{ex} Question
   \begin{enumerate}
      \item First part
      \item Second part
   \end{enumerate}
\end{ex}

\begin{sol}
   \begin{enumerate}
      \item First part
      \item Second part
   \end{enumerate}
\end{sol}

\end{document}

这对于简单的问题来说很好,但对于多部分问题来说看起来有点尴尬(如前面的 mwe 所示)。我认为如果部分 a 从换行符开始而不是按照解决方案标签。我尝试\\在 之后\begin{sol}、 之前或 之后添加\begin{enumerate}。但我收到错误(“这里没有要结束的行”)。

有没有办法在解决方案标签和列表编号?

答案1

在这个特殊情况下,你将解决方案定义为,newtheorem你可以按照第 2.1 节中的说明进行操作阿姆斯特丹手册。一种方法是使用\leavemode命令,但它存在手册中解释的一些问题。

\documentclass[a4paper]{article}
\usepackage{amsthm}
\newtheorem{ex}{Exercise}[subsection]
\newtheorem*{sol}{Solution}

\begin{document}

\renewcommand{\theenumi}{\alph{enumi}}
\renewcommand{\labelenumi}{\theenumi}

\begin{sol}
\leavevmode
   \begin{enumerate}
      \item First part
      \item Second part
   \end{enumerate}
\end{sol}

\end{document}

在此处输入图片描述

另一种方法是定义一个定理样式来执行这种中断(也来自手册):

\newtheoremstyle{break}%
  {}{}%
  {\itshape}{}%
  {\bfseries}{}%  % Note that final punctuation is omitted.
  {\newline}{}

答案2

您可以通过添加空项来欺骗枚举。

\begin{sol}
   \begin{enumerate}
      \item[]
      \item First part
      \item Second part
   \end{enumerate}
\end{sol}

在此处输入图片描述

相关内容