Latex模板及其维护

Latex模板及其维护

在我的公司,我们使用 Latex 创建内部和外部文档。问题是,根据个人喜好,每个人都会创建不同的文档样式。现在我的目标是引入一个 Latex 模板,该模板涵盖所有需要的样式配置(例如字体、标题、表格、图形等)并将它们统一起来。

  1. 从哪里开始比较好?公司模板应该包含哪些内容?有哪些好的例子?
  2. 我如何确保它保持可维护性?我最初不想用软件包淹没它,但我也想阻止用户随意添加其他软件包。

答案1

我没有编写公司 TeX 模板的经验,所以也许其他处理过这些模板的人可以参与进来,但无论如何,让我分享一些想法。

在开始编写公司模板之前,有很多事情需要考虑。你肯定会想读一下https://github.com/johannesbottcher/templateConfusion什么是模板?为什么应该避免使用(复杂)模板?以及相关问题。

一如既往,答案是:这取决于您的情况。

模板到底是什么?

在 TeX 文档的上下文中,模板实际上是什么并不完全清楚。

它可能只是一个带有预填充前言的示例文档,其中加载了一些包并调整了一些设置,以及一个几乎为空的文档主体,供用户填写。但它也可能是人们在实际文档中加载的文档类 ( .cls) 或包 ( .sty)。模板可以是数十个文件的复杂排列,也可以是一个包含大约一百行代码的文件。因此,每当您听到两个人谈论“TeX 模板”时,您都需要意识到他们实际上谈论的可能不是同一件事。

固定与可变输出

如果您的公司有全面的“企业设计”政策和严格的布局和设计规则,那么很明显您的模板应该强制执行该设计,并且您可以隐藏在政策背后来解释为什么人们不能改变这些事情。

另一方面,如果没有规则,您仍然可以决定强制执行合理的布局并告诉人们不要更改它。

最后,您可能决定让用户控制文档布局。您只需几个选项即可做到这一点(假设用户可以在衬线字体和无衬线字体之间进行选择,或者通过简单选项调整字体大小),或者您可以允许更多自定义。您想要允许的自定义和变化越多,您的模板就会变得越复杂,维护起来也越困难。

用户期望

您还需要考虑用户的期望、需求和要求。

如果您有许多 TeX 用户希望能够继续使用他们多年来一直使用的代码和他们最喜欢的软件包,那么您要么需要让您的模板与他们的代码兼容,要么要很好地解释为什么他们不能将他们的代码与您的模板一起使用,但仍应使用您的模板。当然,让模板与人们可能遇到的几乎所有东西兼容,同时实现一些有用的东西是极其困难的。

您的用户是否希望无需任何额外努力就能编写自己的文档,或者他们是否希望能够控制文档的每一部分?

范围

编写纯文本和简单文本文档的模板比编写包含数学公式、化学、表格、图形、参考书目等的复杂文档的模板更容易。一旦通过包实现的功能开始发挥作用,您就必须在以下两者之间进行选择:(1) 在模板中明确加载包,从而阻止使用具有类似范围的不兼容包,并加载某些用户可能永远不需要的东西;或 (2) 不加载任何内容,让您的用户决定,在这种情况下,用户可能会遇到不兼容问题,您可能无法获得您所追求的公司文档的统一性。

文档

文档是编写和发布模板的关键部分。理想情况下,您不仅要记录模板的命令和选项,还要解释您的设计决策并提供进一步使用模板的提示。如果您的模板加载的软件包相对较少,文档可以列出人们可能想要加载以获得 XYZ 功能的有用软件包。

如果可能的话,也为您的用户提供帮助/支持:不仅在模板无法按预期工作时,而且在诸如“我该如何……?”之类的问题上也提供帮助/支持。如果您的用户在需要任何东西时都向您求助,您就会知道模板是否可以改进,并且可以确保他们不会从互联网上随机复制代码,然后抱怨它无法与您的模板配合使用。

维护

通常TeX 代码越短,维护起来就越容易。因此,理想情况下,您只需要实现绝对必要的代码。找到可以为您完成工作的软件包,但要确保所有要使用的软件包都能正常工作。对要使用的软件包进行背景检查,并只加载真正需要的软件包。尝试仅使用不太可能在软件包更新时发生变化的高级功能。(软件包作者通常重视稳定性,因此他们会尽可能保持用户/高级界面的稳定,但低级代码可能会发生变化。)如果您必须使用未记录的内部代码,请确保定期检查模板是否仍能执行其应执行的操作。

通常我建议让模板与 TeX 世界中的发展保持同步。如果您使用的软件包的新功能意味着您可以找到更优雅的方式来完成工作,请更新您的模板。但在您通常无法完全控制您的 (TeX) 系统的公司环境中,更新可能很难实现...实际上,这与另一个因素有关:向后兼容性。特别是对于公司文档,您希望确保它们在一段时间后仍能正确编译,因此在更新模板后,用户界面不应以会破坏旧文档的方式进行更改。


如果你正在寻找例子,CTAN 上有很多东西(例如https://ctan.org/topic/dissertation- 论文模板是迄今为止最常见的 TeX 模板)。

classicthesiscleanthesis是更通用的模板,不遵循固定的准则,因此至少让用户认为他们应该能够随意更改文档的外观。

然后有像这样的课程msu-thesis它体现了大学的要求,通常不允许任意的布局更改。

相关内容