# [pstricks] Complex computations with Latex lengths

Denis Girou Denis.Girou at idris.fr
Sun Nov 25 20:48:48 CET 2001

>>>>> "Jay.Bloodworth" == Jay Bloodworth <jbloodworth at sc.rr.com> writes:

Jay.Bloodworth> I used the FP fixed-point arithmetic package a lot to do
calculations
Jay.Bloodworth> within a document of where to put things. This works great
if all of
Jay.Bloodworth> the values used in the calculations are user supplied
values. But I
Jay.Bloodworth> have a situation where I need to measure the dimensions of
a box (using
Jay.Bloodworth> \settowidth) and then use that value in an FP
computation. Can anyone
Jay.Bloodworth> tell me how to get the value of a latex length register
into an FP
Jay.Bloodworth> variable?

Jay.Bloodworth> I could probably also do what I need to if someone can
suggest a way to
Jay.Bloodworth> use the max (or min) of two latex lengths.

\documentclass[a4paper]{article}

\usepackage{fp-basic}
\usepackage{ifthen}

\FPmessagesfalse

\newlength{\LengthA}
\newlength{\LengthB}
\newlength{\LengthC}

% Return in #3 the minimum of the two lengths #1 and #2
\newcommand{\MinLength}[3]{%
\ifthenelse{\lengthtest{\the#1<\the#2}}
{\setlength{#3}{#1}}
{\setlength{#3}{#2}}}

% Return in #3 the maximum of the two lengths #1 and #2
\newcommand{\MaxLength}[3]{%
\ifthenelse{\lengthtest{\the#1>\the#2}}
{\setlength{#3}{#1}}
{\setlength{#3}{#2}}}

\pagestyle{empty}

\begin{document}

\setlength{\LengthA}{2cm}
\setlength{\LengthB}{21mm}

\makeatletter

\typeout{The sum of \the\LengthA' and \the\LengthB' is \Result'.}

\FPmin{\Result}{\strip at pt\LengthA}{\strip at pt\LengthB}
\typeout{The minimum of \the\LengthA' and \the\LengthB' is \Result'.}

\makeatother

\MinLength{\LengthA}{\LengthB}{\LengthC}
\typeout{The minimum of \the\LengthA' and \the\LengthB' is \the\LengthC'.}

\setlength{\LengthA}{3.4cm}

\MinLength{\LengthA}{\LengthB}{\LengthC}
\typeout{The minimum of \the\LengthA' and \the\LengthB' is \the\LengthC'.}

\MaxLength{\LengthA}{\LengthB}{\LengthC}
\typeout{The maximum of \the\LengthA' and \the\LengthB' is \the\LengthC'.}

\end{document}

Jay.Bloodworth> This is not a purely pstricks issue, but I this is the
best forum I know
Jay.Bloodworth> to ask and I think it likely that other pstricks users
might sometime
Jay.Bloodworth> need to do something like this.

Nevertheless, I clearly think personally that the interest of such mailing
lists is to concentrate on their specialized topics. For questions like your
one, the general Usenet comp.text.tex forum group would be a more appropriate
place.

D.G.

`