有人能解释一下类和包之间的区别吗?我们称其为prosper
类和amsmath
包。我找不到它们的区别。
答案1
请参阅适用于课程和软件包编写者的 LaTeX2e,“它是一个类还是一个包?” 它陈述了以下“经验法则”:
如果 [new] 命令可以与任何文档类一起使用,则将它们作为一个包;如果不能,则将它们作为一个类。
下面这段引言可能更有启发性:
[A] 公司可能有一个本地
ownlet
类,用于使用自己的带头便笺纸打印信件。此类类将建立在现有类之上,letter
但不能与任何其他文档类一起使用,因此我们有ownlet.cls
而不是ownlet.sty
。相比之下,该
graphics
包提供了将图像包含到 LaTeX 文档中的命令。由于这些命令可以用于任何文档类,因此我们有graphics.sty
而不是graphics.cls
。
答案2
首先:一个文档只能有一个类,但可以有多个包。
一个类设置整体文档格式,如可用的章节结构(例如,由和\chapter
提供但不由提供),并且还定义一些基本的字体相关的宏。book
report
article
一般来说,包只是一些带有接口的打包的 LaTeX 代码。它可以添加和修改文档的样式,也可以添加更多功能。例如,tikz
一个包允许您绘制图表,但根本不会修改文档样式(为什么要这样做?)。
答案3
我发现这个常见问题解答(什么是 LaTeX 类和包?) 可能有助于理解这个问题。
我在此仅将全文引述如下:
什么是 LaTeX 类和包?
LaTeX 的目标是成为通用文档处理器。通过选择一些指令,用户可以使用 TeX 基元,可以实现这一目标,但这种程序被认为过于死板(对于普通用户来说可能过于艰巨)。因此,LaTeX 的设计者创建了一个模型,该模型提供了文档设计的抽象。显然,并非所有文档看起来都一样(即使用抽象的眼光来看也是如此),因此该模型使用文档类。基本 LaTeX 提供五种文档类:书籍、报告、文章和信件。对于每个类,LaTeX 都提供了一个类文件;用户可以通过文档顶部的 \documentclass 命令安排使用它。因此,一个以 开头的文档
\documentclass{article}
可以被称为“文章文档”。这是一个不错的方案,但它有一个明显的缺陷:LaTeX 类文件提供的实际排版设计并不受欢迎。解决这个问题的方法是改进类。为了改进类,程序员可以编写一个加载现有类的新类文件,然后对文档设计进行自己的处理。
如果用户找到了这样一个精炼的类,那么一切都很好,但如果没有,常见的方法是加载一个(或几个)包。
LaTeX 发行版本身提供的软件包文件很少,但在档案中可以找到很多由各种作者编写的软件包文件。有几个软件包专门用于调整文档的设计 — 使用此类软件包可以实现程序员通过改进类所实现的功能。
其他软件包提供了新的功能:例如,图形包(实际上作为任何 LaTeX 分发版的一部分提供)允许用户将外部提供的图形加载到文档中,而 hyperref 包允许用户在文档中构建超级引用。
在光盘上,类文件和包文件仅在其名称“扩展名”上有所不同——类文件称为 *.cls,而包文件称为 *.sty。因此,我们发现 LaTeX 标准文章类在光盘上由一个名为 article.cls 的文件表示,而 hyperref 包在光盘上由一个名为 hyperref.sty 的文件表示。
在 LaTeX 2.09 中,类与包的区别并不明显 — 所有东西都被称为样式(“文档样式”或“文档样式选项”)。命名法的改变其实并不重要:重要的是要理解其他人在谈论什么。
本答案最后编辑于:2013-10-21
网络上有这个问题:https://texfaq.org/FAQ-clsvpkg