%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 \def\colorattr#1% {\ifcsname\??colorattribute\currentcolorprefix#1\endcsname \node_backgrounds_thecolorattr{\currentcolorprefix#1}% \else\ifcsname\??colorattribute#1\endcsname \node_backgrounds_thecolorattr{#1}% \fi\fi} \def\node_backgrounds_thecolorattr#1% {attr \colormodelattribute \attribute\colormodelattribute attr \colorattribute \lastnamedcs attr \transparencyattribute \thetransparencyattribute{#1} } % can be optimized \def\thecolorattr#1% {attr \colormodelattribute \attribute\colormodelattribute attr \colorattribute \csname\??colorattribute#1\endcsname attr \transparencyattribute \thetransparencyattribute{#1} } % can be optimized \def\backgroundcolorattr#1% {\ifcsname\??colorattribute\currentcolorprefix#1\endcsname \node_backgrounds_thebackgroundcolorattr{\currentcolorprefix#1}% \else\ifcsname\??colorattribute#1\endcsname \node_backgrounds_thebackgroundcolorattr{#1}% \fi\fi} \def\thebackgroundcolorattr#1% {attr \backgroundattribute \plusone attr \colormodelattribute \attribute\colormodelattribute attr \colorattribute \csname\??colorattribute#1\endcsname attr \transparencyattribute \thetransparencyattribute{#1} } % can be optimized \def\node_backgrounds_thebackgroundcolorattr#1% {attr \backgroundattribute \plusone attr \colormodelattribute \attribute\colormodelattribute attr \colorattribute \lastnamedcs attr \transparencyattribute \thetransparencyattribute{#1} } % can be optimized \def\thealignbackgroundcolorattr#1% {attr \alignbackgroundattribute \plusone attr \colormodelattribute \attribute\colormodelattribute attr \colorattribute \csname\??colorattribute#1\endcsname attr \transparencyattribute \thetransparencyattribute{#1} } % can be optimized \unexpanded\def\backgroundhbox{\node_backgrounds_boxes_add\hbox} \unexpanded\def\backgroundvbox{\node_backgrounds_boxes_add\vbox} \unexpanded\def\backgroundvtop{\node_backgrounds_boxes_add\vtop} \unexpanded\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\attribute\colormodelattribute % attr \colorattribute \the\attribute\colorattribute % attr \transparencyattribute \the\attribute\transparencyattribute}} % % more efficient: \def\node_backgrounds_boxes_add#1[#2]% {\clf_enablebackgroundboxes #1\backgroundcolorattr{#2}} \protect \endinput