我想修改标准amsthm
环境proof
,以便它的开始,包括“证明”一词的缩进量与任何正常文本段落的缩进量相同。
如何引用普通文本段落缩进的大小,以便我可以将其用作长度\hskip
,如下所示:
\makeatlatter
\renewenvironment{proof}[1][\proofname]{\par
\pushQED{\qed}%
\normalfont \topsep6\p@\@plus6\p@\relax
\trivlist
\item[\hskip\SOMETHING %% WHAT GOES IN PLACE OF "SOMETHING"
\itshape
#1\@addpunct{.}]\ignorespaces
}{%
\popQED\endtrivlist\@endpefalse
}
\makeatother
我希望它独立于任何特定的文档类或类的基本字体大小选项,这就是为什么我想引用正常段落缩进的大小而不是指定特定的东西(查看文档类的代码)比如 10pt 或 2em,或者其他什么。
重要的我愿意不是想要缩进整个证明,包括包含“证明”的第一行 — — 仅第一行。
最小示例:
\documentclass{memoir}
\usepackage{amsthm}
\newtheorem{thm}{Theorem}
\makeatletter
\renewenvironment{proof}[1][\proofname]{\par
\pushQED{\qed}%
\normalfont \topsep6\p@\@plus6\p@\relax
\trivlist
\item[\hskip\labelsep % WHAT GOES IN PLACE OF \labelsep??
\itshape
#1\@addpunct{.}]\ignorespaces
}{%
\popQED\endtrivlist\@endpefalse
}
\makeatother
\begin{document}
Lots of text here.
\begin{thm}
This is true.
\end{thm}
\begin{proof}
It's ovvious!
\end{proof}
\end{document}
在输出中我以图形方式表明了我想要移动的内容。
答案1
添加一个在文档开始处设置的新长度\parindent
,以便它可以在列表内可用(可能会重置\parindent
)。
\documentclass{memoir}
\usepackage{amsthm}
\newtheorem{thm}{Theorem}
\makeatletter
\newlength{\normalparindent}
\AtBeginDocument{\setlength{\normalparindent}{\parindent}}
\renewenvironment{proof}[1][\proofname]{\par
\pushQED{\qed}%
\normalfont \topsep6\p@\@plus6\p@\relax
\trivlist
\item[\hskip\labelsep\hskip\normalparindent
\itshape
#1\@addpunct{.}]\ignorespaces
}{%
\popQED\endtrivlist\@endpefalse
}
\makeatother
\begin{document}
Lots of text here.
\begin{thm}
This is true.
\end{thm}
\begin{proof}
It's obvious!
\end{proof}
\end{document}
更紧凑的版本使用xpatch
:
\documentclass{memoir}
\usepackage{amsthm,xpatch}
\newtheorem{thm}{Theorem}
\newlength{\normalparindent}
\AtBeginDocument{\setlength{\normalparindent}{\parindent}}
\xpatchcmd{\proof}{\hskip\labelsep}{\hskip\labelsep\hskip\normalparindent}{}{}
\begin{document}
Lots of text here.
\begin{thm}
This is true.
\end{thm}
\begin{proof}
It's obvious!
\end{proof}
\end{document}
答案2
我想您可以将证明设置为常规段落,而不是列表的一部分。
\documentclass{memoir}
\usepackage{amsthm}
\newtheorem{thm}{Theorem}
\newlength{\storeparindent}
\AtBeginDocument{\setlength{\storeparindent}{\parindent}}
\makeatletter
\renewenvironment{proof}[1][\proofname]{\par
\pushQED{\qed}%
\normalfont \vspace{6\p@\@plus6\p@}%
{\itshape #1\@addpunct{.}}\hspace*{\labelsep}%
\ignorespaces
}{%
\popQED
\@endpefalse
}
\makeatother
\begin{document}
Lots of text here.
\begin{thm}
This is true.
\end{thm}
\begin{proof}
It's obvious!
\end{proof}
\end{document}
这将确保“proof
段落”的缩进方式与其他段落相同。此外,如果文档类重置\parindent
,proof
环境也会随之重置。
您可能希望对帖子proof
间距进行一些调整,因为列表确实有这个功能。