喂食
\documentclass{article}
\pagestyle{empty}
\usepackage{algorithm2e}
\usepackage{todonotes}
\overfullrule=2mm
\begin{document}
\begin{algorithm}
\todo[inline]{Note}
\end{algorithm}
\end{document}
对任何 [pdf|xe|lua]latex 都会导致水平盒子过满,尽管文档没有足够的实际内容来导致过满:
为什么会发生这种情况,谁是罪魁祸首,以及如何解决这个问题?
已通知 todonotes 和 algorithm2e 的维护者。
答案1
todonotes 包的维护者在这里签到。
todonotes 包依赖长度 \linewidth 来调整插入的内联待办事项的宽度。这在 itemize 环境中似乎工作正常。正如您所演示的,在 algorithm 环境中并非如此。根据http://latexref.xyz/Page-layout-parameters.html,当进入 itemize 等修改左右边距的环境时,线宽应该减小。我认为在 algorithm 环境中也应该如此。
一种解决方法是向 todo 命令指定选项inlinewidth=\linewidth-1.1cm
,如下所示。
\documentclass{article}
\pagestyle{empty}
\usepackage{algorithm2e}
\usepackage{todonotes}
\overfullrule=2mm
\begin{document}
\noindent
\rule{\linewidth}{0.1mm}
\begin{algorithm}
\todo[inline]{Note}
\todo[inline, inlinewidth=\linewidth-1.05cm]{Note}
\end{algorithm}
\noindent
\rule{\linewidth}{0.1mm}
\todo[inline]{Note}
\noindent
\rule{\linewidth}{0.1mm}
\begin{itemize}
\item \todo[inline]{Note}
\end{itemize}
\end{document}