summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/doc/latex/atendofenv/atendofenv.pdfbin0 -> 90063 bytes
-rw-r--r--Master/texmf-dist/source/latex/atendofenv/atendofenv.dtx25
-rw-r--r--Master/texmf-dist/tex/latex/atendofenv/atendofenv.sty8
3 files changed, 29 insertions, 4 deletions
diff --git a/Master/texmf-dist/doc/latex/atendofenv/atendofenv.pdf b/Master/texmf-dist/doc/latex/atendofenv/atendofenv.pdf
new file mode 100644
index 00000000000..0ed7cecd1d5
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/atendofenv/atendofenv.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/atendofenv/atendofenv.dtx b/Master/texmf-dist/source/latex/atendofenv/atendofenv.dtx
index 161db376037..f01d321214f 100644
--- a/Master/texmf-dist/source/latex/atendofenv/atendofenv.dtx
+++ b/Master/texmf-dist/source/latex/atendofenv/atendofenv.dtx
@@ -27,7 +27,7 @@
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}
-%<package>\ProvidesPackage{atendofenv}[2022/02/23 v0.1 Initial Version]
+%<package>\ProvidesPackage{atendofenv}[2022/02/24 v0.2 Prevent an infinite loop]
%<package>\RequirePackage{amsthm}
%<package>\RequirePackage{letltxmacro}
%<*driver>
@@ -39,6 +39,7 @@
\usepackage[a4paper, margin=3cm]{geometry}
\usepackage{indentfirst}
\usepackage[hidelinks]{hyperref}
+\usepackage{amssymb}
\usepackage{atendofenv}
\EnableCrossrefs
\CodelineIndex
@@ -111,6 +112,16 @@
% This is a long theorem that will be very long, and it will be helpful if I
% can add a symbol at the end of it to mark its end.
% \end{theorem}
+% You can also change the symbol later.
+% \AtEndOfEnv{theorem}{$\lrcorner$}
+% \begin{verbatim}
+% \AtEndOfEnv{theorem}{$\lrcorner$}
+% \end{verbatim}
+% Now theorems look like this:
+% \begin{theorem}
+% This is a long theorem that will be very long, and it will be helpful if I
+% can add a symbol at the end of it to mark its end.
+% \end{theorem}
% \noindent
% \textbf{Q:} \emph{But, couldn't I change tweak the style of theorems when defining them?}
%
@@ -123,22 +134,30 @@
\newcommand{\AtEndOfEnv}[2]{
% \end{macrocode}
% We first check whether the environment is defined. If so, save the original
-% macros; otherwise report an error.
+% macros (if not saved already); otherwise report an error.
+% \changes{0.2}{2022/02/24}{Fix an infinite loop when trying to change the
+% symbol for the same environment twice.}
% \begin{macrocode}
\ifcsname #1\endcsname
+ \ifcsname aeoe@old#1\endcsname\relax
+ \else
\expandafter\LetLtxMacro\csname aeoe@old#1\expandafter\endcsname\csname #1\endcsname
+ \fi
\else
\PackageError{atendofenv}{Environment #1 undefined}{Check the environment
name passed to AtEndOfEnv}
\fi
\ifcsname end#1\endcsname
+ \ifcsname aeoe@oldend#1\endcsname\relax
+ \else
\expandafter\LetLtxMacro\csname aeoe@oldend#1\expandafter\endcsname\csname end#1\endcsname
+ \fi
\else
\PackageError{atendofenv}{Environment #1 undefined}{Check the environment
name passed to AtEndOfEnv}
\fi
% \end{macrocode}
-% Then we redefined the environment, and use the QED stack of \texttt{amsthm}
+% Then we redefine the environment, and use the QED stack of \texttt{amsthm}
% to get a symbol at the end.
% \begin{macrocode}
\renewenvironment{#1}
diff --git a/Master/texmf-dist/tex/latex/atendofenv/atendofenv.sty b/Master/texmf-dist/tex/latex/atendofenv/atendofenv.sty
index 0b08497e777..2e8dc4c9342 100644
--- a/Master/texmf-dist/tex/latex/atendofenv/atendofenv.sty
+++ b/Master/texmf-dist/tex/latex/atendofenv/atendofenv.sty
@@ -33,18 +33,24 @@
%% For more information, please refer to <https://unlicense.org>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{atendofenv}[2022/02/23 v0.1 Initial Version]
+\ProvidesPackage{atendofenv}[2022/02/24 v0.2 Prevent an infinite loop]
\RequirePackage{amsthm}
\RequirePackage{letltxmacro}
\newcommand{\AtEndOfEnv}[2]{
\ifcsname #1\endcsname
+ \ifcsname aeoe@old#1\endcsname\relax
+ \else
\expandafter\LetLtxMacro\csname aeoe@old#1\expandafter\endcsname\csname #1\endcsname
+ \fi
\else
\PackageError{atendofenv}{Environment #1 undefined}{Check the environment
name passed to AtEndOfEnv}
\fi
\ifcsname end#1\endcsname
+ \ifcsname aeoe@oldend#1\endcsname\relax
+ \else
\expandafter\LetLtxMacro\csname aeoe@oldend#1\expandafter\endcsname\csname end#1\endcsname
+ \fi
\else
\PackageError{atendofenv}{Environment #1 undefined}{Check the environment
name passed to AtEndOfEnv}