LuaLaTeX: Lua에서 길이 계산

LuaLaTeX: Lua에서 길이 계산

초보 질문이라면 사과드립니다. 하지만 온라인 검색과 참조 매뉴얼 검색을 사용하여 Lua 문제에 대한 해결책을 찾는 것이 매우 어렵습니다.

길이를 계산하고 싶습니다. \linewidth로 나누고 \baselineskip을 취하고 floor마지막으로 를 곱합니다 \baselineskip. 결과는 에 반환되어야 합니다 pt.

\baselineskip나는 Lua로 계산을 할 수 있도록 Lua에 접근하는 데 이미 실패했습니다 .

\documentclass{article}
\begin{document}
\begin{enumerate}
\item Linewidth works this way: \directlua{tex.sprint(tex.dimen['linewidth'] / 65536)tex.sprint('pt')}
\item and this way: \directlua{tex.sprint(tex.dimen.linewidth / 65536)tex.sprint('pt')}
\item \directlua{tex.sprint(tex.dimen['baselineskip'])}
\item \directlua{tex.print(tex.skip['baselineskip'].width)}
\item \directlua{tex.print(tex.skip['baselineskip'].stretch)}
\item \directlua{tex.sprint(tex.baselineskip)}
\end{enumerate}
\end{document}

따라서 질문은 다음과 같습니다. \baselineskipLua에 어떻게 들어가고 위에서 설명한 길이를 어떻게 계산하고 출력할 수 있습니까?

누군가가 이러한 문제를 논의하는 LuaLaTeX의 "진짜" 초보자 가이드를 알고 있다면 힌트를 주시면 감사하겠습니다. 감사해요!


해결책

아래 답변을 사용하여 위의 길이는 다음과 같이 계산할 수 있습니다.

\directlua{tex.sprint(math.floor(tex.dimen.linewidth / tex.baselineskip.width)
    * tex.baselineskip.width  / tex.sp('1pt') ..'pt')}

답변1

기준선 건너뛰기를 얻기 위해 Lua에서 사용할 수 있지만 tex.baselineskip건너뛰기는 Lua 사용자 데이터 개체이므로(늘이기 및 축소 구성 요소와 자연 길이를 갖기 때문에) 인라인 산술 Lua 표현식에서 직접 사용할 수 없습니다./

\documentclass{article}

\begin{document}

\directlua{
print('baseline is '  ..tex.baselineskip.width)
}
\end{document}

터미널 출력을 생성합니다.

baseline is 786432

관련 정보