待办事项在单独的 TeX 文件中,但主文档中没有 \listoftodo

待办事项在单独的 TeX 文件中,但主文档中没有 \listoftodo

我在用包裹todonotes并有三个要求,前两个是 MWE 已经满足的:

  1. todo在单独的辅助文件中获取注释列表。这可以通过\listoftodos下面引用的类似名称的问题轻松获得。
  2. 让其\todo出现在文档中——也有效。
  3. 什么是不是仍在工作:我愿意不是希望列表todo出现在此文档的标题中。

下面的 MWE 生成(两次运行后):

在此处输入图片描述

正确的结果应该只有todo黄色和粉色的两条纸条,并且.tdo文件需要比.tex文件更新

笔记:

  • 没有自动测试 MWE 按原样运行的情况,然后在第二次运行时将其\listoftodos注释掉——这似乎会产生所需的结果,因为 .tdo存在较旧的文件。但是,我更喜欢在第一次编译时产生正确结果的解决方案。

背景:

  • 我有许多小文件,每个文件中都有待办事项列表,但这并不是很有用。我的计划是对所有单独的todo辅助文件进行后期处理,以获得一个包含所有注释todo以及创建这些注释的文件链接的文档。

参考:

代码:

\documentclass{article}
\usepackage[colorinlistoftodos]{todonotes}%

\begin{document}
\listoftodos% Want the temporary file generated

\bigskip


\todo[inline,color=yellow,caption={Fix me}]{There should be no text above this line (as if listoftodos was commented).}


\IfFileExists{\jobname.tdo}{%
    %  Yeah, we have the temporary file
    \todo[inline,color=red!20]{Temporary .todo file exist. 
      But need to ensure that it was not left over from a previous run...}
}{%
    \todo[inline,color=red]{Failed: No .todo file...}
}
\end{document}

答案1

您只是想要\@starttoc没有文件输入:

\documentclass{article}
\usepackage[colorinlistoftodos]{todonotes}%

\makeatletter
\newwrite\tf@tdo
\immediate\openout\tf@tdo\jobname.tdo\relax
\makeatother

\begin{document}    
\bigskip


\todo[inline,color=yellow,caption={Fix me}]{There should be no text above this line (as if listoftodos was commented).}


\IfFileExists{\jobname.tdo}{%
    %  Yeah, we have the temporary file
    \todo[inline,color=red!20]{Temporary .todo file exist. 
      But need to ensure that it was not left over from a previous run...}
}{%
    \todo[inline,color=red]{Failed: No .todo file...}
}
\end{document}

相关内容