![我是否应该为我的常用序言创建一个包或类,或者将其包含在每个文档中?](https://linux22.com/image/269124/%E6%88%91%E6%98%AF%E5%90%A6%E5%BA%94%E8%AF%A5%E4%B8%BA%E6%88%91%E7%9A%84%E5%B8%B8%E7%94%A8%E5%BA%8F%E8%A8%80%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E5%8C%85%E6%88%96%E7%B1%BB%EF%BC%8C%E6%88%96%E8%80%85%E5%B0%86%E5%85%B6%E5%8C%85%E5%90%AB%E5%9C%A8%E6%AF%8F%E4%B8%AA%E6%96%87%E6%A1%A3%E4%B8%AD%EF%BC%9F.png)
这个 TeX.SE 线程是一个很好的资源,可以让你了解如何将常用的序言变成包或文档类。我想知道为什么我应该这么做。与在撰写的每份文档中都保留序言相比,这样做的利弊是什么?
我是这样看的:
在每份文件中保留序言的优点
- 如果需要的话可以轻松编辑
- 如果我忘记了如何定义某个东西,我只需向上滚动并查看
- 每个文档仅需跟踪一个文件
- 如果我将文档发送给其他人,他们可以立即编译,而不必担心将我的包/类文件放在哪里
- 对我的序言的逐步修改不会导致文件的堆积,这些文件永远无法移动,否则所有旧文档都会被破坏
在每份文件中都保留序言的弊端
- 占用电脑更多空间
- 您必须向下滚动一点才能开始在文档中书写
(使包或类完全对偶的优点和缺点)
对我来说,这在很大程度上不利于制作包或类。我是否忽略了可能导致平衡向另一个方向倾斜的考虑因素?也许对于某些文档,一个选择比另一个更好?
答案1
正如 egreg 在他的评论中指出的那样,维护一个通用的序言有点愚蠢,因为不同类型的文档有不同的需求。例如,报告的序言可能需要与演示文稿所需的设置截然不同的设置。话beamer
虽如此,我发现为某种类型的文件让我的生活变得轻松多了。
问问自己,是否有可能对给定类型的多个文档(例如一系列讲座幻灯片)重复使用相同的序言。
如果答案是肯定的,那么创建自定义类/包就是可行的方法。明显的好处包括:
- 可重用性:无需为每个新文档复制并粘贴相同的序言。
- 一致性输出,从一个文档到下一个文档。
- 细化:当您发现新的需求时,您可以向样式文件中添加新功能。
- 可维护性:您只需更改您的样式文件即可使所有使用它的文档的更改生效。
- 可读性:您的输入文件的序言将会短得多。
如果答案是否定的,如果您只打算在序言中使用一次这些特定设置,那么就不要费心创建自己的样式文件。
答案2
正如其他人指出的那样,尝试制作通用的序言可能会导致臃肿,因为您最终会定义大量与当前文档无关的宏,甚至可能造成损害(就名称冲突等而言);但很明显,逐个文档剪切并粘贴相同的代码或大量相同的代码是有问题的。但是,以这种方式考虑问题似乎就像在问“我应该包括我安装的每个 CTAN 包,还是每次都剪切并粘贴所有相关的宏?”;在我看来,根据功能和/或意图对常用的宏进行分组,并仅包括您需要的宏,是一种非常合理(且可取)的中间立场。