我正在尝试使用\includeonlyframes
beamer 模板创建的 Lyx 文件中的选项。但它不起作用。(我正在尝试这个解决方案。https://tex.stackexchange.com/a/27354/38845)
这是我所做的。
- 已添加
\includeonlyframes{mylable}
到 lyx 中的文档序言中。 - 在框架中添加了标签“mylable”(使用插入->标签菜单)
- 预期行为:只应显示标有“mylable”的框架。
- 实际行为:错误“预览格式时出错”
答案1
frame
“标记”和“在”中插入标签之间存在差异。前者应使用环境/宏的可选参数frame
作为键值传递,而后者则在需要时使用。为了按预期工作,您需要前者而不是后者。以下内容取自label=<label>
frame
\label
\includeonlyframes
beamer
文档(部分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 序言中,一切都应该正常工作。