summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/koma-script/scrdocstrip.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/koma-script/scrdocstrip.tex')
-rw-r--r--macros/latex/contrib/koma-script/scrdocstrip.tex186
1 files changed, 186 insertions, 0 deletions
diff --git a/macros/latex/contrib/koma-script/scrdocstrip.tex b/macros/latex/contrib/koma-script/scrdocstrip.tex
new file mode 100644
index 0000000000..6d923e8c5a
--- /dev/null
+++ b/macros/latex/contrib/koma-script/scrdocstrip.tex
@@ -0,0 +1,186 @@
+% ======================================================================
+% scrdocstrip.tex
+% Copyright (c) Markus Kohm, 2013-2022
+%
+% This file is part of the LaTeX2e KOMA-Script bundle.
+%
+% This work may be distributed and/or modified under the conditions of
+% the LaTeX Project Public License, version 1.3c of the license.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2005/12/01 or later and of this work.
+%
+% This work has the LPPL maintenance status "author-maintained".
+%
+% The Current Maintainer and author of this work is Markus Kohm.
+%
+% This work consists of all files listed in MANIFEST.md.
+% ======================================================================
+% $Id: scrdocstrip.tex 3915 2022-06-29 07:09:48Z kohm $
+
+\expandafter\ifx\csname scrdocstripversion\endcsname\relax
+ \let\KOMAbatchfile\batchfile
+ \let\batchfile\undefined
+\fi
+
+\input docstrip.tex
+
+\ifx\generate\undefined
+ \errhelp{| This installation requires docstrip version 2.3c or * later,^^J%
+ | but an old version of docstrip has been input.^^J%
+ | This error is fatal, because You have to update docstrip and maybe LaTeX
+ fist!}
+ \errmessage{| Fatal error: Old docstrip in input path}
+ \batchmode
+ \csname @@end\endcsname
+\fi
+
+\expandafter\ifx\csname scrdocstripversion\endcsname\relax
+\else \expandafter\endinput
+\fi
+\Msg{| Using KOMA-Script's docstrip extensions.}%|
+% Support for variables:
+\def\KOMAdefVariable#1#2{%
+ \expandafter\def\csname KOMAvar@#1\endcsname{#2}%
+}
+\def\KOMAifVariable#1{%
+ \expandafter\ifx\csname KOMAvar@#1\endcsname\relax
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\@firstoftwo
+ \fi
+}
+\def\KOMAuseVariable#1{%
+ \KOMAifVariable{#1}{%
+ \csname KOMAvar@#1\endcsname
+ }{%
+ variable #1\undefined
+ }%
+}
+\KOMAdefVariable{AUTHOR}{Markus Kohm}
+\KOMAdefVariable{COPYRIGHT}{%
+ Copyright (c)
+ \KOMAifVariable{COPYRIGHTFROM}{\KOMAuseVariable{COPYRIGHTFROM}-}{}%
+ \KOMAifVariable{COPYRIGHTTILL}{\KOMAuseVariable{COPYRIGHTTILL}}{}
+ \KOMAuseVariable{AUTHOR}%
+ \KOMAifVariable{EMAIL}{ \KOMAuseVariable{EMAIL}}{}%
+}
+\KOMAdefVariable{COPYRIGHTCOMMENT}{%
+ \MetaPrefix\space\KOMAuseVariable{COPYRIGHT}%
+}
+% Extend line scanner by:
+% - %!VARIABLE : to write variable into files
+% - %?VARIABLE=VALUE : to setup a new variable
+\begingroup
+\catcode`\%=12 \catcode`\*=14
+\gdef\processLineX%#1{*
+ \ifcase\ifx%#10\else
+ \ifx<#11\else
+ \ifx!#12\else 3\fi\fi\fi\relax
+ \expandafter\putMetaComment\or
+ \expandafter\checkOption\or
+ \expandafter\KOMAexpandVariable\or
+ \expandafter\removeComment\fi
+ #1}
+\gdef\KprocessLineX%#1{*
+ \ifcase\ifx%#10\else
+ \ifx<#11\else
+ \ifx!#12\else
+ \ifx?#13\else 4\fi\fi\fi\fi\relax
+ \expandafter\putMetaComment\or
+ \expandafter\checkOption\or
+ \expandafter\KOMAexpandVariable\or
+ \expandafter\KOMAsetVariable\or
+ \expandafter\removeComment\fi
+ #1}
+\endgroup
+\def\KOMAexpandVariable!#1\endLine{%
+ \advance\codeLinesPassed\@ne
+ \maybeMsg{x}%
+ \edef\inLine{\KOMAuseVariable{#1}}%
+ \let\do\putline@do
+ \activefiles
+}
+\def\KOMAsetVariable?#1=#2\endLine{%
+ \expandafter\gdef\csname KOMAvar@#1\endcsname{#2}%
+}
+% Extend heading
+\def\ds@heading{%
+ \expandafter\ifx\csname ifbeta\expandafter\endcsname
+ \csname iftrue\endcsname
+ \use@Warning{\outFileName}{%
+ YOU SHOULD NOTE, THAT THIS IS NOT AN OFFICIAL RELEASE!^^J%
+ THIS VERSION IS INTENDED TO BE USED FOR TESTING ONLY!^^J%
+ USAGE FOR PURPOSES OTHER THAN INTENDED IS DANGEROUS!^^J%
+ DON'T EXPECT ANY SUPPORT FOR THIS VERSION!%
+ }%
+ \fi
+ \MetaPrefix ^^J%
+ \MetaPrefix\space This is file `\outFileName',^^J%
+ \MetaPrefix\space generated with the docstrip utility, extended by
+ scrdocstrip.^^J%
+}
+\def\commentWarning#1#2{%
+ \MetaPrefix\space
+ -------------------------------------------------------------------------^^J%
+ \@commentWarning#2^^J\@nil
+ \MetaPrefix\space
+ -------------------------------------------------------------------------^^J%
+}
+\def\@commentWarning#1^^J#2\@nil{%
+ \MetaPrefix\space #1^^J%
+ \ifx\relax#2\relax\else\@commentWarning#2\@nil\fi
+}
+\def\KNL{^\empty^J\perCent^^J}
+\def\XKNL{^\empty^J\perCent|^^J}
+\def\genericWarning#1#2{%
+ \string\expandafter\string\ifx\string\csname\space scrWMSG\string\endcsname\string\relax^^J%
+ \space\space\string\def\string\scrWMSG{\string\immediate\string\write17}^^J%
+ \string\fi^^J%
+ \string\scrWMSG{\KNL
+ +----------------------------------------------------------------------\KNL
+ | WARNING (`#1'):\XKNL
+ +----------------------------------------------------------------------\KNL
+ \@genericWarning#2^^J\@nil
+ +----------------------------------------------------------------------\KNL
+ }^^J%
+}
+\def\@genericWarning#1^^J#2\@nil{%
+ | #1\XKNL
+ \ifx\relax#2\relax\else\@genericWarning#2\@nil\fi
+}%|
+\def\useWarning#1{\let\use@Warning#1}
+\useWarning\genericWarning
+
+% Now, we need some code from docstrip to start old docstrip-processing
+\ifx\undefined\KOMAbatchfile\else
+ \Defaultfalse
+ \let\batchfile\KOMAbatchfile
+ \def\process@first@batchfile{%
+ \processbatchFile
+ \ifnum\NumberOfFiles=\z@
+ \interactive
+ \fi
+ \endbatchfile
+ }
+\fi
+
+\chardef\scrdocstripversion 1\relax
+
+\def\fromoptional#1{%
+ \immediate\openin\inputcheck\uptospace#1 \qStop\relax
+ \ifeof\inputcheck
+ \Msg{Ignorring not existing optional file `#1'.}%
+ \expandafter\@gobbletwo
+ \else
+ \immediate\closein\inputcheck
+ \expandafter\from
+ \fi
+ {#1}%
+}
+
+\process@first@batchfile
+\endinput
+%
+% end of file `scrdocstrip.tex'