diff options
Diffstat (limited to 'tex/context/base/mkxl/node-bck.mkxl')
-rw-r--r-- | tex/context/base/mkxl/node-bck.mkxl | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/tex/context/base/mkxl/node-bck.mkxl b/tex/context/base/mkxl/node-bck.mkxl new file mode 100644 index 000000000..e37d65b1c --- /dev/null +++ b/tex/context/base/mkxl/node-bck.mkxl @@ -0,0 +1,92 @@ +%D \module +%D [ file=node-bck, +%D version=2009.06.08, +%D title=\CONTEXT\ Node Macros, +%D subtitle=Backgrounds, +%D author=Hans Hagen, +%D date=\currentdate, +%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 +%C details. + +\writestatus{loading}{ConTeXt Node Support / Backgrounds} + +%D This is first attempt to replacing backgrounds in a few tables +%D mechanisms. When used more frequently, we can store the color +%D spec in the attribute. + +\unprotect + +\registerctxluafile{node-bck}{optimize} + +% \backgroundvbox[green] {\input tufte } \par +% \backgroundvbox[blue] {\input ward } \par +% \backgroundvbox[red] {\input knuth } \par +% \backgroundhbox[yellow]{\rotate[rotation=45]{hello world}} \par + +\permanent\def\colorattr#1% + {\ifcsname\??colorattribute\currentcolorprefix#1\endcsname + \node_backgrounds_thecolorattr{\currentcolorprefix#1}% + \orelse\ifcsname\??colorattribute#1\endcsname + \node_backgrounds_thecolorattr{#1}% + \fi} + +\def\node_backgrounds_thecolorattr#1% + {attr \colormodelattribute \c_attr_colormodel + attr \colorattribute \lastnamedcs + attr \transparencyattribute \thetransparencyattribute{#1} } % can be optimized + +\permanent\def\thecolorattr#1% + {attr \colormodelattribute \c_attr_colormodel + attr \colorattribute \csname\??colorattribute#1\endcsname + attr \transparencyattribute \thetransparencyattribute{#1} } % can be optimized + +\permanent\def\backgroundcolorattr#1% + {\ifcsname\??colorattribute\currentcolorprefix#1\endcsname + \node_backgrounds_thebackgroundcolorattr{\currentcolorprefix#1}% + \orelse\ifcsname\??colorattribute#1\endcsname + \node_backgrounds_thebackgroundcolorattr{#1}% + \fi} + +\permanent\def\thebackgroundcolorattr#1% + {attr \backgroundattribute \plusone + attr \colormodelattribute \c_attr_colormodel + attr \colorattribute \csname\??colorattribute#1\endcsname + attr \transparencyattribute \thetransparencyattribute{#1} } % can be optimized + +\def\node_backgrounds_thebackgroundcolorattr#1% + {attr \backgroundattribute \plusone + attr \colormodelattribute \c_attr_colormodel + attr \colorattribute \lastnamedcs + attr \transparencyattribute \thetransparencyattribute{#1} } % can be optimized + +\permanent\def\thealignbackgroundcolorattr#1% + {attr \alignbackgroundattribute \plusone + attr \colormodelattribute \c_attr_colormodel + attr \colorattribute \csname\??colorattribute#1\endcsname + attr \transparencyattribute \thetransparencyattribute{#1} } % can be optimized + +\permanent\protected\def\backgroundhbox{\node_backgrounds_boxes_add\hbox} +\permanent\protected\def\backgroundvbox{\node_backgrounds_boxes_add\vbox} +\permanent\protected\def\backgroundvtop{\node_backgrounds_boxes_add\vtop} +\permanent\protected\def\backgroundline{\dontleavehmode\node_backgrounds_boxes_add\hbox} + +% \def\node_backgrounds_boxes_add#1[#2]% +% {\begingroup +% \clf_enablebackgroundboxes +% \dousecolorparameter{#2}% +% \normalexpanded{\endgroup#1 +% attr \backgroundattribute \plusone +% attr \colormodelattribute \the\c_attr_colormodel +% attr \colorattribute \the\c_attr_color +% attr \transparencyattribute \the\c_attr_transparency}} +% +% more efficient: + +\def\node_backgrounds_boxes_add#1[#2]% + {\clf_enablebackgroundboxes + #1\backgroundcolorattr{#2}} + +\protect \endinput |