summaryrefslogtreecommitdiff
path: root/tex/context/base/pack-obj.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/pack-obj.mkiv')
-rw-r--r--tex/context/base/pack-obj.mkiv90
1 files changed, 48 insertions, 42 deletions
diff --git a/tex/context/base/pack-obj.mkiv b/tex/context/base/pack-obj.mkiv
index 6af439021..3d87f52b5 100644
--- a/tex/context/base/pack-obj.mkiv
+++ b/tex/context/base/pack-obj.mkiv
@@ -265,49 +265,55 @@
{\globalpopmacro\crossreferenceobject
\dododosetobject{#1}{#2}{#3}\egroup}}
-% \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}
+\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}
-\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}
+\fi
\def\getobject#1#2%
{\begingroup