我在尝试将 come 环境插入到内联待办事项注释中时遇到了问题...MWE 应该演示这一点。
\documentclass{article}
\usepackage{todonotes}
\usepackage{verbatim}
\begin{document}
\noindent
\todo[inline]{%
Problem when nesting objects like enumerate, itemize, or verbatims. Others like \textbf{BOLD} work fine.
}
\todo[inline]{%
\begin{itemize}
\item A
\item B
\item C
\end{itemize}
}
\clearpage
\end{document}
有趣的是,生成的 pdf 完全可以接受,但是错误阻止了该过程的完成。
产生的错误: \reserved@a 的参数有一个额外的 }。 }
段落在 \reserved@a 完成之前结束。}
看着待办事项和逐字记录但这似乎不适用。
答案1
您不能在任何命令的参数中使用逐字逐句,包括\todo
。
对于itemize
,这有效:
\documentclass{article}
\usepackage{todonotes}
\usepackage{verbatim}
\begin{document}
\todo[inline]{%
Problem when nesting objects like enumerate, itemize, or verbatims.
Others like \textbf{BOLD} work fine.
}
\todo[inline]{%
\unexpanded{\unexpanded{\begin{itemize}
\item A
\item B
\item C
\end{itemize}}}
}
\end{document}
或者,使用\protect\begin{itemize}
,\protect\item
和\protect\end{itemize}
:的参数\todo
是移动的,因此必须保护脆弱的命令。
答案2
这todonotes
手动的(第 15 页)建议使用如下小页面创建宏:
\newcommand\todoin[2][]{\todo[inline, caption={2do}, #1]{
\begin{minipage}{\textwidth-4pt}#2\end{minipage}}}
\todoin{
Some text.
\begin{align}
\sin(\theta)^2 + \cos(\theta)^2 = 1
\end{align}
A formula and a list
\begin{itemize}
\item An item
\end{itemize}
}
根据手册,设置标题非常重要\todo
,因此包将不会尝试将小页面嵌入到您的目录中,这会导致错误。