软件包 todonotes:将待办事项标记为已完成

软件包 todonotes:将待办事项标记为已完成

当我使用包时待办事项我需要将待办事项标记为已完成。该软件包的作者 Henrik 将此功能列入了需要改进的地方。但目前还未实施。

我想到了一种对我有用的“肮脏”解决方案:我现在只学习 LaTeX,所以我围绕这个想法构建了它此主题尽我所能。

MWE编译:

将待办事项标记为已完成的建议解决方案

MWE 代码:

\documentclass[10pt]{article}
 
\usepackage{hyperref}
\usepackage[normalem]{ulem}

% If-else statement for todo notes
\newif\ifshowtodos

% Show existing ToDo notes in this project?
% 'Show' - Uncomment line below; 'Hide' - Comment out
\showtodostrue

\ifshowtodos
   \usepackage[colorinlistoftodos,prependcaption]{todonotes}
\else
   \usepackage[disable, colorinlistoftodos,prependcaption]{todonotes}
\fi
 
% Mark \todo notes as done by adding a strikethrough, grey color, and
% place such todos in the list "Todo resolved"
\usepackage{newfloat}% for listof
\makeatletter
% If option 'disable' is activated, define empty commands
  \if@todonotes@disabled%
    \newcommand{\listofdonetodos}[1][]{}
    \newcommand{\tododone}[1]{}
  \else
    % Otherwise, define proper commands \todonote and listofdonetodos
    \DeclareFloatingEnvironment[fileext=tdod,listname={Todo resolved}]{donetodo}
    \newcommand{\tododone}[1]{\todo[inline,nolist,color=gray!20,textcolor=gray!70,bordercolor=gray!60]{\sout{#1}}\addcontentsline{tdod}{donetodo}{\sout{#1}}}
  \fi % \if@todonotes@disabled
\makeatother
 
\begin{document}
 
\listoftodos
{\let\clearpage\relax \listofdonetodos}
 
\section{Introduction}
 
\todo[inline]{Add text}
 
Some text.
 
\tododone{Added section title}
 
\end{document}

目前,我不喜欢的事情有:

  • 待办事项已解决,文本“添加部分标题”左侧 - 应该保留彩色框(不确定如何做)
  • LaTeX 代码总体上看起来不太整洁/优雅

请查看我的解决方案并提供您的反馈. 有没有什么方法可以改善/改进它?

收集到所有反馈后,Henrik 同意查看解决方案,并可能将其添加到软件包文档中。

我相信很多 LaTeX 用户和我一样期待推出此功能,为什么不一起为这个伟大的软件包做出共同贡献呢!

相关内容