我正在使用 beamer 创建演示文稿,我想标记稍后需要使用该todonotes
包完成的部分。但这两个包之间似乎存在一些冲突。我收到以下形式的错误
! LaTeX Error: Float(s) lost.
我猜这是因为幻灯片没有放置待办事项气泡的边距。解决这个问题的最佳方法是什么?我正在寻找比inline
每次使用时手动添加选项更简单的方法\todo
。
答案1
您可以更改包的预设,以便它默认创建内联 todonotes。为此,只需\presetkeys{todonotes}{inline}{}
在加载后添加以下行todonotes
(您可能还需要添加xkeyval
以使\presetkeys
宏可用):
\documentclass{beamer}
\usepackage{xkeyval}
\usepackage{todonotes}
\presetkeys{todonotes}{inline}{}
\begin{document}
\begin{frame}
\todo{Notes are inline by default now.}
\end{frame}
\end{document}
答案2
现在我觉得自己很傻,因为在发布问题后我几乎立即就有了一个想法:
\usepackage{todonotes}
\let\todox\todo
\renewcommand\todo[1]{\todox[inline]{#1}}
这将 重新定义\todo
为\todo[inline]
,代价是不允许为 提供任何其他选项\todo
,这对我来说很好。不过,如果有更灵活的解决方案,我仍然欢迎它们。
答案3
根据 diabonas 的答案,默认情况下内联 todonotes 的另一种选择,但是这个选项不需要额外的包:
\documentclass{beamer}
\usepackage{todonotes}
\setuptodonotes{inline}
% can add other options here, e.g. \setuptodonotes{inline, color=red}
\begin{document}
\begin{frame}
\todo{Notes are inline by default now.}
\end{frame}
\end{document}