什么是 docstrip 实用程序?我在许多来源中多次看到过下面的字符串:
generated with the docstrip utility
但它是什么?它是一种 LaTeX 编辑器吗?
答案1
DocStrip 是一种从源文件中删除注释的主要方法。虽然现在不是什么大问题,但从历史上看,将注释转换为
% Some comment about code
% More comments about code
\CodeIsHere
% Followed by more description
只是
\CodeIsHere
因为 TeX 需要处理的行数较少,因此读取文件的速度更快。
DocStrip 能够进行这种转换,留下一个带有注释的“源”文件和一个不带注释的“生产”文件。但是,通过使用所谓的警卫DocStrip 还提供了此转换的选择性。例如,我有一个演示.dtx
文件仅限我的博客它使用各种保护措施来允许提取单个源文件以生成一个README
、一个.ins
文件(DocStrip 传统上需要它来进行提取过程)和一个或多个.sty
文件。例如,我在siunitx
允许我拥有一个包含 LaTeX 包和各种配置文件的文件。您还可以.sty
从单个源中提取多个文件。这比简单地删除注释更“高级”,因为您可以直接在 LaTeX 中使用注释.sty
文件,但如果源包含多个要提取的文件,则无法这样做。
DocStrip 不仅限于提取类似 TeX 的材料:它提供了一系列命令来改变剥离过程的操作方式。提取 TeX 代码后,DocStrip 最常见的用途可能是提取 Lua 代码以供 LuaTeX 使用。TeX 和 Lua 代码都可以包含在单个源中,DocStrip 将正确处理提取(使用正确的设置)。
答案2
你可以去texdoc docstrip
获取它的文档,或者这里有一份副本http://www.tug.org/texlive/Contents/live/texmf-dist/doc/latex/base/docstrip.pdf
它是一组作为核心 LaTeX 的一部分分发的 tex 宏,它可以生成包和类文件.sty
,并.dtx
通过从文档版本(通常是.dtx
文件)中删除注释来生成。它还可以做一些其他的事情,重新排列和组合代码,但基本上删除注释是它的主要功能(也是其名字的由来)。
所有核心 LaTeX 发行版和许多贡献的包都以文档形式分发,实际的包是通过在使用docstrip
宏的文件上运行 TeX 来生成的。