%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}{autosuffix} % \backgroundvbox[green] {\input tufte } \par % \backgroundvbox[blue] {\input ward } \par % \backgroundvbox[red] {\input knuth } \par % \backgroundhbox[yellow]{\rotate[rotation=45]{hello world}} \par % todo: use new register feature (but not used that much so ...) \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 \rawtransparencyattribute{#1} } % can be optimized \permanent\def\thecolorattr#1% {attr \colormodelattribute \c_attr_colormodel attr \colorattribute \csname\??colorattribute#1\endcsname attr \transparencyattribute \rawtransparencyattribute{#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 \rawtransparencyattribute{#1} } % can be optimized \def\node_backgrounds_thebackgroundcolorattr#1% {attr \backgroundattribute \plusone attr \colormodelattribute \c_attr_colormodel attr \colorattribute \lastnamedcs attr \transparencyattribute \rawtransparencyattribute{#1} } % can be optimized \permanent\def\thealignbackgroundcolorattr#1% {attr \alignbackgroundattribute \plusone attr \colormodelattribute \c_attr_colormodel attr \colorattribute \csname\??colorattribute#1\endcsname attr \transparencyattribute \rawtransparencyattribute{#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]% {\localcontrolled{\clf_enablebackgroundboxes}% permits assignment #1\backgroundcolorattr{#2}} \protect \endinput