Dimensions

From Wiki
Revision as of 20:52, 22 April 2013 by Jannis (talk | contribs)
Jump to navigation Jump to search

\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]

\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 scheint auch ohne "\the" zu funktionieren.

\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]

Sonstiges (problematisch)

\define\variableA {20mm}
\newdimen\variableB \variableB = 30mm

\variableA % kann direkt ausgegeben werden:

\variableA

\variableB % kann nicht direkt ausgegeben werden ... ist aber auch nicht nötig.

Bei \define ist die Berechnung einer neuen Variable mit \dimexpr nicht möglich, wohl aber in Befehlen, wie \externalfigure, z.B.

\externalfigure[cow][width=\variableA *2]

In \newdimen können Berechnungen mit \dimexpr vorgenommen und in eine neue Variable gespeichert werden:

\newdimen\variableC \variableC = \dimexpr(\variableB * 2)

\newdimen- und \define-Variable lassen sich wohl doch mischen. Das scheint falsch zu sein: \newdimen kann nicht mit Variablen rechnen, die mit \define festgelegt wurden.

Offene Fragen

\the
expand
\relax