
Я внимательно прочитал руководство по etex, чтобы понять синтаксис dimexpr и numexpr, но мое ограниченное понимание остается ограниченным... Выражение "\dimexpr" встречается всего 3 раза в указанном руководстве, и нигде не дано формального определения (я имею в виду: отвечающего на мой вопрос).
Итак, более подробно, этот макрос можно найти в сети:
\newcommand\dimtomm[1]{%
\strip@pt\dimexpr 0.352777778\dimexpr#1\relax\relax
}
для преобразования размера в мм. Дело в том, что он, похоже, не учитывает начальную единицу #1... ? Действительно, я использую эту новую команду с позицией, выданной zsavepos, которая находится в sp, и она работает так, как если бы я дал новой команде размер в pt!
Есть более общий вопрос об измерениях, на который я не могу найти ответ ни в литературе (книга-источник, ...), ни в интернете: когда переменная определена как содержащая измерение, привязана ли к ней единица измерения или это просто число, но с меткой «измерение»? Я полагаю... нет! из-за \strip@pt, но это противоречит поведению \dimtomm выше (по моему мнению, конечно).
Кто может сделать четкие топологические пояснения об измерениях, о координатах (zsavepos...), о том, как добавить zsavepos в sp с измерением в pt, о функционировании dimexpr и т. д.?
РЕДАКТИРОВАТЬЧтобы быть более точным в моем вопросе, чтобы ответы не были слишком общими: я получаю zsavepos точки и могу получить доступ к x и y, которые являются длинами в sp. Затем я хочу нарисовать местоположение объекта в draw, используя что-то вроде:
$(current page.north west) + (0cm,\xcoordtodim{\zposy{pointA}})$
Итак, я сталкиваюсь с двумя проблемами разного типа:
1) Я хочу, чтобы \xcoordtodim возвращал размерность, но, судя по всему, я не могу этого сделать с моими текущими знаниями...
2) \xcoordtodim добавляет zposy точки (в sp) с заданной длиной, обычно выражаемой в pt: это вопрос «смешивания» единиц, связанных с \dimtomm и \dimexpr...
решение1
Размеры не хранятся с единицей измерения (на самом деле они всегда хранятся как целое число, в sp
единицах измерения). Какая бы единица измерения ни использовалась при установке длины (если единица измерения вообще используется), \the
длина будет отображаться с использованием pt
единиц измерения.
Настройки, которые не используют никаких явных единиц измерения, включают в себя такие вещи, как
\setbox0\hbox{abc} \dimen0=\wd0