diff options
author | Karl Berry <karl@freefriends.org> | 2017-05-06 21:41:21 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-05-06 21:41:21 +0000 |
commit | 734c91dfac1697d69bdd509c8bc7a97750c78f96 (patch) | |
tree | 95919a908b9926e3a313d7b307b125a89fe9d18f /Master/texmf-dist/source/latex/koma-script/scrkernel-typearea.dtx | |
parent | c2e79031dc84ba98da9a7e985b4cd94eff21d8cf (diff) |
koma-script (6may17)
git-svn-id: svn://tug.org/texlive/trunk@44226 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrkernel-typearea.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/koma-script/scrkernel-typearea.dtx | 340 |
1 files changed, 219 insertions, 121 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-typearea.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-typearea.dtx index 0de547f88f1..9ea3998ff6e 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrkernel-typearea.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-typearea.dtx @@ -1,8 +1,8 @@ -% \CheckSum{2748} +% \CheckSum{2789} % \iffalse meta-comment % ====================================================================== % scrkernel-typearea.dtx -% Copyright (c) Markus Kohm, 2002-2016 +% Copyright (c) Markus Kohm, 2002-2017 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrkernel-typearea.dtx -% Copyright (c) Markus Kohm, 2002-2016 +% 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. @@ -55,13 +55,16 @@ % Right brace \} Tilde \~} % % \iffalse -%%% From File: $Id: scrkernel-typearea.dtx 2494 2016-08-04 07:23:47Z kohm $ +%<identify>%%% From File: $Id: scrkernel-typearea.dtx 2617 2017-04-03 13:56:55Z kohm $ (identify) +%<init>%%% From File: $Id: scrkernel-typearea.dtx 2617 2017-04-03 13:56:55Z kohm $ (init) +%<option>%%% From File: $Id: scrkernel-typearea.dtx 2617 2017-04-03 13:56:55Z kohm $ (option) +%<body>%%% From File: $Id: scrkernel-typearea.dtx 2617 2017-04-03 13:56:55Z kohm $ (body) %<package&identify>\NeedsTeXFormat{LaTeX2e}[1995/06/01] %<*driver> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \begingroup \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}} - \filedate$Date: 2016-08-04 09:23:47 +0200 (Thu, 04 Aug 2016) $ + \filedate$Date: 2017-04-03 15:56:55 +0200 (Mon, 03 Apr 2017) $ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}} \filerevision$Revision: 1872 $ \edef\reserved@a{% @@ -72,11 +75,11 @@ } \reserved@a %</driver> -%<*driver|(package&identify)> +%<*driver|(package&typearea&identify)> %<package>\ProvidesPackage{typearea}[% %!KOMAScriptVersion package (type area)] -%</driver|(package&identify)> +%</driver|(package&typearea&identify)> %<*dtx> \ifx\documentclass\undefined \input scrdocstrip.tex @@ -85,11 +88,13 @@ \generate{\usepreamble\defaultpreamble \file{typearea.sty}{% \from{scrkernel-version.dtx}{package,typearea}% - \from{scrkernel-typearea.dtx}{package,identify}% + \from{scrkernel-typearea.dtx}{package,typearea,identify}% \from{scrkernel-basics.dtx}{load}% - \from{scrkernel-typearea.dtx}{package,option}% + \from{scrkernel-compatibility.dtx}{package,typearea,init}% + \from{scrkernel-typearea.dtx}{package,typearea,init}% + \from{scrkernel-typearea.dtx}{package,typearea,option}% \from{scrkernel-compatibility.dtx}{package,typearea,option}% - \from{scrkernel-typearea.dtx}{package,body}% + \from{scrkernel-typearea.dtx}{package,typearea,body}% \from{scrkernel-compatibility.dtx}{package,typearea,body}% \from{scrlogo.dtx}{logo}% }% @@ -138,23 +143,7 @@ % \subsection{Präambel} % % \iffalse -%<*class|package> -%<*package&identify> -% \fi -% -% Zuerst einmal zeigen, was das Paket ist: -% \begin{macrocode} -\typeout{% - Package typearea, \csname ver@typearea.\@pkgextension\endcsname^^J% - \@spaces\@spaces\@spaces\@spaces\space\space - Copyright (C) Frank Neukam, 1992-1994^^J% - \@spaces\@spaces\@spaces\@spaces\space\space - Copyright (C) Markus Kohm, 1994-^^J% -} -% \end{macrocode} -% -% \iffalse -%</package&identify> +%<*class|(package&typearea)> %<*option> % \fi % @@ -319,9 +308,169 @@ % \end{macro} % \end{macro} % -% Jetzt kommt ein Stück, das nur im Paket benötigt wird. +% Jetzt kommt ein Stück, das nur in Paketen benötigt wird. Dafür aber bereits +% vor Auswertung der Optionen. % \begin{macrocode} -%<*package> +%</option> +%</class|(package&typearea)> +%<*package&init> +% \end{macrocode} +% +% \begin{macro}{\PaperNameToSize} +% \changes{v3.23}{2017/02/22}{neu}^^A +% Dieses Makro zu diversen Papiernamen die Größen \cs{paperheight} und +% \cs{paperwidth}. Derzeit werden die ISO-Formate A, B, C und D sowie +% letter, legal und executive unterstützt. +% \begin{macrocode} +\providecommand*{\PaperNameToSize}[2][warning]{% + \ifstr{#2}{letter}{% + \setlength\paperheight{11in}% + \setlength\paperwidth {8.5in}% + }{% + \ifstr{#2}{legal}{% + \setlength\paperheight{14in}% + \setlength\paperwidth {8.5in}% + }{% + \ifstr{#2}{executive}{% + \setlength\paperheight{10.5in}% + \setlength\paperwidth {7.25in}% + }{% + \ifstr{#2}{}{% + \ISO@PaperNameToSize[#1]{}{}\@nil + }{% + \edef\reserved@a{\noexpand\ISO@PaperNameToSize[#1]#2 \noexpand\@nil}% + \reserved@a + }% + }% + }% + }% +} +% \end{macrocode} +% \begin{macro}{\ISO@PaperNameToSize} +% \changes{v3.23}{2017/02/22}{neu}^^A +% Setzt zu einer ISO-Papiergrößenangabe die Größen \cs{paperheight} und +% \cs{paperwidth}. Derzeit werden die ISO-Formate A, B, C und D +% unterstützt. +% \begin{macrocode} +\scr@ifundefinedorrelax{ISO@PaperNameToSize}{% + \def\ISO@PaperNameToSize[#1]#2#3\@nil{% + \lowercase{\edef\reserved@a{#2}}% + \@tempswafalse + \if \reserved@a a% + \ifnumber{#3}{% + \setlength{\paperwidth}{841sp}% + \setlength{\paperheight}{1189sp}% + \@tempswatrue + }{}% + \else + \if \reserved@a b% + \ifnumber{#3}{% + \setlength{\paperwidth}{1000sp}% + \setlength{\paperheight}{1414sp}% + \@tempswatrue + }{}% + \else + \if \reserved@a c% + \ifnumber{#3}{% + \setlength{\paperwidth}{917sp}% + \setlength{\paperheight}{1297sp}% + \@tempswatrue + }{}% + \else + \if \reserved@a d% + \ifnumber{#3}{% + \setlength{\paperwidth}{771sp}% + \setlength{\paperheight}{1090sp}% + \@tempswatrue + }{}% + \fi + \fi + \fi + \fi + \if@tempswa + \@tempcnta=#3\relax + \@whilenum\@tempcnta>\z@ + \do{\setlength{\@tempdima}{\paperwidth}% + \setlength{\paperwidth}{.5\paperheight}% + \setlength{\paperheight}{\@tempdima}% + \advance\@tempcnta by\m@ne + }% + \multiply\paperwidth by186468 + \multiply\paperheight by186468 + \else + \scr@ifundefinedorrelax{scr@UnknownPaperSize@#1}{% + \scr@UnknownPaperSize@error{#2#3}% + }{% + \@nameuse{scr@UnknownPaperSize@#1}{#2#3}% + }% + \fi + }% +}{} +% \end{macrocode} +% \begin{macro}{\ProvideUnknownPaperSizeError} +% \changes{v3.23}{2017/02/22}{neu} +% Definiert eine Fehlerbehandlung für unbekannte Papiergrößen. Die +% Fehlerbehandlung hat genau ein Argument, nämlich die Papiergröße. +% \begin{macrocode} +\providecommand*{\ProvideUnknownPaperSizeError}[1]{% + \expandafter\providecommand\expandafter*% + \csname scr@UnknownPaperSize@#1\endcsname[1]% +} +% \end{macrocode} +% \begin{macro}{\scr@UnkownPaperSize@error} +% \changes{v3.23}{2017/02/22}{neu (intern)} +% \begin{macro}{\scr@UnkownPaperSize@warning} +% \changes{v3.23}{2017/02/22}{neu (intern)} +% \begin{macro}{\scr@UnkownPaperSize@info} +% \changes{v3.23}{2017/02/22}{neu (intern)} +% \begin{macro}{\scr@UnkownPaperSize@ignore} +% \changes{v3.23}{2017/02/22}{neu (intern)} +% Fehlerbehandlungen für \cs{PaperNameToSize}. +% \begin{macrocode} +\ProvideUnknownPaperSizeError{error}{% + \PackageError{% +%<typearea> typearea% +%<letter> scrletter% + }{Unknown paper size #1}{% + \string\paperwidth\space and \string\paperheight\space stay unchanged, + because of unknown paper size.% + }% +} +%<*typearea> +\ProvideUnknownPaperSizeError{warning}{% + \PackageWarning{% + typearea% + }{% + \string\paperwidth\space and \string\paperheight\space stay + unchanged, because\MessageBreak + of unknown paper size #1% + }% +} +\ProvideUnknownPaperSizeError{info}{% + \PackageInfo{% + typearea + }{% + \string\paperwidth\space and \string\paperheight\space stay + unchanged, because\MessageBreak + of unknown paper size #1% + }% +} +\ProvideUnknownPaperSizeError{ignore}{} +%</typearea> +%</package&init> +% \end{macrocode} +% \end{macro}^^A \scr@UnknownPaperSize@error +% \end{macro}^^A \scr@UnknownPaperSize@warning +% \end{macro}^^A \scr@UnknownPaperSize@info +% \end{macro}^^A \scr@UnknownPaperSize@ignore +% \end{macro}^^A \ProvideUnknownPaperSizeError +% \end{macro}^^A \ISO@PaperNameToSize +% \end{macro}^^A \PaperNameToSize +% +% Das wird dann unmittelbar in \textsf{typearea} für die Auswertung der +% Papiergröße verwendet: +% \begin{macrocode} +%<*package&typearea&option> % \end{macrocode} % % \begin{macro}{\x@paper} @@ -333,6 +482,7 @@ % \begin{macro}{\isopaper} % \changes{v2.5}{1997/06/17}{neu}^^A % \changes{v2.95}{2002/12/03}{es sind auch Großbuchstaben erlaubt}^^A +% \changes{v3.23}{2017/02/22}{verwendet \cs{ISO@PaperNameToSize}}^^A % Da das Makro \cs{isopaper} zur Berechnung unterschiedlicher % ISO/DIN-Papierformate in der Mustererkennung für die Papiergröße % benötigt wird, wurde dieses Makro ebenfalls vorgezogen. @@ -349,84 +499,8 @@ % \item[d] -- ISO/DIN-D-Format % \end{description} % Der zweite Paremeter gibt dann die Skalierung an. -% -% Als Grundgröße wird jeweils die 0-Größe eingesetzt. -% \begin{macrocode} - \ifx a#1 - \setlength{\paperwidth}{841sp}% - \setlength{\paperheight}{1189sp}% - \else\ifx A#1 - \setlength{\paperwidth}{841sp}% - \setlength{\paperheight}{1189sp}% - \else\ifx b#1 - \setlength{\paperwidth}{1000sp}% - \setlength{\paperheight}{1414sp}% - \else\ifx B#1 - \setlength{\paperwidth}{1000sp}% - \setlength{\paperheight}{1414sp}% - \else\ifx c#1 - \setlength{\paperwidth}{917sp}% - \setlength{\paperheight}{1297sp}% - \else\ifx C#1 - \setlength{\paperwidth}{917sp}% - \setlength{\paperheight}{1297sp}% - \else\ifx d#1 - \setlength{\paperwidth}{771sp}% - \setlength{\paperheight}{1090sp}% - \else\ifx D#1 - \setlength{\paperwidth}{771sp}% - \setlength{\paperheight}{1090sp}% -% \end{macrocode} -% Wurde ein anderer Buchstabe angegeben, ist ein Fehler auszugeben. -% \changes{v2.5a}{1997/06/22}{Ausgabe der gewählten Papiergröße -% entfernt} -% \begin{macrocode} - \else - \PackageError{typearea}{% - Unknown ISO/DIN-papersize-letter #1% - }{% - There are only four defined paper scalings:\MessageBreak - a = ISO/DIN-A, b = ISO/DIN-B, c = ISO/DIN-C, - d = ISO/DIN-D\MessageBreak - Read KOMA-Script-documentation for further information.% - }% - \setlength{\paperwidth}{841sp}% - \setlength{\paperheight}{1189sp}% - \fi - \fi - \fi - \fi - \fi - \fi - \fi - \fi -% \end{macrocode} -% Es dürfte aufgefallen sein, dass bei der Größenfestlegung statt -% der Einheit "`mm"' die Einheit "`sp"' geschrieben wurde. Die Maße -% sind also um ein Vielfaches zu klein und müssen später noch mit -% 186468 multiplitziert werden, um auf Millimeter zu kommen. Dieser -% Trick ist jedoch notwendig, weil die Norm vorschreibt, dass bei der -% nun folgenden $n$-fachen Halbierung der Seiten ($n = -% \mathrm{Skalierung} + 1$) jeweils auf ganze Millimeter abgerundet -% werden muss. -% \begin{macrocode} - \@tempcnta=#2\relax - \@whilenum\@tempcnta>0 - \do{\setlength{\@tempdima}{\paperwidth} - \setlength{\paperwidth}{.5\paperheight} - \setlength{\paperheight}{\@tempdima} - \advance\@tempcnta by\m@ne - } -% \end{macrocode} -% Zum Schluß muss nun die genannte Multiplikation erfolgen. Da -% "`mm"' kein ganzzahliges Vielfaches von "`sp"' ist, beinhaltet diese -% Multiplikation eigentlich einen Fehler und eine Abweichung von der -% Norm. Da jedoch "`sp"' die Rechengenauigkeit von {\TeX} darstellt, -% stellt auch die Angabe eines ganzzahligen Millimeterwertes bereits -% einen solchen Fehler dar. % \begin{macrocode} - \multiply\paperwidth by186468 - \multiply\paperheight by186468 + \ISO@PaperNameToSize[typearea]#1#2\@nil % \end{macrocode} % Jetzt noch die gewünschte Ausrichtung beachten. % \changes{v2.97e}{2007/10/23}{gewünschte Papierausrichtung wird @@ -441,7 +515,25 @@ \fi } % \end{macrocode} -% \end{macro} +% \textsf{typearea} verwendet eine eigene Fehlerausgabe. +% \begin{macro}{\scr@UnknownPaperSize@typearea} +% \changes{v3.23}{2017/02/22}{neu (intern)} +% \begin{macrocode} +\ProvideUnknownPaperSizeError{typearea}{% + \PackageError{typearea}{% + Unknown ISO/DIN-papersize-letter #1% + }{% + There are only four defined paper scalings:\MessageBreak + a = ISO/DIN-A, b = ISO/DIN-B, c = ISO/DIN-C, + d = ISO/DIN-D\MessageBreak + Read KOMA-Script-documentation for further information.% + }% + \setlength{\paperwidth}{841sp}% + \setlength{\paperheight}{1189sp}% +} +% \end{macrocode} +% \end{macro}^^A \scr@UnknownPaperSize@typearea +% \end{macro}^^A \isopaper % \begin{macro}{\scr@setpaperorientation} % \changes{v3.22}{2016/07/29}{neu (intern)} % Stellt die Papierausrichtung entsprechend \cs{if@landscape} ein. @@ -491,12 +583,14 @@ \fi } % \end{macrocode} -% \end{macro} -% \end{macro} +% \end{macro}^^A \iso@@paper +% \end{macro}^^A \iso@paper % % Jetzt wird es wieder für alle interessant: % \begin{macrocode} -%</package> +%</package&typearea&option> +%<*class|(package&typearea)> +%<*option> % \end{macrocode} % % Zurück zur Mustererkennung. Diese ist tatsächlich etwas einfacher @@ -713,6 +807,8 @@ % \begin{option}{footsepline} % \changes{v3.20}{2015/12/12}{\textsf{typearea} reagiert selbst auf % \texttt{footsepline}}^^A +% \changes{v3.23}{2017/03/03}{muss natürlich \cs{if@fincl} statt +% \cs{if@hincl} entsprechend setzen}^^A % Bis \KOMAScript{} v3.20 konnte \textsf{typearea} nicht korrekt auf beliebige % Abfolgen der Optionen \texttt{footsepline} und \texttt{footinclude} % reagieren. Bis Version 3.18a gewann Option \texttt{footinclude} innerhalb @@ -730,9 +826,9 @@ % Option \texttt{footsepline} selbst als \texttt{footinclude} interpretieren. % \begin{macrocode} \KOMA@key{footsepline}[true]{% - \KOMA@set@ifkey{footinclude}{@hincl}{#1}% + \KOMA@set@ifkey{footinclude}{@fincl}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed - \KOMA@kav@replacebool{.typearea.\scr@pkgextension}{footinclude}{@hincl}% + \KOMA@kav@replacebool{.typearea.\scr@pkgextension}{footinclude}{@fincl}% \fi } % \end{macrocode} @@ -2205,16 +2301,18 @@ % \begin{macrocode} \if@atdocument % \end{macrocode} -% Wenn dem so ist, wird jedoch eine Warnung ausgegeben, weil es wirklich sehr +% \changes{v3.23}{2017/04/03}{Info statt Warnung bei Verwendung im +% Dokument}^^A +% Wenn dem so ist, wird jedoch eine Info ausgegeben, weil es wirklich sehr % unsauber ist, so zu verfahren. Das ganze ist absolut abhängig von der -% \LaTeX-Version. +% \LaTeX-Version. Frühere Versionen haben hier noch eine Warnung ausgegeben. +% Da das aber seit Jahrzehnten problemlos läuft, gehe ich nun davon aus, dass +% das auch weiterhin so sein wird. % \begin{macrocode} - \PackageWarning{typearea}{% - Typearea changed!\MessageBreak - You should do this only at preamble, because only\MessageBreak - \protect\begin{document} calculates output dimensions!\MessageBreak - Trying to calculate new output dimensions, but\MessageBreak - this is only a dirty hack}% + \PackageInfo{typearea}{% + Using dirty hack to recalculate internal output\MessageBreak + dimensions of LaTeX% + }% % \end{macrocode} % Dann können endlich die Dimensionen, die z.\,B. von der Ausgaberoutine % benötigt werden, neu berechnet werden. @@ -3157,7 +3255,7 @@ % \iffalse %</package> %</body> -%</class|package> +%</class|(package&typearea)> % \fi % % \Finale |