在最近的 MiKTeX 更新中它被标记为过时并被删除后,我一直尝试garamondx
在 MiKTeX(在 Windows 10 机器上)上进行安装。
按照garamondx 自述文件页面,我从 CTAN 下载garamondx.tds
,解压后,运行以下两个指令(进入解压后的文件夹后):
initexmf --update-fndb
initexmf --edit-config-file updmap
第一个任务毫无警告地完成,而第二个任务失败并出现以下消息:
C:\Users\yourname\Downloads\garamondx.tds> initexmf.exe --edit-config-file updmap
Sorry, but "MiKTeX Configuration Utility" did not succeed.
The log file hopefully contains the information to get MiKTeX going again:
C:/Users/yourname/AppData/Local/MiKTeX/2.9/miktex/log/initexmf.log
You may want to visit the MiKTeX project page, if you need help.
上述文件中的相关行.log
如下
2017-05-22 11:19:33,907+0100 INFO initexmf - starting: MiKTeX Configuration Utility 2.9.6234 (MiKTeX 2.9.6210 64-bit)
2017-05-22 11:19:33,940+0100 FATAL initexmf - Windows API error 2: The system cannot find the file specified.
2017-05-22 11:19:33,940+0100 FATAL initexmf - Info: fileName="GitPad"
2017-05-22 11:19:33,940+0100 FATAL initexmf - Source: Libraries\MiKTeX\Core\Process\win\winProcess.cpp
2017-05-22 11:19:33,940+0100 FATAL initexmf - Line: 68
我做错了什么?这在 Windows 上能用吗?
鉴于从日志中可以看出 miktex 正在尝试使用GitPad
,我检查并意识到(在评论中提出建议后)系统变量EDITOR
已为我设置GitPad
为(出于我不知道的原因)。使用 powershell 更改此变量的值后$env:EDITOR = Notepad
,我尝试再次运行该命令。它仍然失败并出现相同的错误,但现在日志在另一行记录了一个错误:
2017-05-22 15:33:01,899+0100 INFO initexmf - starting: MiKTeX Configuration Utility 2.9.6234 (MiKTeX 2.9.6210 64-bit)
2017-05-22 15:33:01,954+0100 FATAL initexmf - Windows API error 193.
2017-05-22 15:33:01,954+0100 FATAL initexmf - Info: fileName="Notepad", commandLine="Notepad C:\Users\lk\AppData\Roaming\MiKTeX\2.9\miktex/config\updmap.cfg"
2017-05-22 15:33:01,954+0100 FATAL initexmf - Source: Libraries\MiKTeX\Core\Process\win\winProcess.cpp
2017-05-22 15:33:01,954+0100 FATAL initexmf - Line: 270
该变量的预期值是多少EDITOR
?
答案1
在找到问题所在和解决方法之后,我想这可能对其他因类似问题而来到这里的人有用。
故障原因其实很简单:我使用的是非标准 Windows shell(Windows 上的 powershell 和 linux bash shell)。在那里,系统EDITOR
变量被设置为GitPad
(可能是由某些 git 安装设置的,我不确定),但即使将其重新设置为其他值,例如Notepad
,使用$env:EDITOR = Notepad
也不起作用,并给出了主问题中编辑中报告的错误。
解决方案是简单地切换回使用cmd
。在那里,EDITOR
变量未设置,并按initexmf --edit-config-file updmap
预期打开记事本窗口,以便我可以继续关注README 页面上的说明。
不过公平地说,这些并没有真正起作用,而且garamondx.sty
仍然没有找到。再挖掘一下,我这里,我在那里了解到我必须创建一棵本地texmf
树。我找到了如何做到这一点的说明另一个答案:我打开了MiKTeX Settings (Admin)
,在Roots
选项卡中我添加了解压缩的文件夹garamondx.tds
,然后单击了选项General
卡Refresh FNDB
,然后Update Formats
。
但这还不够!文件\usepackage{garamondx}
仍然无法编译,日志文件中报告了以下错误(以及其他错误):
pdflatex.EXE (file zgmr8r): Font zgmr8r at 600 not found
再次,进一步挖掘让我发现这最后一篇文章。结果我可能会跑updmap
而不是updmap-sys
在路上的某个地方(很有可能,因为我一直在尝试很多方法来做到这一点),而你显然应该绝对避免!无论如何,这导致pdftex.map
我的电脑上出现了 2 个文件,一个在 TeX 系统中,一个在我的个人树中。我删除了个人树中的那个文件,最后我就可以garamondx
再次编译文件了。
多么刺激的旅程啊!