Ich habe ein Problem damit, zwei Längen zu dividieren und ein Ergebnis als Ganzzahl zu erhalten. Ich habe versucht, dieses Paket zu verwenden:
\usepackage[nomessages]{fp}
Bei mir hat es nicht wirklich funktioniert. Ich habe es auf verschiedene Arten probiert, aber es hat immer noch nicht funktioniert.
Können Sie mir mit einer alternativen Möglichkeit helfen?
Antwort1
Sie können \numexpr
und verwenden \dimexpr
, aber dies rundet, anstatt abzuschneiden:
\documentclass{article}
\newcommand{\getlengthratio}[2]{%
\number\numexpr
\dimexpr#1\relax
/
\dimexpr#2\relax
\relax}
\newcounter{test}
\begin{document}
There are \getlengthratio{\textwidth}{\parindent} parindents in a line
\setcounter{test}{\getlengthratio{\textwidth}{\parindent}}
The same number: \thetest
\end{document}
Ein anderer Ansatz, bei dem Sie zwischen Boden, Decke und Rund wählen können, ist mit expl3
:
\documentclass{article}
\usepackage{xparse}
\ExplSyntaxOn
\DeclareExpandableDocumentCommand{\getlengthratio}{mm}
{
\fp_eval:n { floor ( \dim_to_fp:n { #1 } / \dim_to_fp:n { #2 } , 0 ) }
}
\ExplSyntaxOff
\newcounter{test}
\begin{document}
There are \getlengthratio{\textwidth}{\parindent} parindents in a line
\setcounter{test}{\getlengthratio{\textwidth}{\parindent}}
The same number: \thetest
\end{document}