diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/atendofenv')
-rw-r--r-- | Master/texmf-dist/source/latex/atendofenv/atendofenv.dtx | 149 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/atendofenv/atendofenv.ins | 48 |
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 + |