新LaTeX2e <2019-10-01>
版本之后,我得到了这个错误:
!包 filehook 错误:检测到‘scrlfile’包中存在未知的 \InputIfFileExists 定义。
它似乎与 KOMA Script 中的一些定义有关,如下所述这里按照指示,我从他们的存储库更新了 Koma:
tlmgr 安装--重新安装--存储库 https://www.komascript.de/repository/texlive/2019牯牯牯
但错误仍然存在。
有人知道最近的更改后是否还有其他软件包需要更新吗LaTeX2e
?
编辑:MWE 添加,使用@PhelypeOleinik 建议的命令
\PassOptionsToPackage{force}{filehook}
\documentclass[ebook]{memoir}
\usepackage{fontspec}
\usepackage{unicode-math}
\usepackage{xsim}
\begin{document}
Test
\end{document}
EDIT2,2019 年 10 月 22 日:在答案中添加了@PhelypeOleinik 建议的代码:
\RequirePackage{etoolbox}
\makeatletter
\patchcmd\load@onefilewithoptions
{\expandafter\let\csname\@currname.\@currext-h@@k\endcsname\@empty
\let\CurrentOption\@empty% Anchor point to make sure we're patching the right place
}{}{}{\errmessage{This patch is no longer necessary}%
\newcommand\gobblesix[6]{}\gobblesix}
\patchcmd\load@onefilewithoptions
{\InputIfFileExists}
{\expandafter\let\csname\@currname.\@currext-h@@k\endcsname\@empty
\InputIfFileExists}{}{\FAILED}
\makeatother
\PassOptionsToPackage{force}{filehook}
\documentclass[ebook]{memoir}
\usepackage{filehook}
\usepackage{fontspec}
\usepackage{unicode-math}
\usepackage{xsim}
\begin{document}
Test
\end{document}
我收到此错误:
Package filehook Warning: Detected 'scrlfile' package with unknown definition of
\InputIfFileExists.
The 'force' option of 'filehook' is in effect. Macro is overwritten with default
! on input line 108.
答案1
更新 2020-02-04:和memoir
都已filehook
更新,现在这个问题应该不会再发生了。如果发生了,请更新您的 TeX 发行版。
这里同时有两个问题。第一个问题被报告这里,并且是由于设置包钩子的时间不当造成的。发生这种情况是因为filehook
加载了filehook-memoir
,并且filehook-memoir
确实加载了\RequirePackage{filehook}
,这导致选项解析器偏离轨道并报告filehook
没有force
选项(即使它有)。
该问题已得到修复这里最终将以 LaTeX 格式更新。现在,请使用此补丁(这必须是文档中的第一项):
\RequirePackage{etoolbox}
\makeatletter
\patchcmd\load@onefilewithoptions
{\expandafter\let\csname\@currname.\@currext-h@@k\endcsname\@empty
\let\CurrentOption\@empty% Anchor point to make sure we're patching the right place
}{}{}{\errmessage{This patch is no longer necessary}%
\newcommand\gobblesix[6]{}\gobblesix}
\patchcmd\load@onefilewithoptions
{\InputIfFileExists}
{\expandafter\let\csname\@currname.\@currext-h@@k\endcsname\@empty
\InputIfFileExists}{}{\FAILED}
\makeatother
解决该问题后,只需告诉filehook
使用force
选项直到memoir
更新(应该很快)并filehook-memoir
更新以匹配更新memoir
:
\PassOptionsToPackage{force}{filehook}
顺便说一句,该问题并不依赖于xsim
和fontspec
,而且问题是unicode-math
由于它最终会加载而出现filehook
的,因此问题可以缩小到:
\PassOptionsToPackage{force}{filehook}
\documentclass{memoir}
\usepackage{filehook}
\begin{document}
\end{document}
答案2
虽然不是最终答案,但让我能够继续工作和编译的是将文件filehook.sty
放在filehook-scrlfile.sty
filehook-memoir.sty
@SergioCallegari 发布了这里,texmf-local/tex/latex/filehook/
并刷新 TeX 数据库。