![从哪里开始创建新包?](https://linux22.com/image/479337/%E4%BB%8E%E5%93%AA%E9%87%8C%E5%BC%80%E5%A7%8B%E5%88%9B%E5%BB%BA%E6%96%B0%E5%8C%85%EF%BC%9F.png)
我想创建一个新的 LaTeX 软件包来帮助自己和同一领域的其他研究人员排版他们的工作。目前,这主要是手动完成的,虽然这种方法大多有效,但它很笨重、缓慢且容易出错。
我在网上搜索到了很多信息(以及帽子), 最为显着地Overleaf 的建议, 这适用于课程和软件包编写者的 LaTeX2e关于 LaTeX3 的文档和文件解释3和解析软件包。我不清楚我应该遵循其中哪一个。对于类和软件包编写者来说,LaTeX2e 似乎是显而易见的地方,但它已经有 14 年的历史了。同时,我知道 LaTeX3 即将推出,我希望这个软件包是“面向未来的”,但我不能确定它是否是我现在应该开始使用的(老实说,上述哪个软件包是我应该关注的)。
我在这里只能找到几个看似相关的问题(即这,这和这) 并且他们或多或少都比我更早一些进入这个领域。
所以,我的问题是,在当今时代,我应该从哪里开始创建一个全新的 LaTeX 包?我是否错过了一些重要的指南/建议?如果我能确保这个包可以与任何 LaTeX 发行版和引擎一起使用,我会更高兴。
答案1
由于没有其他人发布过答案,所以我想我应该发布一个,以防有人偶然发现这个问题。这个答案只涉及包,因为这是我需要的。我不知道如何编写类。
首先,我想说:你真的需要创建新包吗? 肯定没有现成的包可以使用吗? 您是否只有几行自定义命令,因此不值得付出努力?
如果你只想写几个命令,那么检查背页建议,面向类和包编写者的 LaTeX2e和LaTeX Wikibook 上的页面可能是最好的起点,也许就是您所需要的。另外,如果您可以访问它的副本,那么值得一看《LaTeX Companion》(第 2 版),特别是第 14 章和附录 A(如果您使用 O'Reilly 的在线学习系统,可以在该系统中找到)。
另一方面,如果你想要创建一个带有支持文档的完整软件包,特别是如果你想要将其贡献给 CTAN,那么最好的选择是大概使用这种.dtx
方法,可以说是事实上如今,这已成为标准。这实际上涉及创建一个特殊文件,其中包含命令本身以及支持它们的文档。dtx
文件的使用是一个太大的话题,无法在这篇文章中描述,因此,我将包含一些可能有帮助的链接:
- 这dtx 教程。
- 简要dtx 常见问题解答。
- 关于的博客文章示例 dtx 文件。
- 文档LaTeX
doc
类,此系统的支持类。 - 文档
DocStrip
dtx
,它是将您的命令从文件中提取出来并放入文件的部分sty
。 sty2dtx
或者makedtx
,Perl 脚本从文件中提取内容sty
并使其成为适当的dtx
文件。- 这dtx 画廊,其中包含一些示例 dtx 文件 - 尽管它们现在都很旧了。
- 这些 问题关于准备要上传到 CTAN 的包(我在发布这个问题后才发现它们)。
几乎可以肯定,还有其他好的资源,但这些是我发现的并且对我完成任务有帮助的资源。
最后,我完全放弃了现在使用 LaTeX3 的想法,因为我找不到任何能很好地介绍它的东西,而这些东西看起来不像是那些已经熟悉它的人的参考资料。我想那里应该有很好的资源,但我没有找到它们。
编辑:在我写下这个答案几个月后,Alan Xiang撰写了 LaTeX3 入门教程并发布了在他的博客上。我还没有机会仔细研究它,但它看起来正是我第一次发布这个问题时希望找到的东西。谢谢,艾伦!
我也刚刚遇到了其他 TeX.SE 问题(我不知道为什么我之前没能找到它们),它们似乎有直接有用的内容:请参阅这里和这里。