最大高さ 62 mm のミニページで、さまざまな長さのテキストのテンプレートを作成したいと考えています。テキストがそれほど長くない場合は、ミニページは自然な高さにする必要があります。これは実現可能な方法でしょうか?
\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}
答え1
おそらくこれがあなたが望んでいるものでしょう:
\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}