Как разделить две длины и получить результат в виде целого числа?

Как разделить две длины и получить результат в виде целого числа?

У меня проблема с делением двух длин и получением результата в виде целого числа. Я пытался использовать этот пакет:

\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}

введите описание изображения здесь

Связанный контент