
Ich habe das Etex-Handbuch sorgfältig gelesen, um die Syntax von Dimexpr und Numexpr zu verstehen, aber mein begrenztes Verständnis bleibt begrenzt ... Der Ausdruck "\dimexpr" erscheint nur dreimal im genannten Handbuch und nirgends gibt es eine formale Definition (ich meine: das beantwortet meine Frage).
Im Detail findet man im Netz folgendes Makro:
\newcommand\dimtomm[1]{%
\strip@pt\dimexpr 0.352777778\dimexpr#1\relax\relax
}
um eine Dimension in mm umzurechnen. Die Sache ist, dass es die Anfangseinheit von #1 nicht zu berücksichtigen scheint...? Tatsächlich verwende ich diesen neuen Befehl mit einer von zsavepos ausgegebenen Position, die in sp liegt, und es funktioniert, als hätte ich dem neuen Befehl eine Dimension in pt gegeben!
Es gibt also eine allgemeinere Frage zu Dimensionen, auf die ich weder in der Literatur (Quellenbuch, ...) noch im Internet eine Antwort finden kann: Wenn eine Variable so definiert ist, dass sie eine Dimension enthält, ist ihr dann eine Einheit zugeordnet oder handelt es sich nur um eine Zahl, aber mit der Bezeichnung „Dimension“? Ich denke ... nein! wegen \strip@pt, aber das steht im Widerspruch zum Verhalten von \dimtomm oben (meiner Meinung nach natürlich).
Wer könnte ein klares Topo zur Dimension, zu den Koordinaten (zsavepos …), zum Hinzufügen eines zsavepos in sp mit einer Dimension in pt, zur Funktionsweise von dimexpr usw. erstellen?
BEARBEITENUm meine Frage genauer zu formulieren, damit die Antworten nicht zu allgemein sind: Ich erhalte die zsavepos eines Punktes und kann auf x und y zugreifen, die Längen in sp sind. Dann möchte ich ein Objekt in einem Draw lokalisieren, indem ich etwas wie Folgendes verwende:
$(current page.north west) + (0cm,\xcoordtodim{\zposy{pointA}})$
Ich stehe also vor zwei Problemen unterschiedlicher Art:
1) Ich möchte, dass \xcoordtodim einen Dim zurückgibt, und anscheinend kann ich das mit meinem derzeitigen Wissen nicht tun ...
2) \xcoordtodim addiert die zposy eines Punkts (in sp) mit einer gegebenen Länge, die im Allgemeinen in pt ausgedrückt wird: Dies ist die Frage des „Mischens“ von Einheiten, die mit \dimtomm und \dimexpr verknüpft sind …
Antwort1
Abmessungen werden nicht mit einer Einheit gespeichert (tatsächlich werden sie immer als Ganzzahl in sp
Einheiten gespeichert). Unabhängig davon, welche Einheit beim Festlegen der Länge verwendet wird (falls überhaupt eine Einheit verwendet wird), wird die Länge mit Einheiten \the
angezeigt .pt
Zu den Einstellungen, die keine explizite Einheit verwenden, gehören Dinge wie
\setbox0\hbox{abc} \dimen0=\wd0