beamer 文档中的 tikzset 参数

beamer 文档中的 tikzset 参数

我试图tikzset在文档中使用一个参数beamer,但遇到了一个我无法理解的错误。

\documentclass{beamer}

\usepackage{tikz}

\begin{document}

\begin{frame}{My try} 
\begin{tikzpicture}
    \tikzset{boite/.style={draw=#1}}
    \node[boite=red] {The text} ;
\end{tikzpicture}
\end{frame} 

\end{document}

我使用此代码得到的错误是

! Illegal parameter number in definition of \test.
<to be read again> 
                   1
l.10     \end{tikzpicture}

请注意,完全相同的代码可以article很好地发挥作用:

\documentclass{article}

\usepackage{tikz}
\begin{document}

\begin{tikzpicture}
    \tikzset{boite/.style={draw=#1}}
    \node[boite=red] {The text} ;
\end{tikzpicture}
\end{document}

答案1

Percusse 的评论解决了这个问题,我只是改编自这个问题。至少有三种解决方案。

可以frame为选项提供[fragile],或替换#1####1(请参阅链接问题了解为什么#需要四个 s 的详细信息),或者简单地将 放在tikzset序言中。

可行的解决方案:

\documentclass{beamer}

\usepackage{tikz}

\begin{document}

\begin{frame}{My try} 
\begin{tikzpicture}
    \tikzset{boite/.style={draw=####1}}
    \node[boite=red] {The text} ;
\end{tikzpicture}
\end{frame} 

\end{document}

相关内容