我经常在 LaTeX 中使用软件包时遇到问题。我重新安装了 MiKTeX,似乎解决了一些问题,让我无法知道软件包来自哪里或去往哪里。总的来说,我不确定使用\usepackage
命令时应该发生什么或会发生什么。
自动从互联网上拉取这些包是标准做法吗?它们默认放在哪里?有没有更好的地方放它们?
如果我正在排除故障,并且我们可以说软件包通常是自动安装的,那么我什么时候、是否应该手动安装软件包?如果是,我应该把它们放在哪里?
例如,我相信该包easylist
已安装在我的计算机上。我费了一番功夫才进入漫游文件夹,四处查看,实际上我看到的唯一包是几个easylist
文件,例如.sty
,以及一个关联readme
文件。我在 Windows 上搜索了easylist
,只在文件夹.tpm
中找到了一个后缀为和的文件Program Files (x86)\MiKTeX 2.9\tpm
。
我目前的问题是,我正在尝试使用该todonotes
软件包。它似乎需要该xcolor
软件包。但是它“无法找到”。它要求选择一个地方来获取它。我认为默认是“随机选择”,但我刚刚将其切换到互联网,以及国家/地区(美国)的一些随机镜像站点。这不起作用,我担心我现在已经摆弄了获取软件包的默认设置,这会在以后产生问题。
以下是我浏览过的一些其他帖子:
- MiKTeX 的最佳设置是什么,以便轻松保持所有软件包保持最新?
- 我应该将自己的 .sty 或 .cls 文件放在哪里,以使它们可供我的所有 .tex 文件使用?
- 如何在 MiKTeX(Windows)上手动安装软件包
代替图片,我有这个:
miktex-pdftex.exe: No connection could be made because the target machine actively refused it. miktex-pdftex.exe: Data: connect failed in tcp_connect() {}====================================================================== ! LaTeX Error: File `xcolor.sty' not found. Type X to quit or <RETURN> to proceed, or enter new name. (Default extension: sty) Enter file name:
并从剪贴板中:
MiKTeX Problem Report Message: No connection could be made because the target machine actively refused it. Data: connect failed in tcp_connect() Source: Libraries\MiKTeX\PackageManager\PackageManager.cpp Line: 2461 MiKTeX: 2.9 OS: Microsoft Windows 7 Home Premium Edition, 64-bit Service Pack 1 (build 7601) Invokers: explorer SystemAdmin: no PowerUser: no Root0: C:\Users\aUserName\AppData\Roaming\MiKTeX\2.9 Root1: C:\Users\aUserName\AppData\Local\MiKTeX\2.9 Root2: C:\ProgramData\MiKTeX\2.9 Root3: C:\Program Files (x86)\MiKTeX 2.9 UserInstall: C:\Users\aUserName\AppData\Roaming\MiKTeX\2.9 UserConfig: C:\Users\aUserName\AppData\Roaming\MiKTeX\2.9 UserData: C:\Users\aUserName\AppData\Local\MiKTeX\2.9 CommonInstall: C:\Program Files (x86)\MiKTeX 2.9 CommonConfig: C:\ProgramData\MiKTeX\2.9 CommonData: C:\ProgramData\MiKTeX\2.9
(来自下面的“包安装”窗口)
The required file tex\latex\xcolor\xcolor.sty is missing. It is part of the following package: xcolor The package will be installed from: ftp://... [Change...] The package will be installed for...
答案1
是的,MiKTeX 默认会“即时”安装缺失的软件包,但这可以在选项对话框中更改。所有以这种方式安装的软件包都会进入%APPDATA%\MiKTeX\<version>\
(<version>
撰写本文时为 2.9),MiKTeX 变量为UserInstall
。由于 Windows Vista%APPDATA%
解析为C:\Users\<username>\AppData\Roaming
,因此您的观察。
但这需要一个活动连接和一个响应的下载镜像。至少这两个东西中的一个在你的情况下不起作用。如果是镜像,你可以在 CTAN 镜像监视器上查看CTAN 镜像状态,如果需要,可以在 MiKTeX 设置中更改活动镜像(MiKTeX 选项,在“包”选项卡中,第一行显示活动的 MiKTeX 存储库,您可以在右侧更改它)。
我更喜欢使用包管理器安装所有包,但这需要定期进行,大约每周一次,当然还需要足够的磁盘空间。在极少数情况下,当系统要求我安装时,我会停止安装并使用包管理器运行安装。(请注意,这与通常的“手动安装”不同!您已经链接到相应的问题。)
如果您在管理员模式或具有此文件夹写入权限的单用户安装中进行了更新,则所有使用包管理器安装的包都会进入主 MiKTeX 树(请参阅Root 3
您的问题)。如果您在用户模式下安装包,则将始终安装在 中UserInstall
。
你可能会认为,在管理员模式下安装会进入CommonInstall
,这与你的情况相同。但在我的系统上,它没有被使用,指向的文件夹CommonInstall
不存在!
其他相关问题(至少部分):
答案2
(这个答案应该以 Windows 7 和 MiKTeX 为中心,并用于即时安装。我根据假定的信念/模型,认为软件包处于三种状态之一:不在计算机上、在计算机上但未安装、已安装。)
以下是有助于解决我的问题的步骤:
检查我遇到问题的镜像站点是否确实正常运行,网址为:http://www.ctan.org/mirrors/mirmon
确保代理服务器已关闭(以防您在之前的故障排除过程中无意中将其打开)。在“更改软件包存储库”表单中,单击“连接设置...”按钮,按空格键并返回。
您可以从命令提示符中检查一些东西,例如我输入了
mpm --list-repositories
,于是我决定不需要在命令提示符中查找问题(那时我发现了代理服务器问题(仍然出现 ftp 连接问题))。问题可能始于一个虚假问题,我可能认为在安装新软件包(即时)时编译时间稍长会造成问题。我可能开始到处点击,包括“代理服务器”。我希望从互联网安装时编译时会显示加载栏,但这没什么意义。
可能还存在我在这里没有遇到的其他问题。
以下是一些从总体上让我有些分心的项目(尽管它们最终不是我的问题,而是虚假的候选人)。
您可以选择手动下载软件包。这应该在与安装不同的文件夹中进行,因为据我所知,这将避免在更新安装时删除软件包的问题。(1. 按照其他线程中的建议创建文件夹。2. 将其添加到根目录。3. 刷新 FNDB。)我想您可以手动下载软件包,或者在处理 TeX 文档时下载软件包。当您编译文档时,它必须决定在哪里查找该软件包。我认为有多种方法可以做到这一点。
(另一个误导我的问题是随机存储库通常是默认的,所以我想知道我无法返回到该存储库是否是一个问题。几天前甚至在类似问题上重新安装过。此外,更新向导似乎不起作用,所以我认为这是问题的一个候选。)
以下链接可以帮助我找到方向: