我是否应该为我的常用序言创建一个包或类,或者将其包含在每个文档中?

我是否应该为我的常用序言创建一个包或类,或者将其包含在每个文档中?

这个 TeX.SE 线程是一个很好的资源,可以让你了解如何将常用的序言变成包或文档类。我想知道为什么我应该这么做。与在撰写的每份文档中都保留序言相比,这样做的利弊是什么?

我是这样看的:

在每份文件中保留序言的优点

  • 如果需要的话可以轻松编辑
  • 如果我忘记了如何定义某个东西,我只需向上滚动并查看
  • 每个文档仅需跟踪一个文件
  • 如果我将文档发送给其他人,他们可以立即编译,而不必担心将我的包/类文件放在哪里
  • 对我的序言的逐步修改不会导致文件的堆积,这些文件永远无法移动,否则所有旧文档都会被破坏

在每份文件中都保留序言的弊端

  • 占用电脑更多空间
  • 您必须向下滚动一点才能开始在文档中书写

(使包或类完全对偶的优点和缺点)

对我来说,这在很大程度上不利于制作包或类。我是否忽略了可能导致平衡向另一个方向倾斜的考虑因素?也许对于某些文档,一个选择比另一个更好?

答案1

正如 egreg 在他的评论中指出的那样,维护一个通用的序言有点愚蠢,因为不同类型的文档有不同的需求。例如,报告的序言可能需要与演示文稿所需的设置截然不同的设置。话beamer虽如此,我发现为某种类型的文件让我的生活变得轻松多了。

问问自己,是否有可能对给定类型的多个文档(例如一系列讲座幻灯片)重复使用相同的序言。

如果答案是肯定的,那么创建自定义类/包就是可行的方法。明显的好处包括:

  • 可重用性:无需为每个新文档复制并粘贴相同的序言。
  • 一致性输出,从一个文档到下一个文档。
  • 细化:当您发现新的需求时,您可以向样式文件中添加新功能。
  • 可维护性:您只需更改您的样式文件即可使所有使用它的文档的更改生效。
  • 可读性:您的输入文件的序言将会短得多。

如果答案是否定的,如果您只打算在序言中使用一次这些特定设置,那么就不要费心创建自己的样式文件。

答案2

正如其他人指出的那样,尝试制作通用的序言可能会导致臃肿,因为您最终会定义大量与当前文档无关的宏,甚至可能造成损害(就名称冲突等而言);但很明显,逐个文档剪切并粘贴相同的代码或大量相同的代码是有问题的。但是,以这种方式考虑问题似乎就像在问“我应该包括我安装的每个 CTAN 包,还是每次都剪切并粘贴所有相关的宏?”;在我看来,根据功能和/或意图对常用的宏进行分组,并仅包括您需要的宏,是一种非常合理(且可取)的中间立场。

相关内容