두 차원의 비율을 계산하고 이를 표시해야 합니다(아마도 반올림된 int 값으로).
최고의 MWE를 생성하는 방법을 모르지만 다음은 예입니다.
\documentclass{article}
\usepackage{expl3}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\test}{}{%
\dim_ratio:nn{\columnwidth}{\textheight}
}
\ExplSyntaxOff
\begin{document}
\test
\end{document}
출력:
22609920/36044800
이제 비율을 계산하는 방법을 모르거나 이를 부동 소수점 변수로 설정할 수 없기 때문에 막혔습니다.
\fp_new:N\l_my_fp
\fp_set:Non\l_my_fp{\dim_ratio:nn{\columnwidth}{\textheight}}
오류가 발생했기 때문에 :
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ./Senza-titolo.tex:13: LaTeX 오류: "kernel/misused-fp" ! ! 값이 '0.6272727272727273'인 부동 소수점이 잘못 사용되었습니다. ! ! 자세한 내용은 LaTeX3 설명서를 참조하세요. ! ! 즉각적인 도움을 받으려면 H 를 입력하세요. !..........................................................
답변1
내 생각에는 한 가지 이상의 방법이 있는 것 같습니다.
확장 가능한 방법을 원한다면 (단축) 이면 충분하므로 그럴 \fp_eval:n {\dim_ratio:nn{}{}}
필요가 없습니다 .\NewDocumentCommand
\documentclass{article}
%\usepackage{expl3}
\usepackage{xparse}
\ExplSyntaxOn
\fp_new:N \l_moriambar_ratio_fp
% Expandable:
\cs_new:Npn \calctheratio #1#2 {%
\fp_eval:n {\dim_ratio:nn{\columnwidth}{\textheight}}
}
\NewDocumentCommand{\test}{}{%
\fp_set:Nn \l_moriambar_ratio_fp {\dim_ratio:nn{\columnwidth}{\textheight}}
\fp_use:N \l_moriambar_ratio_fp
}
\ExplSyntaxOff
\begin{document}
\test
\calctheratio{\columnwidth}{\textwidth}
\end{document}
답변2
expl3
여기서는 전혀 필요하지 않습니다 .
\documentclass{article}
\makeatletter
\def\test{%
\strip@pt\dimexpr\columnwidth/\strip@pt\textheight\relax}
\makeatother
\begin{document}
\test
\end{document}
더 좋은 점: LuaTeX를 사용하세요!
\documentclass{article}
\begin{document}
\directlua{
tex.sprint(tex.getdimen("columnwidth")/tex.getdimen("textheight"))
}
\end{document}