我正在写一篇论文,我想将一些部分标记为已完成。我不想添加虚假的文本,因为那样的话我就必须在发表之前删除这些添加的内容。完美的解决方案应该是这样的:
\someCommandThatWillMakeSectionsGreenInTableOfContentsWhenMarkedAndCanBeEasilyDisabled.
...
\myMark \section{Foo}
\section{Bar}
\myMark \section{Baz}
我知道这可能有点过度设计,但也许很容易实现。谢谢。
答案1
我会用
\section{\YeyIveFinished{Foo}}
和
\newcommand\YeyIveFinished[1]{#1}
或者
\newcommand\YeyIveFinished[1]{\protect\textcolor{green}{#1}}
按要求放在序言中。
答案2
一个“复杂”的解决方案:
\documentclass{article}
\usepackage{xparse,xcolor}
% remove for the final version
\let\latexsection\section
\newif\ifsectioncompleted
\RenewDocumentCommand{\section}{sO{#3}m}{%
\IfBooleanTF{#1}
{\latexsection*{#3}}% starred sections don't go in the TOC
{\let\greensection\relax % we don't want green in headers
\ifsectioncompleted
\latexsection[\greensection#2]{#3}%
\else
\latexsection[#2]{#3}%
\fi
\global\sectioncompletedfalse
}%
}
\NewDocumentCommand{\completed}{}{\global\sectioncompletedtrue}
\NewDocumentCommand{\greensection}{}{\color{green!70!red}}
% END of code to remove (remember to remove also \completed in the text)
\begin{document}
\tableofcontents
\bigskip
\hrule
\bigskip
\completed\section{Introduction}
Blah blah
\section{I need to work on this one}
Blah blah
\completed\section{This one is finished}
Blah blah
\end{document}
答案3
我建议使用模块化文件。
对于文章类,请为每个部分使用一个新文档,并注释掉已完成的部分:
\documentclass{article}
\begin{document}
%\input{Section_1}
%\input{Section_2}
%\input{Section_3}
\input{Section_4}
%\input{Section_5}
\end{document}
对于book
类,您还可以使用\includeonly
命令,
\documentclass{book}
\includeonly{Chapter3}
\begin{document}
\include{Chapter1}
\include{Chapter2}
\include{Chapter3}
\end{document}
优点是删除章节后交叉引用仍会保留。或者,您可以使用链接中提到的其他方法。
使用模块化文档的优点是,仅编译当前节/章节时,编译速度也会更快。