Передача необязательных аргументов в переопределенной команде

Передача необязательных аргументов в переопределенной команде

Я разрабатываю проект, в котором сбор всех моих изображений занимает гораздо больше времени, чем написание текста, поэтому я использую команду-оболочку, \includegraphicsчтобы заменить изображение тестовым квадратом, если указанный файл не существует, чтобы я мог проверить остальное форматирование по ходу дела.

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

Однако я не знаю, как передать в фактическую \includegraphicsкоманду еще какие-либо аргументы форматирования, например, повернуть этот (в отличие от всех остальных) или что-то в этом роде. Как мне это сделать?

решение1

Интересно, что порядок обработки ключевых слов, похоже, имеет значение, и width=\linewidth«до» rotate— не очень хорошая идея. С другой стороны, вы можете ввести widthдважды, и второе победит.

\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}

Связанный контент