dtx 文件中要放入什么内容?

dtx 文件中要放入什么内容?

许多软件包都是以单个文件的形式编写的,软件包的所有内容都从该文件中提取出来。除了文档和软件包代码(或)dtx之外,安装说明()、配置文件、测试或示例都可能包含在此单个文件中。styclsins

我理解将文档和代码紧密地结合在一起是有意义的,特别是在文学编程的概念中,但我认为一个仅包含一个巨型文件的项目会使版本控制等变得复杂。

我目前正在编写一个包含以下内容的包

  • A .ins
  • A .sty
  • 它的用户文档,
  • qstest测试,最有可能通过
  • 配置文件
  • 使用示例,每个示例本身可能跨越多个文件。

这些部分中的哪些应该是专用文件,哪些最好放入dtx

答案1

这完全取决于情况,如果您查看 latex 格式的源代码latex.ltx,它是由多个 dtx 文件组成的单个文件,主要原因是您所说的在源代码控制中更容易管理。用户文档也是一个棘手的选择,对于小型软件包,将其放在(单个)dtx 中是有意义的,但对于较大的套件,单独的文档是好的,但现在您可能需要给texdoc实用程序的维护者一个提示,例如对于latex 中的包,每个 dtx 在开始时都有一些文档,但也graphics有单独的图形指南文档。grfguide

目前texdoc graphics为您提供了 grfguide,这可能是正确的选择(不是我选择的:-) 但要查看从您需要的实际包生成的文档,texdoc graphics.pdf如果您知道它有效,那么这还可以,但如果你知道你可能不需要查看文档:-)

我认为测试最好分开进行。

所以,如果正如你所说,这是一个相当大的多文件套件,我想我会把较少的源 dtx 中的用户文档,只使其具有记录的源(传统上之后的部分\StopEventually),并为面向用户的文档和示例提供单独的文档。

答案2

单一文件.dtx在某些​​方面很方便,因为这意味着可以很容易地一次性将整个包发送给其他人。另一方面,很少有最终用户会真正使用这样的文件:如果我想向某人发送“即用型”包,我要么邮寄 TDS 样式的 zip 文件,要么在 CTAN 上链接到它。

对于小型软件包,单独.dtx使用确实有意义,并且将.ins文件与.sty源代码中的 README 一起包含在内可以为软件包作者带来极大的便利。但是,这假设源文件保持“合理”的大小以便于编辑。例如,siunitx我目前有一个源文件,但它确实太大了,我计划将其拆分以备将来发布。另一方面,我的notes2bib软件包可以作为单个文件使用,因为它不太长。

需要考虑的一个方面是用户相对程序员文档。如果您计划从事任何提供“程序员界面”和“用户”界面的工作,那么单独的.tex来源很有用。这适用于例如使用expl3LaTeX 团队强烈建议所有用户界面都带有“匹配”程序员界面的代码。

作为戴维 说测试文件几乎肯定不应该包含在您的源代码中。与代码、文档和示例不同,这些不需要分发给最终用户。例如,LaTeX 团队有一个大型的 LaTeX2e 测试套件和测试,expl3但这些都不会进入 CTAN,因为它们在开发工作之外不需要。(附言:团队的建立和测试系统可供一般使用。

我想说的是,如果您正在查看多个文件(包括示例),那么最好使用一个或多个文件.dtx来存放代码、代码注释和程序员界面,并使用单独的.tex文件来存放用户文档和演示。另一方面,由数十行代码和简单界面组成的包可以很轻松地包含在一个文件中。

答案3

该网页以某种方式解释了您想要做的事情(参见项目编号#2):http://www.aq.upm.es/Departamentos/Fisica/agmartin/webpublico/latex/FAQ-CervanTeX/FAQ-CervanTeX-8.html,但使用的是西班牙语。我想可能也有英语版本。例如:

  • “额外的 .dtx 和 .ins 格式文件……”

并且:

  • .sty、.cls 或 .fd:$TEXMFLOCAL/tex/latex//
  • .dvi、.ps 或 .pdf:$TEXMFLOCAL/doc/latex//
  • .bib: $TEXMFLOCAL/doc/bibtex/bib
  • .bst:$TEXMFLOCAL/doc/bibtex/bst
  • .tfm: $TEXMFLOCAL/fonts/tfm///
  • .vf: $TEXMFLOCAL/fonts/vf///
  • .afm: $TEXMFLOCAL/fonts/afm///
  • .pfb: $TEXMFLOCAL/fonts/type1///
  • .ttf: $TEXMFLOCAL/fonts/truetype///

相关内容