![Studia Logica 类文件与 hyperref 包之间的冲突](https://linux22.com/image/362229/Studia%20Logica%20%E7%B1%BB%E6%96%87%E4%BB%B6%E4%B8%8E%20hyperref%20%E5%8C%85%E4%B9%8B%E9%97%B4%E7%9A%84%E5%86%B2%E7%AA%81.png)
我必须向 Studia Logica 提交论文的最终版本。这意味着我需要使用 Studia Logica 的类文件以及sl.cls
包slsec
、stud_log
和slfoot
slthm
。所有这些文件均由逻辑学(我无法修改它们)并且可用这里。
我想使用包hyperref
,但它似乎与 Studia Logica 类文件不兼容。举一个简单的例子,如果我尝试编译
\documentclass{sl} %% This the CLASS for Studia Logica,
%% similar to the 'article' class.
\usepackage{slsec} %% PACKAGES for Studia Logica
\usepackage{stud_log}
\usepackage{slfoot}
\usepackage{slthm} %% Theorem-like definitions as in amsthm,
%% see amsthdoc.tex (dvi) and thmtest.tex
%% for usage (see later for definitions)
\usepackage{hyperref}
\begin{document}
A word.
\end{document}
我收到以下三个错误:
Package atveryend Info: Empty hook `BeforeClearDocument' on input line 15.
! Argument of \Hy@setref@link has an extra }.
<inserted text>
\par
l.15 \end{document}
I've run across a `}' that doesn't seem to match anything.
For example, `\def\a#1{...}' and `\a}' would produce
this error. If you simply proceed now, the `\par' that
I've just inserted will cause me to report a runaway
argument that might be the root of the problem. But if
your `}' was spurious, just type `2' and it will go away.
Runaway argument?
{\@secondoffive }\fi --\pageref {SLLastPage}\hfill
! Paragraph ended before \Hy@setref@link was complete.
<to be read again>
\par
l.15 \end{document}
I suspect you've forgotten a `}', causing me to apply this
control sequence to too much text. How can we recover?
My plan is to forget the whole thing and hope for the best.
! You can't use `\raise' in internal vertical mode.
\@thefoot ...\pageref {SLLastPage}\hfill }{\raise
1.03pt\hbox {\tiny \copyri...
l.15 \end{document}
Sorry, but I'm not programmed to handle this case;
I'll just pretend that you didn't ask for it.
If you're in the wrong mode, you might be able to
return to the right one by typing `I}' or `I$' or `I\par'.
我不敢相信这是不可能使用的hyperref
,因为网上有一些免费提供的论文显然同时使用了 Studia Logica 类文件和hyperref
,例如这里。
答案1
类文件设置得 \label{SLFirstPage}
太早(带有\AtBeginDocument
)。
如果删除它,它就会编译。