'\parfillskip=0pt plus 1fil'과 같은 글루 사양을 LuaTeX 글루 노드로 변환하는 방법

'\parfillskip=0pt plus 1fil'과 같은 글루 사양을 LuaTeX 글루 노드로 변환하는 방법

내부 매개변수에 할당할 수 있는 글루 노드를 생성하려고 합니다 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및 을 사용할 수 있습니다 . 그래서 다음과 같은 설정은filfillfilll

\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>

관련 정보