在此邮政中提到,可以使用任何字符作为分隔符def
。是否可以用两种类型的分隔符来定义函数?
具体来说,我希望定义一个类似于\alert
beamer 的东西,但它会隐藏文本而不是显示文本。我的天真猜测是:
\def\hide<#1> {#2}{\color<#1>{\usebeamercolor{hidden text}} #2}
其中hidden text
是预定义的难以看见的颜色的 beamercolor。第一个参数由尖括号给出,第二个参数由括号给出。然而,编译时会出现错误:
\hide 定义中的参数数量非法
编辑:我原来的版本语法错误。我应该写成,
\def\hide<#1> {#2}{\color<#1>{black}{\usebeamercolor[fg]{hidden text}{#2}}}
其中黑色是一个无害的占位符,它被覆盖\usebeamercolor
答案1
\def\hide<#1> {#2}
<
将定义一个由和分隔的一个参数的宏,>space
但替换文本使用#2
因此出现错误。
您没有标记{}
“正常”论点,因此
\def\hide<#1>#2{\color<#1>{black}{\usebeamercolor[fg]{hidden text}{#2}}}
注意后面没有空格>
,并且没有{}