如何在没有 amsthm 的情况下制作证明环境?

如何在没有 amsthm 的情况下制作证明环境?

我想提交一篇论文给本期刊他们希望作者使用等值线

该课程使用一个名为“定理”的包,并且他们编写了自己的定理命令

 \theorembodyfont{\itshape}
\theoremheaderfont{\scshape}
\setlength{\theorempreskipamount}{6pt plus 2pt}
\setlength{\theorempostskipamount}{6pt plus 2pt}

\begingroup \makeatletter
\gdef\th@plain{\normalfont\itshape
  \def\@begintheorem##1##2{%
        \item[\hskip\labelsep \theorem@headerfont ##1\ {##2.}]}%
\def\@opargbegintheorem##1##2##3{%
   \item[\hskip\labelsep \theorem@headerfont ##1\ ##2\ (##3)]}}
\endgroup

因此,我不能包含包 amsthm,因为我会收到错误

! LaTeX Error: Command \theoremstyle already defined.

但是,如果不包含 amsthm 包,我就无法使用 proof 环境。我向期刊询问了他们的建议,他们回答说我可以使用

\newcommand{\proof}{\noindent {\it Proof. }}

但是如果不使用 amsthm,我怎样才能得到证明结束时的平方呢?

答案1

从中复制一些定义amsthm.sty

\documentclass{article}
%% from here-------------------------
\makeatletter
\DeclareRobustCommand{\qed}{%
  \ifmmode % if math mode, assume display: omit penalty etc.
  \else \leavevmode\unskip\penalty9999 \hbox{}\nobreak\hfill
  \fi
  \quad\hbox{\qedsymbol}}
\newcommand{\openbox}{\leavevmode
  \hbox to.77778em{%
  \hfil\vrule
  \vbox to.675em{\hrule width.6em\vfil\hrule}%
  \vrule\hfil}}
\newcommand{\qedsymbol}{\openbox}
\newenvironment{proof}[1][\proofname]{\par
  \normalfont
  \topsep6\p@\@plus6\p@ \trivlist
  \item[\hskip\labelsep\itshape
    #1.]\ignorespaces
}{%
  \qed\endtrivlist
}
\newcommand{\proofname}{Proof}
\makeatother
%% upto here----------------------------
\begin{document}
  \begin{proof}
    This is a proof
  \end{proof}
\end{document}

在此处输入图片描述

答案2

一种甚至更短的方法,再次窃取(或改编)了的定义amsthm.sty

\providecommand{\qedsymbol}{$\square$}
\newcommand{\mathqed}{\quad\hbox{\qedsymbol}}
\DeclareRobustCommand{\qed}{%
  \ifmmode \mathqed
  \else
    \leavevmode\unskip\penalty9999 \hbox{}\nobreak\hfill
    \quad\hbox{\qedsymbol}%
  \fi
}

然后,如果你真的不想定义proof环境,你可以简单地使用 \proof期刊工作人员建议的命令(但使用{\itshape ...}\textit{...}代替\it!),并以以下形式结束定理陈述

`\qed`

没有在它前面留一个空行。如果它跟在文本后面,这会将框刷新到右边距;如果它在显示的末尾,则会将它放置在距离数学表达式末尾四分之一的位置。您还应该在证明后面留一些额外的空格,比如说 \medskip

(对文档类的个人观察 - 它已经严重过时了;文档的日期是 1999 年,甚至没有使用当时的“最佳实践”。我会羞于分发它。)

答案3

快速而肮脏 - 比@HarishKumar 的解决方案短得多,可能不太强大,但也许足够了。

\documentclass{article}
\usepackage{amssymb}

\newenvironment{proof}
{\textit{Proof:} }
{$\square$}

\begin{document}

Theorem: whatever

\begin{proof}
Here's why.
\end{proof}
\end{document}

在此处输入图片描述

相关内容