我想制作不同长度文本的模板,其中小页面的最大高度为 62 毫米。如果文本不是太长,小页面必须具有其自然高度。有办法吗?
\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}