I had the following problem for a long time: I wanted to embed a picture into a page and automatically have it scaled to the maximum size that possibly fits the page, but not more. Obviously, simply doing a
\includeimage[width=\textwidth]{myimage} |
wouldn’t do the job, because if the image is more tall than wide, the image would grow beyond the page. One could use the information from the \textheigth register, i.e. like
\includeimage[width=\textwidth,height=\textheight,keepaspectration=true]{myimage} |
But that doesn’t take already existing text into account, i.e. some description above the image that you definitely want to have on the same page.
So Simon cooked up a macro that would allow me to do exactly what I wanted by creating a new box, getting its height and subtracting that from \textheight. Lovely. Here’s the code:
\newlength{\textundbildtextheight} \newcommand{\textundbild}[2]{ \settototalheight\textundbildtextheight{\vbox{#1}} #1 \vfill \begin{center} \includegraphics[width=\textwidth,keepaspectratio=true,height=\textheight-\the\textundbildtextheight]{#2} \end{center} \vfill } |
I’m sure it’s not very correct and it’s possible to make it not work properly, but it does the job very well for me as you can see on the following rendered pages:
And well, the contents of the image is a bit ugly, too, but if you know a nice bullshit bingo generator, let me know.
I appreciate you for spending your time and effort writing this article, will we see more of these posts in the future? Enjoy your writing by the way! Thanks, Marisol 🙂