再定義されたコマンドでオプションの引数を渡す

再定義されたコマンドでオプションの引数を渡す

私がデザインしているものは、実際の画像をすべて集めるのは書き込み部分よりもはるかに時間がかかるため、\includegraphics指定されたファイルが存在しない限り、ラッパー コマンドを使用して画像をテスト スクエアに置き換え、作業しながら他の書式をチェックできるようにしています。

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

\includegraphicsしかし、これを回転させる(すべてではなく)など、実際のコマンドにさらにフォーマット引数を渡す方法がわかりません。どうすればいいでしょうか?

答え1

興味深いことに、キーワードが処理される順序は重要であるようで、width=\linewidthbeforerotateは良い考えではありません。一方、width2 回入力すると、2 番目が優先されます。

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

関連情報