我昨天更新了 Miktex 中的所有软件包(因为我遇到了 longtable 问题,但这些问题对我这里的问题并不重要)。此后,我的文档出现了很多错误。在更新软件包之前,我没有遇到错误。搜索问题后,我发现依赖 etexcmds 的文档无法编译。所以我使用 Miktex 更新了所有包,但错误仍然存在。有人能理解这个错误吗?这是 2019 年 12 月 9 日 oberdiek-bundle 新版本的错误还是其他包的错误?
感谢帮助。
此处举一个小例子:
\documentclass{article}
\usepackage{etexcmds}
\begin{document}
A
\end{document}
以2个错误结束,日志文件显示:
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (MiKTeX 2.9.7250 64-bit) (preloaded format=pdflatex 2019.12.11) 11 DEC 2019 16:11
entering extended mode
**./Test.tex
(Test.tex
LaTeX2e <2019-10-01> patch level 3
("C:\Program Files\MiKTeX 2.9\tex/latex/base\article.cls"
Document Class: article 2019/10/25 v1.4k Standard LaTeX document class
("C:\Program Files\MiKTeX 2.9\tex/latex/base\size10.clo"
File: size10.clo 2019/10/25 v1.4k Standard LaTeX file (size option)
)
\c@part=\count80
\c@section=\count81
\c@subsection=\count82
\c@subsubsection=\count83
\c@paragraph=\count84
\c@subparagraph=\count85
\c@figure=\count86
\c@table=\count87
\abovecaptionskip=\skip41
\belowcaptionskip=\skip42
\bibindent=\dimen102
)
("C:\Program Files\MiKTeX 2.9\tex/generic/oberdiek\etexcmds.sty"
Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)
("C:\Program Files\MiKTeX 2.9\tex/generic/infwarerr\infwarerr.sty"
Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO)
)
("C:\Program Files\MiKTeX 2.9\tex/generic/iftex\ifluatex.sty"
Package: ifluatex 2019/10/25 v1.5 ifluatex legacy package. Use iftex instead.
("C:\Users\Nutzer\AppData\Roaming\MiKTeX\2.9\tex/latex/iftex\iftex.sty"
Package: iftex 2013/04/04 v0.2 Provides if(tex) conditional for PDFTeX, XeTeX, and LuaTeX
))
! Extra \fi.
l.236 \fi
I'm ignoring this; it doesn't match any \if.
! Extra \fi.
l.287 \fi
I'm ignoring this; it doesn't match any \if.
) (Test.aux)
\openout1 = `Test.aux'.
...
答案1
谢谢您的回答。
这里我将展示我最终的解决方案和方法:
1) 我尝试在管理员模式和用户模式下更新 Miktex 控制台中的软件包。对于这两种模式,我都尝试先更新软件包数据库(请参阅任务 - 更新软件包数据库)。之后,我更新了所有软件包 --> 两种模式都显示“当前没有可用的更新”--> 无法解决问题,因为 iftex-package 没有为用户更新(再次编译上面显示的 tex 文件后查看日志文件)
2) 其次,我尝试使用 CMD 执行此操作(以管理员身份和非管理员身份)。如果您通常不使用终端,请参阅https://docs.miktex.org/manual/mpm.html。
我可以在管理员模式下卸载和安装软件包(CMD 必须以 ADMIN 身份启动!!!)。但对于用户模式(“mpm --verbose --uninstall iftex”)它不起作用。在 CMD 上我发现:
Sorry but "MiKTeX Package manger" did not succeed. The log file hopefully contains the infomration to get ...
logifle 中的错误显示:
2019-12-12 11:52:05,409+0100 INFO mpmcli - starting: mpmcli 2.9.7043 (MiKTeX 2.9.7250 64-bit)
2019-12-12 11:52:05,409+0100 INFO mpmcli - Operating on the private (per-user) MiKTeX setup
2019-12-12 11:52:06,683+0100 INFO mpmcli - starting package maintenance...
2019-12-12 11:52:06,684+0100 INFO mpmcli - installation directory: "C:\Users\Nutzer\AppData\Roaming\MiKTeX\2.9"
2019-12-12 11:52:06,684+0100 INFO mpmcli - going to remove 10 file(s) (1 package(s))
2019-12-12 11:52:07,149+0100 INFO mpmcli - removing package iftex...
2019-12-12 11:52:07,255+0100 FATAL mpmcli - MiKTeX encountered an internal error.
2019-12-12 11:52:07,255+0100 FATAL mpmcli - Info: keyName="iftex"
2019-12-12 11:52:07,255+0100 FATAL mpmcli - Source: Libraries\MiKTeX\Core\Cfg\Cfg.cpp
2019-12-12 11:52:07,255+0100 FATAL mpmcli - Line: 762
**--> 没有解决方案,软件包未更新 **
3) 我搜索了通常用于管理员的 sty.files“iftex.sty”(C:\Program Files\MiKTeX 2.9\tex\generic\iftex),并将其复制到用户的所有 sty 文件所在的位置(C:\Users\NUTZER\AppData\Roaming\MiKTeX\2.9\tex\latex\iftex) --> 这解决了问题。
也许有更有效的解决方案(如果有人知道,请提出请求),但我可以继续我的工作。
希望这可以帮助某些人(不是像我这样的专业人士)节省时间(几个小时)......