我在 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
。