如何使用 l3docstrip?

如何使用 l3docstrip?

我有一个我想正确地记录(并开始发布)expl3密切使用的内容,并且它应该与其自身类似地记录expl3(如中所示)texdoc interface3

我做了一些研究,并尝试让 SVN 上的实际用途发挥作用,但它们似乎取决于l3docstrip该目录中是否存在同级文件。我应该如何书写myclass.dtx才能myclass.ins符合惯例?

有没有类似 David Carslisle 的例子模型 DTX 文件

答案1

l3docstrip包是标准 DocStrip 包的扩展,并添加了一个非常具体的功能:@@用模块前缀替换。对于“用户”(在本例中为包作者),使用l3docstrip旨在与 DocStrip 的使用非常相似。因此代替

\input docstrip.tex

在演示 DTX 文件中,只需l3docstrip使用

\input l3docstrip.tex

假设您拥有最新的安装,l3docstrip.tex它将作为分发的一部分存在l3kernel

这将加载l3docstrip,但为了让“魔法”发生,你需要包含模块前缀信息。这将读取

%<@@=module-prefix-here>

原则上,它可以出现在加载之后l3docstrip、要提取的第一行代码之前的任何位置。按照惯例,它应该出现在源代码中代码之前,例如

%    \begin{macrocode}
%<*package>
%    \end{macrocode}
%    
%    \begin{macrocode}
%<@@=prefix-goes-here>
%    \end{macrocode}
%
% Version data to start with.
%    \begin{macrocode}
\ProvidesExplPackage

也许最好的指南是notes2bib:这是一个使用语法的相对较小的包expl3,由 LaTeX3 团队的成员维护。

相关内容