如何将 todonotes 与 beamer 一起使用?

如何将 todonotes 与 beamer 一起使用?

我正在使用 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} 

相关内容