I know we can get the maximum width or height of several boxes via:

The maximum width is \the\wd0

The maximum height is \the\ht0

But how to get the minimum width or height?

3 Answers 3


The idea is simple: set the boxes and measure them.










enter image description here


Here is at least one straight-forward way without abstraction into a macro:


% what needs to happen in order to find the minimum width inner hbox in:
% \hbox{\hbox{first}\hbox{second}\hbox{third}}

\leavevmode % otherwise hboxes stack
\ifdim\wd0<\minwd \minwd=\wd0 \fi
\ifdim\wd0<\minwd \minwd=\wd0 \fi

minwd = \the\minwd


In another answer I have a made a macro for a similar thing.


If you need an expandable solution, and the boxes are already there (thus avoiding the non-expandable step of putting some material into boxes), and use a tex engine with e-TeX extensions enabled:

minimum width of boxes

% compile with etex (or pdftex, etc...) as this requires e-TeX extensions
\input xint.sty

\def\minimalwidthofboxes #1{%
    \dimexpr\xintiMinof {\xintApply{\number\wd\firstofone}{#1}}sp\relax }

\long\def\firstofone #1{#1}% \long in case \firstofone already exists and was
                           % declared long

% why \firstofone? because \xintApply\macro{{item1}..{item2}} does
% \macro{item1}, hence here this would give \number\wd{\bA} which is illicit, we
% want \number\wd\bA without braces (besides, on the other hand, it doesn't
% matter if the list contains the single token \bA or the braced token {\bA})






\the\minimalwidthofboxes {\bA\bB\bC}\ % or equivalently {{\bA}{\bB}{\bC}}
is the minimal width among \the\wd\bA, \the\wd\bB, \the\wd\bC.

\newbox\bD \setbox\bD\hbox{bb}

\the\minimalwidthofboxes {{\bA}{\bB}{\bC}{\bD}}
is the minimal width among \the\wd\bA, \the\wd\bB, \the\wd\bC\ and \the\wd\bD.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .