includeonlyframes 在 lyx beamer 中不起作用

includeonlyframes 在 lyx beamer 中不起作用

我正在尝试使用\includeonlyframesbeamer 模板创建的 Lyx 文件中的选项。但它不起作用。(我正在尝试这个解决方案。https://tex.stackexchange.com/a/27354/38845

这是我所做的。

  • 已添加\includeonlyframes{mylable}到 lyx 中的文档序言中。
  • 在框架中添加了标签“mylable”(使用插入->标签菜单)
  • 预期行为:只应显示标有“mylable”的框架。
  • 实际行为:错误“预览格式时出错”

答案1

frame“标记”和“在”中插入标签之间存在差异。前者应使用环境/宏的可选参数frame作为键值传递,而后者则在需要时使用。为了按预期工作,您需要前者而不是后者。以下内容取自label=<label>frame\label\includeonlyframesbeamer 文档(部分4.3.3 提高编译速度的方法,第 30 页):

\includeonlyframes{⟨frame label list⟩}

此命令的行为与命令有点相似\includeonly:仅包含列表中提到的框架。所有其他框架均被抑制。不过,部分和子部分命令仍会执行,因此您仍拥有正确的导航栏。通过将当前框架标记为,current然后说\includeonlyframes{current},您可以快速处理单个框架。

⟨frame label list⟩是已标记的框架名称的逗号分隔列表(无空格)。要标记框架,必须将选项传递label=⟨name⟩\frame命令或frame环境。

您可以在 LyX 中通过右键单击框架标题并选择“插入短标题”来实现此目的:

在此处输入图片描述

现在使用label=<label>里面的可选参数:

在此处输入图片描述

然而,这还不够。虽然 LyX 的界面在这方面看起来还不错,但使用可选参数的附带定义却不行。将以下内容也添加到您的序言中(文档 > 设置... > LaTeX 序言):

\makeatletter
\renewcommand{\lyxframe}[2][]{%
  \@@@@lyxframe<*>[<*>][#1]{#2}\@lyxframestop}
\makeatother

上述绕过了复杂的定义\lyxframe,跳过了beamer的覆盖功能。但是,由于您使用的是 LyX,因此我认为不需要这样做。此外,我认为序言中的beamer布局 ( beamer.layout) 生成的实际代码没有按预期工作……

现在您可以使用

\includeonlyframes{abc}

在你的 LaTeX 序言中,一切都应该正常工作。

相关内容