% \CheckSum{252} % \iffalse meta-comment % ====================================================================== % scrkernel-index.dtx % Copyright (c) Markus Kohm, 2002-2017 % % 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-index.dtx % Copyright (c) Markus Kohm, 2002-2017 % % 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-index.dtx 2592 2017-02-16 16:56:10Z kohm $ %<*driver> % \fi \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \begingroup \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}} \filedate$Date: 2017-02-16 17:56:10 +0100 (Thu, 16 Feb 2017) $ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}} \filerevision$Revision: 1872 $ \edef\reserved@a{% \noexpand\endgroup \noexpand\ProvidesFile{scrkernel-index.dtx}% [\filedate\space\filerevision\space KOMA-Script source (index)]% }% \reserved@a % \iffalse \documentclass[parskip=half-]{scrdoc} \usepackage[english,ngerman]{babel} \usepackage[latin1]{inputenc} \CodelineIndex \RecordChanges \GetFileInfo{scrkernel-index.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{Index} % % Der Index unterscheidet sich bei \KOMAScript{} scheinbar nicht % wesentlich von dem, was die Standardklassen zu bieten haben. In % Wirklichkeit sind die Unterschiede jedoch erheblich. % % Briefe haben keinen Index. % % \StopEventually{\PrintIndex\PrintChanges} % % \iffalse %<*!letter> % \fi % % \iffalse %<*option> % \fi % % \subsection{Anweisungen und Einstellungen für die Optionen} % % Einige Anweisungen und Einstellungen werden bereits benötigt, bevor die % Optionen abgearbeitet werden. % % \begin{macro}{\idx@@heading} % \changes{v2.98c}{2008/03/04}{neu (intern)}^^A % \changes{v3.18}{2015/06/15}{Beachtung von \texttt{leveldown}}^^A % Diese Anweisung wird verwendet, um nur die Überschrift zu setzen (nichts % weiter!). Sie hat genau ein Argument, nämlich den Text der Überschrift und % wird innerhalb von |\idx@heading| verwendet. % \begin{macrocode} \newcommand*{\idx@@heading}{% \ifidx@leveldown %
\expandafter\subsection % \expandafter\section \else %
\expandafter\section % \expandafter\chapter \fi*% } % \end{macrocode} % \end{macro} % % % \subsection{Optionen für den Index} % % \begin{option}{index} % \changes{v2.98c}{2008/03/04}{Neue Option}^^A % \changes{v3.17}{2015/03/12}{interne Speicherung der Werte}^^A % \changes{v3.18}{2015/06/15}{neuer Wert \texttt{numbered}}^^A % \changes{v3.18}{2015/06/15}{neuer Wert \texttt{leveldown}}^^A % \changes{v3.18}{2015/06/15}{neuer Wert \texttt{standardlevel}}^^A % \begin{macro}{\idx@@heading} % Die Option sorgt dafür, dass der Index auch im Inhaltsverzeichnis % erscheint. Dazu wird das interne Makro \cs{idx@@heading} umdefiniert, über % das die Überschrift gesetzt und der Kolumnentitel angepasst wird. % \changes{v2.4c}{1996/04/04}{Kolumnentitel werden nun korrekt % behandelt}^^A % \changes{v2.4g}{1996/11/04}{Index auch bei \textsf{scrartcl}^^A % wieder zweispaltig} % \changes{v2.6c}{2000/06/10}{im Index kann nach der Überschrift % eine Präambel gesetzt werden}^^A % \changes{v2.7a}{2001/01/04}{für \textsf{scrbook} und % \textsf{scrreprt} die Link-Erzeugung mit \texttt{hyperref} % verbessert} % \changes{v2.7j}{2001/05/27}{Setzen der Präambel in die % \texttt{theindex}-Umgebung verschoben} % \changes{v2.9l}{2003/01/19}{\cs{if@twoside} durch % \cs{if@openright} ersetzt} % \changes{v2.98c}{2008/03/04}{statt \cs{idx@heading} wird nun % \cs{idx@@heading} umdefiniert} % \changes{v3.18}{2015/06/15}{Beachtung von \texttt{leveldown}}^^A % An dieser Stelle muss dafür gesorgt werden, dass im Falle von % \textsf{scrbook} und \textsf{scrreprt} das Makro \cs{@schapter} % verwendet wird. Damit dies hier möglich ist mussten tiefreifendere % Änderungen am \LaTeX-Kernel bzw. am Gliederungsbefehl \cs{chapter} % vorgenommen werden. % \begin{macro}{\ifidx@leveldown} % \changes{v3.18}{2015/06/15}{neuer Schalter (intern)}^^A % Für den ab Version~3.18neuen Wert \texttt{leveldown} und dessen % Gegenstück \texttt{standardlevel} wird außerdem ein Schalter benötigt. % \begin{macrocode} \newif\ifidx@leveldown \KOMA@key{index}{% \KOMA@set@ncmdkey{index}{@tempa}{% {notoc}{0},{nottotoc}{0},{default}{0},{plainheading}{0},% {totoc}{1},{toc}{1},{notnumbered}{1},% {numbered}{2},{totocnumbered}{2},% {leveldown}{3},% {standardlevel}{4}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed \ifcase \@tempa\relax \KOMA@kav@remove{.\KOMAClassFileName}{toc}{noindex}% \KOMA@kav@remove{.\KOMAClassFileName}{toc}{indexnumbered}% \KOMA@kav@remove{.\KOMAClassFileName}{toc}{index}% \KOMA@kav@remove{.\KOMAClassFileName}{index}{notoc}% \KOMA@kav@remove{.\KOMAClassFileName}{index}{numbered}% \KOMA@kav@remove{.\KOMAClassFileName}{index}{toc}% \KOMA@kav@add{.\KOMAClassFileName}{toc}{noindex}% \KOMA@kav@add{.\KOMAClassFileName}{index}{notoc}% \renewcommand*{\idx@@heading}{% \ifidx@leveldown %
\expandafter\subsection % \expandafter\section \else %
\expandafter\section % \expandafter\chapter \fi*% }% \or \KOMA@kav@remove{.\KOMAClassFileName}{toc}{noindex}% \KOMA@kav@remove{.\KOMAClassFileName}{toc}{indexnumbered}% \KOMA@kav@remove{.\KOMAClassFileName}{toc}{index}% \KOMA@kav@remove{.\KOMAClassFileName}{index}{notoc}% \KOMA@kav@remove{.\KOMAClassFileName}{index}{numbered}% \KOMA@kav@remove{.\KOMAClassFileName}{index}{toc}% \KOMA@kav@add{.\KOMAClassFileName}{toc}{index}% \KOMA@kav@add{.\KOMAClassFileName}{index}{toc}% \renewcommand*{\idx@@heading}{% \ifidx@leveldown %
\expandafter\subsection\expandafter* % \expandafter\addsec \else %
\expandafter\addsec % \expandafter\addchap \fi }% \or \KOMA@kav@remove{.\KOMAClassFileName}{toc}{noindex}% \KOMA@kav@remove{.\KOMAClassFileName}{toc}{indexnumbered}% \KOMA@kav@remove{.\KOMAClassFileName}{toc}{index}% \KOMA@kav@remove{.\KOMAClassFileName}{index}{notoc}% \KOMA@kav@remove{.\KOMAClassFileName}{index}{numbered}% \KOMA@kav@remove{.\KOMAClassFileName}{index}{toc}% \KOMA@kav@add{.\KOMAClassFileName}{toc}{indexnumbered}% \KOMA@kav@add{.\KOMAClassFileName}{index}{numbered}% \renewcommand*{\idx@@heading}{% \ifidx@leveldown %
\expandafter\subsection % \expandafter\section \else %
\expandafter\section % \expandafter\chapter \fi }% \or \KOMA@kav@remove{.\KOMAClassFileName}{index}{leveldown}% \KOMA@kav@remove{.\KOMAClassFileName}{index}{standardlevel}% \KOMA@kav@add{.\KOMAClassFileName}{index}{leveldown}% \idx@leveldowntrue \or \KOMA@kav@remove{.\KOMAClassFileName}{index}{leveldown}% \KOMA@kav@remove{.\KOMAClassFileName}{index}{standardlevel}% \KOMA@kav@add{.\KOMAClassFileName}{index}{standardlevel}% \idx@leveldownfalse \fi \fi } \KOMA@kav@add{.\KOMAClassFileName}{toc}{noindex} \KOMA@kav@add{.\KOMAClassFileName}{index}{notoc} \KOMA@kav@add{.\KOMAClassFileName}{index}{standardlevel} % \end{macrocode} % \end{macro} % \end{macro} % \end{option} % % \begin{option}{idxtotoc} % \changes{v2.3h}{1995/01/21}{neue Option}^^A % \changes{v2.98c}{2008/03/04}{obsolete}^^A % \changes{v3.01a}{2008/11/20}{deprecated}^^A % \begin{macrocode} \KOMA@DeclareDeprecatedOption{idxtotoc}{index=totoc} % \end{macrocode} % \end{option} % % % \iffalse % %<*body> % \fi % % \subsection{Definitionen für den Index} % % \begin{macro}{\index@preamble} % \changes{v2.6c}{2000/06/10}{neu (intern)}^^A % \begin{macro}{\setindexpreamble} % \changes{v2.6c}{2000/06/10}{neu}^^A % \changes{v2.6d}{2000/07/20}{Befehl funktioniert nachdem \cs{let}^^A % durch \cs{newcommand*} ersetzt wurde} % \changes{v2.95}{2002/07/01}{\cs{let} und \cs{def}} % Analog zu \cs{bibpreamble} kann \cs{index@preamble} vom Benutzer mit % \cs{setindexpreamble} auf einen Text gesetzt werden, der nach der % Indexüberschrift eingefügt wird. Hier wird ein echtes internes Makro % verwendet, da nicht auf Kompatibilität geachtet werden muss. % \begin{macrocode} \newcommand*{\index@preamble}{} \let\index@preamble=\relax \newcommand{\setindexpreamble}[1]{\def\index@preamble{#1}} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\idx@heading} % \changes{v2.3h}{1995/01/21}{neu (intern)}^^A % \changes{v2.4c}{1995/04/04}{Kolumnentitel werden nun korrekt behandelt}^^A % \changes{v2.4g}{1996/11/04}{Index auch bei \texttt{scrartcl} wieder % zweispaltig}% % \changes{v2.6c}{2000/06/10}{Verwendung von \cs{index@preamble} eingefügt} % \changes{v2.7j}{2001/05/27}{Setzen der Präambel in die % \texttt{theindex}-Umgebung verschoben}% % \changes{v2.9l}{2003/01/19}{\cs{if@twoside} durch \cs{if@openright} % ersetzt}% % \changes{v2.98c}{2008/03/04}{Verwendung von \cs{idx@@heading}}% % \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}% % \changes{v3.10a}{2012/03/08}{Falsche Klammerung der letzten Änderung % behoben}% % \changes{v3.12}{2013/09/24}{Index wird nie in andere Verzeichnisse % eingetragen (außer Inhaltsverzeichnis)}^^A % Befehl zum Setzen der Überschrift des Indexes. Bis Version 2.7a sah diese % Definition so aus: % \begin{verbatim} % \newcommand*{\idx@heading}{% % \if@twoside\cleardoublepage\else\clearpage\fi% % \@mkboth{\indexname}{\indexname}% % \twocolumn[% % %
\section*% % % \@makeschapterhead% % {\indexname}\index@preamble] % } % \end{verbatim}\vspace{-\baselineskip} % Dagegen ist grundsätzlich nichts zu sagen. Allerdings gibt es seit % Version 2.7b die neue Methode der Kapitel-Präambel, die extra % eingeführt wurde, um die \textsf{hyperref}-Links -- insbesondere % den des Index -- zumindest bei Verwendung von \texttt{hpdftex.def} % zu verbessern. Deshalb wurde die Implementierung entsprechend % abgeändert. Außerdem wurde das Setzen der Präambel aus % Konsistenzgründen in Version 2.7j übereinstimmten mit der % \texttt{thebibliography}-Umgebung in die \texttt{theindex}-Umgebung % verschoben. % \begin{macrocode} \newcommand*{\idx@heading}{% % \if@openright\cleardoublepage\else\clearpage\fi% \twocolumn[% % \@chaptertolistsfalse \idx@@heading{\indexname}]% \ifidx@leveldown \scr@ifundefinedorrelax{@mkright}{% \ifx\@mkboth\@gobble\else\markright{\MakeMarkcase{\indexname}}\fi }{% \@mkright{\MakeMarkcase{\indexname}}% }% \else \scr@ifundefinedorrelax{@mkdouble}{% \@mkboth{\MakeMarkcase{\indexname}}{\MakeMarkcase{\indexname}}% }{% \@mkdouble{\MakeMarkcase{\indexname}}% }% \fi } % \end{macrocode} % \end{macro} % % \begin{environment}{theindex} % \changes{v2.8d}{2001/07/05}{\cs{indexpagestyle} statt % \texttt{plain}} % \changes{v2.3h}{1995/01/21}{Verwendung von \cs{idx@heading}} % \changes{v2.7j}{2001/05/27}{Setzen der Präambel in die % \texttt{theindex}-Umgebung verschoben} % \changes{v3.19}{2015/08/25}{Seitenstil nur ändern wenn nicht leer}^^A % Der Index ist wie üblich definiert. % \begin{macrocode} \newenvironment{theindex}{% \if@twocolumn \@restonecolfalse \else \@restonecoltrue \fi \columnseprule \z@ \columnsep 35\p@ % \setchapterpreamble{\index@preamble}% \idx@heading% %
\index@preamble\par\nobreak \ifx\indexpagestyle\@empty\else\thispagestyle{\indexpagestyle}\fi \parindent\z@ \setlength{\parskip}{\z@ \@plus .3\p@}% \setlength{\parfillskip}{\z@ \@plus 1fil}% \let\item\@idxitem }{% \if@restonecol\onecolumn\else\clearpage\fi } % \end{macrocode} % \begin{macro}{\@idxitem} % Hier haben wird den Anfang eines Eintrags in den Index % \begin{macro}{\subitem} % \changes{v2.3g}{1996/01/14}{Verwendung von \cs{@idxitem} spart % Speicher} % \begin{macro}{\subsubitem} % \changes{v2.3g}{1996/01/14}{Verwendung von \cs{@idxitem} spart % Speicher} % \begin{macro}{\indexspace} % und ebenso Unter- und Unteruntereinträge sowie ein vertikaler % Abstand. % \begin{macrocode} \newcommand*\@idxitem{\par\hangindent 40\p@} % \begin{macrocode} \newcommand*\subitem{\@idxitem \hspace*{20\p@}} \newcommand*\subsubitem{\@idxitem \hspace*{30\p@}} \newcommand*\indexspace{% \par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax } % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{environment} % % % \subsection{Standardbezeichner} % % \begin{macro}{\indexname} % Names des Index: % \begin{macrocode} \newcommand*\indexname{Index} % \end{macrocode} % \end{macro} % % % \iffalse % % \fi % % \iffalse % % \fi % % % \Finale % \endinput % % end of file `scrkernel-index.dtx' %%% Local Variables: %%% mode: doctex %%% TeX-master: t %%% End: