在重新定義的命令中傳遞可選參數

在重新定義的命令中傳遞可選參數

我正在設計一些東西,其中將所有實際圖像放在一起比編寫部分更耗時,因此我使用包裝器命令將\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並不是一個好主意。 OTOH,您可以參加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}

相關內容