summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/koma-script/scrdoc.cls
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/koma-script/scrdoc.cls')
-rw-r--r--macros/latex/contrib/koma-script/scrdoc.cls354
1 files changed, 354 insertions, 0 deletions
diff --git a/macros/latex/contrib/koma-script/scrdoc.cls b/macros/latex/contrib/koma-script/scrdoc.cls
new file mode 100644
index 0000000000..c80ada6078
--- /dev/null
+++ b/macros/latex/contrib/koma-script/scrdoc.cls
@@ -0,0 +1,354 @@
+% ======================================================================
+% scrdoc.cls
+% Copyright (c) Markus Kohm, 2002-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.
+% ======================================================================
+% Note: This class was made to shrink size of dtx files.
+% Do not use this class for anything because it may change
+% incompatible from distribution to distribution
+% ======================================================================
+% $Id: scrdoc.cls 3900 2022-06-24 08:00:42Z kohm $
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesClass{scrdoc}[%
+ 2022/06/24 v0.1j KOMA-Script source documentation class (deprecated)]
+
+\ClassWarningNoLine{scrdoc}{%
+ This class is depreacted since KOMA-Script 3.36!\MessageBreak
+ The internal KOMA-Script source documentation class\MessageBreak
+ scrdoc is not used any longer for the implementation\MessageBreak
+ documentation of KOMA-Script.\MessageBreak
+ It is also not compatible with version 3 of the\MessageBreak
+ doc package and currently only a workaround is used to\MessageBreak
+ force using doc version 2 and to ignore ltxdoc.cfg.\MessageBreak
+ You should replace this class urgently, because it will\MessageBreak
+ be removed from KOMA-Script soon%
+}
+
+% scrdoc is incompatible with doc v3. Several changes would be needed
+% to improve this. However, currently a kind of emergency workaround can be
+% used.
+\PassOptionsToClass{nocfg,doc2}{scrdoc}
+
+% Replace article class by scrartcl class.
+\newcommand*{\sd@saved@LoadClass}{}
+\let\sd@saved@LoadClass=\LoadClass
+\renewcommand*{\LoadClass}[2][]{%
+ \begingroup
+ \edef\@tempc{#2}\def\@tempb{article}%
+ \ifx\@tempc\@tempb
+ \let\LoadClass\sd@saved@LoadClass
+ \def\@tempc{scrartcl}%
+ \fi
+ \edef\@tempc{%
+ \noexpand\endgroup\noexpand\sd@saved@LoadClass[{#1}]{\@tempc}}%
+ \@tempc
+}
+\newcommand*{\sd@saved@PassOptionsToClass}{}
+\let\sd@saved@PassOptionsToClass=\PassOptionsToClass
+\renewcommand*{\PassOptionsToClass}[2]{%
+ \begingroup
+ \edef\@tempc{#2}\def\@tempb{article}%
+ \ifx\@tempc\@tempb
+ \def\@tempc{scrartcl}%
+ \fi
+ \edef\@tempc{%
+ \noexpand\endgroup\noexpand\sd@saved@PassOptionsToClass{#1}{%
+ \@tempc}}%
+ \@tempc
+}
+\LoadClassWithOptions{ltxdoc}[2022/06/14]
+\@ifundefined{cs}{\DeclareRobustCommand\cs[1]{\texttt{\bslash #1}}}{}
+
+% Use two columns at index
+\setcounter{IndexColumns}{2}
+
+% If \EnableCrossrefs is used, we don't want following macros to be
+% indexed:
+
+\DoNotIndex{\.,\\,\ ,\@Alph,\@M}
+\DoNotIndex{\@abstrtfalse,\@abstrttrue,\@addtoreset,\@afterheading}
+\DoNotIndex{\@afterindentfalse,\@alph,\@arabic}
+\DoNotIndex{\@beginparpenalty}
+\DoNotIndex{\@car,\@cdr,\@centercr}
+\DoNotIndex{\@dblfloat,\@dotsep}
+\DoNotIndex{\@dottedtocline,\@empty,\@endparpenalty}
+\DoNotIndex{\@float,\@fontswitch}
+\DoNotIndex{\@gobbletwo}
+\DoNotIndex{\@hangfrom,\@highpenalty}
+\DoNotIndex{\@ifnextchar,\@ifundefined,\@itempenalty}
+\DoNotIndex{\@latex@warning}
+\DoNotIndex{\@m,\@medpenalty,\@minus,\@mkboth,\@mparswitchfalse}
+\DoNotIndex{\@mparswitchtrue}
+\DoNotIndex{\@ne,\@nil,\@nobreakfalse,\@nobreaktrue,\@nomath}
+\DoNotIndex{\@plus}
+\DoNotIndex{\@tempa,\@tempcnta,\@tempdima,\@tempskipka}
+\DoNotIndex{\@tempswafalse,\@tempswatrue}
+\DoNotIndex{\@tempb,\@tempcntb,\@tempdimb,\@tempskipkb}
+\DoNotIndex{\@tempswbfalse,\@tempswbtrue}
+\DoNotIndex{\@tempc,\@tempcntc,\@tempdimc,\@tempskipkc}
+\DoNotIndex{\@tocrmarg,\@topnewpage,\@topnum,\@twocolumnfalse}
+\DoNotIndex{\@twocolumntrue,\@twosidefalse,\@twosidetrue}
+\DoNotIndex{\@whiledim,\@whilenum}
+\DoNotIndex{\addcontentsline,\addpenalty,\addtocontents,\addtolength}
+\DoNotIndex{\addvspace,\advance}
+\DoNotIndex{\begin,\begingroup,\bfseries,\box,\bullet}
+\DoNotIndex{\c@figure,\c@page,\c@secnumdepth,\c@table,\c@tocdepth}
+\DoNotIndex{\cdot,\centering,\changes,\cleardoublepage,\clearpage}
+\DoNotIndex{\cmd,\col@number,\CurrentOption,\CodelineIndex,\cs}
+\DoNotIndex{\day,\dblfloatpagefraction,\dbltopfraction}
+\DoNotIndex{\DeclareOldFontCommand,\DeclareOption,\def,\DisableCrossrefs}
+\DoNotIndex{\divide,\DoNotIndex}
+\DoNotIndex{\ifdim,\else,\fi,\empty,\em,\EnableCrossrefs,\end}
+\DoNotIndex{\end@dblfloat}
+\DoNotIndex{\end@float,\endgroup,\endlist,\endquotation,\endtitlepage}
+\DoNotIndex{\everypar,\ExecuteOptions,\expandafter}
+\DoNotIndex{\fboxrule,\fboxsep}
+\DoNotIndex{\gdef,\global}
+\DoNotIndex{\hangindent,\hbox,\hfil,\hrule,\hsize,\hskip,\hspace,\hss}
+\DoNotIndex{\if@tempswa,\ifcase,\or,\fi,\fi}
+\DoNotIndex{\ifnum,\ifodd,\ifx,\fi,\fi,\fi}
+\DoNotIndex{\include,\input,\InputIfFileExists,\item,\itshape}
+\DoNotIndex{\kern,\kernel@ifnextchar}
+\DoNotIndex{\leavevmode,\leftmark,\leftskip,\let,\lineskip}
+\DoNotIndex{\list,\long}
+\DoNotIndex{\m@ne,\m@th,\marginpar,\markboth,\markright,\mathbf,\mathcal}
+\DoNotIndex{\mathit,\mathnormal,\mathrm,\mathsf,\mathtt,\MessageBreak}
+\DoNotIndex{\month}
+\DoNotIndex{\newblock,\newcommand,\newcount,\newcounter,\newdimen}
+\DoNotIndex{\newenvironment,\newlength,\newpage,\nobreak,\noindent}
+\DoNotIndex{\normalfont,\normallineskip,\normalsize,\null,\number}
+\DoNotIndex{\numberline,\normalcolor}
+\DoNotIndex{\OldMakeindex,\OnlyDescription,\overfullrule}
+\DoNotIndex{\p@,\PackageError,\PackageInfo,\PackageWarningNoLine}
+\DoNotIndex{\pagenumbering,\pagestyle,\par,\paragraph,\parbox}
+\DoNotIndex{\PassOptionsToPackage,\pcal,\penalty,\pmit,\PrintChanges}
+\DoNotIndex{\PrintIndex,\ProcessOptions,\protect,\providecommand}
+\DoNotIndex{\ProvidesClass}
+\DoNotIndex{\raggedbottom,\raggedleft,\raggedright,\refstepcounter,\relax}
+\DoNotIndex{\renewcommand,\RequirePackage,\reset@font}
+\DoNotIndex{\rightmargin,\rightmark,\rightskip,\rmfamily,\@Roman,\@roman}
+\DoNotIndex{\scshape,\secdef,\setbox,\setcounter,\setlength}
+\DoNotIndex{\settowidth,\sfcode,\sffamily,\skip,\sloppy,\slshape,\space}
+\DoNotIndex{\string}
+\DoNotIndex{\the,\thispagestyle,\triangleright,\ttfamily}
+\DoNotIndex{\twocolumn,\typeout}
+\DoNotIndex{\undefined,\usecounter}
+\DoNotIndex{\vfil,\vfill,\vspace}
+\DoNotIndex{\wd,\xdef,\year,\z@}
+% More may be set by the source files.
+
+% Redefine some defaults to handle not only macros and environments
+% but also options, Length, Counters, KOMAvars. Also define some new.
+\def\macro{\begingroup
+ \catcode`\\12
+ \MakePrivateLetters \m@cro@{0}}
+\def\environment{\begingroup
+ \catcode`\\12
+ \MakePrivateLetters \m@cro@{1}}
+\def\option{\begingroup
+ \catcode`\\12
+ \MakePrivateLetters \m@cro@{2}}
+\def\Length{\begingroup
+ \catcode`\\12
+ \MakePrivateLetters \m@cro@{3}}
+\def\Counter{\begingroup
+ \catcode`\\12
+ \MakePrivateLetters \m@cro@{4}}
+\def\KOMAvar{\begingroup
+ \catcode`\\12
+ \MakePrivateLetters \m@cro@{5}}
+\def\KOMAfont{\begingroup
+ \catcode`\\12
+ \MakePrivateLetters \m@cro@{6}}
+\long\def\m@cro@#1#2{\endgroup \topsep\MacroTopsep \trivlist
+ \edef\saved@macroname{\string#2}%
+ \ifcase #1
+ \edef\saved@indexname{\expandafter\@gobble\string#2}%
+ \else
+ \let\saved@indexname\saved@macroname
+ \fi
+ \def\makelabel##1{\llap{##1}}%
+ \if@inlabel
+ \let\@tempa\@empty \count@\macro@cnt
+ \loop \ifnum\count@>\z@
+ \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m@ne
+ \repeat
+ \edef\makelabel##1{\llap{\vtop to\baselineskip
+ {\@tempa\hbox{##1}\vss}}}%
+ \advance \macro@cnt \@ne
+ \else \macro@cnt\@ne \fi
+ \edef\@tempa{\noexpand\item[%
+ \ifcase #1
+ \noexpand\PrintMacroName
+ \or
+ \noexpand\PrintEnvName
+ \or
+ \noexpand\PrintOptionName
+ \or
+ \noexpand\PrintLengthName
+ \or
+ \noexpand\PrintCounterName
+ \or
+ \noexpand\PrintKOMAvarName
+ \or
+ \noexpand\PrintKOMAfontName
+ \fi
+ {\string#2}]}%
+ \@tempa
+ \global\advance\c@CodelineNo\@ne
+ \ifcase #1
+ \SpecialMainIndex{#2}\nobreak
+ \DoNotIndex{#2}%
+ \or
+ \SpecialMainEnvIndex{#2}\nobreak
+ \or
+ \SpecialMainOptionIndex{#2}\nobreak
+ \or
+ \SpecialMainLengthIndex{#2}\nobreak
+ \DoNotIndex{#2}%
+ \or
+ \SpecialMainCounterIndex{#2}\nobreak
+ \or
+ \SpecialMainKOMAvarIndex{#2}\nobreak
+ \or
+ \SpecialMainKOMAfontIndex{#2}\nobreak
+ \fi
+ \global\advance\c@CodelineNo\m@ne
+ \ignorespaces}
+\let\endoption\endmacro
+\let\endLength\endmacro
+\let\endCounter\endmacro
+\let\endKOMAvar\endmacro
+
+% Some new command
+\newcommand*{\File}[1]{\texttt{\mbox{#1}}}
+\newcommand*{\Class}{\File}
+\newcommand*{\Package}{\File}
+\newcommand*{\Macro}{\cs}
+\newcommand*{\Option}{\File}
+
+% The new names we need
+\providecommand*{\EnvName}{Umgebung}% This is german
+\providecommand*{\EnvsName}{Umgebungen}% This is german
+\providecommand*{\OptionName}{Option}% This is german
+\providecommand*{\OptionsName}{Optionen}% This is german
+\providecommand*{\PrintOptionName}[1]{\strut \MacroFont #1\ }
+\providecommand*{\PrintDescribeOption}[1]{\strut \MacroFont #1\ }
+\providecommand*{\LengthName}{L\"ange}% This is german
+\providecommand*{\LengthsName}{L\"angen}% This is german
+\providecommand*{\PrintLengthName}[1]{\strut \MacroFont \string #1\ }
+\providecommand*{\PrintDescribeLength}[1]{\strut \MacroFont \string #1\ }
+\providecommand*{\CounterName}{Z\"ahler}% This is german
+\providecommand*{\CountersName}{Z\"ahler}% This is german
+\providecommand*{\PrintCounterName}[1]{\strut \MacroFont #1\ }
+\providecommand*{\PrintDescribeCounter}[1]{\strut \MacroFont #1\ }
+\providecommand*{\KOMAvarName}{Variable}% This is german
+\providecommand*{\KOMAvarsName}{Variablen}% This is german
+\providecommand*{\PrintKOMAvarName}[1]{\strut \MacroFont #1\ }
+\providecommand*{\PrintDescribeKOMAvar}[1]{\strut \MacroFont #1\ }
+\providecommand*{\KOMAfontName}{Element mit Schrift}% This is german
+\providecommand*{\KOMAfontsName}{Elemente mit Schrift}% This is german
+\providecommand*{\PrintKOMAfontName}[1]{\strut \MacroFont #1\ }
+\providecommand*{\PrintDescribeKOMAfont}[1]{\strut \MacroFont #1\ }
+
+% Defining new main index commands
+\newcommand*{\SpecialMainIndex@Type}[3]{%
+ \@bsphack\special@index{%
+ #1\actualchar
+ {\string\ttfamily\space#1}
+ (\string #2)%
+ \encapchar main}%
+ \special@index{%
+ #3:\levelchar{%
+ \string\ttfamily\space#1}\encapchar
+ main}\@esphack}
+\renewcommand*{\SpecialMainEnvIndex}[1]{%
+ \SpecialMainIndex@Type{#1}{\EnvName}{\EnvsName}}
+\newcommand*{\SpecialMainOptionIndex}[1]{%
+ \SpecialMainIndex@Type{#1}{\OptionName}{\OptionsName}}
+\newcommand*{\SpecialMainLengthIndex}[1]{%
+ \@bsphack\SpecialIndex@{#1}{(\string\LengthName )\encapchar main}%
+ \@esphack}
+\newcommand*{\SpecialMainCounterIndex}[1]{%
+ \SpecialMainIndex@Type{#1}{\CounterName}{\CountersName}}
+\newcommand*{\SpecialMainKOMAvarIndex}[1]{%
+ \SpecialMainIndex@Type{#1}{\KOMAvarName}{\KOMAvarsName}}
+\newcommand*{\SpecialMainKOMAfontIndex}[1]{%
+ \SpecialMainIndex@Type{#1}{\KOMAfontName}{\KOMAfontsName}}
+
+% Defining new usage index commands
+\newcommand*{\SpecialIndex@Type}[3]{%
+ \@bsphack
+ \index{#1\actualchar{\protect\ttfamily#1}
+ (#2)\encapchar usage}%
+ \index{#3:\levelchar{\protect\ttfamily#1}\encapchar
+ usage}\@esphack}
+\renewcommand{\SpecialEnvIndex}[1]{%
+ \SpecialIndex@Type{#1}{\EnvName}{\EnvsName}}
+\newcommand*{\SpecialOptionIndex}[1]{%
+ \SpecialMainIndex@Type{#1}{\OptionName}{\OptionsName}}
+\newcommand*{\SpecialLengthIndex}[1]{\@bsphack%
+ {\let\special@index\index
+ \SpecialIndex@{#1}{(\string\LengthName )\encapchar usage}}%
+ \@esphack}
+\newcommand*{\SpecialCounterIndex}[1]{%
+ \SpecialMainIndex@Type{#1}{\CounterName}{\CountersName}}
+\newcommand*{\SpecialKOMAvarIndex}[1]{%
+ \SpecialMainIndex@Type{#1}{\KOMAvarName}{\KOMAvarsName}}
+
+% Define new describe commands
+\newcommand*{\newDescribe}[1]{%
+ \expandafter\newcommand\expandafter*\csname Describe#1\endcsname{%
+ \leavevmode\@bsphack\begingroup\MakePrivateLetters
+ \csname Describe@#1\endcsname}%
+ \expandafter\newcommand\expandafter*\csname Describe@#1\endcsname[1]{%
+ \endgroup
+ \marginpar{\raggedleft\csname PrintDescribe#1\endcsname{##1}}%
+ \csname Special#1Index\endcsname{##1}\@esphack\ignorespaces}%
+}
+\newDescribe{Option}
+
+% We use left margin very much, so shift everything to the right
+\if@twoside
+\else
+\addtolength{\oddsidemargin}{1in}
+\setlength{\oddsidemargin}{1.5\oddsidemargin}
+\addtolength{\oddsidemargin}{-1in}
+\fi
+
+% We need some logos:
+\providecommand*{\eTeX}{$\m@th\varepsilon$-\TeX}
+
+% Terms for other languages:
+\AtBeginDocument{%
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname addto\endcsname\relax
+ \ClassWarning{scrdoc}{Package babel not loaded}%
+ \else
+ \addto\captionsenglish{%
+ \def\partname{File}%
+ }%
+ \addto\captionsngerman{%
+ \def\partname{Datei}%
+ }%
+ \ClassInfo{scrdoc}{Select language \languagename}%
+ \expandafter\selectlanguage\expandafter{\languagename}%
+ \fi
+}
+
+\endinput
+% end of ``scrdoc.cls''