我安装了 MacTex basic 2015,当我使用命令打开 latex 文件时\usepackage{authblk}
,TexShop 提示authblk.sty
未找到。我也尝试将该命令更改为\usepackage{preprint}
,但它会提示preprint.sty not found
。但即使我从 CTAN 安装预印包,文件夹中也没有 .sty 文件。只有 .ins 和 .dtx 文件。
如何解决这个问题呢?
答案1
问题
Basic TeX 发行版会安装一组有限的软件包,其他软件包则需要您手动安装。通常的做法是使用 TeX Live Utility,它不会随 Basic TeX 一起安装,但可以在此处下载:http://amaxwell.github.io/tlutility/。
但是,TeXLive Utility 默认设置为仅管理当前年份的发行。这是因为 TeX Live 的年度发行系统:
它是可以使用 TeX Live Utility 将软件包添加到较旧的发行版,但这需要更改存储库,除非您确定自己在做什么,否则我不建议这样做。此处概述了执行此操作的方法(尽管此解决方案未明确使用 TeX Live 实用程序。)
可能的解决方案
有几种方法可以解决此问题。
也许最简单的解决方案是完全放弃 Basic TeX,并安装完整的 TeX Live 2016。这将安装所有内容,并且您几乎不会再遇到缺少包的错误。
如果你的空间真的不够,你可以安装 Basic TeX 2016。然后你可以使用 TeX Live 实用程序安装缺少的软件包。如果你觉得必须使用 Basic TeX。
但是请注意,Basic TeX 的另一个缺点是没有简单的方法来跟踪已安装的软件包,因此当您更新到下一年时,您将不得不重新安装那些额外的软件包。请参阅:
一个非常快速而肮脏的解决方案(我不推荐)是从 CTAN 手动安装包并将其放在本地文件夹中。出于各种原因,我不推荐这样做。首先,一些包以+文档
texmf
的形式分发,需要在文件上运行 TeX 才能生成文件。因此,安装并不像将文件复制到本地那么简单。但更严重的原因是.ins
.dtx
.ins
.sty
texmf
不是对 TeX Live 中的任何软件包执行此操作的缺点是,如果您更新发行版,您安装的本地版本将始终优先于较新版本。这可能会(并且很可能会)导致将来出现问题。有关安装本地软件包的更多信息,请参阅:
我真的不推荐选项 3。所以我个人会选择选项 1,这将为您节省将来的很多麻烦。
答案2
@AlanMunn & @Sidd:您将无法使用 TeX Live Utility 更新您的 BasicTeX 2015,因为它们已被 BasicTeX(和 MacTeX)2016 取代。TeX Live(和 Basic TeX)位于 Finder 隐藏的目录中。但这不是放置任何文件的地方。生成上述 .sty 文件后,您应该将其放在您的个人 texmf 树中,即 ~/Library/texmf/tex/latex/authblk/。首先,~/Library 是您 HOME 文件夹中的 Library 文件夹---不是硬盘根目录中的 /Library 文件夹。通过单击 Finder 中的“前往”菜单,然后按下 Option 键来打开该文件夹;将出现一个用于打开该 Library 文件夹的新项目。然后在该 Library 文件夹中创建嵌套文件夹 texmf/tex/latex/authblk/。最后将 authblk.sty 文件(以及如上所述生成的其他文件)放在该文件夹中。从那时起,LaTeX 将能够找到 authblk 包。