这个问题旨在作为某种参考,为那些不完全理解复杂模板的用户指出这一点。
阅读后什么是模板?模板是什么应该清楚。这里的许多问题涉及相当复杂的模板(例如论文写作),用户会问如何修改特定模板。通常建议他们根本不使用模板,而是从头开始编写文档。
为什么用户应该避免使用那些复杂的模板,或者,如果你反过来看,什么时候应该使用模板?
答案1
我是一名用户。我对 TeX 一无所知,对 Lua 和 »expl3« 也一无所知。
我是一名用户。我在电脑上安装了 texlive 或 MikTeX。我阅读了 LaTeX 简介,了解了一些基本软件包以及什么是编辑器、为什么需要编码以及 babel/polyglossia。我正在浏览我加载的每个软件包的手册(texdoc packagename
在命令行上显示手册)。如果我遇到问题,我可以制作一个最小的工作示例并获得帮助。
如果我是模板用户,我会错过很多内容。不知道如何辨别旗舰包和未维护的东西。没有办法制作一个最小的工作示例并获得帮助。
从使用复杂模板的 LaTeX 开始就像在你从未学过如何骑自行车的情况下骑着山地自行车进行下坡比赛:地狱。
答案2
首先引用一段话(来自维基百科):
如果你的朋友想给你他的模板,这是一个非常好的姿态。可以说谢谢,但是不用了,谢谢。你不会相信里面有多少奇怪的东西,而他/她甚至没有注意到。所有这些都是你不希望出现在文档中的小绊脚石。不幸的是,你在网上找到的许多模板也是如此。
下文总结了一些共同点。(下文中的术语“模板”是指您能找到的每一段代码,它们提供了功能齐全的 TeX 文档,只是缺少内容,当然还有您随处可见的自定义文档类。)
已弃用的命令
您会发现许多模板都是基于 LaTeX 2.09 的命令集构建的。其中包括\bf
不应在最近的文档中使用的命令,例如等。这些旧命令可能会造成一些危害,尤其是在处理您可能想要使用的某些文档类别(例如,参见 KOMA)时。
漏洞
许多模板都有非常糟糕的代码,通常是由于使用了彼此不兼容的包和类。 (classicthesis
就是一个很好的例子。)
上面的句子取自 Alan Munn 的评论
此外,有些模板发布过一次,但不再维护,因此可能会出现一些维护问题。如果您在这样的模板中遇到错误(错误不是修改请求),您可能需要自行解决。
单一用途模板
模板的另一个问题是,你会发现很多模板都是故意制作的。因此,X 大学的论文模板可能符合 X 大学的风格要求,但不符合 Y 大学的风格要求。你甚至不应该尝试在 Y 大学使用它,因为大多数模板都不希望你修改它们。
包裹超载
许多模板还倾向于加载一大堆包。其中一些包甚至不需要,而有些包可能与您需要使用的包冲突。您可以尝试重写或删除模板的某些部分,但这很麻烦。
预定义结构和依赖关系
有些模板(尤其是大型项目的模板)还会强制您使用特定的文件和文件夹布局,因为它们会链接到图像文件或另一个目录中的文件。有时模板甚至会引用某个软件包,但该软件包并非随所有发行版一起发布,而只随部分发行版一起发布(或必须下载)。
如果模板的名称与其他包冲突(或者太过笼统thesis.cls
),情况会变得更糟。
排版问题
和其他任何主题一样,你应该明白自己在做什么。有些模板会改变排版惯例,并强迫你采用某种特定的风格。这尤其成问题,因为世界各地的排版都不同。例如,美国风格并不总是适用于德国。
最重要的是如果你学会了如何按照你所在国家/地区的印刷术传统(例如,看booktabs
等)来呈现你的数据(这也很重要),那就更好了。
建议
如果没有必要,请不要使用(复杂)模板。如果您在大学学习,并且大学要求您使用特定模板,那么您应该使用它,但如果您可以自由选择样式,只需从最基本的文档开始,花一些时间学习 LaTeX 以获得所需的样式,而无需使用不完全适合您需求的复杂模板。
答案3
我是模板用户...
我经常使用它们:当我写信时,我会使用较旧的代码作为模板。在每个项目中,我的第一步都是查看我是否有或知道一些可以用作起始模板的较旧的代码。我使用的模板通常都不好 - 它们很旧,有时有错误,或者不太合适。我的许多模板都相当复杂。但它们却节省了我的时间:我不必重新输入所有内容,我不必费力地浏览文档来找出命令名称和语法,我可以重复使用想法。
因此,我认为告诉人们完全不要使用模板是没有什么说服力的。
...但我有处理模板的知识
在我看来,这就是主要观点:许多用户使用模板来避免学习 LaTeX 和阅读一些文档。这几乎从来都行不通。
因此,如果您想使用(相当复杂的)模板或本地自定义类:
想象一下,您遇到了致命错误,无法编译任何内容,或者有人告诉您更改标题或参考书目样式,或者您在工作过程中意识到模板中的某些内容不符合您的需求。考虑一下您是否可以处理此类问题以及如何处理。
如果答案是以下之一
- 我对 LaTeX 有足够的了解,可以调试或调整模板。
- 我有一个拥有足够知识的朋友可以帮助我。
- 我可以获得一些可以帮助我的专业支持。
- 我对模板和 LaTeX 有足够的了解,能够构建一个最小示例并在 tex.SX 或其他帮助网站上提问。
然后继续使用你喜欢的模板。如果你依赖外部支持来解决问题,也许可以先询问他们是否推荐该模板。
如果答案是
- 如果出现问题,我会将所有内容放在网上的 zip 文件中,然后希望找到一些陌生人花几个小时免费解开所有内容。
那么你最好重新考虑一下模板的使用。即使你找到了帮助,你也很少能找到它快速地因为周围愿意花那么多时间解决一个问题的人很少,而且通常你只有在经过大量的乞求和关于为什么使用你无法处理的模板的不愉快的讨论之后才能得到帮助。
如果答案是
- 我不会遇到问题——模板是完美的。
祝你好运。
答案4
我完全同意 TeXnician 的回答(+1),所以我只想强调一些方面:
模板对新手很有吸引力,因为据说模板会神奇地帮你完成大部分艰苦的工作:学习 LaTeX“几乎无关紧要”,但即使使用最好的模板,这个前提也是完全错误的。公鸡打鸣两声之前,你就会面对自己的无知。
你等待的奇迹越多,你发现的错误就越多。精心调校的类和无尽的序言主要是为了出色的视觉效果而创建的,但即使工作正常,在作者以外的人手中,也可能出乎意料地使用。结果往往只是神秘的错误,新手的噩梦。示例:
LaTeX 错误:浮点数丢失。
英文翻译:它们会飘浮起来,乔治,当你和我一起在这里时,你也会飘浮起来。
模板、自定义类和宏通常没有像样的文档,甚至源代码中也没有简单的注释。因此,不仅调试错误很痛苦。此外,发现模板功能以及如何使用它们可能会很烦人。
如果自定义类或包不在您的发行版中,您应该将这些文件保存在您的工作目录或其他可用路径中。随着时间的推移,这两种情况都有过时或丢失的风险(例如,您保存了文档,但没有保存所需的文件)。使用您的发行版标准类不会发生这种情况。
我们都喜欢按照自己的方式做事。即使是要向科学期刊提交文章。即使这显然不会让编辑高兴(提供模板只是为了避免作者的“创造力”)。如果我们最终会定制一个纠结的自定义模板……为什么不从一个更清晰的模板开始呢
\documentclass{article} \begin{document} text here \end{document}
?