Passando argumentos opcionais em um comando redefinido

Passando argumentos opcionais em um comando redefinido

Estou projetando algo em que reunir todas as minhas imagens reais consome muito mais tempo do que a parte de escrita e, portanto, estou usando um comando wrapper \includegraphicspara substituir a imagem por um quadrado de teste, a menos que o arquivo especificado exista, para que eu possa verificar a outra formatação conforme eu vou.

\newcommand{\includegraphicsmaybe}[1]{\IfFileExists{../Images/#1}{\includegraphics[width=\linewidth,valign=t]{#1}}{\includegraphics[width=\linewidth,valign=t]{test.jpg}}}

No entanto, não sei como passar mais argumentos de formatação para o \includegraphicscomando real, como girar este (em oposição a todos eles), ou qualquer que seja o caso. Como posso fazer isso?

Responder1

Curiosamente, a ordem em que as palavras-chave são processadas parece ser importante e width=\linewidthantes rotatenão é uma boa ideia. OTOH, você pode entrar widthduas vezes e o segundo ganha.

\documentclass{scrartcl}
\usepackage[export]{adjustbox}
\usepackage{graphics}
\usepackage{duckuments}

\newcommand{\includegraphicsmaybe}[2][]{% #1 = optional keys, #2 = filename
  \IfFileExists{#2}%
    {\includegraphics[width=\linewidth,#1,valign=t]{#2}}%
    {\includegraphics[width=\linewidth,#1,valign=t]{example-image-duck}}}

\setlength{\parindent}{0pt}

\begin{document}
\includegraphicsmaybe[width=0.5\linewidth]{example-image}\hfill
\includegraphicsmaybe[rotate=90, width=0.5\linewidth]{example-image}

\includegraphicsmaybe{test.jpg}
\end{document}

informação relacionada