LaTeX fill image proportionally
At present it is quite easy in LaTeX to fit an image proportionally to a frame of fixed width and height. However, to fill a frame with that same image is not straightforward…
This is a snippet that fits the image proportionally to the frame:
\begin{figure}[ht] \includegraphics[width=60mm,height=40mm,keepaspectratio]{image} \caption{Kakamigahara Crematorium, Japan} \end{figure}
To fill the frame, we first have to import two packages at the start of your document.
\usepackage[export]{adjustbox} \usepackage[nomessages]{fp}
followed by this command (developed from this post on StackExchange);
\newcommand{\includegraphicx}[5]{ \FPeval{\mywidtha}{ #3*2.845274*#1} \FPeval{\mywidthb}{ (1-#3)*2.845274*#1} \FPeval{\myheighta}{ #4*2.845274*#2} \FPeval{\myheightb}{(1-#4)*2.845274*#2}% \adjustbox{min size={#1mm}{#2mm}, Clip*={#3\width - \mywidtha} {#4\height - \myheighta} {#3\width + \mywidthb} {#4\height + \myheightb}}% {\includegraphics[max size={#1mm}{#2mm}]{#5}}} \begin{document}
The factor 2.84574 converts from mm to pt.
Then, we can use the command to fill a frame. In this case, 60mm width, 40mm height, positioned at 50% of the horizontal and vertical dimensions of the original image.
\begin{figure}[ht] \includegraphicx{60}{40}{0.5}{0.5}{image} \caption{Kakamigahara Crematorium, Japan} \end{figure}
This definition works, but could be further improved to allow any unit for the width and height.
The resulting two types of figures, fitted and filled, will look like this: