我之前问过如何减少打字的技巧撰写 Beamer 演示文稿。我认为为常用命令编写一些宏可能会有用。例如,像这样:
\newcommand{\bi}{\begin{itemize}}
\newcommand{\ei}{\end{itemize}}
\newcommand{\be}{\begin{enumerate}}
\newcommand{\ee}{\end{enumerate}}
\newcommand{\bb}{\begin{block}}
\newcommand{\eb}{\end{block}}
我总是对定义宏有点谨慎,以防它引入问题。特别是,我在尝试为 编写宏时遇到了问题\begin{frame}
。
有没有人已经这样做过并且制定出一套好的宏?
我还想知道经验丰富的用户是否认为在这种情况下宏重新定义值得麻烦。
答案1
我不太喜欢以这种方式使用宏。它确实可以减少一些输入,但往往会使源代码变得更加晦涩难懂。更好的解决方案是使用允许您将代码片段分配给快捷键的编辑器。例如,我使用 TeXShop (Mac OSX) 并设置了组合键 Ctrl+Opt+Cmd+1 来插入代码
\begin{enumerate}
\item
\end{enumerate}
并将光标放在 之后\item
。这减少了打字次数(我只需按下键盘左下角并输入数字即可),同时仍可生成可读的源代码。
我确信有办法使用其他编辑器和其他操作系统重现此功能;这个答案一个非常相似的问题建议使用适用于 Windows 的 AutoHotkey 实用程序。
答案2
Emacs+AucTeX 已经内置了用于添加环境、部分等的键盘快捷键(如果需要,会自动添加标签)。在任何其他具有足够灵活的键盘快捷键定义结构的文本编辑器中都可以实现类似的方法。正如已经指出的那样,对于新环境来说,这比 TeX 宏更可取。
我使用的一个特定于投影仪的宏如下:
\newenvironment{bitemize}{\begin{itemize}[<+->]}{\end{itemize}}
它的作用是定义一个bitemize
环境,让连续的项目逐一出现在幻灯片上。这实际上并没有节省太多的击键次数,但[<+->]
在匆忙中输入起来很棘手,而且由于我使用 EmacsC-c C-e
来添加环境,因此它节省了我导航回 itemize 环境顶部来添加它的麻烦。
当使用警报时,还可以执行以下操作以获得类似的小额节省:
\newcommand{\balert}[1]{\alert<+->{#1}}
我希望这将alert
在连续的幻灯片上显示连续的 s。(我没有用过这个,我现在才想到。我不倾向于使用 alert,但我知道有人会用。
答案3
在 Linux 中,减少键盘快捷键输入的一个非常简单的方法是使用小巧、非常酷的编辑器抄写员(http://scribes.sourceforge.net/),您可以在其中将快捷方式导入和导出为 xml。下载站点上有一个 latex 快捷方式的示例。
对于 Beamer,我创建了自己的并简单输入:
- fr 表示整个框架环境或
- bl 表示一个块,
- de 的描述,
- item 用于 itemize 环境。
效果非常好,而且速度非常快。