我必須計算二維的比率,並顯示它(可能作為四捨五入的 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}