Todonotes 边注超出页面范围

Todonotes 边注超出页面范围

使用该todonotes软件包时,当边注指向分页符之前的一段文本时,它似乎无法智能地放置边注。如果我有一些文本,例如

When using the todonotes package, it doesn't seem to place margin notes
 intelligently\todo{when they're referring to a piece of text 
just before a page break.} If I have some text like

并且\todo环境文本很长,包会坚持将边距框放在带有 的线或线下方intelligently,即使这意味着它会被页面边框截断。

每次我想使用这个包时,这都是一个反复出现的主要问题,我总是最终使用\todo[inline]{envs 来处理它。有没有更好的方法?

答案1

音符总是放置在包含音符的行的级别上,因此inline除了非常小的音符外,我只会使用音符。

其他选择可能是使用更短的注释,或更小的字体,或更大的右下边距并\marginparwidth制作更宽的注释,当所有这些还不够时,似乎您还可以毫无问题地替换注释(除了编译两次以正确指向文本)只需两个\vspaces 即可,如示例中所示,这是一个手动调整,但它很容易,并且可以使用宏来简化(我留作练习)。

由于todonotes是基于 tikz 的,可能也有一些未记录的方法可以通过命令选项来做到这一点,或者使 todonotes 更加智能,但我没有时间也没有经验去进入那个雷区。

姆韦

\documentclass[11pt]{article}
\usepackage{lipsum}
\usepackage[tickmarkheight=.5em,textwidth=\marginparwidth,textsize=small]{todonotes}
\begin{document}
\lipsum[1]\todo[prepend,caption={Normal note}]{\lipsum[1][1]}
\color{olive} % to highlight the place where 
              % the \todo command should point.
\lipsum[2]
\lipsum[3]
\lipsum[4]
% \todo{\lipsum[2][1-5]} ooops!
 {\vspace{-18em}\marginparwidth1.5in \todo[size=footnotesize]{\lipsum[2][1-5]} \vspace{18em}} % ok!
\color{blue}\lipsum[5][1-5]\todo{foo}\color{green}\lipsum[5][1-5]
\end{document}

相关内容