这个问题和之前的帖子非常相似: 我应该将自己的 .sty 或 .cls 文件放在哪里,以使它们可供我的所有 .tex 文件使用?
我在 Windows 7 上使用 MiKTeX 2.9 和 TeXnicCenter 编写和执行我的 LaTeX 文件。我使用 Elsevier 的模板提交期刊文章,但收到 LaTeX 错误,提示“未找到文件‘numcompress.sty’”。此文件当前与其他文件位于同一目录中elsarticle
:C:\Program Files (x86)\MikTex 2.9\tex\latex\elsarticle
。我实际上完全按照上述问题中发布的说明进行操作:https://tex.stackexchange.com/a/20121/但结果仍然没有改变。
答案1
您是以用户身份还是管理员身份使用 MikTeX?为安全起见,请更改为管理员,检查您的文件numcompress.sty
是否确实在目录中C:\Program Files (x86)\MikTex 2.9\tex\latex\elsarticle
。现在启动 MiKTeX 2.9 Windows start
-> all programms
。选择Maintenance (Admin)
,然后Settings (admin)
(管理员很重要!)。现在选择General
并单击Refresh FNDB
。之后您可以再次更改为用户并运行 MiKTeX。Refresh FNDB
意味着刷新您使用的文件名的数据库。
答案2
正如其他人的回答所说:如果将文件放入主 miktex 树中,则应在管理员模式下更新 FNDB。但不建议将此树用于本地添加。当 miktex 更新软件包时,您的添加可能会丢失。使用其他树之一(UserConfig 或 CommonConfig)或(更好)使用新的本地树:创建(例如)C:\mylocaltree\tex\latex\elsarticle
,在此文件夹中复制您的文件,然后C:\mylocaltree
在 miktex 设置中将其添加为新根。
答案3
首先,启动以管理员身份运行 Windows cmd 行并使用以下方式搜索.sty
您知道存在且有效的文件查找texmf实用程序,例如
findtexmf colortbl.sty
确保您的.sty
文件位于类似的位置。
现在,使用初始化公用事业:
initexmf --admin -u
initexmf --admin --dump
第一个命令刷新文件名数据库,第二个命令执行其他更新。您可能不需要两个命令,但这样做不会有什么坏处。
答案4
绝对地不要将本地文件添加到您的 MikTeX 分发文件夹中。升级后,它会消失,您将无法再编译文档,这将带来很大的麻烦。当您几年后想要重新编译它时,期刊甚至可能没有您需要的版本可供下载。
Ulrike Fischer 的答案是迄今为止唯一正确的答案,但有几个好地方可以放置该文件:
- 向 MikTeX 添加第二个根,例如
C:\texmflocal\
。将其放在适当的子目录中,例如C:\texmflocal\tex\latex\
。 - 在您的用户目录中创建一个本地 texmf 根目录,并使用
TEXINPUTS
环境变量选择它。这样您就可以拥有一个不会一直为所有人打开的根目录。 - 将文件放入您的项目文件夹中。然后,您可以确保它将与需要它的源文件一起存档。这是一个简短的文本文件,您有数 TB 的磁盘空间。
将新文件放入用户目录后,您必须更新 MikTeX Tasks 菜单下的文件名数据库,或者运行texhash
。