You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

246 lines
8.0 KiB

% \CheckSum{74}
% \iffalse meta-comment
% ======================================================================
% scrextend.dtx
% Copyright (c) Markus Kohm, 2002-2020
%
% 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.txt.
% ----------------------------------------------------------------------
% scrextend.dtx
% Copyright (c) Markus Kohm, 2002-2020
%
% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
% Version 1.3c, verteilt und/oder veraendert werden.
% Die neuste Version dieser Lizenz ist
% http://www.latex-project.org/lppl.txt
% und Version 1.3c ist Teil aller Verteilungen von LaTeX
% Version 2005/12/01 oder spaeter und dieses Werks.
%
% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
% (allein durch den Autor verwaltet).
%
% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
%
% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
% ======================================================================
% \fi
%
% \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 \~}
%
% \iffalse
%%% From File: $Id: scrextend.dtx 3453 2020-02-25 07:33:30Z kohm $
%<preidentify>%%% (run: preidentify)
%<prepare>%%% (run: prepare)
%<option>%%% (run: option)
%<*dtx>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
\filedate$Date: 2020-02-25 08:33:30 +0100 (Tue, 25 Feb 2020) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
\filerevision$Revision: 1962 $
\endgroup
\ProvidesFile{scrextend.dtx}[\filedate\space\filerevision\space
KOMA-Script package source
(extend other classes)]
\documentclass[parskip=half-]{scrdoc}
\usepackage[english,ngerman]{babel}
\CodelineIndex
\RecordChanges
\GetFileInfo{scrextend.dtx}
\title{\KOMAScript{} \partname\ \texttt{\filename}%
\footnote{Dies ist Version \fileversion\ von Datei
\texttt{\filename}.}}
\date{\filedate}
\author{Markus Kohm}
\begin{document}
\maketitle
\tableofcontents
\DocInput{\filename}
\end{document}
%</dtx>
% \fi
%
% \selectlanguage{ngerman}
%
% \changes{v3.00}{2008/05/01}{neues Paket}
%
% \section{Erweiterungen für andere Klassen}
%
% Dieses Paket dient dazu, einige Möglichkeiten von \KOMAScript{} auch anderen
% Klassen zur Verfügung zustellen. Dafür darf dieses Paket nicht mit einer
% \KOMAScript-Klasse verwendet werden.
%
% \StopEventually{\PrintIndex\PrintChanges}
%
% \subsection{Vorbereitung noch vor der Identifizierung des Pakets}
%
% Die Vorbereitung ist einfach. Es wird nur getestet, ob bereits eine
% \KOMAScript-Klasse geladen ist. Falls dem so ist, wird eine Warnung
% ausgegeben und dafür gesorgt, dass das Paket nicht weiter abgearbeitet wird.
%
% \iffalse
%<*preidentify>
% \fi
%
% \changes{v3.30}{2020/02/25}{\cs{PackageWarningNoLine} statt
% \cs{PackageWarning} mit angehängtem \cs{@gobble}}%^^A
% \begin{macrocode}
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname KOMAClassName\endcsname\relax\else
\PackageWarningNoLine{scrextend}{%
This package was made to extend other classes but\MessageBreak
KOMA-Script classes by some features of the\MessageBreak
KOMA-Script classes.\MessageBreak
It should never be used with a KOMA-Script class.\MessageBreak
Loading of the package will be aborted%
}%
\expandafter\endinput
\fi
% \end{macrocode}
%
% \iffalse
%</preidentify>
%<*identify>
% \fi
%
% \subsection{Identifizierung des Pakets}
%
% \begin{macrocode}
\ProvidesPackage{scrextend}[%
%!KOMAScriptVersion
package (extend other classes with features of KOMA-Script classes)%
]
% \end{macrocode}
%
% \iffalse
%</identify>
%<*prepare>
% \fi
%
% \subsection{Vorbereitung vor den Optionen}
%
% \begin{macro}{\scr@ext@activate}
% \begin{macro}{\scr@ext@activateable}
% \begin{macro}{\scr@ext@addto@activateable}
% \begin{sloppypar}
% Einige Dinge werden nur dann definiert, wenn dies gefordert ist. Dazu werden
% die entsprechenden Definitionen in das zweite Argument von
% \cs{scr@ext@activateable}\marg{Kürzel} gepackt, wodurch sie als
% \cs{scr@ext@activate@}\meta{Kürzel} definiert werden, und anschließend
% \cs{csname}~\texttt{scr@ext@immediate@}\meta{Kürzel}\cs{endcsname}
% ausgeführt. Um das dann zu aktivieren wird
% \cs{scr@ext@activate}\marg{Kürzel} aufgerufen (beispielsweise innerhalb
% einer Option). Mit \cs{scr@ext@addto@activateable} können Aktivierungen
% entsprechend um weitere Definitionen erweitert werden.
% \end{sloppypar}
% \begin{macrocode}
\newcommand*{\scr@ext@activate}[1]{%
\scr@ifundefinedorrelax{scr@ext@activate@#1}{%
\@namedef{scr@ext@immediate@#1}{%
\expandafter\let\csname scr@ext@immediate@#1\endcsname\relax
\csname scr@ext@activate@#1\endcsname
}%
}{%
\csname scr@ext@activate@#1\endcsname
\expandafter\let\csname scr@ext@activate@#1\endcsname\relax
}%
}
\newcommand*{\scr@ext@activateable}[1]{%
\expandafter\newcommand\expandafter*\csname scr@ext@activate@#1\endcsname
}
\newcommand*{\scr@ext@addto@activateable}[1]{%
\scr@ifundefinedorrelax{scr@ext@activate@#1}{%
\expandafter\newcommand\expandafter*\csname scr@ext@activate@#1\endcsname
}{%
\expandafter\g@addto@macro\csname scr@ext@activate@#1\endcsname
}%
}
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \iffalse
%</prepare>
%<*option>
% \fi
%
% \subsection{Optionen}
%
% Das Paket kennt eine universelle Option, um aktivierbare Möglichkeiten zu
% aktivieren. Diese Option steht aber nur während dem Laden des Pakets zur
% Verfügung!
%
% \begin{option}{extendedfeature}
% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
% \cs{FamilyKeyState}}%^^A
% \changes{v3.17}{2015/03/09}{Speicherung des Werts in der internen
% Liste}%^^A
% \begin{macrocode}
\KOMA@key{extendedfeature}{%
\scr@ext@activate{#1}%
\AtEndOfPackage{%
\scr@ifundefinedorrelax{scr@ext@immediate@#1}{}{%
\PackageWarningNoLine{unkown extended feature `#1'\MessageBreak
You have used option `extendedfeature' to\MessageBreak
activate an extended feature `#1',\MessageBreak
but there is no such extended feature.\MessageBreak
See the KOMA-Script manual for more\MessageBreak
information about known activatable\MessageBreak
extended features%
}%
}%
}%
\FamilyKeyStateProcessed
\KOMA@kav@xadd{.scrextend.sty}{extendedfeature}{#1}%
}
\AtEndOfPackage{%
\KOMA@key{extendedfeature}{%
\def\FamilyKeyState{Option `extendedfeature' too late}%
}%
}
% \end{macrocode}
% \end{option}
%
% \iffalse
%</option>
% \fi
%
% \Finale
%
\endinput
%
% end of file `scrextend.dtx'
%%% Local Variables:
%%% mode: doctex
%%% TeX-master: t
%%% End: