對 \dimexpr 和一般尺寸的簡單解釋

對 \dimexpr 和一般尺寸的簡單解釋

我已經仔細閱讀了etex 手冊來理解dimexpr 和numexpr 的語法,但我有限的理解力仍然有限......表達式“\dimexpr”在提到的手冊中只出現了3 次,並且沒有一個正式的定義(我的意思是:答案我的問題)。

所以,具體來說,可以在網路上找到這個宏:

\newcommand\dimtomm[1]{%
\strip@pt\dimexpr 0.352777778\dimexpr#1\relax\relax
}

將尺寸轉換為毫米。問題是它似乎沒有考慮到 #1 的初始單位...?事實上,我將這個 newcommand 與 zsavepos 發出的位置一起使用,該位置位於 sp 中,它的工作原理就好像我給了 newcommand 一個 pt 中的維度一樣!

關於維度有一個更普遍的問題,我在文學(資料書,...)和互聯網中找不到答案:當定義變數包含維度時,是否有一個附加的單位,或者只是一個數字但帶有“維度”標籤?我覺得不是!因為 \strip@pt ,但這與上面 \dimtomm 的行為相矛盾(當然,根據我的說法)。

誰能就維度、座標(zsavepos...)、如何在 sp 中添加 zsavepos 以及 pt 中的維度、關於 dimexpr 功能等問題做出清晰的拓撲?

編輯為了更準確地表達我的問題,為了讓答案不要太籠統:我得到了一個點的 zsavepos,並且我可以訪問 x 和 y,它們是 sp 中的長度。然後我想使用以下方法在繪圖中繪製定位物件:

$(current page.north west) + (0cm,\xcoordtodim{\zposy{pointA}})$

所以我面臨兩個不同類型的問題:

1)我想要 \xcoordtodim 返回一個暗淡的,顯然,我不能用我目前的知識做到這一點......

2) \xcoordtodim 增加一個點(以 sp 為單位)的 zposy,給定長度通常以 pt 表示:這是連結到 \dimtomm 和 \dimexpr 的「混合」單位的問題...

答案1

維度不會以單位儲存(實際上它們總是以sp單位形式儲存為整數)。設定長度時使用的任何單位(如果使用單位)都\the將使用單位顯示長度pt

不使用任何明確單位的設定包括諸如

\setbox0\hbox{abc}  \dimen0=\wd0

相關內容