summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/atendofenv
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-02-23 20:52:43 +0000
committerKarl Berry <karl@freefriends.org>2022-02-23 20:52:43 +0000
commitf1afe203982a734260a15687c4fb5293b6c47ac1 (patch)
tree50ea03da08c2efa3644145b824fae275baf11f26 /Master/texmf-dist/source/latex/atendofenv
parent9a505aaed845e705e71e6215673268f612bbdefd (diff)
atendofenv (23feb22)
git-svn-id: svn://tug.org/texlive/trunk@62153 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/atendofenv')
-rw-r--r--Master/texmf-dist/source/latex/atendofenv/atendofenv.dtx149
-rw-r--r--Master/texmf-dist/source/latex/atendofenv/atendofenv.ins48
2 files changed, 197 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/atendofenv/atendofenv.dtx b/Master/texmf-dist/source/latex/atendofenv/atendofenv.dtx
new file mode 100644
index 00000000000..161db376037
--- /dev/null
+++ b/Master/texmf-dist/source/latex/atendofenv/atendofenv.dtx
@@ -0,0 +1,149 @@
+% \iffalse meta-comment
+% This is free and unencumbered software released into the public domain.
+%
+% Anyone is free to copy, modify, publish, use, compile, sell, or
+% distribute this software, either in source code form or as a compiled
+% binary, for any purpose, commercial or non-commercial, and by any
+% means.
+%
+% In jurisdictions that recognize copyright laws, the author or authors
+% of this software dedicate any and all copyright interest in the
+% software to the public domain. We make this dedication for the benefit
+% of the public at large and to the detriment of our heirs and
+% successors. We intend this dedication to be an overt act of
+% relinquishment in perpetuity of all present and future rights to this
+% software under copyright law.
+%
+% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+% EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+% MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+% IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+% OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+% ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+% OTHER DEALINGS IN THE SOFTWARE.
+%
+% For more information, please refer to <https://unlicense.org>
+% \fi
+
+% \iffalse
+%<package>\NeedsTeXFormat{LaTeX2e}
+%<package>\ProvidesPackage{atendofenv}[2022/02/23 v0.1 Initial Version]
+%<package>\RequirePackage{amsthm}
+%<package>\RequirePackage{letltxmacro}
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage[T1]{fontenc}
+\usepackage{mathpazo}
+\usepackage[scale=0.85]{FiraMono}
+\usepackage{FiraSans}
+\usepackage[a4paper, margin=3cm]{geometry}
+\usepackage{indentfirst}
+\usepackage[hidelinks]{hyperref}
+\usepackage{atendofenv}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+ \DocInput{atendofenv.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{0}
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+%
+% \GetFileInfo{atendofenv.sty}
+%
+% \title{At End of Env}
+% \author{Fangyi Zhou}
+% \maketitle
+%
+% \section{Motivation}
+% The \texttt{amsthm} package conveniently provides environments for
+% declaring theorems and friends.
+% By default, the \texttt{proof} environment inserts a
+% \href{https://en.wikipedia.org/wiki/Q.E.D.}{QED} symbol at the end of
+% environment.
+% It is sometimes also desirable to insert a similar symbol at the end of other
+% environments, e.g.~at the end of a definition or a remark, which motivates
+% this package.
+%
+% \section{Usage}
+% Let us begin with defining a theorem environment with \texttt{amsthm}:
+% \newtheorem{theorem}{Theorem}
+% \begin{verbatim}
+% \newtheorem{theorem}{Theorem}
+% \end{verbatim}
+% And we can create a theorem like this:
+% \begin{verbatim}
+% \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}
+% \end{verbatim}
+% \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}
+% To do so, simply put after defining a theorem environment:
+% \AtEndOfEnv{theorem}{$\triangleleft$}
+% \begin{verbatim}
+% \AtEndOfEnv{theorem}{$\triangleleft$}
+% \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?}
+%
+% \noindent
+% \textbf{A:} Of course, but sometimes they are defined by a class file (e.g.~from
+% publishers), and tweaking class files may be a sin in many situations.
+%
+% \section{Implementation}
+% \begin{macrocode}
+\newcommand{\AtEndOfEnv}[2]{
+% \end{macrocode}
+% We first check whether the environment is defined. If so, save the original
+% macros; otherwise report an error.
+% \begin{macrocode}
+ \ifcsname #1\endcsname
+ \expandafter\LetLtxMacro\csname aeoe@old#1\expandafter\endcsname\csname #1\endcsname
+ \else
+ \PackageError{atendofenv}{Environment #1 undefined}{Check the environment
+ name passed to AtEndOfEnv}
+ \fi
+ \ifcsname end#1\endcsname
+ \expandafter\LetLtxMacro\csname aeoe@oldend#1\expandafter\endcsname\csname end#1\endcsname
+ \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}
+% to get a symbol at the end.
+% \begin{macrocode}
+ \renewenvironment{#1}
+ {\pushQED{\qed}\renewcommand{\qedsymbol}{#2}\expandafter\csname aeoe@old#1\endcsname}
+ {\popQED\expandafter\csname aeoe@oldend#1\endcsname}
+}
+% \end{macrocode}
+% \Finale
diff --git a/Master/texmf-dist/source/latex/atendofenv/atendofenv.ins b/Master/texmf-dist/source/latex/atendofenv/atendofenv.ins
new file mode 100644
index 00000000000..400f095914b
--- /dev/null
+++ b/Master/texmf-dist/source/latex/atendofenv/atendofenv.ins
@@ -0,0 +1,48 @@
+\input docstrip.tex
+\keepsilent
+\usedir{tex/latex/atendofenv}
+\preamble
+This is a generated file.
+
+This is free and unencumbered software released into the public domain.
+
+Anyone is free to copy, modify, publish, use, compile, sell, or
+distribute this software, either in source code form or as a compiled
+binary, for any purpose, commercial or non-commercial, and by any
+means.
+
+In jurisdictions that recognize copyright laws, the author or authors
+of this software dedicate any and all copyright interest in the
+software to the public domain. We make this dedication for the benefit
+of the public at large and to the detriment of our heirs and
+successors. We intend this dedication to be an overt act of
+relinquishment in perpetuity of all present and future rights to this
+software under copyright law.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+For more information, please refer to <https://unlicense.org>
+\endpreamble
+
+\generate{\file{atendofenv.sty}{\from{atendofenv.dtx}{package}}}
+
+\Msg{*********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the}
+\Msg{* following file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space atendofenv.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file atendofenv.dtx}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*********************************************************}
+\endbatchfile
+