我正在嘗試創建一個可以分配給內部參數的黏合節點tex.parfillskip
。
在 Plain TeX 中, 的黏合\parfillskip
被指定為\parfillskip=0pt plus 1fil
。將值轉儲到 Lua(TeX) 中:
print("width: " .. tex.parfillskip.width)
print("stretch: " .. tex.parfillskip.stretch)
print("shrink: " .. tex.parfillskip.shrink)
print("stretch_order: " .. tex.parfillskip.stretch_order)
print("shrink_order: " .. tex.parfillskip.shrink_order)
導致這個輸出:
width: 0
stretch: 65536
shrink: 0
stretch_order: 2
shrink_order: 0
所以我的問題是:
- 如何將一個值轉換
1fil
為stretch
膠水規格的組成部分。它就像乘以一樣簡單嗎65536
(就像從轉儲中看到的那樣)? - 如何確定價值
stretch_order
?似乎有點隨意。上面的值為2
,但的stretch_order
值為。如何確定在膠水規格的組件中添加什麼內容。tex.topskip
0
答案1
LuaTeX 引入了額外的無限黏合度:你可以有fi
、fil
、fill
和filll
。所以設定就像
\parfillskip=0pt plus 1pt
\parfillskip=0pt plus 1fi
\parfillskip=0pt plus 1fil
\parfillskip=0pt plus 1fill
\parfillskip=0pt plus 1filll
將分別具有拉伸順序 0、1、2、3、4。
的確
{\directlua{tex.setglue("parfillskip",65536,65536,65536,1,1)}\showthe\parfillskip}
將停止於
> 1.0pt plus 1.0fi minus 1.0fi.
單位是按比例縮放的點,因此要獲得 1,<unit>
您需要 65536,無論<unit>
您在上面選擇什麼。