% % Check if the image file (#1) exists. If so, it switches to #2, else to #3 % It assumes that the graphics package \Gin@extensions macro is defined. % \long\def\imgexists#1#2#3{% \begingroup% \let\img@file\relax% \filename@parse{#1}% \ifx\filename@ext\relax% \@for\Gin@temp:=\Gin@extensions\do{% \ifx\img@file\relax% \IfFileExists{#1\Gin@temp}{\def\img@file{#1}}{}% \fi}% \else \IfFileExists{#1}{\def\img@file{#1}}{}% \fi% \ifx\img@file\relax#3\else#2\fi% \endgroup% } % % The image keeps its natural size if lower than the max boundaries % Now it's fully based on internal graphics macros % % Macros defining the maximum lengths \def\imgmaxwidth{\textwidth} \def\imgmaxheight{\textheight} % Real image sizes \def\imgrwidth{\Gin@nat@width} \def\imgrheight{\Gin@nat@height} \def\imgevalsize#1{}% % Use the maximum possible size \def\imgwidth{% \ifdim\Gin@nat@width>\imgmaxwidth \imgmaxwidth \else \Gin@nat@width \fi } \def\imgheight{% \ifdim\Gin@nat@height>\imgmaxheight \imgmaxheight \else \Gin@nat@height \fi }