使用该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
制作更宽的注释,当所有这些还不够时,似乎您还可以毫无问题地替换注释(除了编译两次以正确指向文本)只需两个\vspace
s 即可,如示例中所示,这是一个手动调整,但它很容易,并且可以使用宏来简化(我留作练习)。
由于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}