<div dir="auto">Many thanks.<div dir="auto"><br></div><div dir="auto">Paulo Ney</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jan 22, 2020, 12:00 AM David Carlisle <<a href="mailto:d.p.carlisle@gmail.com">d.p.carlisle@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Wed, 22 Jan 2020 at 03:56, Paulo Ney de Souza <<a href="mailto:pauloney@gmail.com" target="_blank" rel="noreferrer">pauloney@gmail.com</a>> wrote:<br>
><br>
> What is the (precise) meaning of ! in a command like<br>
><br>
>    \includegraphics[width=.8\textwidth,height=!]{figure.eps}<br>
<br>
this is trapped and converted to<br>
\resizebox{.8\textwidth}{!}{\includegraphics{figure.eps}}<br>
<br>
which, as you say scales the width to the specified width, and the<br>
height by the same scale factor.<br>
<br>
Or at least that's what is supposed to happen, there are a lot of<br>
different code paths here depending on what driver option you are<br>
using.<br>
<br>
\def\Gin@eresize{\height}<br>
\def\Gin@esetsize{%<br>
  \let\@tempa\Gin@exclamation<br>
  \if@tempswa<br>
%    \end{macrocode}<br>
%  External. Wrap the |\includegraphics| command in a call to the<br>
%  internal form of |\scalebox| to handle the rotation.<br>
%    \begin{macrocode}<br>
    \edef\@tempa{\toks@{\noexpand<br>
             \Gscale@@box\noexpand\Gin@eresize<br>
              {\Gin@ewidth}{\Gin@eheight}{\the\toks@}}}%<br>
    \@tempa<br>
  \else<br>
%    \end{macrocode}<br>
% Internal. Handle scaling with the |\includegraphics| command directly<br>
% rather than calling |\scalebox|.<br>
<br>
<br>
David<br>
<br>
<br>
<br>
><br>
> I started by guessing that the graphics would be reslzed by the proportion defined on the other axis .. but after some further experimentation I an not really convinced ...<br>
><br>
> The documentation is completely silent on it. The only mention of ! in in the context f \resizebox some text.<br>
><br>
> Paulo Ney<br>
</blockquote></div>