我正在尝试创建一个\newcommand
以宽度作为可选参数的图像。这是我当前有效的命令(但不使用该参数):
\newcommand{\introimg}[3]{
\begin{figure}
\centering
\includegraphics[width=0.9\textwidth]{Figures/#1}
\caption{#3}
\label{#2}
\end{figure}
}
现在,如果未指定选项,我将使用提供默认值的0.9
可选参数进行替换。\ifthenelse
\ifthenelse{\isempty{#4}}{0.9}{#4}
\newcommand{\introimg}[4]{
\begin{figure}
\centering
\includegraphics[width=\ifthenelse{\isempty{#4}}{0.9}{#4}\textwidth]{Figures/#1}
\caption{#3}
\label{#2}
\end{figure}
}
但这会产生错误:
Runaway argument? width=\ifthenelse {\isempty { Paragraph ended before \Gin@ii was complete.
我看到他们的示例中包含了许多示例%
,但我在文档中没有看到这些示例,也不明白 for 的用途%
。但我尝试复制他们的语法,但仍然出现错误。
答案1
您不需要使用条件。命令的可选参数是#1
,因此您应该按以下方式定义命令:
\documentclass{article}
\usepackage[demo]{graphicx}
\newcommand{\introimg}[4][.9]{
\begin{figure}
\centering
\includegraphics[width=#1\textwidth]{Figures/#2}
\caption{#3}
\label{#4}
\end{figure}
}
\begin{document}
\introimg{Foo}{Caption}{Fig:foo}
\introimg[.7]{Foo}{Caption}{Fig:foo}
\end{document}
答案2
使用真正的可选参数
\newcommand{\introimg}[4][0.9]{
\begin{figure}
\centering
\includegraphics[width=#1\textwidth]{Figures/#2}
\caption{#4}
\label{#3}
\end{figure}
}
被称为
\introimg{filename}{label}{caption}
或者
\introimg[0.5]{filename}{label}{caption}