summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/koma-script/scrkernel-typearea.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-05-06 21:41:21 +0000
committerKarl Berry <karl@freefriends.org>2017-05-06 21:41:21 +0000
commit734c91dfac1697d69bdd509c8bc7a97750c78f96 (patch)
tree95919a908b9926e3a313d7b307b125a89fe9d18f /Master/texmf-dist/source/latex/koma-script/scrkernel-typearea.dtx
parentc2e79031dc84ba98da9a7e985b4cd94eff21d8cf (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.dtx340
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