todonotes 与 tikzexternalize - 空白问题

todonotes 与 tikzexternalize - 空白问题

对于包含许多 TikZ 图片的较大文档,我使用 tikzexternalize 和 todonotes 包。基于这个问题我(重新)定义了一个命令,该命令会自动将待办事项注释排除在外部化之外,该命令按预期工作。但是,由于我的待办事项注释有时会跨越多行,因此我开始将注释写在单独的行中(而不是排队) 像这样

Next line will be a todo.
\todo{todo goes here}
Text goes on...

这样做会产生非常烦人的双空白,我试图在不更改 LaTeX 文档中的数千行的情况下摆脱它。

以下 MWE 指出了问题,以及它在定义时\tikzexternaldisable以及\tikzexternalenable在周围的样子\todo{}

\documentclass{report}

\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize

\usepackage{todonotes}
\makeatletter
\newcommand{\todoo}[2][]{\tikzexternaldisable\@todo[#1]{#2}\tikzexternalenable}
\makeatother

\begin{document}
   \noindent
   Hello Hello\newline
   Hello
   \todoo{wrong spacing}
   Hello\newline  
   Hello
   \tikzexternaldisable\todo{proper spacing}\tikzexternalenable
   Hello\newline
\end{document}

MWE 结果

答案1

我似乎通过\ignorespaces在命令定义中包含以下内容找到了可行的解决方案:

\newcommand{\todoo}[2][]{\tikzexternaldisable\@todo[#1]{#2}\tikzexternalenable\ignorespaces}

这导致了期望的行为

期望行为

相关内容