
次のコードからの誤解を招くエラー メッセージ:
\documentclass{article}
\usepackage{graphicx}
\usepackage{subfig}
\begin{document}
\begin{figure}[!ht]
\centering%
\subfloat[]{
\label{subfig1}
\includegraphics[width=.4\linewidth]{fig1.pdf}%
}%
\qquad%
\subfloat[]{
\label{subfig2}
\includegraphics[width=.4\linewidth]{fig2.pdf}
}%
\label{myfig}
\caption{A caption for figures \subref{subfig1} and \subref{subfig2}.}
\end{figure}
\end{document}
与える
! Argument of \caption@ydblarg has an extra }.
<inserted text>
\par
l.19 ...es \subref{subfig1} and \subref{subfig2}.}
?
何を間違えたのでしょうか? どこにも余分なものは見当たりません}
。
答え1
このような場合の最も簡単な解決策は、\protect
通常の容疑者の前に を追加することです。\subref
これは、* バリアントがあるため、その 1 つです。
\documentclass{article}
\usepackage{graphicx}
\usepackage{subfig}
\begin{document}
\begin{figure}[!ht]
\centering
\subfloat[]{%
\label{subfig1}%
\includegraphics[width=.4\linewidth]{fig1.pdf}%
}%
\qquad
\subfloat[]{%
\label{subfig2}%
\includegraphics[width=.4\linewidth]{fig2.pdf}%
}
\caption{A caption for figures \protect\subref{subfig1} and \protect\subref{subfig2}.}
\label{myfig}
\end{figure}
\end{document}
%
行末に追加/削除した箇所と、\label{myfig}
後 \caption
。
移動引数に が複数回出現する場合、これは煩わしい場合があります\subref
。この場合、コマンドを「堅牢化」できます。
\documentclass{article}
\usepackage{graphicx}
\usepackage{subfig}
\usepackage{etoolbox} % for \robustify
\robustify{\subref}
\begin{document}
\begin{figure}[!ht]
\centering
\subfloat[]{%
\label{subfig1}%
\includegraphics[width=.4\linewidth]{fig1.pdf}%
}%
\qquad
\subfloat[]{%
\label{subfig2}%
\includegraphics[width=.4\linewidth]{fig2.pdf}%
}
\caption{A caption for figures \subref{subfig1} and \subref{subfig2}.}
\label{myfig}
\end{figure}
\end{document}
subfig
もう 1 つの解決策は、 for を避けることですsubcaption
。これが私が推奨するパスです。
\documentclass{article}
\usepackage{graphicx}
\usepackage{subcaption}
\begin{document}
\begin{figure}[!ht]
\centering
\subcaptionbox{\label{subfig1}}{%
\includegraphics[width=.4\linewidth]{fig1.pdf}%
}%
\qquad
\subcaptionbox{\label{subfig2}}{%
\includegraphics[width=.4\linewidth]{fig2.pdf}%
}
\caption{A caption for figures \subref{subfig1} and \subref{subfig2}.}
\label{myfig}
\end{figure}
\end{document}