
He leído atentamente el manual de etex para entender la sintaxis de dimexpr y numexpr pero mi comprensión limitada sigue siendo limitada... La expresión "\dimexpr" aparece sólo 3 veces en el manual mencionado y en ninguna parte hay una definición formal (quiero decir: eso responde mi pregunta).
Entonces, en detalle, se puede encontrar esta macro en la red:
\newcommand\dimtomm[1]{%
\strip@pt\dimexpr 0.352777778\dimexpr#1\relax\relax
}
para convertir una dimensión en mm. ¿El caso es que no parece tener en cuenta la unidad inicial del n.° 1...? De hecho, uso este nuevo comando con una posición emitida desde zsavepos que está en sp, ¡y funciona como si le hubiera dado al nuevo comando una dimensión en pt!
Hay una pregunta más general sobre las dimensiones, para la cual no puedo encontrar respuesta en la alfabetización (libro de consulta, ...) e Internet: cuando se define una variable para contener una dimensión, ¿hay una unidad adjunta a ella? ¿O es solo un número pero con la etiqueta "dimensión"? ¡Supongo que no! debido a \strip@pt, pero esto está en contradicción con el comportamiento de \dimtomm anterior (según yo, por supuesto).
¿Quién podría aclarar la dimensión, la coordenada (zsavepos...), cómo agregar un zsavepos en sp con una dimensión en pt, el funcionamiento de dimexpr, etc.?
EDITARPara ser más preciso con mi pregunta, para que las respuestas no sean demasiado generales: obtengo el zsavepos de un punto y puedo acceder a xey que son longitudes en sp. Luego quiero dibujar y ubicar un objeto en un sorteo usando algo como:
$(current page.north west) + (0cm,\xcoordtodim{\zposy{pointA}})$
Entonces me enfrento a dos problemas de diferentes tipos:
1) Quiero que \xcoordtodim devuelva un valor tenue y, aparentemente, no puedo hacerlo con mis conocimientos actuales...
2) \xcoordtodim suma el zposy de un punto (en sp) con una longitud dada generalmente expresada en pt: se trata de "mezclar" unidades vinculadas a \dimtomm y \dimexpr...
Respuesta1
las dimensiones no se almacenan con una unidad (en realidad, siempre se almacenan como un número entero, en sp
unidades). Cualquiera que sea la unidad que se use al configurar la longitud (si es que se usa una unidad) \the
mostrará la longitud usando pt
unidades.
Las configuraciones que no usan ninguna unidad explícita incluyen cosas como
\setbox0\hbox{abc} \dimen0=\wd0