在 babel、subcaption 和 tikz 软件包中使用引号语法时出错

在 babel、subcaption 和 tikz 软件包中使用引号语法时出错

使用引号时,出现错误

ERROR: Argument of \language@active@arg" has an extra }.

\documentclass{article}

\usepackage[spanish]{babel}
\usepackage{subcaption}
\usepackage{tikz}
\usetikzlibrary{quotes}
\usetikzlibrary{babel}

\begin{document}
\begin{figure}
  \subcaptionbox{foo} {
    \tikz \node ["bar"] {};
  }
\end{figure}
\end{document}

我不知道我做错什么了。

答案1

这是宏参数中的材料的扩展问题。

\newcommand{\x}[1]{#1}
\x{\tikz \node ["bar"] {};}

您的软件包集合(带有或不带有subcaption)会产生相同的错误,而

\tikz \node ["bar"] {};

单独使用时效果很好。就您而言,您将\tikz代码放在命令的第二个参数中\subcaption

一种解决方法就是使用\node [label={bar}]而不是\node["bar"](并且\node [label={[red]bar]而不是\node["bar" red])。

示例输出

\documentclass{article}

\usepackage[spanish]{babel}
\usepackage{subcaption}
\usepackage{tikz}
\usetikzlibrary{quotes}
\usetikzlibrary{babel}

\begin{document}

\begin{figure}
  \subcaptionbox{foo} {
  \tikz \node [label={bar}] {};
  }
\end{figure}

\end{document}

相关内容