Dimensions
Jump to navigation
Jump to search
ConTeXt allows different methods to initialize variables and to calculate with dimension units.
\definemeasure
\setupexternalfigures[location={local,global,default}] \definemeasure[ColumnC][30mm] \definemeasure[ColumnD][40mm] \definemeasure[ColumnCD][\the\dimexpr(\measure{ColumnC}+\measure{ColumnD})\relax] C \measure{ColumnC} D \measure{ColumnD} CD \measure{ColumnCD} \externalfigure[cow][width=\measure{ColumnCD}]
\defineexpandable
\setupexternalfigures[location={local,global,default}] \defineexpandable\ColumnA {30mm} \defineexpandable\ColumnB {40mm} \defineexpandable\ColumnAB {\the\dimexpr(\ColumnA + \ColumnB)\relax} A \ColumnA B \ColumnB AB: \ColumnAB \externalfigure[cow][width=\ColumnAB]
The behavior of \define has changed. At first the default was expanded, now it is unexpanded. If "unexpanded" is wished some extracommands are neccesary:
\defineexpandable\... same as the lowlevel-TeX-Macro \def\...
\define\... same as the low-level-textmacro \unexpanded\def\...
\newdimen
\setupexternalfigures[location={local,global,default}] \defineexpandable\ColumnA {30mm} \defineexpandable\ColumnB {40mm} \newdimen\ColumnAB \ColumnAB=\dimexpr(\ColumnA + \ColumnB) A \ColumnA B \ColumnB ColumnAB: \the\ColumnAB \externalfigure[cow][width=\the\ColumnAB]
\externalfigure ist also working without "\the".
\ctxlua
\setupexternalfigures[location={local,global,default}] \defineexpandable\ColumnA {30mm} \defineexpandable\ColumnB {40mm} \defineexpandable\ColumnABii {\ctxlua{context([==[\ColumnA + \ColumnB]==])}} ColumnABii: \the\dimexpr \ColumnABii\relax \externalfigure[cow][width=\dimexpr(\ColumnABii)\relax]
Offene Fragen
\the expand \relax