在图的标题中使用 \includegraphics

在图的标题中使用 \includegraphics

是否可以使用\includegraphics在图片标题中使用?当我尝试时,我收到错误。这是一个完整的(无图形)最小示例,还演示了为什么我想做这个:

\documentclass{article}
\usepackage{graphicx}

\newcommand{\Triangle}{\raisebox{-0.3em}{\includegraphics[height=1.25em]{triangle}}}

\begin{document}

% this use of \Triangle below works fine:
\Triangle

\begin{figure}[ht]
%  \includegraphics{...}
   \caption{example caption \Triangle . }
\end{figure}

\end{document}  

我这样做是因为我需要将小符号包含在文本中,而文本是 PDF 图形(它不仅仅是一个基本的三角形——我知道我可以将其作为字符)。如果我删除该\newcommand部分并只使用普通的\includegraphics,我会得到相同的错误。

这是我收到的错误:

./Untitled.tex:12: Argument of \@caption has an extra }.
<inserted text> 
                \par 
l.12    \caption{example caption \Triangle . }

答案1

您需要使用\protect(因为\Triangle很脆弱)或创建一个强大的命令。

\documentclass{article}
\usepackage{graphicx}

\newcommand{\Triangle}{\raisebox{-0.3em}{\includegraphics[height=1.25em]{triangle}}}

\begin{document}

% this use of \Triangle below works fine:
\Triangle

\begin{figure}[ht]
%  \includegraphics{...}
   \caption{example caption \protect\Triangle .}
\end{figure}

\end{document}

使用强大的命令:

\documentclass{article}
\usepackage{graphicx}

\DeclareRobustCommand{\Triangle}{\raisebox{-0.3em}{\includegraphics[height=1.25em]{triangle}}}

\begin{document}

% this use of \Triangle below works fine:
\Triangle

\begin{figure}[ht]
%  \includegraphics{...}
   \caption{example caption \Triangle .}
\end{figure}

\end{document}

相关内容