作为拓扑学课程的一部分,我们在 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