diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrktare.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/koma-script/scrktare.dtx | 223 |
1 files changed, 154 insertions, 69 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrktare.dtx b/Master/texmf-dist/source/latex/koma-script/scrktare.dtx index 0264b9c47b3..fe8d27e3838 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrktare.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrktare.dtx @@ -1,8 +1,8 @@ -% \CheckSum{1540} +% \CheckSum{1624} % \iffalse meta-comment % ====================================================================== % scrktare.dtx -% Copyright (c) Markus Kohm, 2002-2006 +% Copyright (c) Markus Kohm, 2002-2007 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrktare.dtx -% Copyright (c) Markus Kohm, 2002-2006 +% Copyright (c) Markus Kohm, 2002-2007 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -58,7 +58,7 @@ %%% From File: scrktare.dtx %<*driver> % \fi -\ProvidesFile{scrktare.dtx}[2006/07/20 v2.95a KOMA-Script (type area)] +\ProvidesFile{scrktare.dtx}[2006/11/29 v2.96a KOMA-Script (type area)] % \iffalse %</driver> %<package&identify>\ProvidesPackage{typearea}[% @@ -111,7 +111,7 @@ \@spaces\@spaces\@spaces\@spaces\space\space Copyright (C) Frank Neukam, 1992-1994^^J% \@spaces\@spaces\@spaces\@spaces\space\space - Copyright (C) Markus Kohm, 1994-2002^^J% + Copyright (C) Markus Kohm, 1994-^^J% } % \end{macrocode} % @@ -180,7 +180,7 @@ % Ab hier nun wieder Teile für Klassen und Paket: % \begin{macrocode} %</package> -%<*package|class> +%<*class|package> % \end{macrocode} % % \begin{macro}{\@BCOR} @@ -270,17 +270,8 @@ % \end{macro} % \end{macro} % -% Zur Abwechslung geht es mit einem Teil weiter, den es nur bei den -% Klassen gibt: +% Jetzt kommt ein Stück, das nur im Paket benötigt wird. % \begin{macrocode} -%</package|class> -%<*class> -% \end{macrocode} -% -% Jetzt gibt es wieder etwas, was nur für \textsf{typearea} benötigt -% wird. -% \begin{macrocode} -%</class> %<*package> % \end{macrocode} % @@ -423,7 +414,6 @@ % Jetzt wird es wieder für alle interessant: % \begin{macrocode} %</package> -%<*package|class> % \end{macrocode} % % Zurück zur Mustererkennung. Diese ist tatsächlich etwas einfacher @@ -479,28 +469,25 @@ % \end{macrocode} % \end{macro} % -% Vorerst das Ende der Gemeinsamkeiten. -% \begin{macrocode} -%</package|class> -%<*package> -% \end{macrocode} -% % % \subsection{Optionen mit \textsf{keyval}} % % \subsubsection{Kopf-, Fuß-, Rand- und Textbereich} % % \begin{option}{headlines} -% \changes{v3.0}{2002/12/06}{mit \textsf{keyval} neu implementiert} +% \changes{v2.95}{2002/12/06}{mit \textsf{keyval} neu implementiert} % Neben der Auswertung der \meta{Wert}\texttt{headlines} Form über % Pattern Matching wird hier auch noch eine \textsf{keyval}-Option % definiert, die bevorzugt zu verwenden ist. % \begin{macrocode} \KOMA@key{headlines}{% +%<*package> \begingroup \setlength{\@tempdima}{#1\baselineskip}% \endgroup \def\ta@hh{#1\baselineskip}% +%</package> +%<class> \PassOptionsToPackage{headlines=#1}{typearea}% } % \end{macrocode} % \end{option} @@ -517,10 +504,15 @@ % \begin{macro}{\@hinclfalse} % Der Zustand selbst wird in einem Schalter gespeichert. % \begin{macrocode} +%<*package> \KOMA@ifkey{headinclude}{@hincl} \KOMA@DeclareObsoleteOption[\PackageInfo]{headexclude}{% headinclude=false% } +%</package> +%<*class> +\KOMA@key{headinclude}[true]{\PassOptionsToPackage{headinclude=#1}{typearea}} +%</class> % \end{macrocode} % \end{macro} % \end{macro} @@ -540,10 +532,15 @@ % \begin{macro}{\@finclfalse} % Der Zustand selbst wird in einem Schalter gespeichert. % \begin{macrocode} +%<*package> \KOMA@ifkey{footinclude}{@fincl} \KOMA@DeclareObsoleteOption[\PackageInfo]{footexclude}{% footinclude=false% } +%</package> +%<*class> +\KOMA@key{footinclude}[true]{\PassOptionsToPackage{footinclude=#1}{typearea}} +%</class> % \end{macrocode} % \end{macro} % \end{macro} @@ -569,10 +566,15 @@ % Bei Verwendung dieser Option müssen größere DIV-Werte verwendet % werden. Siehe dazu weiter unten. % \begin{macrocode} +%<*package> \KOMA@ifkey{mpinclude}{@mincl} \KOMA@DeclareObsoleteOption[\PackageInfo]{mpexclude}{% mpinclude=false% } +%</package> +%<*class> +\KOMA@key{mpinclude}[true]{\PassOptionsToPackage{mpinclude=#1}{typearea}} +%</class> % \end{macrocode} % \end{macro} % \end{macro} @@ -589,15 +591,18 @@ % Laden des Pakets absolut keinen Sinn ergeben! % \begin{macrocode} \KOMA@key{BCOR}{% +%<*package> \edef\@tempa{#1}\edef\@tempb{current}\ifx\@tempa\@tempb\else \setlength{\ta@bcor}{#1}% \fi +%</package> +%<class> \PassOptionsToPackage{BCOR=#1}{typearea}% } % \end{macrocode} % Wenn allerdings der Satzspiegel bereits berechnet ist, dann muss er % hier stattdessen neu berechnet werden. % \begin{macrocode} -\AtEndOfPackage{\KOMA@key{BCOR}{\typearea[{#1}]{last}}} +%<package>\AtEndOfPackage{\KOMA@key{BCOR}{\typearea[{#1}]{last}}} % \end{macrocode} % \end{option} % @@ -611,6 +616,7 @@ % wenn diese beim Laden des Pakets absolut keinen Sinn ergeben! % \begin{macrocode} \KOMA@key{DIV}[calc]{% +%<*package> \edef\@tempa{#1}% \def\@tempb{last}\ifx\@tempa\@tempb\let\@tempa=\@lastdiv\fi \def\@tempb{current}\ifx\@tempa\@tempb\else @@ -622,12 +628,14 @@ \fi \fi \fi +%</package> +%<class> \PassOptionsToPackage{DIV=#1}{typearea}% } % \end{macrocode} % Wenn allerdings der Satzspiegel bereits berechnet ist, dann muss er % hier stattdessen neu berechnet werden. % \begin{macrocode} -\AtEndOfPackage{\KOMA@key{DIV}{\typearea[current]{#1}}} +%<package>\AtEndOfPackage{\KOMA@key{DIV}{\typearea[current]{#1}}} % \end{macrocode} % \end{option} % @@ -641,8 +649,10 @@ % reimplementiert} % Dann gibt es da noch zwei alte Sonderfälle. % \begin{macrocode} +%<*package> \KOMA@DeclareObsoleteOption[\PackageInfo]{DIVcalc}{DIV=calc} \KOMA@DeclareObsoleteOption[\PackageInfo]{DIVclassic}{DIV=classic} +%</package> % \end{macrocode} % \end{option} % \end{option} @@ -650,12 +660,6 @@ % % \subsubsection{Sonstige Satzspiegel-Optionen} % -% Ein Teil der weiteren Satzspiegeloptionen gibt es nur bei den Klassen: -% \begin{macrocode} -%</package> -%<*class> -% \end{macrocode} -% % \begin{option}{oneside} % \begin{option}{twoside} % Einseitiger oder zweiseitiger Satzspiegel? @@ -663,20 +667,13 @@ \KOMA@key{twoside}[true]{% \KOMA@set@ifkey{twoside}{@twoside}{#1}% \if@twoside\@mparswitchtrue\else\@mparswitchfalse\fi% - \csname recalctypearea\endcsname +%<package> \csname recalctypearea\endcsname } -\KOMA@DeclareObsoleteOption[\PackageInfo]{oneside}{twoside=false} +%<package>\KOMA@DeclareObsoleteOption[\PackageInfo]{oneside}{twoside=false} % \end{macrocode} % \end{option} % \end{option} % -% Weitere Satzspiegeloptionen sind jedoch dem \textsf{typearea}-Paket -% zuzuordnen: -% \begin{macrocode} -%</class> -%<*package> -% \end{macrocode} -% % \begin{option}{onecolumn} % \changes{v2.95}{2002/12/04}{Option in das \textsf{typearea}-Paket % verlagert} @@ -687,9 +684,9 @@ % \begin{macrocode} \KOMA@key{twocolumn}[true]{% \KOMA@set@ifkey{twocolumn}{@twocolumn}{#1}% - \csname recalctypearea\endcsname +%<package> \csname recalctypearea\endcsname } -\KOMA@DeclareObsoleteOption[\PackageInfo]{onecolumn}{twocolumn=false} +%<package>\KOMA@DeclareObsoleteOption[\PackageInfo]{onecolumn}{twocolumn=false} % \end{macrocode} % \end{option} % \end{option} @@ -720,6 +717,7 @@ % \end{labeling} % \begin{macrocode} \KOMA@key{pagesize}[auto]{% +%<*package> \begingroup \KOMA@set@ncmdkey{pagesize}{@tempa}{% {auto}{0},{automedia}{1},{dvips}{2},{pdftex}{3}% @@ -741,8 +739,11 @@ \set@pdftexpagesize \fi \edef\@pagesizelast{#1}% +%</package> +%<class> \PassOptionsToPackage{pagesize=#1}{typearea}% } % \end{macrocode} +% % \begin{macro}{\set@pdftexpagesize} % \changes{v2.95}{2002/08/27}{neu (intern)} % \begin{macro}{\set@dvipspagesize} @@ -758,7 +759,8 @@ % bei ihrem Aufruf und insgesamt bei % \texttt{\cs{begin}\{document\}}. % \end{description} -% \begin{macrocode} +% \begin{macrocode}+ +%<*package> \newcommand{\set@pdftexpagesize}{% \AtBeginDocument{% \ifnotundefined{pdfpagewidth}{\pdfpagewidth=\paperwidth}{}% @@ -813,6 +815,7 @@ \ifnotundefined{mediaheight}{\mediaheight=\paperheight}{}% }% } +%</package> % \end{macrocode} % \end{macro} % \end{macro} @@ -829,9 +832,11 @@ % verwendet, weil die Verwendung von \texttt{pagesize=dvips} selbst % ebenfalls zu einer Warnung führen kann. % \begin{macrocode} +%<*package> \KOMA@DeclareObsoleteOption[\PackageWarning]{dvips}{% pagesize=dvips% } +%</package> % \end{macrocode} % \end{option} % @@ -841,9 +846,11 @@ % Die Option ist obsolete und wird nun über die Option % \texttt{pagesize} implementiert. % \begin{macrocode} +%<*package> \KOMA@DeclareObsoleteOption[\PackageInfo]{pdftex}{% pagesize=pdftex% } +%</package> % \end{macrocode} % \end{option} % @@ -872,6 +879,7 @@ % die übrigen Papiergrößenoptionen später noch per Mustererkennung % verarbeitet. % \begin{macrocode} +%<*package> \KOMA@DeclareObsoleteOption[\PackageInfo]{a4paper}{paper=a4} \KOMA@DeclareObsoleteOption[\PackageInfo]{a5paper}{paper=a5} \KOMA@DeclareObsoleteOption[\PackageInfo]{b5paper}{paper=b5} @@ -880,6 +888,7 @@ \KOMA@DeclareObsoleteOption[\PackageInfo]{executivepaper}{paper=executive} \KOMA@DeclareObsoleteOption[\PackageInfo]{landscape}{paper=landscape} \KOMA@DeclareObsoleteOption[\PackageInfo]{portrait}{paper=portrait} +%</package> % \end{macrocode} % \end{option} % \end{option} @@ -899,6 +908,7 @@ % "`\texttt{portrait}"' und "`\texttt{landscape}"' erlaubt. % \begin{macrocode} \KOMA@key{paper}{% +%<*package> \ifstr{#1}{landscape}{% \if@landscape\else \setlength{\@tempdima}{\paperwidth}% @@ -951,6 +961,8 @@ \fi }% }% +%</package> +%<class> \PassOptionsToPackage{paper=#1}{typearea}% } % \end{macrocode} % \begin{macro}{\if@landscape} @@ -959,7 +971,7 @@ % In diesem Schalter wird gespeichert, ob Hoch- oder Breitformat % verwendet wird. % \begin{macrocode} -\newif\if@landscape +%<package>\newif\if@landscape % \end{macrocode} % \end{macro} % \end{macro} @@ -973,19 +985,21 @@ % Wenn ja, wird \cs{@tempa} mit dem ersten und \cs{@tempb} mit dem % zweiten Argument definiert. % \begin{macrocode} +%<*package> \newcommand*{\maybe@pair}{% \@ifnextchar (% {\@tempswatrue\maybe@@pair}{\@tempswafalse\gobble@till@scr@next}% } \newcommand*{\maybe@@pair}{} \def\@maybepair(#1,#2)\scr@next{\def\@tempa{#1}\def\@tempb{#2}}% +%</package> % \end{macrocode} % \end{macro} % \end{macro} % \end{option} % % \begin{macrocode} -%</package> +%</class|package> % \end{macrocode} % % @@ -1035,9 +1049,11 @@ % explizite Angaben überladen werden. % \changes{v2.3h}{1995/01/19}{\cs{relax} nach \cs{ProcessOptions} % ergänzt.} +% \changes{v2.96}{2006/08/18}{Optionen werden in Reihenfolge der Angabe statt +% in Reihenfolge der Deklaration abgearbeitet.} % \begin{macrocode} \KOMAoptions{headinclude=false,footinclude=false,paper=A4} -\ProcessAllOptions{KOMA} +\ProcessOptions*\relax % \end{macrocode} % % @@ -1271,7 +1287,14 @@ % \end{macrocode} % Als Sonderbedingung ist dann noch zu beachten, dass die Größse des % Textbereichs nicht zu einer vertikalen Aufweitung führt. +% \changes{v2.96}{2006/09/12}{\cs{topskip} wird gesetzt} % \begin{macrocode} + \scr@ifundefined{@ptsize}{% + \topskip=\f@size\p@ + }{% + \topskip=\@ptsize\p@ + \advance\topskip by 10\p@ + }% \textheight=\topskip \@whiledim\textheight <\ta@temp \do{\advance\textheight by\baselineskip}% @@ -1344,15 +1367,42 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\AfterCalculatingTypearea} +% \changes{v2.96a}{2006/11/29}{neu} +% Neuerdings besteht die Möglichkeit, auf Benutzerebene das Verhalten von +% \cs{typearea} zu beeinflussen. In der Sternvariante wird dabei lokal +% gearbeitet. +% \begin{macrocode} +\newcommand*{\AfterCalculatingTypearea}{% + \@ifstar \l@addto@macro \g@addto@macro \@typearea@end +} +% \end{macrocode} % \begin{macro}{\@typearea@end} -% Das Makro \cs{@typearea@end} wird verwendet, um mit einem gewaltigen -% Hack die Änderung des Satzspiegels innerhalb eines Dokuments zu -% ermöglichen. Es wird daher erst am Anfang des Dokuments definiert. +% \changes{v2.96a}{2006/11/29}{wird wieder immer aber mit neuer Bedeutung +% definiert} +% Das Makro \cs{@typearea@end} dient als Hook, um am Ende von \cs{typearea} +% noch irgendwelche Änderungen vornehmen zu können. Dies geschieht ggf. noch +% vor der Aktivierung der Einstellungen innerhalb eines Dokuments. % \begin{macrocode} -\AtBeginDocument{% - \newcommand\@typearea@end{% +\newcommand*{\@typearea@end}{} % \end{macrocode} -% Als erstes wird jedoch eine Warnung ausgegeben, weil es wirklich sehr +% \end{macro} +% \end{macro} +% +% \begin{macro}{\activateareas} +% \changes{v2.96a}{Neuer Name für alte Anweisung} +% Dieses Makro wird verwendet, um mit einem gewaltigen Hack die Änderung des +% Satzspiegels innerhalb eines Dokuments zu ermöglichen. Es stellt selbst +% sicher, dass es nur innerhalb des Dokuments ausgeführt wird. +% \begin{macrocode} +\newcommand*{\activateareas}{% +% \end{macrocode} +% Als erstes wird getestet, ob wir überhaupt innerhalb des Dokuments sind und +% nur dann wird etwas getan. +% \begin{macrocode} + \if@atdocument +% \end{macrocode} +% Wenn dem so ist, wird jedoch eine Warnung ausgegeben, weil es wirklich sehr % unsauber ist, so zu verfahren. Das ganze ist absolut abhängig von der % \LaTeX-Version. % \begin{macrocode} @@ -1378,8 +1428,8 @@ \fi \hsize=\columnwidth \linewidth\hsize - \ifundefined{@pagesizelast}{}{\KOMAoptions{pagesize=\@pagesizelast}}% - }% + \scr@ifundefined{@pagesizelast}{}{\KOMAoptions{pagesize=\@pagesizelast}}% + \fi } % \end{macrocode} % \end{macro} @@ -1398,6 +1448,7 @@ % Liste} % \changes{v2.8q}{2002/03/28}{Berücksichtigung der Option % `mpinclude'} +% \changes{v2.96}{2006/08/11}{Schriftgröße muss nicht in ganzen pt sein} % \begin{macrocode} \newcommand*{\ta@divfor}[1]{% \if@mincl @@ -1409,21 +1460,31 @@ \ta@div=2 \else \xdef\@tempa{\ta@divlist{}}% - \ta@div=#1\relax - \@whilenum \ta@div >-9 \do {% - \ifx\@tempa\empty - \else \xdef\@tempa{\expandafter\@cdr\@tempa\@nil}\fi - \advance\ta@div by-1 - }% + \@tempdima=#1pt + \addtolength{\@tempdima}{.5\p@}% + \divide\@tempdima by\p@ + \setlength{\@tempdimb}{\@tempdima}% + \multiply\@tempdimb by\p@ + \ifdim \@tempdimb=#1pt + \ta@div=#1\relax + \@whilenum \ta@div >-9 \do {% + \ifx\@tempa\empty + \else \xdef\@tempa{\expandafter\@cdr\@tempa\@nil}\fi + \advance\ta@div by-1 + }% + \else + \let\@tempa\empty + \fi \ifx\@tempa\empty % \end{macrocode} % Wenn keine Voreinstellung gefunden werden konnte, so wird immer % der Optimalwert berechnet. Mit einer Warnung wird darauf % hingewiesen. % \begin{macrocode} - \ta@div=10 \advance\ta@div by#1 + \setlength{\@tempdima}{#1\p@}% + \addtolength{\@tempdima}{10\p@}% \PackageWarningNoLine{typearea}{% - DIV for \the\ta@div pt and used papersize\MessageBreak + DIV for \the\@tempdima\space and used papersize\MessageBreak not defined!\MessageBreak Using DIV=\ta@divlistelse }% @@ -1449,7 +1510,9 @@ % \texttt{default}, \texttt{calc}, \texttt{classic} werden % verstanden} % \changes{v2.8q}{2001/11/06}{der Wert \texttt{last} wird -% verstanden} +% verstanden} +% \changes{v2.96}{2006/08/21}{Warnung, wenn \cs{typearea} innerhalb einer +% Gruppe verwendet wird} % Die symbolischen Werte für das obligatorische Argument von % \cs{typearea} haben folgende Bedeutung: % \begin{center}\begin{tabular}{lll} @@ -1465,6 +1528,20 @@ % \texttt{current}. % \begin{macrocode} \newcommand*\typearea[2][\z@]{% + \scr@ifundefined{currentgrouptype}{}{% + \ifcase\currentgrouptype\else + \PackageWarning{typearea}{% + \string\typearea\space used at group level + \the\currentgrouplevel.\MessageBreak + Using \string\typearea\space inside any group, e.g.\MessageBreak + environments, math mode, boxes, etc. may result in\MessageBreak + many type setting problems. Because of this you\MessageBreak + should never do this. You should move the + \string\typearea\MessageBreak + outside all groups% + }% + \fi + }% \edef\@tempa{#1}\edef\@tempb{current}\ifx\@tempa\@tempb\else \setlength{\ta@bcor}{#1}% \fi @@ -1539,7 +1616,7 @@ % \begin{macrocode} \ifnum\ta@div=\z@ \@ifundefined{@ptsize}{% - \@tempdima=\f@size pt + \@tempdima=\f@size\p@ \advance\@tempdima by.5pt \ta@div=\@tempdima \divide\ta@div by65536 @@ -1547,7 +1624,7 @@ \xdef\@ptsize{\the\ta@div}% \PackageWarningNoLine{typearea}{% \string\@ptsize\space not defined!\MessageBreak - Fontsize ist \f@size.\MessageBreak + Fontsize is \f@size pt.\MessageBreak Defining \string\@ptsize\space to \@ptsize% }% }{}% @@ -1814,7 +1891,8 @@ \space\string\baselineskip\space\space\space=% \space\the\baselineskip\MessageBreak }% - \if@atdocument\@typearea@end\fi + \@typearea@end + \activateareas \fi } % \end{macrocode} @@ -1852,9 +1930,10 @@ % Bevor nun irgendeine Berechnung durchgeführt wird, muss ggf. eine % neue Seite begonnen werden. % \begin{macrocode} - \if@atdocument\newpage\fi + \if@atdocument\newpage\fi % \end{macrocode} % Erst dann folgt die eigentlich Berechnung: +% \changes{v2.96}{2006/09/12}{\cs{topskip} wird gesetzt} % \begin{macrocode} \setlength{\textwidth}{#2}% \setlength{\textheight}{#3}% @@ -1874,6 +1953,12 @@ \advance\oddsidemargin by\ta@bcor \evensidemargin\oddsidemargin \fi + \scr@ifundefined{@ptsize}{% + \topskip=\f@size\p@ + }{% + \topskip=\@ptsize\p@ + \advance\topskip by 10\p@ + }% \headheight=15\p@ \advance\headheight by\f@size\p@ \advance\headheight by-10\p@ @@ -1902,7 +1987,7 @@ \fi \marginparsep=1cc \marginparpush=0.45\baselineskip - \if@atdocument\@typearea@end\fi + \activateareas } % \end{macrocode} % \end{macro} |