[Tex/LaTex] Minipage maximum height

minipage

I want to make template for texts of different length with minipage having maximum height of 62 mm. If text isn't very long, minipage must have its natural height. Is it a way to do it?

\documentclass{book}

\usepackage{adjustbox}
\usepackage{lipsum}

\pagenumbering{gobble}

\begin{document}

Foo

\vfill

\noindent\adjustbox{center,fbox}{
\begin{minipage}[t][62mm][t]{\textwidth}

\lipsum

\end{minipage}
}

\newpage

Foo

\vfill

\noindent\adjustbox{center,fbox}{
\begin{minipage}[t][62mm][t]{\textwidth}

Bar

\end{minipage}
}


\end{document}

Minipage with maximum height needed

Best Answer

Maybe this is what you want:

\documentclass{book}

\usepackage{adjustbox}
\usepackage{lipsum}
\usepackage{xparse}

\newsavebox{\strangeminipagebox}
\NewDocumentEnvironment{strangeminipage}{O{\textwidth}}
 {%
  \begin{lrbox}{\strangeminipagebox}
  \begin{minipage}[t]{\dimexpr#1-2\fboxsep-2\fboxrule}%
 }
 {%
  \end{minipage}\end{lrbox}%
  \ifdim\dimexpr\ht\strangeminipagebox+\dp\strangeminipagebox<62mm\relax
    \framebox[#1]{\usebox{\strangeminipagebox}}%
  \else
    \makebox[0pt][l]{%
      \fbox{%
        \vrule height \ht\strangeminipagebox
               depth \dimexpr62mm-\ht\strangeminipagebox\relax
               width 0pt
        \hspace{\dimexpr#1-2\fboxsep-2\fboxrule}%
      }%
    }%
    \makebox[#1]{\usebox{\strangeminipagebox}}%
  \fi
 }

\begin{document}

\noindent
\begin{strangeminipage}
\lipsum[1-3]
\end{strangeminipage}

\bigskip

\noindent
\begin{strangeminipage}[.5\textwidth]
Bar
\end{strangeminipage}

\end{document}

enter image description here