如何*自动*设置 MikTeX 的搜索路径?

如何*自动*设置 MikTeX 的搜索路径?

问题的简短版本

我需要自动(而不是手动)安装一些在安装 MiKTeX 2.9 后未包含的软件包。我通过以下方法解决了这个问题Leo Liu 的回应,但这个过程非常手动...有没有办法做同样的事情,但使用命令行?或者更好的是使用批处理文件或类似的东西?

问题的详细版本

我正在创建一个自动流程来安装 MiKTeX 并编译 .tex 文件以生成 .pdf 文档。此流程将在我们的车间使用,并在我们的所有系统中实施。这些系统运行 Windows 7 Professional 32 位,但无法访问互联网。这就是为什么我们必须将 USB 安装程序中的所有可执行文件和所需文件带到车间。

到目前为止我尝试过的所有事情:

  1. 起初我以为如果 MiKTeX 安装时带有选项“即时安装缺失的软件包:“ 设置是的,这样就可以了。不幸的是,这似乎只有在有互联网连接的情况下才有效……
  2. 然后我尝试在 MiKTeX 中创建一个本地 texmf 树,如下所示Speravir 在这里解释,或者其他几个人也解释了。不幸的是,就像@user5751924 [1] 和其他人一样,创建一个“符合 TDS 的根目录”似乎是一项不可能完成的任务……这与尝试使用mpm(MiKTeX 包管理器)命令 [2] 一起出现,同样无济于事。特别是,mpmcli_管理员日志当我尝试例如时总是说“不是软件包存储库”:

    mpm --admin --install-some=list.txt --repository=C:\localtexmf

    在这里,“列表.txt“包含(除其他外)以下我需要安装的软件包:

    • 标题安全

    • 花式高清

    • 西弗森

    • 彩色

    • tikzpage节点

    • 图形文件

    所有这些包都是手动下载并添加到 USB 安装程序中的,其方式应该符合 TDS 标准,但显然出了问题。

  3. 我也尝试过查阅 MiKTeX 手册,但没有成功。我甚至查看了 PackageManager.cpp 源代码,试图了解我的目录出了什么问题,但这是一条死路 :(

  4. 最后,我按照@Leo Liu 的回复进行了手动安装,它在一台机器上成功了!但由于这个过程需要为地板工厂的数百台机器完成,因此这个过程必须自动化。所以他的回答对我没有太大帮助。

我怎样才能自动化这个过程来做到这一点使用命令行?使用批处理文件也是可以的。或者任何其他帮助也非常欢迎!

提前致谢!

附言:如果需要的话我很乐意提供任何额外的信息...

[1]“本地软件包存储库”的准确定义和准确相关的程序

[2]https://docs.miktex.org/manual/mpm.html

答案1

graphicx 是必需的包。因此无需安装它。

安装其他软件包

使用本地存储库

从 CTAN 获取所需的 miktex 包

 http://mirrors.ctan.org/systems/win32/miktex/tm/packages/

大多数包都是 lzma 文件,但也有其他格式。

同时获取miktex-zzdb1-2.9.tar.lzmamiktex-zzdb2-2.9.tar.lzma。确保所有文件都来自同一个 ctan 镜像,以便版本匹配。

把所有东西都放到一个文件夹中(不要解压文件!)例如C:\localrepository。然后使用以下命令安装它们

  mpm --admin --install-some=list.txt --repository=C:\localrepository

我不知道这个--admin开关是否适合您。如果没有它,mpm 将在 USERINSTALL 树中安装软件包。

list.txt应该包含一个列表米克泰克斯-package 名称。因此不是hhline但是tools(但这应该已经安装),也不是zref但是oberdiek

使用 localtexmf

从同一来源获取包。创建一个C:\localtexmf。解压此文件夹中的包(例如 7zip 可以处理 lzma)。检查所有文件是否位于正确的子文件夹中。例如 xcolor.sty 应该位于C:\localtexmf\tex\latex\xcolor。您可以在 miktex 的包管理器中查看包属性中每个文件的正确路径:

在此处输入图片描述

当 localtexmf 正确填充后,您可以将其复制到合适的位置,然后将其附加到 miktex 系统

initexmf --register-root=C:\localtexmf

再次,是否使用取决于您的实际设置--admin

可能有更快、更自动化的方法来设置这样的 localtexmf(也可能使用 mpm),但无论如何,我认为本地存储库是更明智的解决方案。

相关内容