diff options
author | Karl Berry <karl@freefriends.org> | 2015-05-07 21:39:17 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2015-05-07 21:39:17 +0000 |
commit | f8161ba0f72d6243c5a8670ebe60bd9039192ed9 (patch) | |
tree | a15c0f2ab6f1b473215810dbff60b05c54dbbac6 /Master/texmf-dist/source/latex/koma-script/scrkernel-typearea.dtx | |
parent | 86ea2a64d8bfb26f072682abd11df481ffb2db49 (diff) |
koma-script (7may15)
git-svn-id: svn://tug.org/texlive/trunk@37256 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 | 231 |
1 files changed, 120 insertions, 111 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 444d38f3d22..29aa6033975 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrkernel-typearea.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-typearea.dtx @@ -1,4 +1,4 @@ -% \CheckSum{2588} +% \CheckSum{2578} % \iffalse meta-comment % ====================================================================== % scrkernel-typearea.dtx @@ -55,13 +55,13 @@ % Right brace \} Tilde \~} % % \iffalse -%%% From File: $Id: scrkernel-typearea.dtx 2056 2015-03-30 08:24:20Z kohm $ +%%% From File: $Id: scrkernel-typearea.dtx 2088 2015-05-03 09:09:14Z kohm $ %<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: 2015-03-30 10:24:20 +0200 (Mon, 30 Mar 2015) $ + \filedate$Date: 2015-05-03 11:09:14 +0200 (Sun, 03 May 2015) $ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}} \filerevision$Revision: 1872 $ \edef\reserved@a{% @@ -953,10 +953,11 @@ % \begin{option}{pagesize} % \changes{v2.7g}{2001/04/17}{neue Option}^^A % \changes{v2.95}{2002/08/27}{neu implementiert}^^A -% \changes{v3.02c}{2009/02/14}{neuer Wert \texttt{false}} -% \changes{v3.05a}{2010/03/18}{neuer Wert \texttt{dvipdfmx}} +% \changes{v3.02c}{2009/02/14}{neuer Wert \texttt{false}}^^A +% \changes{v3.05a}{2010/03/18}{neuer Wert \texttt{dvipdfmx}}^^A % \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit -% \cs{FamilyKeyState}} +% \cs{FamilyKeyState}}^^A +% \changes{v3.17a}{2015/05/03}{Logik komplett neu geschrieben}^^A % 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: @@ -980,40 +981,58 @@ % \begin{macrocode} %<*package> \KOMA@key{pagesize}[auto]{% - \begingroup - \KOMA@set@ncmdkey{pagesize}{@tempa}{% - {off}{-1},{no}{-1},{false}{-1},% - {auto}{0},{automedia}{1},{dvips}{2},{pdftex}{3},{dvipdfmx}{4}% - }{#1}% - \ifx\FamilyKeyState\FamilyKeyStateProcessed - \aftergroup\FamilyKeyStateProcessed - \ifcase\number\@tempa\relax - \endgroup + \KOMA@set@ncmdkey{pagesize}{@pagesizelast}{% + {off}{-1},{no}{-1},{false}{-1},% + {auto}{0},{automedia}{1},{dvips}{2},{pdftex}{3},{dvipdfmx}{4}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \ifcase\number\@pagesizelast\relax + \edef\@pagesizelast{auto}% + \if@atdocument \set@pdftexpagesize \set@dvipspagesize - \or - \endgroup - \set@pdftexpagesize + \fi + \or + \edef\@pagesizelast{automedia}% + \if@atdocument + \set@pdftextpagesize \set@vtexpagesize \set@dvipspagesize - \or - \endgroup + \fi + \or + \edef\@pagesizelast{dvips}% + \if@atdocument \set@dvipspagesize - \or - \endgroup + \fi + \or + \edef\@pagesizelast{pdftex}% + \if@atdocument \set@pdftexpagesize - \or - \endgroup + \fi + \or + \edef\@pagesizelast{dvipdfmx}% + \if@atdocument \set@dvipdfmxpagesize + \fi + \else + \edef\@pagesizelast{false}% \fi - \KOMA@kav@xreplacevalue{.typearea.\scr@pkgextension}{pagesize}{#1}% - \edef\@pagesizelast{#1}% - \else - \endgroup - \FamilyKeyStateUnknownValue + \KOMA@kav@xreplacevalue{.typearea.\scr@pkgextension}% + {pagesize}{\@pagesizelast}% \fi } % \end{macrocode} +% \begin{macro}{\@pagesizelast} +% Das interne Makro speichert die aktuelle Einstellung von \texttt{pagesize} +% und wird nicht nur für das neu Setzen derselben in Option \texttt{paper}, +% sondern auch für die Parametereinstellung innerhalb von +% \texttt{\cs{begin}\{document\}}. +% \begin{macrocode} +\newcommand\@pagesizelast{auto} +\AtBeginDocument{% + \KOMAExecuteOptions[.typearea.\scr@pkgextension]{pagesize=\@pagesizelast}% +% \end{macrocode} +% \end{macro}^^A \@pagesizelast % % \begin{macro}{\set@pdftexpagesize} % \changes{v2.95}{2002/08/27}{neu (intern)}^^A @@ -1038,86 +1057,11 @@ % \begin{description} % \item{Achtung:} die Definition dieser Makros ändert sich teilweise % bei ihrem Aufruf und insgesamt bei -% \texttt{\cs{begin}\{document\}}. +% \texttt{\cs{begin}\{document\}}. % \end{description} +% Hier zunächst ihre ggf. geänderte Definition nach +% \texttt{\cs{begin}\{document\}}: % \begin{macrocode} -\newcommand{\set@pdftexpagesize}{% - \AtBeginDocument{% - \ifnotundefined{pdfpagewidth}{\pdfpagewidth=\paperwidth}{}% - \ifnotundefined{pdfpageheight}{\pdfpageheight=\paperheight}{}% - }% - \let\set@pdftexpagesize=\@empty -} -\newcommand{\set@dvipspagesize}{% - \begingroup - \@tempswafalse - \scr@ifdvioutput{\@tempswatrue}{% - \ifnotundefined{if@dvips}{% - \expandafter\let\csname if@tempswa\expandafter\endcsname - \csname if@dvips\endcsname - }{}% - }% - \if@tempswa - \endgroup - \AtBeginDocument{\AtBeginDvi{% - \special{papersize=\the\paperwidth,\the\paperheight}% - \if@seascape\special{! TeXDict begin /landplus90{true}store end }\fi - }% - }% - \expandafter\ifnum\scr@ta@v@is@gt{3.02b}\relax - \let\set@dvipspagesize=\@empty - \else - \let\set@dvipspagesize=\setnot@dvipspagesize - \fi - \else - \endgroup - \fi -} -\newcommand{\setnot@dvipspagesize}{% - \scr@ifdvioutput{% - \PackageWarning{% - typearea% - }{% - With dvi output option `pagesize=auto',\MessageBreak - `pagesize=automedia' or `pagesize=dvips'\MessageBreak - may be used only once at preamble.\MessageBreak - Option ignored% - }% - }{}% -} -\newcommand*{\set@dvipdfmxpagesize}{% - \scr@ifdvioutput{% - \AtBeginDocument{\AtBeginDvi{% - \special{papersize=\the\paperwidth,\the\paperheight}% - }% - }% - }{}% -} -\newcommand{\set@vtexpagesize}{% - \AtBeginDocument{% - \ifnotundefined{mediawith}{\mediawidth=\paperwidth}{}% - \ifnotundefined{mediaheight}{\mediaheight=\paperheight}{}% - }% - \let\set@vtexpagesize=\@empty -} -\newcommand*{\scr@updatedvipspagesize}{% - \scr@ifundefinedorrelax{XeTeXversion}{% - \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}{}% - }% \expandafter\ifnum\scr@ta@v@is@gt{3.02b}\relax \renewcommand*{\set@dvipspagesize}{% % \end{macrocode} @@ -1208,10 +1152,75 @@ \special{papersize=\the\paperwidth,\the\paperheight}% }{}% }% - \renewcommand*{\set@vtexpagesize}{% - \ifnotundefined{mediawith}{\mediawidth=\paperwidth}{}% - \ifnotundefined{mediaheight}{\mediaheight=\paperheight}{}% - }% +} +% \end{macrocode} +% Und jetzt die Definitionen bevor \texttt{\cs{begin}\{document\}}, die +% allerdings erst innerhalb von \texttt{\cs{begin}\{document\}} das erste Mal +% ausgeführt werden: +% \begin{macrocode} +\newcommand{\set@pdftexpagesize}{% + \ifnotundefined{pdfpagewidth}{\pdfpagewidth=\paperwidth}{}% + \ifnotundefined{pdfpageheight}{\pdfpageheight=\paperheight}{}% +} +\newcommand{\set@dvipspagesize}{% + \begingroup + \@tempswafalse + \scr@ifdvioutput{\@tempswatrue}{% + \ifnotundefined{if@dvips}{% + \expandafter\let\csname if@tempswa\expandafter\endcsname + \csname if@dvips\endcsname + }{}% + }% + \if@tempswa + \endgroup + \AtBeginDvi{% + \special{papersize=\the\paperwidth,\the\paperheight}% + \if@seascape\special{! TeXDict begin /landplus90{true}store end }\fi + }% + \expandafter\ifnum\scr@ta@v@is@gt{3.02b}\relax + \let\set@dvipspagesize=\@empty + \else + \let\set@dvipspagesize=\setnot@dvipspagesize + \fi + \else + \endgroup + \fi +} +\newcommand{\setnot@dvipspagesize}{% + \scr@ifdvioutput{% + \PackageWarning{% + typearea% + }{% + With dvi output option `pagesize=auto',\MessageBreak + `pagesize=automedia' or `pagesize=dvips'\MessageBreak + may be used only once at preamble.\MessageBreak + Option ignored% + }% + }{}% +} +\newcommand*{\set@dvipdfmxpagesize}{% + \scr@ifdvioutput{% + \AtBeginDvi{% + \special{papersize=\the\paperwidth,\the\paperheight}% + }% + }{}% +} +\newcommand{\set@vtexpagesize}{% + \ifnotundefined{mediawith}{\mediawidth=\paperwidth}{}% + \ifnotundefined{mediaheight}{\mediaheight=\paperheight}{}% +} +\newcommand*{\scr@updatedvipspagesize}{% + \scr@ifundefinedorrelax{XeTeXversion}{% + \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}% + }{}% } % \end{macrocode} % \end{macro} |