使用 \OnlyDescription 在包代码中的驱动程序部分添加一些内容

使用 \OnlyDescription 在包代码中的驱动程序部分添加一些内容

我希望能够以某种dtx格式向包的文档中添加一些内容,但使用\OnlyDescription

我不想要“实施”部分,但是我想在包代码的某个地方添加一条注释以写入文档。

无论以%<driver>还是 开始该行都不会%导致将此行附加到包文档中,我猜是因为文件driver开头的部分dtx以 结尾\end{document},所以此行之后的所有内容都会被忽略。

有没有解决方案,可以移动\end{document}或者\StopEventually移到其他地方吗?

目的是用包编写todo关于代码中要做的事情的 TO-DO 注释,但如果所有这些注释都出现在更改历史记录之后的文档中,那就太好了。我没有在文档中包含代码部分(\OnlyDescription)。MWE:

% \iffalse meta-comment
% ...
%<*internalbatchfile>
\begingroup
%</internalbatchfile>
%<*batchfile>
\input docstrip.tex
\nopreamble
\keepsilent
\askforoverwritefalse
\generate{\file{\jobname.sty}{\from{\jobname.dtx}{package}}}
%</batchfile>
%<batchfile>\endbatchfile
%<*internalbatchfile>
\endgroup
%</internalbatchfile>
%<*driver>
\ProvidesFile{test.dtx}
%</driver>
%<package>\NeedsTeXFormat{LaTeX2e}[1995/12/01]
%<package>\ProvidesPackage{test}[2015/03/28 v1.00 Test package]
%<*driver>
\documentclass{ltxdoc}
\OnlyDescription
\begin{document}
 \DocInput{\jobname.dtx}
\end{document}
%</driver>
% \fi
% \CheckSum{0}
% \section{doc begins}
% \StopEventually{}
%    \begin{macrocode}
%<*package>
\relax
% **Here** I would like to add something to the documentation here between 'package' tags.
%</package>
%    \end{macrocode}
%\Finale

答案1

这就完成了你想要的。确保最后两行.dtx

% \Finale
% \starttodo

以下是代码

% \iffalse meta-comment
% Time-stamp: <29-03-2015 22:35:13 CEST>
% http://tex.stackexchange.com/q/235680/4686
%<*internalbatchfile>
\begingroup
%</internalbatchfile>
%<*batchfile>
\input docstrip.tex
\nopreamble
\keepsilent
\askforoverwritefalse
\generate{\file{\jobname.sty}{\from{\jobname.dtx}{package}}}
%</batchfile>
%<batchfile>\endbatchfile
%<*internalbatchfile>
\endgroup
%</internalbatchfile>
%<*driver>
\ProvidesFile{testspecial.dtx}
%</driver>
%<package>\NeedsTeXFormat{LaTeX2e}[1995/12/01]
%<package>\ProvidesPackage{testspecial}[2015/03/28 v1.00 Test package]
%<*driver>
\documentclass{ltxdoc}
%\OnlyDescription
\begin{document}
 \DocInput{\jobname.dtx}
\end{document}
%</driver>
% \fi
% \long\def\stoptodo#1\starttodo {}%
% \long\def\starttodo#1\stoptodo {}%
% \makeatletter
% \def\endorgo #1{\ifx #1\endinput\expandafter\stoptodo
%                  \else #1\expandafter\@gobble\fi}%
% \makeatother
% \CheckSum{0}
% \section{doc begins}
% This is the documentation for this package.
%
% \StopEventually{\endorgo}
%
% \section{implementation begins}
% The code required years of efforts. Finally I found this:
% \starttodo
% IMPORTANT NOTE TO MYSELF! Try to enhance the package with some features.
% \stoptodo
%    \begin{macrocode}
%<*package>
\relax
%    \end{macrocode}
% And after a few more years I got that:
% \starttodo
% SECOND IMPORTANT NOTE TO MYSELF: at least try.
% \stoptodo
%    \begin{macrocode}
\endinput
%</package>
%    \end{macrocode}
% \Finale
% \starttodo

以下是没有的结果\OnlyDescription

在此处输入图片描述

结果是\OnlyDescription

在此处输入图片描述

相关内容