summaryrefslogtreecommitdiff
path: root/tex/context/base/pack-obj.mkiv
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2011-06-08 19:06:00 +0200
committerHans Hagen <pragma@wxs.nl>2011-06-08 19:06:00 +0200
commit701a932650f685309ced993cf464f9a5fcf4caa1 (patch)
treebd862fd0de7fa450bba2c658a7a51f769d96a442 /tex/context/base/pack-obj.mkiv
parent819217701ac4baf8b6099c8f8475ae22597454d4 (diff)
downloadcontext-701a932650f685309ced993cf464f9a5fcf4caa1.tar.gz
beta 2011.06.08 19:06
Diffstat (limited to 'tex/context/base/pack-obj.mkiv')
-rw-r--r--tex/context/base/pack-obj.mkiv71
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%