没有 qed 符号的注释证明

没有 qed 符号的注释证明

我使用注释包是为了在需要时隐藏所有证明。每当我注释所有证明时,\qed 符号都会保留,而我希望避免这种情况。我可以完全删除 qed 符号,但我宁愿避免这种情况,因为当我不注释掉证明时我仍然希望它出现。感觉这是由于 thmbox 和注释包之间的冲突造成的。这是一个最小的例子:

% !TEX encoding = UTF-8 Unicode
% -*- coding: UTF-8; -*-
\documentclass[10pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{amsthm}
\usepackage{thmbox}
\usepackage{comment}

\excludecomment{proof}

\begin{document}

\begin{proof}
Test. 
\end{proof}
\end{document}

当 \excludecomment{proof} 处于活动状态时,qed 符号会保留。当删除包 thmbox 时不会发生这种情况。

答案1

快速破解:

在此处输入图片描述

\documentclass{article}
\usepackage{amsthm}
\usepackage{thmbox}
\usepackage{comment}
\newtheorem{theorem}{Theorem}
\renewenvironment{proof}{}{}.  %<----
\excludecomment{proof}

\begin{document}
\begin{theorem}
For any nonnegative integer $n$, we have
\[
\sum_{i=0}^n i=\frac{n(n+1)}{2}.
\]
\end{theorem}

\begin{proof}
We prove the theorem by induction on $n\geq 0\ldots
\end{proof}
\end{document}

答案2

在手册中包注释\includecomment我发现您可以通过或通过定义一个新环境的语句\excludecomment

在手册中包注释我没有找到任何关于重新定义/覆盖已定义的环境的声明。

如果您明确使用任何指令\includecomment{proof}/ ,则会默默覆盖\excludecomment{proof}已定义的环境的开始部分的定义proof,但不会覆盖已定义的环境的结束部分的定义。proof

例如,看一下没有使用这些指令时的细微差别:

\documentclass{article}
\usepackage{comment}
\newenvironment{proof}{Proof:}{This is the end.}
%\includecomment{proof}
%\excludecomment{proof}
\begin{document}
\begin{proof}
This is a proof.
\end{proof}
\end{document}

,产量

在此处输入图片描述

,与\includecomment正在使用的 -directive 相比:

\documentclass{article}
\usepackage{comment}
\newenvironment{proof}{Proof:}{This is the end.}
\includecomment{proof}
%\excludecomment{proof}
\begin{document}
\begin{proof}
This is a proof.
\end{proof}
\end{document}

,产量

在此处输入图片描述

,其中 - 由于覆盖了proof-environment 的前一个定义的开始部分 - 短语“证明:”消失了,但是形成环境主体的字符和短语“这就是结束。”(后者来自 -environment 的前一个定义的结束部分)proof都没有消失,

,与\excludecomment正在使用的 -directive 相比:

\documentclass{article}
\usepackage{comment}
\newenvironment{proof}{Proof:}{This is the end.}
%\includecomment{proof}
\excludecomment{proof}
\begin{document}
\begin{proof}
This is a proof.
\end{proof}
\end{document}

,产量

在此处输入图片描述

,除了来自前一个环境定义的结束部分的短语“这就是结束。”之外,所有内容都proof消失了。

因此,尽管您没有收到错误消息,但我认为这些命令\includecomment并不 \excludecomment用于覆盖已定义的环境。

如果您仍然想这样做,我建议执行以下操作,其中启用和未启用的\includecomment{proof}结果相同:\includecomment{proof}\excludecomment{proof}

\documentclass[10pt]{article}

\usepackage{amsthm}
\usepackage{thmbox}
\usepackage{comment}

\begingroup
\renewenvironment{proof}{}{}%
\def\SecondThirdFirst#1#2#3{#2{#3}#1}
\def\proofredefiner{\renewenvironment{proof}{}{}\excludecomment{proof}}%
%%%% Here you can toggle \includecomment / \excludecomment:%%%%%%%%%%%%%
%\includecomment{proof}%
\excludecomment{proof}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{proof}
\catcode`\%=9\relax
\end{proof}
\begin{proof}
\SecondThirdFirst{\def\proofredefiner{}}%\relax\relax
\end{proof}
\expandafter\endgroup\proofredefiner

\newtheorem{theorem}{Theorem}

\begin{document}

\begin{theorem}
This is a theorem.
\end{theorem}

\begin{proof}
This is a proof.
\end{proof}
\end{document}

在此处输入图片描述

禁用 -directive后\excludecomment,无论 -directive 是否\includecomment启用,您都会得到 --:

在此处输入图片描述

相关内容