![在重新定义的命令中传递可选参数](https://linux22.com/image/473515/%E5%9C%A8%E9%87%8D%E6%96%B0%E5%AE%9A%E4%B9%89%E7%9A%84%E5%91%BD%E4%BB%A4%E4%B8%AD%E4%BC%A0%E9%80%92%E5%8F%AF%E9%80%89%E5%8F%82%E6%95%B0.png)
我正在设计一些东西,其中将所有实际图像放在一起比写作部分花费更多的时间,因此我使用包装器命令将\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}