texlive 2014 中缺少 kvoptions

texlive 2014 中缺少 kvoptions

我在 Mac OS X 上将 texlive 2007 升级到了 texlive 2014。现在,之前编译正常的源文件出现以下错误消息。我看了之前的问题,建议执行“tlmgr install oberdiek”,然后我照做了,但仍然出现同样的错误。

(/usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty

LaTeX Warning: You have requested, on input line 4835, version
               `2010/09/13' of package ifpdf,
               but only version
               `2007/12/12 v1.6 Provides the ifpdf switch (HO)'
               is available.

)

LaTeX Warning: You have requested, on input line 2345, version
               `2010/04/08' of package infwarerr,
               but only version
               `2007/09/09 v1.2 Providing info/warning/message (HO)'
               is available.

)

LaTeX Warning: You have requested, on input line 125, version
               `2010/04/08' of package infwarerr,
               but only version
               `2007/09/09 v1.2 Providing info/warning/message (HO)'
               is available.

(/Users/stmv/Library/texmf/tex/latex/oberdiek/auxhook.sty)

LaTeX Warning: You have requested, on input line 134, version
               `2009/12/14' of package auxhook,
               but only version
               `2007/04/06 v1.1 Hooks for auxiliary files (HO)'
               is available.

(/Users/stmv/Library/texmf/tex/latex/oberdiek/kvoptions.sty)

LaTeX Warning: You have requested, on input line 262, version
               `2009/07/21' of package kvoptions,
               but only version
               `2007/10/18 v3.0 Keyval support for LaTeX options (HO)'
               is available.

(/usr/local/texlive/2014/texmf-dist/tex/latex/hyperref/pd1enc.def)
(/usr/local/texlive/2014/texmf-dist/tex/latex/latexconfig/hyperref.cfg)
! Undefined control sequence.
l.4284 \DeclareLocalOptions
                           {%

! LaTeX Error: Missing \begin{document}.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.4285   a
          4paper,a5paper,b5paper,letterpaper,legalpaper,executivepaper%
(/usr/local/texlive/2014/texmf-dist/tex/latex/url/url.sty

答案1

TeX Live 查找文件的位置有三个;从低到高的优先级依次为

  • /usr/local/texlive/<year>/texmf-dist又名 TEXMFMAIN
  • /usr/local/texlive/texmf-local又名 TEXMFLOCAL
  • ~/texmf(通用 TeX Live)或~/Library/texmf(MacTeX),又名 TEXMFHOME

第一个位置仅由基于它的实用程序或实用程序操作tlmgr,例如 Mac OS X 上的 TeX Live Utility。

第二个位置适合存放因许可原因未包含在 TeX Live 中的软件包或字体相关文件;系统管理员有责任处理这些文件。所有用户都可以访问其中的文件。

第三个位置具有最高优先级,只有帐户所有者可以读取(~在您的情况下,上面代表主目录/Users/stmv)。

从您的日志文件中提取的信息显示kvoptions.sty位于TEXMFHOME,您可能下载了比 TeX Live 2007 中的版本更新的版本并将其解压到该位置。

当命令 LaTeX 查找时,kvoptions.sty它不会检查版本,而只会匹配文件名。由于它在最高优先级树中找到该文件,因此它会停止搜索并加载该文件。

临时解决方案:将文件夹重命名~/Library/texmf为其他名称(例如~/Library/texmf-obsolete),这将禁用它。然后创建一个新~/Library/texmf文件夹,您将只传输那些真正需要且不比已分发文件旧的旧文件。

例如,在我自己的~/Library/texmf/tex/latex文件夹中,我只保留我的私人课程文件,并且我有一个实验格式~/Library/texmf/web2c/pdftex

相关内容