texlive[43169] Master/texmf-dist: bxpapersize (8feb17)

commits+karl at tug.org commits+karl at tug.org
Wed Feb 8 23:19:00 CET 2017


Revision: 43169
          http://tug.org/svn/texlive?view=revision&revision=43169
Author:   karl
Date:     2017-02-08 23:19:00 +0100 (Wed, 08 Feb 2017)
Log Message:
-----------
bxpapersize (8feb17)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/bxpapersize/LICENSE
    trunk/Master/texmf-dist/doc/latex/bxpapersize/README.md
    trunk/Master/texmf-dist/tex/latex/bxpapersize/bxpapersize.sty

Modified: trunk/Master/texmf-dist/doc/latex/bxpapersize/LICENSE
===================================================================
--- trunk/Master/texmf-dist/doc/latex/bxpapersize/LICENSE	2017-02-08 22:18:48 UTC (rev 43168)
+++ trunk/Master/texmf-dist/doc/latex/bxpapersize/LICENSE	2017-02-08 22:19:00 UTC (rev 43169)
@@ -1,12 +1,6 @@
-$BK\%=%U%H%&%'%"$O(B MIT $B%i%$%;%s%9$N2<$GG[I[$5$l$^$9!#(B
-$BCx:n8"$O:n<T$G$"$k!VH,EP(B $B?rG7!JJLL>(B ZR$B!K!W$KB0$7$^$9!#(B
-$B$^$?K\%=%U%H%&%'%"$OL5J]>Z$G$9!#(B
-
-This software is distributed under the MIT License.
-
 The MIT License
 
-Copyright (c) 2016 Takayuki YATO (aka. "ZR")
+Copyright (c) 2017 Takayuki YATO (aka. "ZR")
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal

Modified: trunk/Master/texmf-dist/doc/latex/bxpapersize/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/bxpapersize/README.md	2017-02-08 22:18:48 UTC (rev 43168)
+++ trunk/Master/texmf-dist/doc/latex/bxpapersize/README.md	2017-02-08 22:19:00 UTC (rev 43169)
@@ -5,9 +5,15 @@
 
 As is well known, in LaTeX processing layout paper size specified by
 document class options is not automatically applied to output paper
-size. This package enables LaTeX authors to synchronize both kinds of
-paper sizes.
+size. By employing this package, authors can make output paper size
+be identical to layout paper size. They can also set output paper size
+to arbitrary values.
 
+It should be noted that there are many packages that try to synchronize
+paper sizes, possibly in a slightly different manner. This package
+allows authors to decide whether the setting made by this package
+should have higher or lower priority over the settings made by others.
+
 ### System requirement
 
   * TeX format: LaTeX.
@@ -42,8 +48,8 @@
     useful to resolve conflict caused by some packages depending on
     the bxpapersize package. Note that once `disabled` is used there
     is no way to enable the functionality.
+  * `nodvidriver`: A synonym for `disabled`.
 
-
 #### Priority
 
   * `priority=<value>`: In DVI mode, this decides the priority of the
@@ -51,20 +57,34 @@
     ‘papersize’ specials issued by others.
     The set of valid values is:
       - `low`: Priotizes specials by others.
-      - `middle` (default): Does not care about priority.
+      - `middle`/`default` (default): Does not care about priority.
       - `high`: Priotizes specials by this package.
+  * `olddvips`: Must be specified when you use dvips older than that
+    included in TeX Live 2017, so as to make the `priority` option
+    work correctly.
 
 #### Other options
 
-Any key-value pairs that are valid in `\bxpapersizesetup` can be used
+Any key-value pairs that are valid in `\papersizesetup` can be used
 as package options.
 
     % to begin with deactivated state
     \usepackage[active=false]{bxpapersize}
 
+Note that the default values of the `\papersizesetup` command are also
+applied when the package is loaded. For example, `size=real` will be
+in effect when this package is loaded without the `size` option key.
+
 ### Usage
 
-You can change the settings of this package using `\bxpapersizesetup`
+Once the package is loaded, the output paper size will be adjusted,
+respecting the settings given by the package options. By default, the
+output papersize will be made identical to the layout paper size.
+
+    % For many cases, it's enough.
+    \usepackage{bxpapersize}
+
+You can change the settings of this package using `\papersizesetup`
 command, invoked as follows:
 
     \bxpapersizesetup[<key>=<value>,...]
@@ -72,18 +92,55 @@
 The available keys are listed below:
 
   * `active=true|false`: Temporarily activates/deactivates the function
-    of this package. Note that, however, what happens about paper size
-    synchronization when activation settings are changed in the midst
-    of documents differs among TeX engines and/or DVI drivers. Thus
-    this should be employed only by advanced users.
+    of this package.
+  * `size=<value>`: Decides what the output paper size should be.
+    Available values are:
+      - `real`: The output should be equal to the layout paper size
+        given by `\paperwidth/height`, except that the stock paper size
+        given by `\stockwidth/height` will be employed instead when
+        it is available.
+      - `real*`: The output should be equal to the layout paper size,
+        even if the stock paper size is available.
+      - `{<width>,<height>}`: The output should be equal to the
+        specified values.
+      - `<papersize-name>`: The output should be equal to the given
+        size. The set pf available paper-size names is the same as the
+        [geometry package] and is listed below:  
+        a0paper--a6paper, b0paper--b6paper, c0paper--c6paper, b0j--b6j,
+        ansiapaper--ansiepaper, letterpaper, legalpaper, executivepaper,
+        screen.
+      - `landscape`, `truedimen`: These are used in combination with
+        `<papersize-name>` options, and have the same meaning as in the
+        geometry package.
+      - `box`: The output should be the actual size of the TeX box
+        to be shipped out. It is provided for advanced users.
 
+[geometry package]: https://www.ctan.org/pkg/geometry
 
+Note that, however, what happens about output paper size when some
+settings are changed in the midst of pages differs among TeX engines
+and/or DVI drivers. Thus such usage should be employed only by advanced
+users.
+
+The comamnd `\bxpapersizesetup` is a synonym for `\papersizesetup`,
+so as to cope with command name conflict. Namely, `\papersizesetup`
+will be not (re)defined if the command of that name is already defined,
+but `\bxpapersizesetup` will be always provided.
+
 Revision History
 ----------------
 
+  * Version 0.3  ‹2017/02/08›
+      - As to `size=real`, the stock size becomes taken into account,
+        and the new value `real*` is provided.
+      - Make `nodvidriver` synonym for `disabled`.
+      - Make `\papersizesetup` synonym for `\bxpapersizesetup`.
+      - Add `olddvips`.
+      - Support `size=<papersize-name>`. together with `landscape` and
+        `truedimen`.
   * Version 0.2  ‹2016/03/26›
       - The first public version.
 
 --------------------
 Takayuki YATO (aka. "ZR")  
-http://zrbabbler.sp.land.to/
+https://github.com/zr-tex8r

Modified: trunk/Master/texmf-dist/tex/latex/bxpapersize/bxpapersize.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxpapersize/bxpapersize.sty	2017-02-08 22:18:48 UTC (rev 43168)
+++ trunk/Master/texmf-dist/tex/latex/bxpapersize/bxpapersize.sty	2017-02-08 22:19:00 UTC (rev 43169)
@@ -2,7 +2,7 @@
 
 %% package declaration
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{bxpapersize}[2016/03/26 v0.2]
+\ProvidesPackage{bxpapersize}[2017/02/08 v0.3]
 
 %% preparation
 \def\bxpr at pkgname{bxpapersize}
@@ -10,13 +10,21 @@
 
 %--------------------------------------- options
 
-%% 'disabled'
+% Note: Only non-key-value global options should be picked.
+
+%% 'disabled' / 'nodvidriver'
 \chardef\bxpr at disabled=0
 \DeclareOption{disabled}{%
   \chardef\bxpr at disabled=1 }
+\DeclareOption{nodvidriver}{%
+  \chardef\bxpr at disabled=1 }
+%% 'olddvips'
+\chardef\bxpr at olddvips=0
+\DeclareOption{olddvips}{%
+  \chardef\bxpr at olddvips=1 }
 %% keyval
 \@onlypreamble\bxpr at kvopt
-\let\bxpr at kvopt\@empty
+\let\bxpr at kvopt\@empty % key-value option list
 \DeclareOption*{%
   \edef\bxpr at kvopt{\bxpr at kvopt,\CurrentOption}}
 \ProcessOptions*
@@ -23,6 +31,7 @@
 
 %% If 'disabled' is given, quit now.
 \ifnum\bxpr at disabled>\z@
+  \providecommand*\papersizesetup{\bxpapersizesetup}%
   \newcommand*\bxpapersizesetup[1]{}%
 \expandafter\endinput\fi\relax
 
@@ -29,13 +38,12 @@
 %--------------------------------------- general
 
 %% load packages
-\RequirePackage{xkeyval}
+\RequirePackage{xkeyval}[2008/08/10]% v2.6
 \RequirePackage{atbegshi}
 \RequirePackage{ifpdf,ifxetex,ifluatex,ifvtex}
 
 %% variables
 \newdimen\bxpr at dima
-\newif\ifbxpr at active
 \let\bxpr at width\relax
 \let\bxpr at height\relax
 
@@ -83,19 +91,30 @@
   \let\bxpr at mode\bxpr at mode@@pdfmode
 \fi
 
+%% \bxpr at csletcs{<CSa>}{<CSb>}
+\def\bxpr at csletcs#1#2{%
+  \expandafter\let\csname#1\expandafter\endcsname\csname#2\endcsname}
+
 %--------------------------------------- parameters
 
 %% constants
 \chardef\bxpr at priority@@low=0
 \chardef\bxpr at priority@@middle=1
+\chardef\bxpr at priority@@default=1
 \chardef\bxpr at priority@@high=2
+\ifnum\bxpr at olddvips>\z@
+  \chardef\bxpr at priority@@low=2
+  \chardef\bxpr at priority@@high=0
+\fi
 \chardef\bxpr at size@@real=0 %'real', use \paperwidth/height
-\chardef\bxpr at size@@box=1 %'box', use shipout box size
-\chardef\bxpr at size@@boxS=2 %'box*'
-\chardef\bxpr at size@@custom=3 % size explicitly given
+\chardef\bxpr at size@@realS=1 %'real*'
+\chardef\bxpr at size@@box=2 %'box', use shipout box size
+\chardef\bxpr at size@@boxS=3 %'box*'
+\chardef\bxpr at size@@custom=4 % size explicitly given
 
 %% variables
-\let\bxpr at priority\bxpr at priority@@middle
+\newif\ifbxpr at needs@reset at size
+\let\bxpr at priority\bxpr at priority@@default
 \let\bxpr at size\bxpr at size@@real
 \def\bxpr at cs@width{\z@}%  custom page width
 \def\bxpr at cs@height{\z@}% custom page height
@@ -109,28 +128,98 @@
   \PackageError\bxpr at pkgname
    {Invalid value for '#1': #2}%
    \@ehc}
+\def\bxpr at err@ivkey{%
+  \begingroup \let\MessageBreak\relax % freeze
+    \let\bxpr at tmpb\@empty
+    \@for\bxpr at tmpa:=\XKV at rm\do{%
+      \edef\bxpr at tmpb{\bxpr at tmpb\MessageBreak\@spaces\bxpr at tmpa}}%
+    \PackageError\bxpr at pkgname
+      {Unknown parameter(s)\bxpr at tmpb\MessageBreak
+       are found in the given list}
+  \endgroup}
 
 %% 'active'
-\define at boolkey+{bxpr}{active}%
- {\@nameuse{bxpr at active#1}}%
+\define at boolkey+[bxpr]{prm}{active}[true]{}%
  {\bxpr at ivval{active}{#1}}
-\bxpr at activetrue
+\bxpr at prm@activetrue
 
 %% 'priority'
-\define at choicekey*+{bxpr}{priority}[\bxpr at tmpa\bxpr at tmpb]%
-    {low,middle,high}%
- {\bxpr at set@priority}%
+\define at choicekey*+[bxpr]{prm}{priority}%
+    {low,middle,default,high}%
+ {\bxpr at set@priority{#1}}%
  {\bxpr at ivval{priority}{#1}}
-\def\bxpr at set@priority{%
-  \chardef\bxpr at priority\bxpr at tmpb\relax}
+\def\bxpr at set@priority#1{%
+  \bxpr at csletcs{bxpr at priority}{bxpr at priority@@#1}}
 \AtBeginDocument{%
-  \def\bxpr at set@priority{\bxpr at err@nlprm{priority}}}
+  \def\bxpr at set@priority#1{% invalidate
+    \bxpr at err@nlprm{priority}}}
 
+%% 'truedimen'
+\define at boolkey+[bxpr]{prm}{truedimen}[true]%
+ {\bxpr at needs@reset at sizetrue}%
+ {\bxpr at ivval{truedimen}{#1}}
+
+%% 'landscape'
+\define at boolkey+[bxpr]{prm}{landscape}[true]%
+ {\bxpr at needs@reset at sizetrue}%
+ {\bxpr at ivval{landscape}{#1}}
+
 %% 'size'
-\define at choicekey*+{bxpr}{size}[\bxpr at tmpa\bxpr at tmpb]%
-    {real,box,box*}%
- {\chardef\bxpr at size\bxpr at tmpb\relax}%
+\define at choicekey*+[bxpr]{prm}{size}[\bxpr at tmpa\bxpr at tmpb]%
+    {real,real*,box,box*,
+     % preset paper sizes
+     a0paper,a1paper,a2paper,a3paper,a4paper,a5paper,a6paper,%
+     b0paper,b1paper,b2paper,b3paper,b4paper,b5paper,b6paper,%
+     c0paper,c1paper,c2paper,c3paper,c4paper,c5paper,c6paper,%
+     b0j,b1j,b2j,b3j,b4j,b5j,b6j,%
+     ansiapaper,ansibpaper,ansicpaper,ansidpaper,ansiepaper,%
+     letterpaper,legalpaper,executivepaper,screen}%
+ {\def\bxpr at val@size{#1}\bxpr at needs@reset at sizefalse
+  \ifcase\bxpr at tmpb\relax
+      \let\bxpr at size\bxpr at size@@real
+  \or \let\bxpr at size\bxpr at size@@realS
+  \or \let\bxpr at size\bxpr at size@@box
+  \or \let\bxpr at size\bxpr at size@@boxS
+  \or \bxpr at set@size at a(841,1189){mm}%  a0paper
+  \or \bxpr at set@size at a(594,841){mm}%   a1paper
+  \or \bxpr at set@size at a(420,594){mm}%   a2paper
+  \or \bxpr at set@size at a(297,420){mm}%   a3paper
+  \or \bxpr at set@size at a(210,297){mm}%   a4paper
+  \or \bxpr at set@size at a(148,210){mm}%   a5paper
+  \or \bxpr at set@size at a(105,148){mm}%   a6paper
+  \or \bxpr at set@size at a(1000,1414){mm}% b0paper
+  \or \bxpr at set@size at a(707,1000){mm}%  b1paper
+  \or \bxpr at set@size at a(500,707){mm}%   b2paper
+  \or \bxpr at set@size at a(353,500){mm}%   b3paper
+  \or \bxpr at set@size at a(250,353){mm}%   b4paper
+  \or \bxpr at set@size at a(176,250){mm}%   b5paper
+  \or \bxpr at set@size at a(125,176){mm}%   b6paper
+  \or \bxpr at set@size at a(917,1297){mm}%  c0paper
+  \or \bxpr at set@size at a(648,917){mm}%   c1paper
+  \or \bxpr at set@size at a(458,648){mm}%   c2paper
+  \or \bxpr at set@size at a(324,458){mm}%   c3paper
+  \or \bxpr at set@size at a(229,324){mm}%   c4paper
+  \or \bxpr at set@size at a(162,229){mm}%   c5paper
+  \or \bxpr at set@size at a(114,162){mm}%   c6paper
+  \or \bxpr at set@size at a(1030,1456){mm}% b0j
+  \or \bxpr at set@size at a(728,1030){mm}%  b1j
+  \or \bxpr at set@size at a(515,728){mm}%   b2j
+  \or \bxpr at set@size at a(364,515){mm}%   b3j
+  \or \bxpr at set@size at a(257,364){mm}%   b4j
+  \or \bxpr at set@size at a(182,257){mm}%   b5j
+  \or \bxpr at set@size at a(128,182){mm}%   b6j
+  \or \bxpr at set@size at a(8.5,11){in}%    ansiapaper
+  \or \bxpr at set@size at a(11,17){in}%     ansibpaper
+  \or \bxpr at set@size at a(17,22){in}%     ansicpaper
+  \or \bxpr at set@size at a(22,34){in}%     ansidpaper
+  \or \bxpr at set@size at a(34,44){in}%     ansiepaper
+  \or \bxpr at set@size at a(8.5,11){in}%    letterpaper
+  \or \bxpr at set@size at a(8.5,14){in}%    legalpaper
+  \or \bxpr at set@size at a(7.25,10.5){in}% executivepaper
+  \or \bxpr at set@size at a(225,180){mm}%   screen
+  \fi}%
  {% custom page size ('size={<width>,<height>}')
+  \def\bxpr at val@size{#1}\bxpr at needs@reset at sizefalse
   \def\bxpr at tmpa##1,##2,##3\@nil{%
     \begingroup\setbox\z@\hbox{%
       \@tempdima##1\relax \@tempdimb##2\relax
@@ -140,18 +229,37 @@
     \endgroup\bxpr at g@next}%
   \bxpr at tmpa#1,,\@nil
   \let\bxpr at size\bxpr at size@@custom}
+\def\bxpr at set@size at a(#1,#2)#3{%
+  \edef\bxpr at tmpa##1##2{%
+    \ifbxpr at prm@landscape##2\else##1\fi
+    \ifbxpr at prm@truedimen true\fi #3\relax}%
+  \bxpr at dima=\bxpr at tmpa{#1}{#2}\edef\bxpr at cs@width{\the\bxpr at dima}%
+  \bxpr at dima=\bxpr at tmpa{#2}{#1}\edef\bxpr at cs@height{\the\bxpr at dima}%
+  \let\bxpr at size\bxpr at size@@custom}
 
-%% apply package options
-\edef\bxpr at tmpa{%
-  \noexpand\setkeys{bxpr}{\bxpr at kvopt}%
-}\bxpr at tmpa
-
 %--------------------------------------- user interface
 
 %%<*> \bxpapersizesetup{<key>=<value>,...}
 \newcommand*\bxpapersizesetup[1]{%
-  \setkeys{bxpr}{#1}}
+  \setkeys*[bxpr]{prm}{#1}%
+  \ifx\XKV at rm\@empty\else
+    \bxpr at err@ivkey
+  \fi
+  \ifbxpr at needs@reset at size
+    \edef\bxpr at tmpa{%
+      \noexpand\setkeys[bxpr]{prm}{size=\bxpr at val@size}%
+    }\bxpr at tmpa
+  \fi}
+%%<*> \papersizesetup{<key>=<value>,...}
+% Synonym for \bxpapersizesetup, declared only if not yet defined.
+\providecommand*\papersizesetup{%
+  \bxpapersizesetup}
 
+%% apply package options
+\edef\bxpr at tmpa{%
+  \noexpand\bxpapersizesetup{\bxpr at kvopt}%
+}\bxpr at tmpa
+
 %--------------------------------------- page hook
 
 %% \bxpr at begindoc@first at hook
@@ -165,19 +273,20 @@
     \the\toks@}
 \endgroup
 
-%% \bxpr at begindoc@second at hook
+%% \bxpr at begindoc@last at hook
 % Placed after the begin-docuemnt hook.
-\def\bxpr at begindoc@second at hook{%
-  \let\bxpr at begindoc@second at hook\@undefined}
+\def\bxpr at begindoc@last at hook{%
+  \let\bxpr at begindoc@last at hook\@undefined}
 \g at addto@macro\document{%
-  \bxpr at begindoc@second at hook}
+  \bxpr at begindoc@last at hook}
 
 %% add hook for every page
 \g at addto@macro\bxpr at begindoc@first at hook{%
   \bxDebug{bxpapersize settings:^^J%
     mode=\the\bxpr at mode^^J%
-    prioity=\the\bxpr at priority^^J%
-    size=\the\bxpr at size}%
+    priority=\the\bxpr at priority^^J%
+    size=\the\bxpr at size(\bxpr at cs@width,\bxpr at cs@height)%
+    \ifnum\bxpr at tombow>\z@ [tombow]\fi}%
   \bxpr at geometry@hack
   \ifcase\bxpr at mode % dvi
     \ifcase\bxpr at priority % low
@@ -190,7 +299,7 @@
         \bxpr at page@process
         \AtBeginShipoutNext{\bxpr at every@page at hook}}%
       \AtBeginShipoutFirst{\bxpr at special@chunk}
-    \or % middle
+    \or % default
       \def\bxpr at every@page at hook{%
         \bxpr at page@process
         \bxpr at modify@output at box\relax\bxpr at special@chunk}%
@@ -210,7 +319,14 @@
     \AtBeginShipout{\bxpr at every@page at hook}%
   \fi}
 
-%% \bxpr at modify@output at box
+%% \bxpr at tombow
+\chardef\bxpr at tombow=0
+\expandafter\ifx\csname iftombow\expandafter\endcsname
+    \csname iftrue\endcsname
+  \chardef\bxpr at tombow=1
+\fi
+
+%% \bxpr at modify@output at box{<pre>}{<post>}
 \def\bxpr at modify@output at box#1#2{%
   \setbox\AtBeginShipoutBox\vbox{%
     #1\box\AtBeginShipoutBox#2}}
@@ -233,7 +349,7 @@
     \edef\bxpr at tmpa{%
       \paperwidth=\the\paperwidth
       \paperheight=\the\paperheight}%
-    \expandafter\g at addto@macro\expandafter\bxpr at begindoc@second at hook
+    \expandafter\g at addto@macro\expandafter\bxpr at begindoc@last at hook
         \expandafter{\bxpr at tmpa}%
   }{}}
 
@@ -245,8 +361,13 @@
 %% \bxpr at set@page at size{<width>}{<height>}
 \ifcase\bxpr at mode %dvi
   \def\bxpr at set@page at size#1#2{%
-    \bxpr at dima=#1\relax \edef\bxpr at tmpb{\the\bxpr at dima}%
-    \bxpr at dima=#2\relax \edef\bxpr at tmpb{\bxpr at tmpb,\the\bxpr at dima}%
+    \begingroup
+      \bxpr at let@real at mag@to\bxpr at tmpa
+      \paperwidth=#1\relax \paperwidth=\bxpr at tmpa\paperwidth
+      \paperheight=#2\relax \paperheight=\bxpr at tmpa\paperheight
+      \xdef\bxpr at g@next{%
+        \def\noexpand\bxpr at tmpb{\the\paperwidth,\the\paperheight}}%
+    \endgroup \bxpr at g@next
     \bxDebug{papersize=\bxpr at tmpb}%
     \edef\bxpr at special@chunk{\special{papersize=\bxpr at tmpb}}}%
 \else %pdf
@@ -255,23 +376,28 @@
     \bxDebug{papersize=\the\bxpr at pagewidth,\the\bxpr at pageheight}}%
 \fi
 
+%% \bxpr at let@real at mag@to\CS
+\def\bxpr at let@real at mag@to#1{%
+  \begingroup
+    \@tempcnta=\mag \advance\@tempcnta100000
+    \def\bxpr at tmpa1##1##2##3##4##5\relax{%
+      \@tempdima=##1##2.##3##4##5\p@}%
+    \expandafter\bxpr at tmpa\the\@tempcnta\relax
+    \xdef\bxpr at g@next{%
+      \def\noexpand#1{\strip at pt\@tempdima}}%
+  \endgroup \bxpr at g@next}
+
 %% \bxpr at page@process
 \def\bxpr at page@process{%
-  \ifbxpr at active
+  \ifbxpr at prm@active
     \bxpr at page@process at a
   \fi}
 \def\bxpr at page@process at a{%
   \ifcase\bxpr at size % real
-    \ifcase\bxpr at mode % dvi
-      \ifnum\mag=\@m
-        \bxpr at set@page at size{\paperwidth}{\paperheight}%
-      \else
-        \bxpr at apply@mag
-        \bxpr at set@page at size{\bxpr at width}{\bxpr at height}%
-      \fi
-    \or % pdf
-      \bxpr at set@page at size{\paperwidth}{\paperheight}%
-    \fi
+    \bxpr at use@real at size
+    \bxpr at set@page at size{\bxpr at width}{\bxpr at height}%
+  \or % real*
+    \bxpr at set@page at size{\paperwidth}{\paperheight}%
   \or % box
     \bxpr at use@box at size
     \setbox\AtBeginShipoutBox\vbox{%
@@ -285,20 +411,23 @@
     \bxpr at set@page at size{\bxpr at cs@width}{\bxpr at cs@height}%
   \fi}
 
-%% \bxpr at apply@mag
-\def\bxpr at apply@mag{%
+%% \bxpr at use@real at size
+\def\bxpr at use@real at size{%
+  \bxpr at use@real at size@a{width}%
+  \bxpr at use@real at size@a{height}}
+\def\bxpr at use@real at size@a#1{%
   \begingroup
-    \ifnum\mag=\@m\else
-      \@tempcnta=\mag \advance\@tempcnta100000
-      \def\bxpr at next1##1##2##3##4##5\relax{%
-        \def\bxpr at tmpa{##1##2.##3##4##5}}%
-      \expandafter\bxpr at next\the\@tempcnta\relax
-      \paperwidth=\bxpr at tmpa\paperwidth
-      \paperheight=\bxpr at tmpa\paperheight
+    \bxpr at csletcs{bxpr at tmpa}{paper#1}%
+    \ifnum\bxpr at tombow>\z@
+      \advance\bxpr at tmpa2truein\relax
     \fi
+    \bxpr at csletcs{bxpr at tmpb}{stock#1}%
+    \ifx\bxpr at tmpb\relax\else \ifdim\bxpr at tmpb>\z@
+      \bxpr at tmpa\bxpr at tmpb
+    \fi\fi
     \xdef\bxpr at g@next{%
-      \def\noexpand\bxpr at width{\the\paperwidth}%
-      \def\noexpand\bxpr at height{\the\paperheight}}%
+      \def\expandafter\noexpand\csname bxpr@#1\endcsname{%
+        \the\bxpr at tmpa}}
   \endgroup \bxpr at g@next}
 
 %% \bxpr at use@box at size



More information about the tex-live-commits mailing list