重新定义证明环境,使其不会影响环境内的列表

重新定义证明环境,使其不会影响环境内的列表

作为拓扑学课程的一部分,我们在 Overleaf 上填写了一本书/课程笔记。因此,我没有写这本书的前言(我唯一的贡献是添加了用于多行注释的 verbatim 包)。教授定义了一个新的证明环境,如下所示:

\renewenvironment{proof}[1][\proofname]{\par
  \pushQED{$\qedsymbol$}%
  \normalfont \topsep6\p@\@plus6\p@\relax
  \list{}
{\leftmargin=1.25mm\itemindent=20pt\linewidth=0.975\textwidth%
  \item[\hskip\labelsep
      \bfseries
  #1\@addpunct{.}]\ignorespaces}
}{%
  \popQED\endlist\@endpefalse
}

但是,每当有人在校样中使用列表时,此定义都会在书中引起问题。第一项没有标签(我假设那是 \hskip\labelsep,但我不确定),第二项有一个粗体标签。有没有办法我可以重写校样环境,使其具有相同的布局,但不影响校样中的列表?我宁愿不必用列表重写校样。

编辑:事情变得越来越复杂,所以我删除了图像和代码片段。

这应该可以运行(在 Overleaf 和 TeX Works 上运行)。

\documentclass[letterpaper,twoside]{tufte-book}

\usepackage{amsmath}
\usepackage{amsthm}
\usepackage[inline]{enumitem}
\usepackage{amssymb}

\setlist[enumerate]{label=(\arabic*)}

\renewcommand{\qedsymbol}{\square}% PLEASE NOTE: this is in the AMS symbols font.
\makeatletter

\renewenvironment{proof}[1][\proofname]{\par
  \pushQED{$\qedsymbol$}%
  \normalfont \topsep6\p@\@plus6\p@\relax
  \list{}{\leftmargin=1.25mm\itemindent=20pt\linewidth=0.975\textwidth%
  \item[\hskip\labelsep
        \bfseries
   #1\@addpunct{.}]\ignorespaces}
}{%
  \popQED\endlist\@endpefalse
}
\makeatother

\begin{document}
\begin{proof} Stuff
\begin{enumerate}
\item Item 1
\item Item 2
\item Item 3
\end{enumerate}
\end{proof}
\end{document}

答案1

你的教授最好只是重复使用amsthm原来的,而不是用\list它来定义它。在这个例子中,墓碑的位置完全是错误的。

如果处理器想要的是粗体而不是斜体,那么使用

\renewenvironment{proof}[1][\proofname]{\par
  \pushQED{\qed}%
  \normalfont \topsep6\p@\@plus6\p@\relax
  \trivlist
  \item[\hskip\labelsep
        %\itshape
        \bfseries   
    #1\@addpunct{.}]\ignorespaces
}{%
  \popQED\endtrivlist\@endpefalse
}

或者确保定义在ie\list之前结束\item

\list{}{\leftmargin=1.25mm\itemindent=20pt\linewidth=0.975\textwidth}%
\item[\hskip\labelsep
      \bfseries
 #1\@addpunct{.}]\ignorespaces

然后列表也会按预期工作。导致问题的是参数\item内部\list

相关内容