diff options
Diffstat (limited to 'tex/context/base/mkxl/pack-obj.mkxl')
-rw-r--r-- | tex/context/base/mkxl/pack-obj.mkxl | 54 |
1 files changed, 26 insertions, 28 deletions
diff --git a/tex/context/base/mkxl/pack-obj.mkxl b/tex/context/base/mkxl/pack-obj.mkxl index 04fc90a58..ab42d163f 100644 --- a/tex/context/base/mkxl/pack-obj.mkxl +++ b/tex/context/base/mkxl/pack-obj.mkxl @@ -40,22 +40,22 @@ \installcorenamespace {objects} \newif \ifinobject -\newbox \objectbox +\newbox \b_pack_objects -\mutable\def\objectoffset{1cm} +\mutable\def\objectoffset{1cm} % Still public but use with care! -\newdimen\objectoff \permanent\def\objectmargin{\the\objectoff} -\newdimen\objectwd \permanent\def\objectwidth {\the\objectwd} -\newdimen\objectht \permanent\def\objectheight{\the\objectht} -\newdimen\objectdp \permanent\def\objectdepth {\the\objectdp} +\newdimen\d_pack_objects_offset \permanent\def\objectmargin{\the\d_pack_objects_offset} +\newdimen\d_pack_objects_width \permanent\def\objectwidth {\the\d_pack_objects_width} +\newdimen\d_pack_objects_height \permanent\def\objectheight{\the\d_pack_objects_height} +\newdimen\d_pack_objects_depth \permanent\def\objectdepth {\the\d_pack_objects_depth} %D If I have time I will use the unreferenced variant for e.g. mp reuse. This can be %D rewritten in \LUA\ anyway. -\permanent\protected\def\setreferencedobject #1#2{\begingroup\synctexpause\objectoff\objectoffset\inobjecttrue\dowithnextbox{\pack_objects_set_yes{#1}{#2}}} -\permanent\protected\def\settightreferencedobject #1#2{\begingroup\synctexpause\objectoff\zeropoint \inobjecttrue\dowithnextbox{\pack_objects_set_yes{#1}{#2}}} -\permanent\protected\def\setunreferencedobject #1#2{\begingroup\synctexpause\objectoff\objectoffset\inobjecttrue\dowithnextbox{\pack_objects_set_nop{#1}{#2}}} -\permanent\protected\def\settightunreferencedobject#1#2{\begingroup\synctexpause\objectoff\zeropoint \inobjecttrue\dowithnextbox{\pack_objects_set_nop{#1}{#2}}} +\permanent\protected\def\setreferencedobject #1#2{\begingroup\synctexpause\d_pack_objects_offset\objectoffset\inobjecttrue\dowithnextbox{\pack_objects_set_yes{#1}{#2}}} +\permanent\protected\def\settightreferencedobject #1#2{\begingroup\synctexpause\d_pack_objects_offset\zeropoint \inobjecttrue\dowithnextbox{\pack_objects_set_yes{#1}{#2}}} +\permanent\protected\def\setunreferencedobject #1#2{\begingroup\synctexpause\d_pack_objects_offset\objectoffset\inobjecttrue\dowithnextbox{\pack_objects_set_nop{#1}{#2}}} +\permanent\protected\def\settightunreferencedobject#1#2{\begingroup\synctexpause\d_pack_objects_offset\zeropoint \inobjecttrue\dowithnextbox{\pack_objects_set_nop{#1}{#2}}} \aliased\let\setobject \setreferencedobject \aliased\let\settightobject\settightreferencedobject @@ -66,7 +66,7 @@ \protected\def\pack_objects_set_yes#1#2% {\ifcase\c_pack_objects_offset_mode - \ifzeropt\objectoff + \ifzeropt\d_pack_objects_offset \pack_objects_package_nop\nextbox \else \pack_objects_package_yes\nextbox @@ -74,13 +74,13 @@ \else \pack_objects_package_nop\nextbox \fi - \clf_registerreferencedobject{#1}{#2}\objectbox\objectoff\c_pack_objects_offset_mode + \clf_registerreferencedobject{#1}{#2}\b_pack_objects\d_pack_objects_offset\c_pack_objects_offset_mode \synctexresume \endgroup} \protected\def\pack_objects_set_nop#1#2% {\ifcase\c_pack_objects_offset_mode - \ifzeropt\objectoff + \ifzeropt\d_pack_objects_offset \pack_objects_package_nop\nextbox \else \pack_objects_package_yes\nextbox @@ -88,33 +88,31 @@ \else \pack_objects_package_nop\nextbox \fi - \clf_registerobject{#1}{#2}\objectbox\objectoff\c_pack_objects_offset_mode + \clf_registerobject{#1}{#2}\b_pack_objects\d_pack_objects_offset\c_pack_objects_offset_mode \synctexresume \endgroup} \def\pack_objects_package_nop#1% we pack because otherwise \ruledhbox is still tight - {\setbox\objectbox\hpack{\box#1}} + {\setbox\b_pack_objects\hpack{\box#1}} \def\pack_objects_package_yes#1% - {\objectwd\dimexpr\wd#1+2\objectoff\relax - \objectht\dimexpr\ht#1+ \objectoff\relax - \objectdp\dimexpr\dp#1+ \objectoff\relax - \setbox\objectbox\hpack - {\hskip\objectoff - \box#1}% - \wd\objectbox\objectwd - \ht\objectbox\objectht - \dp\objectbox\objectdp} + {\d_pack_objects_width \dimexpr\wd#1+2\d_pack_objects_offset\relax + \d_pack_objects_height\dimexpr\ht#1+ \d_pack_objects_offset\relax + \d_pack_objects_depth \dimexpr\dp#1+ \d_pack_objects_offset\relax + \setbox\b_pack_objects\hpack{\hskip\d_pack_objects_offset\box#1}% + \wd\b_pack_objects\d_pack_objects_width + \ht\b_pack_objects\d_pack_objects_height + \dp\b_pack_objects\d_pack_objects_depth} \permanent\protected\def\getobject#1#2% {\begingroup \synctexpause \clf_restoreobject{#1}{#2}% - \ifzeropt\objectoff\else - \objectoff-\objectoff - \pack_objects_package_yes\objectbox + \ifzeropt\d_pack_objects_offset\else + \d_pack_objects_offset-\d_pack_objects_offset + \pack_objects_package_yes\b_pack_objects \fi - \box\objectbox + \box\b_pack_objects \synctexresume \endgroup} |