summaryrefslogtreecommitdiff
path: root/tex/context/base/page-lay.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/page-lay.mkiv')
-rw-r--r--tex/context/base/page-lay.mkiv86
1 files changed, 44 insertions, 42 deletions
diff --git a/tex/context/base/page-lay.mkiv b/tex/context/base/page-lay.mkiv
index 28f9be594..0c7c7b769 100644
--- a/tex/context/base/page-lay.mkiv
+++ b/tex/context/base/page-lay.mkiv
@@ -266,10 +266,10 @@
%D We keep track of these features with the following
%D variables.
-\chardef\papermirror =0 \chardef\printmirror =0
-\chardef\paperorientation=0 \chardef\printorientation=0 % beware: later no chardef
-\chardef\paperreverse =0 \chardef\printreverse =0
-\chardef\paperlandscape =0 \chardef\printlandscape =0
+\newconditional\papermirror \newconditional\printmirror
+\newconstant \paperorientation \newconstant \printorientation
+\newconstant \paperreverse \newconstant \printreverse
+\newconditional\paperlandscape \newconditional\printlandscape
\let\papersize\empty \let\printpapersize\empty
@@ -361,10 +361,10 @@
\global\setdimentoatleast\paperheight \onepoint
\global\setdimentoatleast\printpaperwidth \onepoint
\global\setdimentoatleast\printpaperheight\onepoint
- \ifcase\paperlandscape\else
+ \ifconditional\paperlandscape
\doglobal\swapdimens\paperwidth\paperheight
\fi
- \ifcase\printlandscape\else
+ \ifconditional\printlandscape
\doglobal\swapdimens\printpaperwidth\printpaperheight
\fi
% this check can be confusing, so we've added the possibility
@@ -372,12 +372,16 @@
\doif\@@ppoption\v!max % \v!fit is
{\bgroup
% we need to pre-swap else we get the wrong paper size
- \ifcase\paperorientation\else
- \doifinset\paperorientation{90,270}{\swapdimens\paperwidth\paperheight}%
- \fi
- \ifcase\printorientation\else
- \doifinset\printorientation{90,270}{\swapdimens\printpaperwidth\printpaperheight}%
- \fi
+ \ifnum\paperorientation=\rightrotatioangle
+ \swapdimens\paperwidth\paperheight
+ \else\ifnum\paperorientation=\leftrotatioangle
+ \swapdimens\paperwidth\paperheight
+ \fi\fi
+ \ifnum\printorientation=\rightrotatioangle
+ \swapdimens\printpaperwidth\printpaperheight
+ \else\ifnum\printorientation=\leftrotatioangle
+ \swapdimens\printpaperwidth\printpaperheight
+ \fi\fi
\ifdim\paperheight>\printpaperheight
\global\printpaperheight\paperheight
\writestatus\m!systems{print height forced to paper height}%
@@ -389,20 +393,24 @@
\egroup}}
\def\dosetuppaperorientation#1#2#3#4#5%
- {\global\chardef#2\zerocount
- \global\chardef#5\zerocount
- \globallet#3\!!zerocount
- \globallet#4\!!zerocount
+ {\global\setfalse#2%
+ \global\setfalse#5%
+ \global#3\uprotationangle
+ \global#4\uprotationangle
\global\negateprintboxfalse
\processallactionsinset
[#1]
- [ \v!landscape=>\global\chardef#2\plusone,
- \v!mirrored=>\global\chardef#5\plusone,
- \v!rotated=>\gdef#3{90}\gdef#4{270},
+ [ \v!landscape=>\global\settrue#2,
+ \v!mirrored=>\global\settrue#5,
+ \v!rotated=>\global#3\rightrotatioangle
+ \global#4\leftrotatioangle,
\v!negative=>\global\negateprintboxtrue,
- 90=>\gdef#3{90}\gdef#4{270},
- 180=>\gdef#3{180}\gdef#4{0},
- 270=>\gdef#3{270}\gdef#4{90}]}
+ 90=>\global#3\rightrotatioangle
+ \global#4\leftrotatioangle,
+ 180=>\global#3\downrotatioangle
+ \global#4\zerocount,
+ 270=>\global#3\leftrotatioangle
+ \global#4\rightrotatioangle]}
\ifx\calculatepaperoffsets\undefined
@@ -826,28 +834,22 @@
\fi}
\def\orientpagebodybox#1#2#3%
- {\ifnum#2#3>\zerocount
- \setbox#1\vbox
- {\edef\somerotation{\ifdoublesided\ifodd\realpageno#2\else#3\fi\else#2\fi}%
- \dorotatebox\somerotation\hbox{\box#1}}%
+ {\ifnum\number#1\number#2>\zerocount
+ \setbox#3\vbox
+ {\edef\somerotation{\number\ifdoublesided\ifodd\realpageno#1\else#2\fi\else#1\fi}%
+ \dorotatebox\somerotation\hbox{\box#3}}%
\fi}
-\def\orientpaperbox#1%
- {\orientpagebodybox{#1}\paperorientation\paperreverse}
-
-\def\orientprintbox#1%
- {\orientpagebodybox{#1}\printorientation\printreverse}
+\def\orientpaperbox{\orientpagebodybox\paperorientation\paperreverse}
+\def\orientprintbox{\orientpagebodybox\printorientation\printreverse}
\def\mirrorpagebodybox#1#2%
- {\ifcase#2\or
- \setbox#1\vbox{\domirrorbox\vbox{\box#1}}%
+ {\ifconditional#1\relax
+ \setbox#2\vbox{\domirrorbox\vbox{\box#2}}%
\fi}
-\def\mirrorpaperbox#1%
- {\mirrorpagebodybox{#1}\papermirror}
-
-\def\mirrorprintbox#1%
- {\mirrorpagebodybox{#1}\printmirror}
+\def\mirrorpaperbox{\mirrorpagebodybox\papermirror}
+\def\mirrorprintbox{\mirrorpagebodybox\printmirror}
\def\scalepagebox#1%
{\ifdim\@@lyscale\points=\onepoint \else
@@ -910,8 +912,8 @@
\def\doaddpagecolormarks#1#2%
{\makepagecutbox{#2}%
- \ifnum\horizontalcutmarks>\plustwo \chardef\colormarkoffset\plusfour \fi
- \ifnum\verticalcutmarks >\plustwo \chardef\colormarkoffset\plusfour \fi
+ \ifnum\horizontalcutmarks>\plustwo \def\colormarkoffset{\plusfour}\fi
+ \ifnum\verticalcutmarks >\plustwo \def\colormarkoffset{\plusfour}\fi
#1{#2}}
% NOG EENS NAGAAN WANNEER NU GLOBAL EN WANNEER NIET
@@ -963,10 +965,10 @@
\newdimen\innermakeupwidth % special purpose
\newdimen\innermakeupmargin % special purpose
-\chardef\innermakeupcompensation\plusone
+\newconditional\innermakeupcompensation \settrue\innermakeupcompensation
\def\compensatedinnermakeupmargin
- {\dimexpr\ifnum\innermakeupcompensation=\plusone+\innermakeupmargin\else\zeropoint\fi\relax}
+ {\dimexpr\ifconditional\innermakeupcompensation+\innermakeupmargin\else\zeropoint\fi\relax}
\def\freezetextwidth % \makeupwidth may be set to \textwidth
{\textwidth\makeupwidth % which is a tricky but valid value