Studia Logica 类文件与 hyperref 包之间的冲突

Studia Logica 类文件与 hyperref 包之间的冲突

我必须向 Studia Logica 提交论文的最终版本。这意味着我需要使用 Studia Logica 的类文件以及sl.clsslsecstud_logslfootslthm。所有这些文件均由逻辑学(我无法修改它们)并且可用这里

我想使用包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)。

如果删除它,它就会编译。

相关内容