在 \caption{} 环境中使用 TikZ 创建的形状

在 \caption{} 环境中使用 TikZ 创建的形状

我有以下命令

\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
            \node[shape=circle,draw,inner sep=2pt] (char) {#1};}}\usetikzlibrary{arrows}

我想在图形的标题环境中使用它。但是,这会产生错误:未定义的控制序列。为什么会发生这种情况?该命令在其他地方按预期工作。

答案1

正如评论中所述,下次请提供一个最小的工作示例,这\protect\circled肯定是您想要的。另一个解决方案是使用更强大、更强大、更新的\NewDocumentCommand,我认为这样做完全没有问题:

\documentclass[]{article}
\usepackage{graphicx}
\usepackage{tikz}
\usetikzlibrary{arrows}

\begin{document}

\NewDocumentCommand{\circled}{m}{
  \tikz[baseline=(char.base)]
    \node[shape=circle,draw,inner sep=2pt] (char) {#1};    
}

\circled{foo}

\begin{figure}
  \centering
  \includegraphics{example-image-a}
  \caption{Yes \circled{foo}}
  \label{fig:foo}
\end{figure}

\end{document}

相关内容