
我目前正在編寫一份文檔,其中我需要在草稿版本中指出要完成的事情,並且我想產生隱藏待辦事項的最終版本。該todonotes
軟體包具有一個disable
應該可以實現此目的的選項;它確實刪除了使用該命令定義的待辦事項\todo
,但它在我的自訂命令上失敗,如下所示:
\newcommand{\minortodo}[2][]{\todo[color=green, #1]{#2}}
使用時最終的PDF輸出\minortodo[inline]{change this to that}
正是[inline]change this to that
.我該如何todonotes
隱藏這些實例呢? (注意:刪除內聯並不能解決問題)。
編輯:以下最小工作範例(感謝您的建議)表明該問題有另一個根源;這按預期工作(即小待辦事項也消失了):
\documentclass{book}
\usepackage[disable]{todonotes}
\newcommand{\minortodo}[2][]{\todo[color=magenta, #1]{#2}}
\begin{document}
Here's some text.
\todo[inline]{this todo goes away}
\minortodo[inline]{this one too}
\end{document}
在我的實際文件中,我使用該類別book
並加載以下包,但將它們添加到 MWE 中仍然沒有問題。我的文檔的實際來源是一個用 pandoc 處理的 markdown 文件,沒有我自己的模板,所以我想我必須研究 pandoc 插入的內容會產生這種行為。
\usepackage{minitoc}\dominitoc
\usepackage{dot2texi}
\usepackage{tikz}
\usetikzlibrary{matrix}
\usetikzlibrary{shapes,arrows}
\usepackage{fancyvrb}
\usepackage{tabulary}
\usepackage{todonotes}
\usepackage{varwidth}
答案1
我使用的缺點sed
是要怪的,不是todonotes
或pandoc
。如果它可能有用:我認為以下命令將替換\usepackage{todonotes}
為\usepackage[disable]{todonotes}
,但grep
表明我錯了:
$ sed s/\\usepackage{todonotes}/\\usepackage[disable]{todonotes}/ draftdoc.tex | grep todonotes
\Sepackage[disable]{todonotes}
結果,\todo
命令未定義(我仍然不明白它們是如何隱藏的,但小待辦事項卻沒有)。這會產生正確的結果(注意附加引號):
$ sed 's/\\usepackage{todonotes}/\\usepackage[disable]{todonotes}/' draftdoc.tex | grep todonotes
\usepackage[disable]{todonotes}