使用 docstrip 生成的文件中生成的宏名称

使用 docstrip 生成的文件中生成的宏名称

我开始使用DocStripDoc。我已经设法使用不同的防护装置或模块,从一个单一源创建不同的包文件.dtx,我对此很满意。

我想知道是否有可能将模块名称自动集成到宏名称中?

例如,让我们想象一下,我的foobar.ins文件如下所示:

\input docstrip.tex

\generate{\file{foo.sty}{\from{foobar.dtx}{foo}}}
\generate{\file{bar.sty}{\from{foobar.dtx}{bar}}}

此外,假设我的foobar.dtx文件有一些这样的代码:

% \begin{macro}{\ifmy@foo@baz}
% \begin{macro}{\ifmy@bar@baz}
% This boolean switch is used to activate special baz options.
%    \begin{macrocode}
%<foo>\ifmy@foo@baz
%<bar>\ifmy@bar@baz
%    \end{macrocode}

毫无疑问,这是可行的。另一方面,自动设置宏名称并依赖于文件中使用的 guard/modulename 会更优雅.ins。当我运行tex foobar.ins并在新创建的文件中进行查看时foo.sty,我发现在文件顶部有类似This is file foo.sty, ... with option 'foo'. Docstrip 的东西,当然可以将实际的选项名称插入到文件中,它正在创建(至少作为注释)。

像这样的事情就很好了:

%    \begin{macrocode}
\ifmy@\actualoption@baz
%    \end{macrocode}

因为这样就足够了,只使用一行即可生成所有所需的变体。

相关内容