% \CheckSum{223} % \iffalse meta-comment % ====================================================================== % scrkernel-miscellaneous.dtx % Copyright (c) Markus Kohm, 2002-2013 % % 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. % ---------------------------------------------------------------------- % scrkernel-miscellaneous.dtx % Copyright (c) Markus Kohm, 2002-2013 % % 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: scrkernel-miscellaneous.dtx 1529 2013-12-03 07:36:57Z mjk $ %<*driver> % \fi \ProvidesFile{scrkernel-miscellaneous.dtx}[2013/12/08 v3.12 KOMA-Script (miscellaneous, maybe everything or nothing)] % \iffalse \documentclass[halfparskip-]{scrdoc} \usepackage[english,ngerman]{babel} \usepackage[latin1]{inputenc} \CodelineIndex \RecordChanges \GetFileInfo{scrkernel-miscellaneous.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} % % \fi % % \selectlanguage{ngerman} % % \changes{v2.95}{2002/07/01}{% % erste Version aus der Aufteilung von \texttt{scrclass.dtx}} % % \section{Verschiedenes} % % Es gibt eine ganze Menge für das sich einzeln keine eigene Datei % lohnt oder eine Einordnunge schwierig ist. All das nennen wird % "`Verschiedenes"'. % % \subsection{Erweiterung der Internationalisierung} % % \changes{v2.2c}{1995/05/25}{Anpassung an CJK von Werner Lemberg.} % % Die Standardnamen wie \cs{figurename} etc. sind nicht immer % ausreichend, da manche Sprachen Zählwörter vor oder nach dem % jeweiligen Zähler einfügen müssen (man denke da sogar im % Deutschen an "`Abbildung~1"' und "`Erste Abbildung"'). Desweiteren % werden bei manchen Sprachen die Zwischenräume anders gesetzt % bzw. sogar ganz unterdrückt. % % Es gibt drei Ebenen, die man modifizieren kann, um verschiedenste % Sprachen zu implementieren: Ebene~1 besteht aus den hinl"anglich % bekannten Makros wie \cs{figurename} und alle weiteren Makros, die % z.\,B. \textsf{german} modifiziert. Desweiteren können die Makros % \cs{sectfont} etc. etwaige zusätzliche Fonts aktivieren. Ebene~2 ist % die zusätzliche Adaptierung von den Zählern selbst (\cs{thesection} % könnte z.\,B. chinesische Schriftzeichen ansprechen anstelle von % arabischen Ziffern). Die allgemeinste Form der dritten Ebene % besteht aus den Makros \cs{chaptermarkformat}, % \cs{sectionmarkformat} etc. welche die Änderung der Reihenfolge von % Zähler und Titel sowie die genaue Kontrolle der Zwischenräume % etc. ermöglichen. % % Für die gängigen Sprachen können alle Makros für die dritte % Ebene identisch definiert werden. Bei Verwendung von "`exotischen"' % Sprachen, aber auch speziellen Darstellungen in den gängigen % Sprachen können diese Makros umdefiniert werden. % % Das Konzept für der Internationalisierung mit der dritten Ebene % wurde ursprünglich von Werner Lemberg\footnote{Werner Lemberg ist im % InterNet unter \texttt{a7621gac@awiuni11.bitnet} zu erreichen.} % entwickelt. Die "`caption files"' seines CJK-Pakets % (\textbf{C}hinesisch, \textbf{J}apanisch, \textbf{K}oreanisch) bauen % auf diesem Konzept auf. Damit ist \KOMAScript{} für alle möglichen % Sprachanpassungen bestens gerüstet. In der dritten Ebene wird % übrigens auch die Einhaltung der DUDEN-Regeln für die % Gliederungsnummern realisiert. % % \StopEventually{\PrintIndex\PrintChanges} % % \iffalse %<*option> % \fi % % \subsection{Optionen für Entwürfe} % % \begin{option}{draft} % \changes{v2.95}{2002/12/05}{mit \textsl{keyval} reimplementiert} % \begin{option}{final} % \changes{v2.95}{2002/12/05}{obsolete Option} % \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} % ersetzt} % \changes{v3.01a}{2008/11/21}{standard statt obsolet} % \changes{v3.02c}{2008/02/17}{optionales Argument im Fall von % \textsf{scrextend} gesetzt} % \changes{v3.12}{2013/03/05}{Nutzung der Status-Signalisierung mit % \cs{FamilyKeyStateProcessed}}% % Der einzige Unterschied zwischen Entwürfen und Endversionen ist aus % Sicht der Klassen, ob Zeilenüberhänge mit einem schwarzen Balken % angezeigt werden sollen oder nicht. % \begin{macrocode} \KOMA@key{draft}[true]{% \KOMA@set@ifkey{draft}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed \if@tempswa \setlength{\overfullrule}{5pt}% \else \setlength{\overfullrule}{\z@}% \fi \fi } \KOMA@DeclareStandardOption %[scrextend] {final}{draft=false} % \end{macrocode} % \end{option} % \end{option} % % % \subsection{Optionen für Gleichungen} % % Briefe haben derzeit keine Gleichungen. % \iffalse %<*!letter> % \fi % % \begin{option}{leqno} % \begin{option}{fleqno} % Es können Gleichungsnummern links oder linksbündige Gleichungen % eingestellt werden. % \begin{macrocode} %<*!extend> \DeclareOption{leqno}{\input{leqno.clo}} \DeclareOption{fleqn}{\input{fleqn.clo}} % % \end{macrocode} % \end{option} % \end{option} % % \iffalse % % \fi % % \iffalse % %<*execoption> % \fi % % % \subsection{Standardeinstellungen für die Optionen} % % Am Ende aller Optionen wird zunächst die Standardeinstellungen der % Optionen vorgenommen und dann alle Optionen ausgeführt. Dies % geschieht zwischen den Optionen und dem Körper dieser Datei. % % Es müssen die Standardoptionen festgelegt und alle Optionen % ausgewählt werden. % \changes{v2.97c}{2007/04/19}{Verwendung von \cs{KOMAExecuteOptions} an % Stelle von \cs{KOMAoptions} und \cs{KOMAProcessOptions} an Stelle von % \cs{ProcessOptions}} % \changes{v2.97c}{2007/04/19}{Optionen, die der Voreinstellung ohnehin % entsprechen, werden nicht explizit gesetzt} % \changes{v2.97c}{2007/07/18}{Option \texttt{twoside} bei den % Voreinstellungen rausgenommen} % \changes{v2.98c}{2008/03/10}{Option \texttt{headings!=big} zu den % Voreinstellungen hinzugefügt} % \changes{v3.11c}{2013/03/04}{Option \texttt{headings!=big} nicht für die % Briefklasse} % \begin{macrocode} %<*!extend> \KOMAExecuteOptions{% parskip=false,% % headings=big% } % \KOMAProcessOptions\relax % \end{macrocode} % % % \iffalse % %<*body> % \fi % % % \subsection{Temporäre Umschaltung zwischen ein- und zweispaltigem % Satz} % % Briefe sind immer einspaltig, benötigen also den Schalter nicht. % \iffalse %<*!letter> % \fi % % \begin{macro}{\if@restonecol} % \begin{macro}{\@restonecoltrue} % \begin{macro}{\@restonecolfalse} % Damit innerhalb einer Umgebung lokal auf ein- oder zweispaltigen % Satz umgeschaltet werden kann, wird ein Schalter benötigt. Dieser % wird dann dafür verwendet, sich zu merken, dass eine Umschaltung % stattgefunden hat und am Ende der Umgebung wieder aufzuheben % ist. Der Schalter wird nicht in Umgebungen verwendet, die % geschachtelt werden. Verwendung findet er beispielsweise für % Titelseiten und das Inhaltsverzeichnis. % \begin{macrocode} %<*!extend> \newif\if@restonecol % %<*extend> \scr@ifundefinedorrelax{if@restonecol}{% \expandafter\newif\csname if@restonecol\endcsname \@restonecolfalse }{} % % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % \iffalse % % \fi % % \subsection{Definitionen für den schlauen Spruch} % % Den schlauen Spruch gibt es nicht bei Briefen. % \iffalse %<*!letter> % \fi % % \begin{macro}{\dictum} % \changes{v2.8q}{2001/20/04}{neu} % \changes{v2.9l}{2003/01/28}{\cs{edef} durch \cs{def} ersetzt} % \changes{v2.9q}{2004/04/19}{zur Vermeidung von Problemen durch % \cs{raggeddictum} Gruppe eingef"ugt} % \begin{macro}{\dictumwidth} % \changes{v2.8q}{2001/20/04}{neu} % \begin{macro}{\raggeddictum} % \changes{v2.8q}{2001/20/04}{neu} % \begin{macro}{\raggeddictumtext} % \changes{v2.8q}{2001/20/04}{neu} % \begin{macro}{\raggeddictumauthor} % \changes{v2.8q}{2001/20/04}{neu} % \begin{KOMAfont}{dictum} % \changes{v2.8q}{2001/20/04}{neues Element} % \begin{KOMAfont}{dictumtext} % \changes{v2.8q}{2001/20/04}{neues Element} % \begin{KOMAfont}{dictumauthor} % \changes{v2.8q}{2001/20/04}{neues Element} % \begin{macro}{\dictumauthorformat} % \changes{v2.8q}{2001/20/04}{neu} % \begin{macro}{\dictumrule} % \changes{v3.10}{2011/09/02}{neu} % Ein \emph{dictum} ist ein Spruch. Er besteht aus dem Spruch selbst % und verfügt optional über einen Autor, der dann mit einer Linie % abgetrennt wird. Gibt es keinen Autor, gibt es auch keine Linie. Die % Schriften für Autor und Spruch können getrennt voneinander % eingestellt werden. Die Anordnung des Spruchs wird durch % \cs{raggeddictumtext} gesetzt. Die des Autors durch % \cs{raggeddictumauthor}. Die Formatierung selbst geschieht mit dem % Makro \cs{dictumauthorformat}. Vordefiniert ist, den Namen des % Autors in runde Klammern zu setzen. Die gesamte Geschichte von Text % und Autor wird in eine Box der Breite \cs{dictumwidth} % gepackt. Diese wird mit \cs{raggeddictum} angeordnet. % \begin{macrocode} \newcommand{\dictum}[2][]{\par% \begingroup \raggeddictum\parbox{\dictumwidth}{% {\@dictumfont{\raggeddictumtext #2\strut\par}% \def\@tempa{#1}\ifx\@tempa\@empty\else% {\raggeddictumtext\dictumrule}% \raggeddictumauthor\@dictumauthorfont\dictumauthorformat{#1}% \strut\par% \fi% }% }\par% \endgroup } \newcommand*{\dictumrule}{\vskip-1ex\hrulefill\par}% \newcommand*{\dictumwidth}{.3333\textwidth} \newcommand*{\raggeddictum}{\raggedleft} \newcommand*{\dictumauthorformat}[1]{(#1)} \newcommand*{\raggeddictumtext}{\raggedright} \newcommand*{\raggeddictumauthor}{\raggedleft} \newkomafont{dictum}{\normalfont\normalcolor\sffamily\small} \newkomafont{dictumauthor}{\itshape} \aliaskomafont{dictumtext}{dictum} % \end{macrocode} % \end{macro} % \end{macro} % \end{KOMAfont} % \end{KOMAfont} % \end{KOMAfont} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \iffalse % % \fi % % \subsection{Längen für Minipages und Rahmen} % % \begin{Length}{@mpfootins} % \begin{Length}{fboxsep} % \begin{Length}{fboxrule} % \cs{@mpfootins} entspricht \cs{footins} in Minipages. \cs{fboxsep} % ist der Abstand zwischen dem Rahmen einer \cs{fbox} oder % \cs{framebox} und dem Inhalt, \cs{fboxrule} ist die Dicke des % Rahmens. % \begin{macrocode} %<*!extend> \setlength{\skip\@mpfootins}{\skip\footins} \setlength\fboxsep{3\p@} \setlength\fboxrule{.4\p@} % % \end{macrocode} % \end{Length} % \end{Length} % \end{Length} % % % \subsection{Gleichungen} % % Gleichungen gibt es bei Briefen nicht. % \iffalse %<*!letter> % \fi % % \begin{macro}{\theequation} % \changes{v2.97e}{2007/11/23}{Kapitelnummer nur im Hauptteil} % Darstellung der Gleichungsnummer: % \begin{macrocode} %<*!extend> %\@addtoreset{equation}{chapter} \renewcommand*\theequation{% %<*book> \ifnum \scr@compatibility>\@nameuse{scr@v@2.97d}\relax \if@mainmatter\thechapter.\fi \else % % \thechapter.% % \fi \@arabic\c@equation } % % \end{macrocode} % \end{macro} % % \iffalse % % \fi % % \subsection{Definitionen zur Feststellung von linken und rechten % Seiten} % % \begin{macro}{\ifthispageodd} % \changes{v2.8q}{2001/11/22}{neu} % Häufig wird mit \cs{ifodd}\cs{value\{page\}} getestet, ob man sich % gerade auf einer rechten oder einer linken Seite % befindet. Dummerweise funktioniert das aber genaugenommen nur % zufällig manchmal. Ob man sich auf einer linken oder einer rechten % Seite befindet, ergibt sich nämlich erst bei der Ausgabe. Deshalb % wird hier ein Makro definiert, das über eine Art Label-Mechanismus % arbeitet. Es werden bewusst keine echten \cs{label} und \cs{pageref} % verwendet, weil diese Befehle von verschiedenen Paketen manipuliert % werden. % % \begin{macro}{\new@tpo@label} % \changes{v2.8q}{2001/11/22}{neu (intern)} % \changes{v2.95b}{2006/07/28}{verwendet jetzt \cs{@newl@bel}} % Definition eines neuen \emph{true}-\emph{page}-\emph{odd} Labels. % Wird in der \texttt{aux}-Datei verwendet. % \begin{macrocode} \newcommand*{\new@tpo@label}{\@newl@bel{tpo}} % \end{macrocode} % \end{macro} % % \begin{macro}{\scr@tpo} % \changes{v2.8q}{2001/11/22}{neu (intern)} % Es wird ein Zähler benötigt, der die aktuelle Nummer der Anfrage % beinhaltet. % \begin{macrocode} \newcommand*{\scr@tpo}{0} % \end{macrocode} % \end{macro} % % \begin{macro}{\is@thispageodd} % \changes{v2.8q}{2001/11/22}{neu (intern)} % \changes{v2.9l}{2003/01/28}{renamed \cs{if@thispageodd}} % \changes{v2.95b}{2006/07/28}{basiert nun auf \cs{@newl@bel}} % Dieses Makro macht die eigentliche Arbeit. Es funktioniert nicht wie % ein normales \cs{iffalse} oder \cs{iftrue}, denn es kann nicht % geschachtelt innerhalb anderer \cs{if\dots} \dots \cs{fi} % Klammerungen verwendet werden. Es sollte daher niemals außerhalb von % \cs{ifthispageodd} verwendet werden. Da über die \texttt{aux}-Datei % gearbeitet wird, funktioniert das Ganze nur, wenn die Datei auch % geschrieben wird und min. zwei \LaTeX-Läufe erfolgen. % \begin{macrocode} \newcommand*{\is@thispageodd}{% \@bsphack \begingroup \@tempcnta=\scr@tpo \advance\@tempcnta by\@ne \xdef\scr@tpo{\the\@tempcnta}% \protected@write\@auxout{\let\arabic\relax}{% \string\new@tpo@label{\scr@tpo}{\arabic{page}}}% \expandafter\ifx\csname tpo@\scr@tpo\endcsname\relax \protect\G@refundefinedtrue % \ClassWarning{\KOMAClassName}{% % \PackageWarning{scrextend}{% odd/even page label number \scr@tpo\space undefined}% \edef\@tempa{\the\value{page}}% \else \edef\@tempa{\csname tpo@\scr@tpo\endcsname}% \fi \ifodd\number\@tempa \aftergroup\thispagewasoddtrue \else \aftergroup\thispagewasoddfalse \fi \endgroup \@esphack } % \end{macrocode} % \end{macro} % % \begin{macro}{\ifthispagewasodd} % \changes{v2.9l}{2003/01/20}{neuer Schalter} % \begin{macro}{\thispagewasoddtrue} % \begin{macro}{\thispagewasoddfalse} % Dieser Schalter speichert auf Rolf Niepraschks speziellen Wunsch die % letzte Entscheidung von \cs{ifthispageodd}. Vor dem ersten % \cs{ifthispageodd} ist der Zustand undefiniert. Es ist auch nicht % garantiert, dass die Entscheidung noch zutreffend ist. % \begin{macrocode} \newif\ifthispagewasodd % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % Nun fehlt nur noch das eigentliche oben versprochene % Anwendermacro. Das ist nun aber auch kein Problem mehr: % \begin{macrocode} \newcommand{\ifthispageodd}{% \is@thispageodd \ifthispagewasodd \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi } % \end{macrocode} % \end{macro} % % % \subsection{Definitionen für tiefer gestellten Text} % % \begin{macro}{\textsubscript} % \changes{v2.8h}{2001/07/19}{neu}% % \begin{macro}{\@textsubscript} % \changes{v2.8h}{2001/07/19}{neu (intern)}% % \changes{v3.10}{2011/09/05}{\cs{providecommand} statt \cs{newcommand}, % damit das auch noch funktioniert, wenn \textsf{scrextend} nach % \textsf{fixltx2e} geladen wird}% % Im \LaTeX-Kern wird zwar ein Makro \cs{textsuperscript} definiert, % um Texte hochstellen zu können, die entsprechende Anweisung zum % Tiefstellen fehlt jedoch. Das wird hier nachgeholt, wobei nahezu % unverändert auf die Definition aus dem \LaTeX-Kern zurückgegriffen % wird. % \begin{macrocode} \DeclareRobustCommand*\textsubscript[1]{% \@textsubscript{\selectfont#1}% } \providecommand*{\@textsubscript}[1]{% {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}% } % \end{macrocode} % \end{macro} % \end{macro} % % % % \subsection{Warnung vor Paketen} % \label{sec:packagewarning} % % \changes{v3.12}{2013/07/08}{neue Warnungen vor bestimmten Paketen} % \begin{macro}{\scr@package@not@recommended} % \changes{v3.12}{2013/07/08}{neu (intern)} % Beim Laden verschiedener Pakete wird nun eine Warnung ausgegeben. In der % Regel mit einer Alternativempfehlung. % \begin{macrocode} %<*class> \newcommand*{\scr@package@not@recommended}[2]{% \BeforePackage{#1}{% \ClassWarning{\KOMAClassName}{% Usage of package `#1' together\MessageBreak with a KOMA-Script class is not recommended.\MessageBreak \if\relax\detokenize{#2}\relax\else I'd suggest to use #2.\MessageBreak \fi Nevertheless, using requested\MessageBreak package `#1'% }% }% } \scr@package@not@recommended{emptypage}{% option\MessageBreak `cleardoublepage' with one of it's\MessageBreak several values} \scr@package@not@recommended{parskip}{% option\MessageBreak `parskip' with one of it's several values} \scr@package@not@recommended{fancyhdr}{% \MessageBreak package `scrpage2' or `scrlayer-scrpage'} \scr@package@not@recommended{titlesec}{% the package only\MessageBreak if you really need it, because it breaks several\MessageBreak KOMA-Script features, i.e., option `headings' and\MessageBreak the extended optional argument of the section\MessageBreak commands } % % \end{macrocode} % \end{macro}^^A \scr@package@not@recommended % % % \iffalse % % \fi % % \Finale % \endinput % % end of file `scrkernel-miscellaneous.dtx' %%% Local Variables: %%% mode: doctex %%% TeX-master: t %%% End: