J.UCS 的样式文件,jucs2e.sty,与 hyperref 冲突。以下是 MWE:
\documentclass{article}
\usepackage{hyperref}
\usepackage{jucs2e}
\begin{document}
\end{document}
我收到此错误:
! Use of \global doesn't match its definition.
l.15 \global\let
\hyper@last\relax
显然发生这种情况是因为 jucs2e.sty 重新定义了\global
:
\def\global\@namedef##1##2{}
有解决办法吗?
(删除上面的定义似乎有效,但我想知道它是否会在将来破坏一些东西。)
答案1
这是样式中非常严重的错误。我相信它本来是要重新定义的,\@namedef
但保留了下来。应该修补\global
(无论如何都相当可疑的)重新定义。\enddocument
\documentclass{article}
\usepackage{hyperref}
\usepackage{jucs2e}
\usepackage{xpatch}
\xpatchcmd{\enddocument}{\def\global}{\gdef}{}{}
\begin{document}
Hello.
\end{document}