diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrkernel-title.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/koma-script/scrkernel-title.dtx | 774 |
1 files changed, 351 insertions, 423 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-title.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-title.dtx index 986d89ffa58..5d4963fe4eb 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrkernel-title.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-title.dtx @@ -1,8 +1,7 @@ -% \CheckSum{981} % \iffalse meta-comment % ====================================================================== % scrkernel-title.dtx -% Copyright (c) Markus Kohm, 2002-2019 +% Copyright (c) Markus Kohm, 2002-2022 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,54 +17,17 @@ % The Current Maintainer and author of this work is Markus Kohm. % % This work consists of all files listed in manifest.txt. -% ---------------------------------------------------------------------- -% scrkernel-title.dtx -% Copyright (c) Markus Kohm, 2002-2019 -% -% 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-title.dtx 3390 2019-11-18 17:09:35Z kohm $ +%%% From File: $Id: scrkernel-title.dtx 3747 2022-03-08 09:24:07Z kohm $ %<option>%%% (run: option) %<body>%%% (run: body) %<*dtx> -% \fi \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \begingroup \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}} - \filedate$Date: 2019-11-18 18:09:35 +0100 (Mon, 18 Nov 2019) $ + \filedate$Date: 2022-03-08 10:24:07 +0100 (Di, 08. Mär 2022) $ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}} - \filerevision$Revision: 1638 $ + \filerevision$Revision: 3747 $ \edef\reserved@a{% \noexpand\endgroup \noexpand\ProvidesFile{scrkernel-title.dtx}% @@ -73,78 +35,82 @@ KOMA-Script source (title pages)] }% \reserved@a -% \iffalse -\documentclass[parskip=half-]{scrdoc} -\usepackage[english,ngerman]{babel} -\CodelineIndex -\RecordChanges -\GetFileInfo{scrkernel-title.dtx} -\title{\KOMAScript{} \partname\ \texttt{\filename}% - \footnote{Dies ist Version \fileversion\ von Datei - \texttt{\filename}.}} -\date{\filedate} -\author{Markus Kohm} - +\documentclass[USenglish]{koma-script-source-doc} +\usepackage{babel} +\setcounter{StandardModuleDepth}{3} \begin{document} - \maketitle - \tableofcontents - \DocInput{\filename} +\DocInput{scrkernel-title.dtx} \end{document} %</dtx> % \fi % -% \selectlanguage{ngerman} -% -% \changes{v2.95}{2002/06/26}{% -% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} +% \changes{v2.95}{2002/06/26}{first version after splitting \file{scrclass.dtx}} +% \changes{v3.36}{2022/03/08}{switch over from \cls*{scrdoc} to +% \cls*{koma-script-source-doc}} +% \changes{v3.36}{2022/03/08}{whole implementation documentation in English} % -% \section{Die Titelei} +% \GetFileInfo{scrkernel-title.dtx} +% \title{The Code to Implement the Extended Titles of +% \href{https://komascript.de}{\KOMAScript} Classes} +% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}} +% \date{Revision \fileversion{} of \filedate} +% \maketitle +% \begin{abstract} +% \file{scrkernel-title.dtx} implements on-page titles and title pages, that +% are extended a lot comparing with the titles of the standard classes. +% \end{abstract} +% \tableofcontents % -% Die Titelei ist gegenüber den Standardklassen erheblich -% erweitert. Trotzdem kann ein Titel einer Standardklasse unmittelbar -% mit einer \KOMAScript-Klasse gesetzt werden. Briefe besitzen allerdings -% keine Titelei im eigentlichen Sinne. +% \section{User Manual} % -% \StopEventually{\PrintIndex\PrintChanges} +% You can find the user documentation the commands implemented here in the +% \KOMAScript{} manual, either the German \file{scrguide} or the English +% \file{scrguien}. % -% \iffalse -%<*!letter> -% \fi +% \MaybeStop{\PrintIndex} % -% \iffalse -%<*option> -% \fi % +% \section{Implementation of Titles} % -% \subsection{Optionen der Titelei} +% This kind of titles are not needed for letters. % +% \begin{macrocode} +%<*!letter> +% \end{macrocode} +% % \begin{option}{titlepage} -% \changes{v2.95c}{2006/08/21}{als \textsf{keyval}-Option}%^^A -% \changes{v3.12}{2013/11/21}{neuer Wert \texttt{firstiscover}}%^^A -% \changes{v3.17}{2015/03/10}{interne Speicherung des Werts}%^^A -% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A -% \begin{option}{notitlepage} -% \changes{v2.95c}{2006/08/21}{Option ist obsolet}%^^A -% \changes{v3.01a}{2008/11/21}{standard statt obsolet}%^^A -% Es werden zei Arten von Titeln unterstützt. Da sind zum einen eigene -% Titelseiten, zum anderen sogenannte Titelköpfe, also Titel, die nicht eine -% eigene Seite erhalten, sondern am Anfang einer Seite stehen. Zwischen den -% beiden Arten wird mit einer Option umgeschaltet. Ab Version~3.12 unterstützt -% \KOMAScript{} außerdem die Einstellung \texttt{titlepage=firstiscover} bei -% der die erste Titelseite als Umschlagseite gesetzt wird. -% \begin{macro}{\if@titlepage} -% \begin{macro}{\@titlepagetrue} -% \begin{macro}{\@titlepagefalse} -% Die gewählte Einstellung wird in einem Schalter gespeichert. +% \changes{v2.95c}{2006/08/21}{using \pkg*{scrkbase}} +% \changes{v3.12}{2013/11/21}{value \opt{\quotechar=firstiscover} added} +% \changes{v3.17}{2015/03/10}{using internal value storage} +% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}} +% \begin{macro}{\@titlepagetrue,\@titlepagefalse,\if@titlepage} +% \begin{macro}{\@titlepageiscoverpagetrue,\@titlepageisvoerpagefalse, +% \if@titlepageiscoverpage} +% \changes{v3.12}{2013/11/21}{added} +% There is support for two kinds of titles: in-page titles also known as title +% heads and title pages. Usually title pages are the title pages of the inner +% book. But some users prefer to interpret them as cover instead. With +% \KOMAScript{} this does in fact makes some sense, but only, if the user uses +% the mock title and wants to interpret it not as mock title but as cover. So +% we provide the following values: +% \begin{description} +% \item[\opt{=false}:] use a in-page title (\cs{@titlepagefalse}, +% \cs{@titlepageiscoverpagefalse}), +% \item[\opt{=true}:] use several title pages (\cs{@titlepagetrue}, +% \cs{@titlepageiscoverpagefalse}), +% \item[\opt{=firstiscover}:] use several title pages and the first one is the +% cover (\cs{@titlepagetrue}, \cs{@titlepageiscoverpagetrue}). We do not +% test, if this is was originally a mock title of a main title. +% \end{description} +% With package \pkg*{scrextend} this feature is defined as activatable. And +% the initial values differ from class to class. % \begin{macrocode} +%<*option> %<*class> \newif\if@titlepage %<article>\@titlepagefalse %<report|book>\@titlepagetrue %</class> -% \end{macrocode} -% Im Falle von \textsf{scrextend} ist die Option Teil der Erweiterung. -% \begin{macrocode} %<*package&extend> \scr@ext@activateable{title}{% \scr@ifundefinedorrelax{if@titlepage}{% @@ -156,11 +122,6 @@ \@titlepageiscoverpagefalse }{}% %</package&extend> -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macrocode} %<*class|package> %<class>\newif\if@titlepageiscoverpage \KOMA@key{titlepage}[true]{% @@ -196,7 +157,7 @@ }{titlepage}{\if@titlepage true\else false\fi} %<*extend> % \end{macrocode} -% Diese Erweiterung soll dann auch tatsächlich sofort aktiviert werden: +% For \pkg*{scrextend} we allow to activate the feature at load time. % \begin{macrocode} \def\scr@ext@immediate@title{% \scr@ext@activate{title}% @@ -205,94 +166,58 @@ } %</extend> %</class|package> +% \end{macrocode} +% \begin{option}{notitlepage} +% \changes{v2.95c}{2006/08/21}{obsolete} +% \changes{v3.01a}{2008/11/21}{standard not obsolete} +% \begin{macrocode} \KOMA@DeclareStandardOption% %<package> [scrextend]% {notitlepage}{titlepage=false} -% \end{macrocode} -% \end{option} -% \end{option} -% -% \begin{option}{abstract} -% \changes{v2.95c}{2006/08/21}{neue \textsf{keyval}-Option}%^^A -% \begin{option}{abstracton} -% \changes{v2.95c}{2006/08/21}{Option ist obsolet}%^^A -% \changes{v3.01a}{2008/11/21}{standard statt obsolet}%^^A -% \changes{v3.27}{2019/03/13}{deprecated statt standard}%^^A -% \begin{option}{abstractoff} -% \changes{v2.95c}{2006/08/21}{Option ist obsolet}%^^A -% \changes{v3.01a}{2008/11/21}{standard statt obsolet}%^^A -% \changes{v3.27}{2019/03/13}{deprecated statt standard}%^^A -% Obwohl die Zusammenfassung nicht unbedingt auf einer Titelseite steht, -% gehört sie doch zur Titelei und wird daher hier mit behandelt. Die -% Zusammenfassung kann mit einem standardmäßigen Titel versehen werden. Der -% Titel kann aber auch unterdrückt werden. -% \iffalse -%<*class> -%<*article|report> -% \fi -% Bei Büchern gibt es keine Zusammenfassung als gesonderte Umgebung. Als -% Ersatz kann bei Büchern auf \cs{addchap*} zurückgegriffen werden. -% \begin{macro}{\if@abstrt} -% \changes{v3.17}{2015/03/10}{wird von \cs{KOMA@ifkey} definiert}%^^A -% \begin{macro}{\@abstrttrue} -% \begin{macro}{\@abstrtfalse} -% Die Enscheidung, ob der Titel der Zusammenfassung gesetzt werden soll, wird -% in einem Schalter gespeichert. -% \begin{macrocode} -\KOMA@ifkey{abstract}{@abstrt} -\KOMA@DeclareDeprecatedOption{abstracton}{abstract=true} -\KOMA@DeclareDeprecatedOption{abstractoff}{abstract=false} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{option} -% \end{option} -% \end{option} -% \iffalse -%</article|report> -%</class> -% \fi -% -% -% \iffalse %</option> -%<*body> -% \fi -% -% -% \subsection{Definitionen der Titelei} +% \end{macrocode} +% \end{option}^^A notitlepage +% \end{macro}^^A \if@titlepageiscoverpage +% \end{macro}^^A \if@titlepage +% \end{option}^^A titlepage % -% \begin{macro}{\extratitle} +% \begin{command}{\extratitle} % \begin{macro}{\@extratitle} -% \begin{macro}{\frontispiece} -% \changes{v3.25}{2017/11/21}{neu} +% \begin{command}{\frontispiece} +% \changes{v3.25}{2017/11/21}{added} % \begin{macro}{\@frontispiece} -% \changes{v3.25}{2017/11/21}{neu (intern)} -% \begin{macro}{\titlehead} +% \changes{v3.25}{2017/11/21}{added} +% \begin{command}{\titlehead} % \begin{macro}{\@titlehead} -% \begin{macro}{\subject} +% \begin{command}{\subject} % \begin{macro}{\@subject} -% \begin{macro}{\subtitle} -% \changes{v2.97c}{2007/06/20}{neue Möglichkeit}%^^A +% \begin{command}{\subtitle} +% \changes{v2.97c}{2007/06/20}{neue Möglichkeit} % \begin{macro}{\@subtitle} -% \changes{v2.97c}{2007/06/20}{neu (intern)}%^^A -% \begin{macro}{\publishers} +% \changes{v2.97c}{2007/06/20}{added} +% \begin{command}{\publishers} % \begin{macro}{\@publishers} -% \begin{macro}{\uppertitleback} +% \begin{command}{\uppertitleback} % \begin{macro}{\@uppertitleback} -% \begin{macro}{\lowertitleback} +% \begin{command}{\lowertitleback} % \begin{macro}{\@lowertitleback} -% \begin{macro}{\dedication} +% \begin{command}{\dedication} % \begin{macro}{\@dedication} -% Da der Titel im \KOMAScript{} Paket wesentlich mehr Angaben erlaubt -% als bei den Standardklassen, gibt es natürlich auch einige Befehle, -% mit denen diese gesetzt werden können. Alle zusätzlichen Angaben -% sind optional und können auch weggelassen werden. In diesem Fall -% werden Leerfelder verwendet. Bis auf \cs{subject} sind alle -% Zusatzbefehle \cs{long} deklariert, können also ganze Absätze -% enthalten. +% The \LaTeX{} kernel already provides user commands \cs{title}, \cs{author}, +% \cs{date}, which store their arguments globally into macros \cs{@title}, +% \cs{@author} and \cs{@date}. But for \KOMAScript{} these are not enough for +% several pages of title and even not for the main title. So several more +% similar commands and macros are defined. All additional user commands but +% \cs{subject} are long. +% \begin{description} +% \item[ToDo:] Make them all robust as \LaTeX{} from 2018/10/01 does. However +% this could be incompatible with \pkg{uni-titlepage}, so when doing the +% change, don't forget to also change \pkg{uni-titlepage} if needed. +% \end{description} +% For package \pkg*{scrextend} all the code is added to the activatable +% \texttt{title}. % \begin{macrocode} +%<*body> %<package&extend>\scr@ext@addto@activateable{title}{% \newcommand*{\@extratitle}{}% \newcommand{\extratitle}[1]{\gdef\@extratitle{% @@ -341,37 +266,41 @@ }}% % \end{macrocode} % \end{macro} +% \end{command} % \end{macro} +% \end{command} % \end{macro} +% \end{command} % \end{macro} +% \end{command} % \end{macro} +% \end{command} % \end{macro} +% \end{command} % \end{macro} +% \end{command} % \end{macro} +% \end{command} % \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} +% \end{command} % % \begin{macro}{\next@tpage} -% \changes{v2.3b}{1995/07/24}{\cs{null} entfernt.} -% \changes{v2.3g}{1996/01/14}{\cs{newpage} durch \cs{clearpage} ersetzt} -% \changes{v3.11c}{2013/02/14}{Fußnoten der letzten Titelseite ausgeben}%^^A -% \changes{v3.11c}{2013/02/14}{Fußnoten für die nächste Titelseite -% initialisieren}%^^A -% \changes{v3.20}{2015/10/14}{\cs{setparsizes} bzw. entsprechende Angaben -% für die Längen eingefügt}%^^A +% \changes{v2.3b}{1995/07/24}{\cs{null} removed} +% \changes{v2.3g}{1996/01/14}{\cs{newpage} replaced by \cs{clearpage}} +% \changes{v3.11c}{2013/02/14}{output \cs{@thanks}} +% \changes{v3.11c}{2013/02/14}{initialize \cs{@thanks}} +% \changes{v3.20}{2015/10/14}{\cs{setparsizes} resp. similar code added} % \begin{macro}{\next@tdpage} -% \changes{v3.11c}{2013/02/14}{neue Anweisung (intern)}%^^A -% \changes{v3.12}{2013/11/21}{\cs{titlepage@restore} hinzugefügt} -% Innerhalb eines Titels auf die nächste Seite bzw. nächste rechte Seite -% umschalten. +% \changes{v3.11c}{2013/02/14}{added} +% \changes{v3.12}{2013/11/21}{\cs{titlepage@restore} added} +% Because we have more than one title page but all title pages inside one +% \env{titlepage} environment, we need a special kind of +% \cs{newpage}/\cs{clearpage}. +% \begin{description} +% \item[ToDo:] Replace the original \cs{clearpage} and \cs{cleardoublepage} +% inside \env{titlepage} by these two macros. With this, users could also +% have more than one page inside a \env{titlepage} environment. +% \end{description} % \begin{macrocode} \newcommand*{\next@tpage}{% \@thanks\global\let\@thanks\@empty @@ -387,58 +316,68 @@ \next@tpage\if@twoside \ifodd\value{page}\else\null\next@tpage\fi\fi } % \end{macrocode} -% \end{macro} -% \end{macro} -% \begin{macro}{\maketitle} -% \changes{v3.11c}{2013/02/14}{Schmutztitel bei Titelkopf in eigene -% Anweisung verlagert}%^^A -% \changes{v3.11c}{2013/02/14}{Verwendung von \cs{next@tdpage}}%^^A -% Mit dieser Anweisung wird der Titel generiert, dessen Inhalt zuvor -% gesetzt wurde. Es muss unterschieden werden, ob der Titel auf einer -% eigenen Titelseite oder als Seitenkopf erstellt werden soll. Der -% \KOMAScript-Titel ist u.\,U. sehr groß. Im Fall dass diverse -% Zusatzelemente verwendet werden, sollte eigentlich immer eine -% Titelseite verwendet werden.% -% \changes{v2.1a}{1994/10/29}{das Hilfskonstrukt \cs{@maketitle} -% wurde aus der Unterscheidung herausgenommen (für den Fall, dass -% \cs{maketitle} von einem Paket überladen wird)}%^^A -% \changes{v2.3a}{1995/07/08}{\texttt{plus} durch \cs{@plus} -% ersetzt}%^^A -% \changes{v2.3a}{1995/07/08}{\texttt{fill} durch \cs{fill} -% ersetzt}%^^A -% \changes{v2.3d}{1995/08/19}{\cs{fill} durch \texttt{fill} -% ersetzt}%^^A -% \changes{v2.3a}{1995/07/08}{\cs{vfil} durch \cs{vfill} ersetzt}%^^A -% \changes{v2.3b}{1995/07/24}{Umbruch bei \cs{@extratitle} in der -% beidseitigen Titelseite korrigiert}%^^A -% \changes{v2.3g}{1996/01/14}{\cs{footnote} funktioniert nun auch -% im Titel}%^^A -% \changes{v2.4}{1996/02/25}{\cs{footnote} funktioniert nun -% wirklich im Titel}%^^A -% \changes{v2.4h}{1996/11/09}{egal ob der Titel auf eine Extraseite -% kommt oder nicht, \cs{@title} wird mit \cs{sectfont} gesetzt, -% wobei die Größe neuerdings danach eingestellt wird}%^^A -% \changes{v2.4l}{1997/02/06}{symbolische Fußnoten und -% Fußnotensymbolbreiten von 0\,pt zur besseren Zentrierung des -% Autors sind auch bei Titelseiten angebracht}%^^A -% \changes{v2.8p}{2001/09/22}{\cs{titlefont} an Stelle von -% \cs{sectfont}}%^^A -% \changes{v2.95c}{2006/08/21}{Absatzgrundeinstellungen}%^^A -% \changes{v2.97c}{2007/08/31}{Vakatseiten in der Titelei immer im -% Seitenstil \texttt{empty}}%^^A -% \changes{v3.04a}{2009/07/14}{die Unterscheidung, ob Titelseite oder -% Titelkopf sollte erst in \cs{maketitle} und nicht schon bei dessen -% Definition erfolgen}%^^A -% \changes{v3.12}{2013/05/29}{Verwendung neuer Font-Elemente -% \texttt{titlehead}, \texttt{author}, \texttt{date}, \texttt{publishers}, -% \texttt{dedication}}%^^A -% \changes{v3.25}{2017/11/21}{Verwendung von \cs{@frontispiece}}%^^A +% \end{macro}^^A \next@tdpage +% \end{macro}^^A \next@tpage +% +% \begin{command}{\maketitle} +% \changes{v2.3a}{1995/07/08}{\texttt{plus} replaced by \cs{@plus}} +% \changes{v2.3a}{1995/07/08}{\texttt{fill} replaced by \cs{fill}} +% \changes{v2.3a}{1995/07/08}{\cs{vfil} replaced by \cs{vfill}} +% \changes{v2.3a}{1995/07/08}{using \cs{@makefnmark} in \cs{@makefntext}} +% \changes{v2.3a}{1995/07/08}{\cs{@makefnmark} and \cs{@makefntext} +% independent from math mode} +% \changes{v2.3b}{1995/07/24}{page break inside \cs{@extratitle} in +% double-sided mode fixed} +% \changes{v2.3d}{1995/08/19}{\cs{fill} replaced by \texttt{fill}} +% \changes{v2.3e}{1995/08/30}{support but ignore optional argument in +% single-sided mode} +% \changes{v2.3g}{1996/01/14}{several \cs{null} to \cs{next@tpage} added} +% \changes{v2.3g}{1996/01/14}{\cs{footnote} in titles fixed} +% \changes{v2.3g}{1996/01/14}{deleting \cs{@date}, \cs{title} etc. to save memory} +% \changes{v2.3g}{1996/01/14}{\cs{gdef} replaced by \cs{global}\cs{let}} +% \changes{v2.4}{1996/02/25}{\cs{footnote} in titles fixed again} +% \changes{v2.4h}{1996/11/09}{always use \cs{sectfont} followed by the side +% for the \cs{@title}} +% \changes{v2.4l}{1997/02/06}{using footnote symbols with width 0} +% \changes{v2.4l}{1997/02/06}{redefining \cs{\@makefnmark} instead of +% \cs{@makefntext} only} +% \changes{v2.8d}{2001/07/05}{using \cs{titlepagestyle} for in-page title} +% \changes{v2.8p}{2001/09/22}{\cs{sectfont} replaced by \cs{titlefont}} +% \changes{v2.95c}{2006/08/21}{setting paragraph base values} +% \changes{v2.97c}{2007/08/31}{interleaf pages with page style +% \pstyle{emmpty}} +% \changes{v3.04a}{2009/07/14}{distinguishing in-page titles and title pages +% inside \cs{maketitle} instead of loading time} +% \changes{v3.11c}{2013/02/14}{mock title moved to new macro} +% \changes{v3.11c}{2013/02/14}{using \cs{next@tdpage}} +% \changes{v3.12}{2013/05/29}{using font elements \fnt{titlehead}, +% \fnt{author}, \fnt{date}, \fnt{publishers}, \fnt{dedication}} +% \changes{v3.12}{2013/11/21}{support for +% \opt{titlepage\quotechar=firstiscover}} +% \changes{v3.12}{2013/11/21}{retro page only if needed} +% \changes{v3.12}{2013/11/21}{kill the title macros only in compatibility mode} +% \changes{v3.12a}{2014/03/03}{orphan spaced fixed} +% \changes{v3.12a}{2014/03/03}{output extra/mock title in one-side mode only +% if not empty} +% \changes{v3.12a}{2014/03/03}{\cs{next@tdpage} removed from \cs{@maketitle} +% and \cs{@makeextrattitle}} +% \changes{v3.13}{2013/10/31}{\cs{next@tdpage} replaced by +% \cs{cleardoubleemptypage} after dedication (last title page)} +% \changes{v3.19}{2015/08/25}{don't use empty \cs{titlepagestyle}} +% \changes{v3.25}{2017/11/21}{support for \cs{@frontispiece}} +% \changes{v3.27}{2019/01/01}{warning for not empty retro page in single-sided +% mode} +% \changes{v3.27}{2019/03/18}{empty \cs{@thanks} after usage} +% \changes{v3.27}{2019/03/18}{deleting \cs{@thanks} always globally} +% The user command that prints either the in-page title or the title pages +% with all the title macros filled before. % \begin{macrocode} %<package&extend>\let\maketitle\relax\let\@maketitle\relax \newcommand*\maketitle[1][1]{% % \end{macrocode} -% Da ab Version~3.12 auch mehrere \cs{maketitle} möglich sind, muss ggf. für -% eine korrekte Definition von \cs{and} gesorgt werden: +% To support several \cs{maketitle} in the same document, we have to take care +% to use the correct \cs{and} every time. So we define it here (instead of +% outside). % \begin{macrocode} \expandafter\ifnum \csname scr@v@3.12\endcsname>\scr@compatibility\relax \else @@ -449,8 +388,8 @@ }% \fi % \end{macrocode} -% Es folgt die eigentliche Definition, die davon abhängt, ob wir uns im -% doppelseitigen Modus befinden oder nicht. +% Depending on in-page titles or title pages, we have to use different +% code. First the title pages. % \begin{macrocode} \if@titlepage \begin{titlepage} @@ -459,14 +398,10 @@ %<!extend> #1% }% % \end{macrocode} -% \changes{v3.12}{2013/11/21}{Berücksichtigung von -% \texttt{titlepage!=firstiscover}}%^^A -% \changes{v3.27}{2019/03/18}{immer \cs{global} beim Löschen von -% \cs{@thanks}}%^^A -% Ab Version~3.12 gibt es hier eine Sonderbehandlung für die erste Titelseite, -% falls es sich dabei um eine Umschlagsseite handeln soll. In diesem Fall -% werden die Maße der Seite verändert, was später per \cs{titlepage@restore} -% ggf. wieder zurückgenommen wird. +% From \KOMAScript~3.12 we need special treatment for the case this is the +% first title page and the first one should be the cover. The changes here has +% to be restored later. So we locally define \cs{titlepage@restore} to restore +% the original parameters. % \begin{macrocode} \if@titlepageiscoverpage \edef\titlepage@restore{% @@ -553,10 +488,8 @@ \vfill\null \if@twoside % \end{macrocode} -% \changes{v3.12}{2013/11/21}{Rückseite wird nur bei Bedarf ausgegeben.}%^^A -% Ab Version~3.12 wird die Rückseite der Titelseite nur noch bei Bedarf -% ausgegeben. Das gilt aber nur, wenn keine Kompatibilität mit früheren -% Versionen verlangt ist. +% From \KOMAScript~3.12 we show the retro page only if needed. It is needed in +% double-sided mode, if the upper and lower elements are not empty. % \begin{macrocode} \@tempswatrue \expandafter\ifnum \@nameuse{scr@v@3.12}>\scr@compatibility\relax @@ -577,10 +510,8 @@ \@thanks\global\let\@thanks\@empty \fi % \end{macrocode} -% \changes{v3.27}{2019/01/01}{Warnung für nicht leere Titelrückseite bei -% einseitigen Dokumenten}%^^A -% Bei einseitigen Dokumenten werden eventuell gesetzte Inhalte von -% \cs{uppertitleback} oder \cs{lowertitleback} nicht ausgegeben. +% In single-sided mode, we warn for used but never printed upper and lower +% retro page variables. % \begin{macrocode} \else \ifx\@uppertitleback\@empty\else @@ -605,41 +536,24 @@ \next@tdpage\null\vfill {\centering\usekomafont{dedication}{\@dedication \par}}% \vskip \z@ \@plus3fill - \@thanks\global\let\@thanks\@empty % \end{macrocode} -% \changes{v3.12}{2013/10/31}{Nach der Widmung kein \cs{next@tdpage}, -% sondern nur \cs{cleardoubleemptypage}}%^^A +% \begin{description} +% \item[ToDo:] Why can't we use \cs{next@tdpage} here? Would this be a +% problem, if we redefine \cs{cleardoublepage} to \cs{next@tdpage}? +% \end{description} % \begin{macrocode} + \@thanks\global\let\@thanks\@empty \cleardoubleemptypage \fi % \end{macrocode} -% Falls wir uns noch immer auf einer Umschlagseite befinden, muss diese hier -% beendet werden. +% If we are still at a cover page, we have to restore the title page. % \begin{macrocode} \ifx\titlepage@restore\relax\else\clearpage\titlepage@restore\fi \end{titlepage} + \else % \end{macrocode} -% \changes{v2.3a}{1995/07/08}{Verwendung von \cs{@makefnmark} in -% \cs{@makefntext}}%^^A -% \changes{v2.3a}{1995/07/08}{Definition von \cs{@makefnmark} und -% \cs{@makefntext} unabhängig von math}%^^A -% \changes{v2.3e}{1995/08/30}{optionales Argument bei der -% einseitigen Version erlauben und ignorieren}%^^A -% \changes{v2.3g}{1996/01/14}{mehrfach \cs{null} bei -% \cs{next@tpage} ergänzt}%^^A -% \changes{v2.4l}{1997/02/06}{es ist nicht mehr notwendig \cs{\@makefntext} -% umzudefinieren, stattdessen wird nur \cs{\@makefnmark} umdefiniert}%^^A -% \changes{v2.8d}{2001/07/05}{\cs{titlepagestyle} statt -% \texttt{plain}}%^^A -% \changes{v3.12a}{2014/03/03}{Leerzeichenfehler behoben}%^^A -% \changes{v3.12a}{2014/03/03}{Schmutztitel wird nur ausgegeben, wenn er -% nicht leer ist}%^^A -% \changes{v3.12a}{2014/03/03}{\cs{next@tdpage} aus \cs{@maketitle} und -% \cs{@makeextrattitle} entfernt}%^^A -% \changes{v3.19}{2015/08/25}{Seitenstil nur ändern wenn nicht leer}%^^A -% \changes{v3.27}{2019/03/18}{\cs{@thanks} nach Benutzung löschen}%^^A +% Now, the in-page title. % \begin{macrocode} - \else \par \@tempcnta=% %<extend> ##1% @@ -723,20 +637,10 @@ \endgroup \fi \setcounter{footnote}{0}% -% \end{macrocode} -% \changes{v3.12}{2013/11/21}{die Titelei wird nur noch bei Kompatibilität -% zu früheren Versionen zerstört}%^^A -% \begin{macrocode} \expandafter\ifnum \csname scr@v@3.12\endcsname>\scr@compatibility\relax \let\thanks\relax \let\maketitle\relax \let\@maketitle\relax -% \end{macrocode} -% \changes{v2.3g}{1996/01/14}{Verwendung von \cs{global}\cs{let} -% statt \cs{gdef}, um Speicher zu sparen} -% \changes{v2.3g}{1996/01/14}{\cs{@date} und \cs{title} -% u.\,ä. ebenfalls löschen, um Speicher zu sparen} -% \begin{macrocode} \global\let\@thanks\@empty \global\let\@author\@empty \global\let\@date\@empty @@ -765,17 +669,16 @@ }% % \end{macrocode} % \begin{macro}{\@maketitle} -% \changes{v2.95c}{2006/08/21}{Absatzgrundeinstellungen}%^^A -% \changes{v3.11c}{2012/02/14}{Schmutztitel in eigene Anweisung verlagert}%^^A -% \changes{v3.12a}{2014/03/03}{\cs{next@tdpage} aus \cs{@maketitle} -% entfernt}%^^A +% \changes{v2.95c}{2006/08/21}{default paragraph settings} +% \changes{v3.11c}{2012/02/14}{extra/mock title moved to \cs{@makeextratitle}} +% \changes{v3.12a}{2014/03/03}{\cs{next@tdpage} removed} % \begin{macro}{\@makeextratitle} -% \changes{v3.11c}{2013/02/14}{neue Anweisung (intern)}%^^A -% \changes{v3.12a}{2014/03/03}{\cs{next@tdpage} aus \cs{@makeextrattitle} -% entfernt}%^^A -% Damit wird im Fall des Titelkopfes die eigentliche Arbeit geleistet. +% \changes{v3.11c}{2013/02/14}{added} +% \changes{v3.12a}{2014/03/03}{\cs{next@tdpage} removed} % \begin{macro}{\@makefrontispiece} -% \changes{v3.25}{2017/11/21}{neu}%^^A +% \changes{v3.25}{2017/11/21}{added} +% These do the printing of the main title, the extra or mock title and the +% frontispiece (retro page of the mock title). % \begin{macrocode} \newcommand*{\@makeextratitle}{% \ifx\@extratitle\@empty \else @@ -828,56 +731,59 @@ \vskip 2em }% % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} +% \end{macro}^^A \@makefrontispiece +% \end{macro}^^A \@makeextratitle +% \end{macro}^^A \@maketitle +% \end{command}^^A \maketitle % -% \begin{macro}{\coverpagetopmargin} -% \changes{v3.12}{2013/11/21}{neu}%^^A -% Oberer Rand für Umschlagsseiten. +% \begin{command}{\coverpagetopmargin} +% \changes{v3.12}{2013/11/21}{added} +% Top margin of a cover page (\opt{titlepage=firstiscover}). % \begin{macrocode} \newcommand*{\coverpagetopmargin}{% \dimexpr \topmargin+1in\relax } % \end{macrocode} -% \end{macro} +% \end{command} % -% \begin{macro}{\coverpagebottommargin} -% \changes{v3.12}{2013/11/21}{neu}%^^A -% Unterer Rand für Umschlagsseiten. +% \begin{command}{\coverpagebottommargin} +% \changes{v3.12}{2013/11/21}{added} +% Bottom margin of a cover page (\opt{titlepage=firstiscover}). % \begin{macrocode} \newcommand*{\coverpagebottommargin}{% 2\dimexpr\coverpagetopmargin\relax } % \end{macrocode} -% \end{macro} +% \end{command} % -% \begin{macro}{\coverpageleftmargin} -% \changes{v3.12}{2013/11/21}{neu}%^^A -% Linker Rand für Umschlagsseiten. +% \begin{command}{\coverpageleftmargin} +% \changes{v3.12}{2013/11/21}{added} +% Left margin of a cover page (\opt{titlepage=firstiscover}). % \begin{macrocode} \newcommand*{\coverpageleftmargin}{% \dimexpr \evensidemargin+1in\relax } % \end{macrocode} -% \end{macro} +% \end{command} % -% \begin{macro}{\coverpagerightmargin} -% \changes{v3.12}{2013/11/21}{neu}%^^A -% Oberer Rand für Umschlagsseiten. +% \begin{command}{\coverpagerightmargin} +% \changes{v3.12}{2013/11/21}{added} +% Right margin of a cover page (\opt{titlepage=firstiscover}). % \begin{macrocode} \newcommand*{\coverpagerightmargin}{\coverpageleftmargin} % \end{macrocode} -% \end{macro} -% -% -% \subsection{Umgebung für die Titelseite} +% \end{command} % % \begin{environment}{titlepage} -% Die Titelseite bedarf ebenfalls einer gesonderter Umgebung. Beim -% zweispaltigen Layout soll die Titelseite z.\,B. einspaltig gedruckt -% werden. +% The environment to be used for title pages. Title pages are always +% one-columned and use page style \pstyle{empty}. We have to take care to +% reset this at the end of the title page. +% \begin{description} +% \item[ToDo:] Wouldn't it be better to use \cs{pagestyle} instead of +% \cs{thispagestyle}, because \cs{pagestyle} would also be valid, if a user +% uses more than one page inside a \env{titlepage} environment? +% \item[ToDo:] See the note about \cs{next@tpage} above. +% \end{description} % \begin{macrocode} %<package&extend>\scr@ifundefinedorrelax{titlepage}{% \newenvironment{titlepage}{% @@ -898,115 +804,139 @@ % \end{macrocode} % \end{environment} % -% Im Fall von \textsf{scrextend} muss jetzt das Kürzel \emph{title} beendet -% werden: +% In case of package \pkg*{scrextend} the code of activatable \texttt{title} +% is complete and should be used if activated. % \begin{macrocode} %<package&extend>}\csname scr@ext@immediate@title\endcsname % \end{macrocode} % -% \subsection{Fonts für den Titel} -% -% \begin{macro}{\titlefont} -% \changes{v2.8p}{2001/09/22}{neu}%^^A -% Wie oben zu sehen ist, wird in der Titelei ein eigenes Schriftmakro -% verwendet. Dieses ist als internes Makro zu verstehen. Der Anwender -% sollte stattdessen auf das entsprechende Element zugreifen (siehe -% unten). -% \begin{macro}{\subject@font} -% \changes{v2.8q}{2002/01/14}{neu (intern)}%^^A -% \changes{v2.95}{2002/06/26}{jetzt auch bei \textsf{scrbook}, -% \textsf{scrreprt} und \textsf{scrartcl}} -% Ebenso verhält es sich mit den \emph{Subject} im Titel. Hier ist -% aber von vornherein ein internes Makro definiert. -% \begin{macrocode} -\newcommand*\titlefont{\sectfont}% -\newcommand*{\subject@font}{\normalfont\normalcolor\bfseries\Large}% -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{KOMAfont}{subtitle} -% \changes{v2.97c}{2007/06/20}{neu}%^^A +% \begin{fontelement}{subtitle} +% \changes{v2.97c}{2007/06/20}{added} % \begin{macrocode} \newkomafont{subtitle}{\usekomafont{title}\large}% % \end{macrocode} -% \end{KOMAfont} +% \end{fontelement} % -% \begin{KOMAfont}{titlehead} -% \changes{v3.12}{2013/05/29}{neu}%^^A +% \begin{fontelement}{titlehead} +% \changes{v3.12}{2013/05/29}{added} % \begin{macrocode} \newkomafont{titlehead}{}% % \end{macrocode} -% \end{KOMAfont} +% \end{fontelement} % -% \begin{KOMAfont}{author} -% \changes{v3.12}{2013/05/29}{neu}%^^A +% \begin{fontelement}{author} +% \changes{v3.12}{2013/05/29}{added} % \begin{macrocode} \newkomafont{author}{\Large} % \end{macrocode} -% \end{KOMAfont} +% \end{fontelement} % -% \begin{KOMAfont}{date} -% \changes{v3.12}{2013/05/29}{neu}%^^A +% \begin{fontelement}{date} +% \changes{v3.12}{2013/05/29}{added} % \begin{macrocode} \newkomafont{date}{\Large} % \end{macrocode} -% \end{KOMAfont} +% \end{fontelement} % -% \begin{KOMAfont}{publishers} -% \changes{v3.12}{2013/05/29}{neu}%^^A +% \begin{fontelement}{publishers} +% \changes{v3.12}{2013/05/29}{added} % \begin{macrocode} \newkomafont{publishers}{\Large} % \end{macrocode} -% \end{KOMAfont} +% \end{fontelement} % -% \begin{KOMAfont}{dedication} -% \changes{v3.12}{2013/05/29}{neu}%^^A +% \begin{fontelement}{dedication} +% \changes{v3.12}{2013/05/29}{added} % \begin{macrocode} \newkomafont{dedication}{\Large} % \end{macrocode} -% \end{KOMAfont} +% \end{fontelement} % -% \begin{macro}{\scr@fnt@title} -% \changes{v2.8o}{2001/09/14}{neues Element \texttt{title}} -% \begin{macro}{\scr@fnt@subject} -% \changes{v2.8q}{2002/01/14}{neues Element \texttt{subject}} -% \changes{v2.95}{2002/06/26}{jetzt auch bei \textsf{scrbook}, -% \textsf{scrreprt} und \textsf{scrartcl}} -% Die beiden Elemente, deren Schrift geändert werden kann. +% \begin{fontelement}{title} +% \changes{v2.8o}{2001/09/14}{added} +% \begin{macro}{\titlefont} +% \changes{v2.8p}{2001/09/22}{added} +% Font to be used for the title. The font element has to be defined manually, +% because of compatibility with \KOMAScript{} up to version 2.8n and old +% \LaTeX~2.09 style \textsc{Script 2.0}. \cs{titlefont} is a user command for +% compatibility only. So we index it a internal macro. % \begin{macrocode} +\newcommand*\titlefont{\sectfont}% \newcommand*{\scr@fnt@title}{\titlefont}% +% \end{macrocode} +% \end{macro} +% \end{fontelement} +% +% \begin{fontelement}{subject} +% \changes{v2.8q}{2002/01/14}{added} +% \changes{v2.95}{2002/06/26}{also with \cls*{scrbook}, \cls*{scrreprt}, +% \cls*{scrartcl}} +% \begin{macro}{\subject@font} +% \changes{v2.8q}{2002/01/14}{added} +% \changes{v2.95}{2002/06/26}{also defined with \cls*{scrbook}, +% \cls*{scrreprt}, \cls*{scrartcl}} +% This has to be defined manually, because of compatibility with \KOMAScript{} +% up to version 2.8n and old \LaTeX~2.09 style \textsc{Script 2.0}. +% \begin{macrocode} +\newcommand*{\subject@font}{\normalfont\normalcolor\bfseries\Large}% \newcommand*{\scr@fnt@subject}{\subject@font}% +%</body> % \end{macrocode} % \end{macro} -% \end{macro} +% \end{fontelement} % +% \begin{macrocode} +%</!letter> +% \end{macrocode} % -% \subsection{Umgebung für die Zusammenfassung} +% \section{Implementation of the Abstract} +% +% The abstract is not part of the title but related to it. But maybe it is +% also a kind of section. +% \begin{description} +% \item[ToDo:] Should this be moved to \file{scrkernel-sections.dtx} or a new +% file \file{scrkernel-abstract.dtx}? +% \end{description} +% It is only defined for the classes \cls*{scrartcl} and \cls*{scrreprt} but +% not for \cls*{scrbook}, \cls*{scrlttr2} or package \pkg*{scrextend}. +% \begin{macrocode} +%<*class&(article|report)> +% \end{macrocode} +% +% \begin{option}{abstract} +% \changes{v2.95c}{2006/08/21}{added} +% \begin{macro}{\@abstrttrue,\@abstrtfalse,\if@abstrt} +% \changes{v3.17}{2015/03/10}{using \pkg*{scrkbase}} +% \KOMAScript{} provides abstracts with and without titles and only for the +% classes \cls*{scrartcl} and \cls*{scrreprt}. Books usually use a chapter for +% the abstract. We just need a simple boolean option, that sets a boolean +% switch. +% \begin{macrocode} +%<*option> +\KOMA@ifkey{abstract}{@abstrt} +% \end{macrocode} +% \begin{option}{abstracton,abstractoff} +% \changes{v2.95c}{2006/08/21}{obsolete} +% \changes{v3.01a}{2008/11/21}{standard not obsolete} +% \changes{v3.27}{2019/03/13}{deprecated} +% \begin{macrocode} +\KOMA@DeclareDeprecatedOption{abstracton}{abstract=true} +\KOMA@DeclareDeprecatedOption{abstractoff}{abstract=false} +%</option> +% \end{macrocode} +% \end{option}^^A abstracton,abstractoff +% \end{macro}^^A \if@abstrt +% \end{option}^^A abstract % % \begin{environment}{abstract} -% \textsf{scrartcl} und \textsf{scrreprt} bieten die Möglichkeit einer -% Zusammenfassung, eines sogenannten \emph{Abstracts}. Wenn eine -% Titelseite verlangt wurde, wird auch die Zusammenfassung auf eine -% eigene Seite gesetzt. \textsf{scrbook} kennt keine Zusammenfassung -% dieser Art. In Büchern werden Zusammenfassungen üblicherweise mit -% Kapitelcharakter gesetzt. -% \iffalse -%<*class> -%<*article|report> -% \fi -% \changes{v2.3a}{1995/07/08}{\cs{@endparpenalty} zur Verhinderung -% eines Seitenumbruchs nach dem Abstract-Kopf eingefügt}%^^A -% \changes{v2.3g}{1996/01/14}{\cs{@beginparpenalty} zur -% Verhinderung eines Seitenumbruchs vor dem Abstract-Kopf -% eingefügt}%^^A -% \changes{v2.7a}{2001/01/04}{statt \cs{section*} wird nun -% \cs{addsec*} verwendet, damit die Kolumnentitel korrekt -% behandelt werden}%^^A -% \changes{v3.04a}{2009/07/14}{die Unterscheidung, ob Titelseite oder -% Titelkopf sollte erst in der Umgebung und nicht schon bei deren -% Definition erfolgen}%^^A +% \changes{v2.3a}{1995/07/08}{\cs{@endparpenalty} added} +% \changes{v2.3g}{1996/01/14}{\cs{@beginparpenalty} added} +% \changes{v2.7a}{2001/01/04}{\cs{section*} replaced by \cs{addsec*}} +% \changes{v3.04a}{2009/07/14}{\cs{if@titlepage} moved inside environment} +% The abstract is different for documents with title page. We provide an +% abstract with or without title. % \begin{macrocode} +%<*body> \newenvironment{abstract}{% \if@titlepage \titlepage @@ -1041,35 +971,33 @@ \fi } % \end{macrocode} -% \end{environment}%^^A abstract +% \end{environment}^^A abstract % -% \begin{macro}{\abstractname} -% Name der Zusammenfassung. +% \begin{command}{\abstractname} +% \changes{v3.36}{2022/03/08}{explicit definition for English languages} +% The name of the abstract (if a title is used). % \begin{macrocode} \newcommand*\abstractname{Abstract} +\providecaptionname{american,australian,british,canadian,english,newzealand,% + UKenglish,ukenglish,USenglish,usenglish}\abstractname{Abstract} +%</body> % \end{macrocode} -% \end{macro}%^^A \abstractname -% -% \iffalse -%</article|report> -%</class> -% \fi +% \end{command}^^A \abstractname % +% \begin{macrocode} +%</class&(article|report)> +% \end{macrocode} % -% \iffalse -%</body> -% \fi -% -% \iffalse -%</!letter> -% \fi % % \Finale -% +% \PrintChanges +% \endinput -% -% end of file `scrkernel-title.dtx' -%%% Local Variables: -%%% mode: doctex -%%% TeX-master: t -%%% End: +% Local Variables: +% mode: doctex +% ispell-local-dictionary: "en_US" +% eval: (flyspell-mode 1) +% TeX-master: t +% TeX-engine: luatex-dev +% eval: (setcar (or (cl-member "Index" (setq-local TeX-command-list (copy-alist TeX-command-list)) :key #'car :test #'string-equal) (setq-local TeX-command-list (cons nil TeX-command-list))) '("Index" "mkindex %s" TeX-run-index nil t :help "makeindex for dtx")) +% End: |