作为一个相对新手的 LaTeX 用户,是否可以直接使用现有的有用软件包,还是最好坚持使用核心 LaTeX 原语和软件包以学习 LaTeX 的机制?
编辑:我应该澄清一下:
我不是一个全部的新手,我也不是完全的愚蠢到复制别人的序言而不理解每个包的用途和它做什么。
虽然,一般来说,当然重要的是要记住,人们可以依赖 LaTeX 来提供合适的格式,但整个观点像 LaTeX 这样的程序的优点在于提供灵活性和定制性。作为一名有编程背景的人,这就是我发现 LaTeX 吸引人的地方。
我的问题在于,是使用现有软件包在高级别开始自定义,还是在低级别仅使用核心命令和软件包实现相同的自定义(当相对可行时)。例如,要获得我想要的边距,我应该使用软件包geometry
还是自己进行所有计算。
这个问题类似于问一个新手程序员是否应该立即开始使用他的编程语言现有的链表数据结构,或者先编写自己的代码以便彻底理解这个概念。
答案1
我建议坚持使用基本款和“基本”套餐。至于它们是什么,可以讨论。
提出此建议的原因是,我发现大多数用户倾向于浪费(他们称之为花费:-)大量时间来调整输出文档的形式(样式)。很多问题都TeX.sx
与调整输出有关(如何在这里给文本上色,如何在那里给文本上色,如何将标题样式更改为这个,如何更改那个,...)。在大多数情况下,对于文章、报告、论文和讲义等基本文档,不需要这样做。对于基本文档,我建议您接受基本设置和/或基本文档类提供选项。
使用更少的类和包的另一个优点是可以减少类和包之间的依赖/冲突。(许多问题都是由包冲突引起的。)
我自己使用的核心基本包/类如下。(请注意,除了课程之外beamer
,我不会调整它们并接受它们的工作方式。对于课程beamer
,我已经实现了许多命令,我发现这些命令对于在同一个源文件中编写演示文稿、笔记甚至一本书很有用。)
beamer
用于演示;tikz
用于制作图片;booktabs
生产出更好的tabular
产品;xcolor
用于演示文稿中的颜色。(我不喜欢打印的连续文本/表格中的颜色。)microtype
用于边距调整/字符突出、字体扩展和首字母缩略词和缩写的字母间距;biblatex
为了更好地管理书目;pgfkeys
/pgfopts
用于键=值解析;amsmath
改进数学排版支持;acronym
用于首字母缩略词/缩写支持。
当然,我也会使用包含这些包时加载的包。例如,隐式地,我总是使用hyperref
。
答案2
在我学习数学期间,我大量使用 LaTeX,校对了朋友和同事撰写的大量文章和论文。我注意到初学者往往会加载大量的软件包,因为他们只是从某个(希望如此!)知道自己在做什么的人那里复制了文档前言,而完全不知道这二十个左右的软件包各自负责什么。这经常会导致最奇怪的错误和排版不一致。
我对 LaTeX 的态度则相反。我没有复制别人的代码,而是开始写下自己的东西,每当我遇到自己无法弄清楚如何做的事情时,我就会开始寻找一个可以解决问题的软件包。在研究过程中,你通常会偶然发现很多可以满足你需求的软件包。这让你有机会将这些软件包相互比较,并选择最轻量且无副作用的软件包。
另一个好建议是查看 LaTeX 配套程序。那里列出的软件包很可能已经存在了一段时间,因此已经从一些拼凑起来的东西发展成为相当安全的东西。
但请记住:少即是多。不要过多摆弄样式参数和花哨的格式。LaTeX 的默认值和基本构造是经过精心选择的,几乎总能生成美观的文档。
答案3
我只是部分同意其他答案的观点。如果你还不知道自己在做什么,那么最好避免过多地摆弄排版布局。大多数新手用户都来自 MS Word 背景,习惯于以不同的方式处理排版,因此为了与 LaTeX 达成 (良好的) 协议,一开始就应该尝试接受基本类的设置。
但许多用户使用 LaTeX 进行某种类型的论文写作,而论文通常对格式有严格的要求。虽然这些要求往往是印刷上的……次优,这是需要处理的现实问题。因此,需要做出调整。鉴于此,使用包而不是手动摆弄设置往往是明智之举。一个众所周知的例子是行距:最好使用包而不是更改。setspace
我\linespread
认为如果需要,段落间距也是如此:最好使用包parskip
而不是手动更改\parskip
。
此外,有些软件包对于任何非英语文档都是必不可少的(inputenc
、fontenc
、babel
),任何用户都不应该觉得有必要避免使用这些软件包。其他改进布局的软件包可以相当安全地加载并且不会造成损害(microtype
、booktabs
),因此没有必要远离这些软件包。虽然我通常不在 LaTeX 中排版数学,但我认为有一些软件包对于相对基本的数学来说是必要的(即 AMS 数学软件包)。
因此,这里有一些给新用户的建议,作为我一个相对较新的 LaTeX 用户(1.5 年),我没有很多 TeX 知识背景,但却深深地爱上了 LaTeX:
- 了解 LaTeX 的一些基本原理,了解它与普通文字处理软件的不同之处,以及如何利用这些差异为自己谋利。我强烈建议阅读LaTeX2e 的简短介绍从头到尾,只跳过真正与你无关的部分(也许是你不使用的语言——就像我的情况——数学和绘画)。
- 如果不需要,请不要更改基本布局。
- 仅当您知道原因时才使用包。尝试找出哪些包适合您所需的输出。您可以在以下位置找到适用于常见情况的流行解决方案包人们在 LaTeX 中默认加载哪些包?。
- 开发一个包含您需要的和有用的软件包的模板。始终注释 (
%
) 您使用每个软件包的原因。如果您在使用模板几个月后觉得它们不再必要,您仍然可以删除它们。 - 阅读该问题的其他答案,因为它们对此事提出了略有不同的看法和一些好的建议
:)
。
答案4
我赞同前两个答案,但我想补充一点:
首先,坚持使用基本的 LaTeX 课程(
book
、article
、report
),并尽量不要花费太多精力进行调整(节省下来的精力可以花在 #2 上);当你觉得需要在 LaTeX 上投入时间(并且有时间投入!),或者甚至想知道什么是可能的,请阅读memdesign.pdf 来自这里,并开始尝试文档
memoir
类。这是一门大型的、综合性的文献课程,我相信,经过多次学习,您的投资将获得回报。
为了充分披露,我承认自己是一名memoir
粉丝。