У меня проблема с делением двух длин и получением результата в виде целого числа. Я пытался использовать этот пакет:
\usepackage[nomessages]{fp}
Мне это не особо помогло. Я пробовал разными способами, но все равно не получилось.
Можете ли вы мне помочь с альтернативным способом?
решение1
Можно использовать \numexpr
и \dimexpr
, но это округляет, а не усекает:
\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}
Другой подход, при котором вы можете выбирать между полом, потолком и кругом, заключается в следующем 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}