## 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}%
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: