diff options
author | Karl Berry <karl@freefriends.org> | 2009-03-31 00:25:41 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-03-31 00:25:41 +0000 |
commit | d9a28f240927d595970990e323f189f3ed45bdaf (patch) | |
tree | 7ccf4eea17aed62ba6dcc4639b67832a863782b4 /Master/texmf-dist/source/latex/koma-script/scrktare.dtx | |
parent | 088ae35fa451f7492dec5997ba5f8d53df17f47e (diff) |
koma-script update (30mar09)
git-svn-id: svn://tug.org/texlive/trunk@12579 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrktare.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/koma-script/scrktare.dtx | 270 |
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> |