内部パラメータに割り当てることができる接着ノードを作成しようとしています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>