我用gb4e
包来设置编号示例。我想把它们放在用 beamer 制作的幻灯片上。根据 beamer 用户指南,我可以在序言中使用它来使任何命令覆盖规范感知:
\renewcommand<>{⟨existing command name⟩}[⟨argument number⟩][⟨default optional value⟩]{⟨text⟩}
我尝试使用 \ex 命令执行此操作gb4e
。我尝试了以下操作:
\newcommand<>{\ex}[][]{\@ifnextchar [{\@ex}{\item}}
我认为这是正确的,因为 gb4e 对 \ex 的定义如下:
\def\ex{\@ifnextchar [{\@ex}{\item}}
在我的序言中,我的文档无法编译。我是否误解了它的工作原理?
答案1
不幸的是,gb4e
的示例命令比这更复杂,并且使用 来定义分隔参数\def
。我不确定它们是否可以如此轻松地实现覆盖感知。逐行发现示例项目的最简单方法就是使用命令\pause
。
\documentclass{beamer}
\usepackage{gb4e}
\resetcounteronoverlays{exx}
\begin{document}
\begin{frame}{A frame}
\begin{exe}
\ex\label{Ex1}
\begin{xlist}
\ex[]{ This is an example}
\pause
\ex[*]{This example ungrammatical is.}
\pause
\ex[]{Another one.}
\end{xlist}
\end{exe}
\end{frame}
\end{document}
答案2
这\@ifnextchar
只是定义一个带有可选参数的命令。尝试
\makeatletter
\renewcommand<>{\ex}{\@ifnextchar[{\@ex}{\item}}
\makeatother
您可以添加一个最简单的例子来说明您正在尝试做什么吗?