仅带有括号数字标签的定理样式

仅带有括号数字标签的定理样式

我希望使用 AMS LaTeX 系统创建一个类似定理的环境,它仅由一个括号内的数字组成:没有其他声明,如定理、引理等。其他属性(环境上方和下方的间距、数字和文本开头之间的间距等)应该与普通的类似定理的环境相同。

我的想法是使用如下\newtheoremstyle命令\newtheorem,可以在一个最小的非工作示例中找到:

\documentclass[11pt]{amsbook}
\usepackage{amsthm}

\newtheoremstyle{parens}
  {.5\baselineskip±.2\baselineskip}
  {.5\baselineskip±.2\baselineskip}
  {}
  {\parindent}
  {}
  {)}
  {.5em}
  {}
  {}
\theoremstyle{parens}
\newtheorem{nitem}[equation]{(} %(*)

\begin{document}

\begin{nitem}
   This is a test of the emergency broadcasting system.
\end{nitem}

(1)\hspace*{.5em}This is a test of the emergency broadcasting system.
\end{document}

结果如下: 图像显示了所需定理样式中的错误 因此,数字按需要被括号包围,但左括号后有一个烦人的空格。我怀疑它newtheoremstyle不是打算以这种方式使用的......但是:可以用某种通用方法消除空格吗?我的临时解决方案是在标有 (* 的行中的 ( 后引入一个负空格,但我不知道哪种空格可以对所有字体和字体大小进行校正。或者还有其他方法吗?感谢您阅读本文。

答案1

使用最后一个参数(head-spec)\newtheoremstyle(请注意,你有一个{}太多了)。

\documentclass[11pt]{amsbook}
\usepackage{amsthm}

\newtheoremstyle{parens}
  {.5\baselineskip plus .2\baselineskip minus .2\baselineskip}
  {.5\baselineskip plus .2\baselineskip minus .2\baselineskip}
  {}
  {\parindent}
  {}
  {}
  {.5em}
  {(\thmnumber{#2})\thmnote{ [#3]}}

\theoremstyle{parens}
\newtheorem{nitem}[equation]{}

\begin{document}

\begin{nitem}
   This is a test of the emergency broadcasting system.
\end{nitem}

(1)\hspace*{.5em}This is a test of the emergency broadcasting system.

\begin{nitem}[Something]
   This is a test of the emergency broadcasting system.
\end{nitem}

\end{document}

我使用括号来注释定理(但你可能没有)。

在此处输入图片描述

您无法使用 指定橡胶长度±。您不会收到任何错误,但会出现一些警告

(\end occurred when \ifx on line 14 was incomplete)
(\end occurred when \ifx on line 14 was incomplete)

每次调用nitem并且粘合规范都不灵活。

答案2

(应 Mensch 的要求编辑)所以也许在这里发帖可以澄清一下。我可以\newtheorem通过简单地在该行中添加一个来解决问题并使其按预期工作\ignorespaces,该行标记为 (*):

\documentclass[11pt]{amsbook}
\usepackage{amsthm}

\newtheoremstyle{parens}
  {.5\baselineskip±.2\baselineskip}
  {.5\baselineskip±.2\baselineskip}
  {}
  {\parindent}
  {}
  {)}
  {.5em}
  {}
  {}
\theoremstyle{parens}
\newtheorem{nitem}[equation]{(\ignorespaces} %(*)

\begin{document}

\begin{nitem}
   This is a test of the emergency broadcasting system.
\end{nitem}

(1)\hspace*{.5em}This is a test of the emergency broadcasting system.
\end{document}

答案3

鉴于唯一的“标记”是括号中的数字,编排amsthm包的机制可能有点过头了。使用包的机制enumitem可能更直接。

如果不想让定理文本以斜体显示,请\itshapebefore选项中删除。如果不想使用悬挂缩进,请更改left=0ptwide=0pt

在此处输入图片描述

\documentclass[11pt]{amsbook}
\usepackage{lipsum} % filler text

\usepackage{enumitem} % for \newlist and \setlist macros
\newlist{nitem}{enumerate}{1}
\setlist[nitem]{label = \upshape(\arabic*),
                ref   = \upshape\arabic*,
                resume,
                left  = 0pt,
                before= {\vspace{0.5\baselineskip}\item\itshape},
                after = {\vspace{0.5\baselineskip}}
               }

\begin{document}

\noindent\lipsum[1][1-3]

\begin{nitem}
This is a test of the emergency broadcasting system.
\end{nitem}
\noindent\lipsum[1][4-6]

\begin{nitem}
This is another test of the emergency broadcasting system. This is another test of the emergency broadcasting system.
\end{nitem}

\noindent\lipsum[1][7-9]

\begin{nitem} \label{item:yet_another}
This is yet another test of the emergency broadcasting system. This is yet another test of the emergency broadcasting system.
\end{nitem}

\noindent\lipsum[1][10-12]

\bigskip
A cross-reference to ``theorem'' \ref{item:yet_another}.

\end{document}

相关内容