В документе часто возникает необходимость вставлять рисунки кодом вида:
\begin{figure}[ht]
\centering
\includegraphics{...}
\caption{...}
\label{...}
\end{figure}
и пары рисунков разной высоты (при помощи вспомогательной таблица, как сказано тут), дабы упростить код и автоматизировать это дело, решил написать соответствующие команды, затруднение возникло при попытке добавить опциональный аргумент.
Для части рисунков необходимо задавать ширину, для других - нет. Имеющийся код:
% SinglePanelFigure:
% width (optional)
% path
% caption
% label
\newcommand{\SinglePanelFigure}[4][0]{
\begin{figure}[ht]
\centering
\ifthenelse{0=#1}
{\includegraphics{#2}}
{\includegraphics[width=#1]{#2}}
\caption{#3}
\label{#4}
\end{figure}
}
Но при повытке использования:
\SinglePanelFigure
{1\linewidth}
{...}
{...}
{...}
падает с кучей ошибок, начинающихся с "! Illegal unit of measure (pt inserted). <to be read again>".
Пока не готовил минимальный пример, иллюстрирующий ошибку, может тут что-то настолько очевидное, что знающим и так понятно?
P.S. Для вставки пар рисунков получился вот такой код:
\newcommand{\TwoPanelFigure}[4]{
\begin{figure}[ht]
\begin{minipage}[ht]{0.49\linewidth}
\centering
\includegraphics[width=\linewidth]{#1}
\end{minipage}
\hfill
\begin{minipage}[ht]{0.49\linewidth}
\centering
\includegraphics[width=\linewidth]{#2}
\end{minipage}
\begin{minipage}[h]{1\linewidth}
\begin{tabular}{p{0.49\linewidth}p{0.49\linewidth}}
\centering а) & \centering б) \\
\end{tabular}
\end{minipage}
\vspace*{-1cm}
\caption{#3}
\label{#4}
\end{figure}
}