定理格式:与 itemize 的奇怪交互

定理格式:与 itemize 的奇怪交互

这个问题与这个

我想要将定理标题单独放在这样的一行:

Theorem 1.
some text...

amsthm文档中,他们建议这样做:

\newtheoremstyle{mystyle}{3pt}{3pt}{}{0pt}{\bfseries}{.}{\newline}{}
\theoremstyle{mystyle}

并且它有效...只要定理的文本不以逐项列举或枚举开头。

amsthm在这种情况下我该如何让它发挥作用?

而且...为什么它会以这种(奇怪的)方式运作?

这是一个展示该问题的最小例子:

\documentclass{article}
\usepackage{amsthm}

\newtheoremstyle{mystyle} % Name
  {3pt}                   % Space above
  {3pt}                   % Space below
  {}                      % Body font
  {0pt}                   % Indent amount
  {\bfseries}             % Theorem head font
  {.}                     % Punctuation after theorem head
  {\newline}              % Space after theorem head
  {}                      % Theorem head spec (can be left empty, meaning 'normal')

\theoremstyle{mystyle}
\newtheorem{Example}{Example}


\begin{document}

\begin{Example}
  This is on the next line.
\end{Example}

\begin{Example}
  \begin{itemize}
    \item But this isn't!
    \item \ldots
  \end{itemize}
\end{Example}

\begin{Example}~
  \begin{itemize}
    \item And now, there is too much vertical space above
    \item \ldots
  \end{itemize}
\end{Example}

\end{document}

答案1

该定理假设您以一个句子开始正文,而不是以一个列表开始。可以使用以下解决方法:您可以开始一个虚假的段落,然后回溯一行:

\begin{Example}\leavevmode\vspace{-\baselineskip}
  \begin{itemize}
    \item This works
    \item \ldots
  \end{itemize}
\end{Example}

答案2

当我遇到同样的问题时,Boris 的回答实际上并没有解决我的问题。示例 X 文本和列表编号之间的间距不正确。

但我意识到我可以简单地写一些类似这样的内容:

\begin{Example} $ $
  \begin{itemize}
    \item This works
    \item \ldots
  \end{itemize}
\end{Example}

注意空的数学环境,它迫使 LaTeX 认为示例 X 文本之后有一个文本块。

我只是想分享我的解决方案,因为我对提供的答案不满意 - 我希望它能对某些人有所帮助。

相关内容