diff options
Diffstat (limited to 'tex/context/base/pack-obj.mkiv')
-rw-r--r-- | tex/context/base/pack-obj.mkiv | 71 |
1 files changed, 22 insertions, 49 deletions
diff --git a/tex/context/base/pack-obj.mkiv b/tex/context/base/pack-obj.mkiv index 3d87f52b5..a89e72207 100644 --- a/tex/context/base/pack-obj.mkiv +++ b/tex/context/base/pack-obj.mkiv @@ -5,7 +5,7 @@ %D subtitle=Objects, %D author=Hans Hagen, %D date=\currentdate, -%D copyright={PRAGMA / Hans Hagen \& Ton Otten}] +%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for @@ -265,55 +265,27 @@ {\globalpopmacro\crossreferenceobject \dododosetobject{#1}{#2}{#3}\egroup}} -\ifnum\luatexversion<66 - - \def\dododosetobject#1#2#3% this is a hack: luatex adds 1bp around each side - {\begingroup - \dontshowcomposition % rather fuzzy in \setxvalue ... \hbox - \ifcase#1\relax - \scratchdimen-\onebasepoint % compensates auto 1 bp - \else\ifdim\objectoffset>\zeropoint - \scratchdimen \objectoffset - \else - \scratchdimen-\onebasepoint % compensates auto 1 bp - \fi\fi - \@EA\xdef\csname\r!object#2::#3\endcsname - {\noexpand\dohandleobject{#2}{#3}% - {\ifhbox\nextbox\hbox\else\vbox\fi}% - {\number\nextboxwd}{\number\nextboxht}{\number\nextboxdp}% - {\number\scratchdimen}}% - \expanded % freeze the dimensions since \dostartobject may use \nextbox - {\dostartobject{#2}{#3}{\the\nextboxwd}{\the\nextboxht}{\the\nextboxdp}}% - \setbox\nextbox\vbox spread 2\scratchdimen - {\forgetall \offinterlineskip - \vss\hbox spread 2\scratchdimen{\hss\flushnextbox\hss}\vss}% - \flushnextbox - \dostopobject - \endgroup} - -\else - - \def\dododosetobject#1#2#3% - {\begingroup - \dontshowcomposition % rather fuzzy in \setxvalue ... \hbox - \scratchdimen\objectoffset - \@EA\xdef\csname\r!object#2::#3\endcsname - {\noexpand\dohandleobject{#2}{#3}% - {\ifhbox\nextbox\hbox\else\vbox\fi}% - {\number\nextboxwd}{\number\nextboxht}{\number\nextboxdp}% - {\number\scratchdimen}}% - \expanded % freeze the dimensions since \dostartobject may use \nextbox - {\dostartobject{#2}{#3}{\the\nextboxwd}{\the\nextboxht}{\the\nextboxdp}}% - \ifcase#1\relax\else \ifdim\objectoffset>\zeropoint - \setbox\nextbox\vbox spread 2\scratchdimen - {\forgetall \offinterlineskip - \vss\hbox spread 2\scratchdimen{\hss\flushnextbox\hss}\vss}% - \fi \fi - \flushnextbox - \dostopobject - \endgroup} +% in luatex version < 66 we had a 1bp compensation (hardcoded in luatex) -\fi +\def\dododosetobject#1#2#3% + {\begingroup + \dontshowcomposition % rather fuzzy in \setxvalue ... \hbox + \scratchdimen\objectoffset + \@EA\xdef\csname\r!object#2::#3\endcsname + {\noexpand\dohandleobject{#2}{#3}% + {\ifhbox\nextbox\hbox\else\vbox\fi}% + {\number\nextboxwd}{\number\nextboxht}{\number\nextboxdp}% + {\number\scratchdimen}}% + \expanded % freeze the dimensions since \dostartobject may use \nextbox + {\dostartobject{#2}{#3}{\the\nextboxwd}{\the\nextboxht}{\the\nextboxdp}}% + \ifcase#1\relax\else \ifdim\objectoffset>\zeropoint + \setbox\nextbox\vbox spread 2\scratchdimen + {\forgetall \offinterlineskip + \vss\hbox spread 2\scratchdimen{\hss\flushnextbox\hss}\vss}% + \fi \fi + \flushnextbox + \dostopobject + \endgroup} \def\getobject#1#2% {\begingroup @@ -324,6 +296,7 @@ {% \initializepaper \forgetall \dontshowcomposition + % todo: if no attr then faster \setbox\scratchbox\vbox attr \viewerlayerattribute \attribute\viewerlayerattribute {\doinsertobject{#1}{#2}}% \setbox\scratchbox#3% |