todonotes

todonotes

是否可以在对齐环境中使用 todonotes,例如:

\documentclass{report}
\usepackage{amssymb,amsmath}
\usepackage{todonotes}
\begin{document}
\begin{align}
a^2&=b^2+c^2 \todo{check this calculation}
\end{align}
\end{document}

给了我错误:

! LaTeX Error: Not in outer par mode.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.8 \end{align}

? X
No pages of output.
Transcript written on foo.log.

有哪些替代方案?我尝试过 marginnote 包,但它没有该inline功能。

答案1

todonotes

正如所提到的\marginpar 和 \begin{align} \marginpar在 中使用todonotes不起作用align,但\marginnote来自marginnote包的命令可以。因此,你可以重新定义来自 的命令以todonotes使用marginnote,这样它就可以工作了。需要进行三次编译。

代码输出

\documentclass{report}
\usepackage{amssymb,amsmath}
\usepackage{todonotes}
\usepackage{marginnote}
\makeatletter
\renewcommand{\@todonotes@drawMarginNoteWithLine}{%
\begin{tikzpicture}[remember picture, overlay, baseline=-0.75ex]%
    \node [coordinate] (inText) {};%
\end{tikzpicture}%
\marginnote[{% Draw note in left margin
    \@todonotes@drawMarginNote%
    \@todonotes@drawLineToLeftMargin%
}]{% Draw note in right margin
    \@todonotes@drawMarginNote%
    \@todonotes@drawLineToRightMargin%
}%
}
\makeatother
\begin{document}
\begin{align}
a^2&=b^2+c^2 \todo{check this calculation}
\end{align}
\end{document}

luatodonotes

如果您正在使用lualatex来编译您的文档,那么替换todonotesluatodonotes另一种选择。

(注意(至少对于 TeX Live 2015 用户):目前 存在问题luatex.sty,它由 加载luatodonotes,因此David Carlisle 在聊天中建议的小补丁是必须的。)

在此处输入图片描述

% ---------
% temporarily required
\makeatletter
\@namedef{[email protected]}{}
\makeatother
% ----------
\documentclass{report}
\usepackage{amsmath}
\usepackage{luatodonotes}
\begin{document}
\begin{align}
a^2&=b^2+c^2 \todo{check this calculation}
\end{align}
\end{document}

相关内容