summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/koma-script/scrktare.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrktare.dtx')
-rw-r--r--Master/texmf-dist/source/latex/koma-script/scrktare.dtx270
1 files changed, 187 insertions, 83 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrktare.dtx b/Master/texmf-dist/source/latex/koma-script/scrktare.dtx
index b2c9b6a07e4..a144212f174 100644
--- a/Master/texmf-dist/source/latex/koma-script/scrktare.dtx
+++ b/Master/texmf-dist/source/latex/koma-script/scrktare.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{1763}
+% \CheckSum{1890}
% \iffalse meta-comment
% ======================================================================
% scrktare.dtx
@@ -7,10 +7,10 @@
% 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.3b of the license.
+% 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.3b or later is part of all distributions of LaTeX
+% 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".
@@ -23,10 +23,10 @@
% Copyright (c) Markus Kohm, 2002-2009
%
% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
-% Version 1.3b, verteilt und/oder veraendert werden.
+% Version 1.3c, verteilt und/oder veraendert werden.
% Die neuste Version dieser Lizenz ist
% http://www.latex-project.org/lppl.txt
-% und Version 1.3b ist Teil aller Verteilungen von LaTeX
+% 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"
@@ -58,7 +58,7 @@
%%% From File: scrktare.dtx
%<*driver>
% \fi
-\ProvidesFile{scrktare.dtx}[2008/11/21 v3.01a KOMA-Script (type area)]
+\ProvidesFile{scrktare.dtx}[2009/02/14 v3.02c KOMA-Script (type area)]
% \iffalse
%</driver>
%<package&identify>\ProvidesPackage{typearea}[%
@@ -772,9 +772,10 @@
%
% Diese Optionen arbeiten in Abhänigkeit des Ausgabeformats.
%
-% \begin{option}{pagesize}
-% \changes{v2.7g}{2001/04/17}{neue Option}
-% \changes{v2.95}{2002/08/27}{neu implementiert}
+% \begin{option}{pagesize}
+% \changes{v2.7g}{2001/04/17}{neue Option}
+% \changes{v2.95}{2002/08/27}{neu implementiert}
+% \changes{v3.02c}{2009/02/14}{neuer Wert \texttt{false}}
% Diese Option ist nun das zentrale Element für die Übermittlung der
% Seitengröße an pdf\TeX, \texttt{dvips} oder V\TeX. Sie wird auch von
% den obsoleten Optionen verwendet. Die Werte und ihre Bedeutung:
@@ -788,6 +789,8 @@
% ausgegeben, falls \texttt{dvi}-Ausgabe erwartet wird oder
% \cs{if@dvips} erfüllt ist. Führt zu einer Warnung, wenn sie mehr
% als einmal oder nach der Präambel verwendet wird.
+% \item[\texttt{false}] die automatische Anpassung bei Änderungen innerhalb
+% des Dokuments abschalten.
% \item[\texttt{pdftex}] \cs{pdfpagewidth} und \cs{pdfpageheight}
% werden gesetzt, falls sie definiert sind.
% \end{labeling}
@@ -795,6 +798,7 @@
\KOMA@key{pagesize}[auto]{%
\begingroup
\KOMA@set@ncmdkey{pagesize}{@tempa}{%
+ {off}{-1},{no}{-1},{false}{-1},%
{auto}{0},{automedia}{1},{dvips}{2},{pdftex}{3}%
}{#1}%
\ifcase\number\@tempa\relax
@@ -817,22 +821,26 @@
}
% \end{macrocode}
%
-% \begin{macro}{\set@pdftexpagesize}
-% \changes{v2.95}{2002/08/27}{neu (intern)}
-% \begin{macro}{\set@dvipspagesize}
-% \changes{v2.95}{2002/08/27}{neu (intern)}
-% \begin{macro}{\setnot@dvipspagesize}
-% \changes{v2.95}{2002/08/27}{neu (intern)}
-% \begin{macro}{\set@vtexpagesize}
-% \changes{v2.95}{2002/08/27}{neu (intern)}
+% \begin{macro}{\set@pdftexpagesize}
+% \changes{v2.95}{2002/08/27}{neu (intern)}
+% \begin{macro}{\set@dvipspagesize}
+% \changes{v2.95}{2002/08/27}{neu (intern)}
+% \changes{v3.02c}{2009/02/13}{\texttt{seascape} wird beachtet}
+% \changes{v3.02c}{2009/02/14}{funktioniert auch im Dokument}
+% \begin{macro}{\setnot@dvipspagesize}
+% \changes{v2.95}{2002/08/27}{neu (intern)}
+% \begin{macro}{\set@vtexpagesize}
+% \changes{v2.95}{2002/08/27}{neu (intern)}
+% \begin{macro}{\scr@updatedvipspagesize}
+% \changes{v3.02c}{2009/02/14}{neu (intern)}
% Damit die Option \texttt{pagesize} überhaupt funktionieren kann,
-% werden drei interne Makros benötigt.
+% werden einige interne Makros benötigt.
% \begin{description}
% \item{Achtung:} die Definition dieser Makros ändert sich teilweise
% bei ihrem Aufruf und insgesamt bei
% \texttt{\cs{begin}\{document\}}.
% \end{description}
-% \begin{macrocode}+
+% \begin{macrocode}
\newcommand{\set@pdftexpagesize}{%
\AtBeginDocument{%
\ifnotundefined{pdfpagewidth}{\pdfpagewidth=\paperwidth}{}%
@@ -850,9 +858,14 @@
\endgroup
\AtBeginDocument{\AtBeginDvi{%
\special{papersize=\the\paperwidth,\the\paperheight}%
+ \if@seascape\special{! TeXDict begin /landplus90{true}store end }\fi
}%
}%
- \let\set@dvipspagesize=\setnot@dvipspagesize
+ \ifnum \scr@compatibility>\@nameuse{scr@v@3.02b}\relax
+ \let\set@dvipspagesize=\@empty
+ \else
+ \let\set@dvipspagesize=\setnot@dvipspagesize
+ \fi
\else
\endgroup
\fi
@@ -876,23 +889,87 @@
}%
\let\set@vtexpagesize=\@empty
}
+\newcommand*{\scr@updatedvipspagesize}{%
+ \special{ps::\@percentchar\@percentchar
+ PageBoundingBox: 0 0 \the\numexpr\paperwidth/\dimexpr 1bp\relax\relax
+ \space \the\numexpr\paperheight/\dimexpr 1bp\relax\relax^^J%
+ \@percentchar\@percentchar BeginPageSetup^^J%
+ << /PageSize [\the\numexpr\paperwidth/\dimexpr 1bp\relax\relax\space
+ \the\numexpr\paperheight/\dimexpr 1bp\relax\relax]
+ >> setpagedevice^^J%<<
+ 0 0 bop^^J%
+ \@percentchar\@percentchar EndPageSetup}%
+}
\AtBeginDocument{
\renewcommand*{\set@pdftexpagesize}{%
\ifnotundefined{pdfpagewidth}{\pdfpagewidth=\paperwidth}{}%
\ifnotundefined{pdfpageheight}{\pdfpageheight=\paperheight}{}%
}%
- \let\set@dvipspagesize=\setnot@dvipspagesize
+ \ifnum \scr@compatibility>\@nameuse{scr@v@3.02b}\relax
+ \renewcommand*{\set@dvipspagesize}{%
+ \scr@ifundefinedorrelax{AtNextShipout}{%
+ \scr@ifundefinedorrelax{AtBeginShipoutNext}{%
+ \begingroup
+ \protected@edef\reserved@a{\endgroup
+ \scr@updatedvipspagesize}\reserved@a
+ }{%
+% \end{macrocode}
+% Wenn \textsf{atbegshi} geladen wurde, bzw. \cs{AtBeginShipoutNext} zur
+% Verfügung steht, dann soll dieser Code noch vor Code ausgeführt werden, der
+% eventuell in \cs{shipout} eingeschleust wurde. Das funktioniert leider nicht
+% wirklich zuverlässig. Sollte zwischen dem Aufruf von \cs{set@dvipspagesize}
+% (also der Neuberechnung des Satzspiegels) und der Ausgabe der Seite doch
+% noch etwas per \cs{AtBeginShipout} oder \cs{AtBeginShipoutNext} eingefügt
+% werden, dann gehen diese Teile verloren!
+% \begin{macrocode}
+ \begingroup
+ \protected@edef\reserved@a{\endgroup
+ \protect\AtBeginShipoutNext{%
+ \protect\bgroup
+ \protect\global\protect\setbox\AtBeginShipoutBox\protect\vbox{%
+ \scr@updatedvipspagesize
+ \protect\box\AtBeginShipoutBox
+ }%
+ \protect\egroup
+ }}\reserved@a
+ }%
+ }{%
+% \end{macrocode}
+% Wenn \textsf{everyshi} geladen wurde, bzw. \cs{AtNextShipout} zur
+% Verfügung steht, dann soll dieser Code noch vor Code ausgeführt werden, der
+% eventuell in \cs{shipout} eingeschleust wurde. Das funktioniert leider nicht
+% wirklich zuverlässig. Sollte zwischen dem Aufruf von \cs{set@dvipspagesize}
+% (also der Neuberechnung des Satzspiegels) und der Ausgabe der Seite doch
+% noch etwas per \cs{AtNextShipout} oder \cs{EveryShipout} eingefügt
+% werden, dann gehen diese Teile verloren!
+% \begin{macrocode}
+ \begingroup
+ \protected@edef\reserved@a{\endgroup
+ \protect\AtNextShipout{%
+ \protect\bgroup
+ \protect\global\protect\setbox\protect\@cclv\protect\vbox{%
+ \scr@updatedvipspagesize
+ \protect\box\protect\@cclv
+ }%
+ \protect\egroup
+ }}\reserved@a
+ }%
+ }%
+ \else
+ \let\set@dvipspagesize=\setnot@dvipspagesize
+ \fi
\renewcommand*{\set@vtexpagesize}{%
\ifnotundefined{mediawith}{\mediawidth=\paperwidth}{}%
\ifnotundefined{mediaheight}{\mediaheight=\paperheight}{}%
}%
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{option}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{option}
%
%
% \begin{option}{dvips}
@@ -994,9 +1071,10 @@
% \end{option}
% \end{option}
%
-% \begin{option}{paper}
-% \changes{v2.95}{2002/12/03}{neu implementiert}
-% \changes{v3.01b}{2008/12/09}{Höhe und Breite vertauscht}
+% \begin{option}{paper}
+% \changes{v2.95}{2002/12/03}{neu implementiert}
+% \changes{v3.01b}{2008/12/09}{Höhe und Breite vertauscht}
+% \changes{v3.02c}{2009/02/12}{neuer Wert \texttt{seascape}}
% Im Normalfall wird die Papiergröße jedoch über diese Option
% gesetzt. Dabei sind neben den Standard- und den ISO-Reihen A, B, C
% und D auch Wertepaare der Form
@@ -1004,75 +1082,86 @@
% "`\texttt{portrait}"' und "`\texttt{landscape}"' erlaubt.
% \begin{macrocode}
\KOMA@key{paper}{%
- \ifstr{#1}{landscape}{%
+ \ifstr{#1}{seascape}{%
+ \@seascapetrue
\if@landscape\else
\setlength{\@tempdima}{\paperwidth}%
\setlength{\paperwidth}{\paperheight}%
\setlength{\paperheight}{\@tempdima}%
\@landscapetrue
\fi
- }{%
- \ifstr{#1}{portrait}{%
- \if@landscape
+ }{%
+ \ifstr{#1}{landscape}{%
+ \@seascapefalse
+ \if@landscape\else
\setlength{\@tempdima}{\paperwidth}%
\setlength{\paperwidth}{\paperheight}%
\setlength{\paperheight}{\@tempdima}%
- \@landscapefalse
+ \@landscapetrue
\fi
}{%
- \ifstr{#1}{letter}{%
+ \ifstr{#1}{portrait}{%
\if@landscape
- \setlength\paperheight{8.5in}%
- \setlength\paperwidth {11in}%
- \else
- \setlength\paperheight{11in}%
- \setlength\paperwidth {8.5in}%
+ \setlength{\@tempdima}{\paperwidth}%
+ \setlength{\paperwidth}{\paperheight}%
+ \setlength{\paperheight}{\@tempdima}%
+ \@landscapefalse
\fi
}{%
- \ifstr{#1}{legal}{%
+ \ifstr{#1}{letter}{%
\if@landscape
\setlength\paperheight{8.5in}%
- \setlength\paperwidth {14in}%
+ \setlength\paperwidth {11in}%
\else
- \setlength\paperheight{14in}%
+ \setlength\paperheight{11in}%
\setlength\paperwidth {8.5in}%
\fi
}{%
- \ifstr{#1}{executive}{%
+ \ifstr{#1}{legal}{%
\if@landscape
- \setlength\paperheight{7.25in}%
- \setlength\paperwidth {10.5in}%
+ \setlength\paperheight{8.5in}%
+ \setlength\paperwidth {14in}%
\else
- \setlength\paperheight{10.5in}%
- \setlength\paperwidth {7.25in}%
- \fi
+ \setlength\paperheight{14in}%
+ \setlength\paperwidth {8.5in}%
+ \fi
}{%
- \iso@paper{#1}%
- \if@tempswa\else
- \expandafter\maybe@pair#1::\@nil
- \if@tempswa
- \ifnum \scr@ta@compatibility<\@nameuse{scr@v@3.01b}\relax
- \PackageWarningNoLine{typearea}{%
- You may have to exchange height and width!\MessageBreak
- Until KOMA-Script version 3.01b the semantic\MessageBreak
- of option `paper' was `paper=height:width'\MessageBreak
- instead of `paper=width:height'.\MessageBreak
- I've switched back to that old interpretation\MessageBreak
- because of the given compatiblity settings}%
- \setlength\paperheight{\@tempa}%
- \setlength\paperwidth{\@tempb}%
+ \ifstr{#1}{executive}{%
+ \if@landscape
+ \setlength\paperheight{7.25in}%
+ \setlength\paperwidth {10.5in}%
+ \else
+ \setlength\paperheight{10.5in}%
+ \setlength\paperwidth {7.25in}%
+ \fi
+ }{%
+ \iso@paper{#1}%
+ \if@tempswa\else
+ \expandafter\maybe@pair#1::\@nil
+ \if@tempswa
+ \ifnum \scr@ta@compatibility<\@nameuse{scr@v@3.01b}\relax
+ \PackageWarningNoLine{typearea}{%
+ You may have to exchange height and width!\MessageBreak
+ Until KOMA-Script version 3.01b the semantic\MessageBreak
+ of option `paper' was `paper=height:width'\MessageBreak
+ instead of `paper=width:height'.\MessageBreak
+ I've switched back to that old interpretation\MessageBreak
+ because of the given compatiblity settings}%
+ \setlength\paperheight{\@tempa}%
+ \setlength\paperwidth{\@tempb}%
+ \else
+ \setlength\paperwidth{\@tempa}%
+ \setlength\paperheight{\@tempb}%
+ \fi
\else
- \setlength\paperwidth{\@tempa}%
- \setlength\paperheight{\@tempb}%
+ \KOMA@unknown@keyval{paper}{#1}{%
+ `letter', `legal', `executive', `a'<nr>, `b'<nr>,
+ `c'<nr>, `d'<nr>,\MessageBreak
+ <width>`:'<height>, `landscape' and `portrait'%
+ }%
\fi
- \else
- \KOMA@unknown@keyval{paper}{#1}{%
- `letter', `legal', `executive', `a'<nr>, `b'<nr>,
- `c'<nr>, `d'<nr>,\MessageBreak
- <width>`:'<height>, `landscape' and `portrait'%
- }%
\fi
- \fi
+ }%
}%
}%
}%
@@ -1080,20 +1169,35 @@
}%
}
% \end{macrocode}
-% \begin{macro}{\if@landscape}
-% \begin{macro}{\@landscapetrue}
-% \begin{macro}{\@landscapefalse}
+% \begin{macro}{\if@seascape}
+% \changes{v3.02c}{2009/02/12}{neu}
+% \begin{macro}{\@seascapetrue}
+% \changes{v3.02c}{2009/02/12}{neu}
+% \begin{macro}{\@seascapefalse}
+% \changes{v3.02c}{2009/02/12}{neu}
+% In diesem Schalter wird nur gespeichert, ob Breitformat ggf. umgekehrt
+% verwendet werden soll. Dies macht derzeit nur bei Verwendung von dvips einen
+% Unterschied!
+% \begin{macrocode}
+\newif\if@seascape
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\if@landscape}
+% \begin{macro}{\@landscapetrue}
+% \begin{macro}{\@landscapefalse}
% In diesem Schalter wird gespeichert, ob Hoch- oder Breitformat
% verwendet wird.
% \begin{macrocode}
\newif\if@landscape
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\maybe@pair}
-% \changes{v2.95}{2002/12/03}{neu (intern)}
-% \changes{v2.97e}{2007/11/26}{funktioniert zum ersten Mal}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\maybe@pair}
+% \changes{v2.95}{2002/12/03}{neu (intern)}
+% \changes{v2.97e}{2007/11/26}{funktioniert zum ersten Mal}
% Testet, ob der nachfolgende Parameter die Form
% "`\meta{erstes Argument}:\meta{zweites Argument}"' hat.
% Wenn ja, wird \cs{@tempa} mit dem ersten und \cs{@tempb} mit dem
@@ -1107,8 +1211,8 @@
\fi
}
% \end{macrocode}
-% \end{macro}
-% \end{option}
+% \end{macro}
+% \end{option}
%
% \begin{macrocode}
%</package>