## my wrappers around “includegraphics”

To put an image to a document, LaTeX provides the command “\includegraphics“. As it often happens, due to LaTeX was designed for manual typesetting, this command is a nightmare for automatic generation. For a long time, I use a wrapper to solve 99% of the problems.

### I.

``\RequirePackage{grffile}``

Without this package, code

``\includegraphics{ANSIboat.v1.pdf}``
raises the dummy error:
``! LaTeX Error: Unknown graphics extension: .boat.v1.pdf.``

### II.

``````\def\includegraphicsII[#1]#2{%
\IfFileExists{#2}{\includegraphics[#1]{#2}}{%
\typeout{! LaTeX warning: File `#2' not found.}%
\includegraphics[#1]{dummy.pdf}}}
``````

If there is no image file, LaTeX

* annonces this problem to the console and the log file,
* uses the image “dummy.pdf” instead

### III.

``````\catcode`\_=11
\edef\ImageUnderscore{_}
\catcode`\_=8
\def\Image[#1]#2{{%
\let\_=\ImageUnderscore
\includegraphicsII[#1]{#2}}}
``````

This allows to specify a file name with the underscore symbol using the standard LaTeX escaping rules:

``\Image{ANSI\_boat.pdf}``

instead of

``\includegraphicsII{ANSI_boat.pdf}``

Benefit: no need for special escaping rules in an automatic XML to LaTeX converter.

Actually, the code must be extended, to include “`\{`”, “`\textless`” and other special symbols, but it’s TODO.