我试图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}