该cleveref
软件包无法与该lj-igpl
软件包正常配合使用。关于 有很多讨论cleveref
,但是,没有一个能解决我的问题。我ntheorem
也在使用该软件包,但是切换到amsthm
没有帮助。
代码:
\documentclass[twoside]{report}
\usepackage{ntheorem}
\usepackage{hyperref}
\usepackage{cleveref}
\usepackage{lj-igpl}
\Title{Example}
\ShortAuthor{}
\LongAuthor{}
\begin{document}
\begin{paper}
\begin{lemma}
\label{lem1}
This is a lemma.
\end{lemma}
By \Cref{lem1}, bla bla.
\end{paper}
\end{document}
结果是“按第 1 章”而不是“按引理 1”。
如果我关闭ntheorem
,那么“章节”将被替换为“??”。
lj-igpl
此外,之前加载也没有帮助cleveref
。
有任何想法吗?
答案1
我设法下载了 lj-igpl.sty。交叉引用混乱的原因在于下面重现的 lj-igpl.sty 中的一段话。它只是扰乱了 latex 的定理编号机制。如果您可以放弃 lj-igpl.sty(如果需要,请提交给更好的期刊 ;-));否则只需使用 \ref。
% THEOREM ENVIRONMENTS
% Prevent users from defining new numbering schemes for theorems by
% mapping
%
% \newtheorem{1}[2]{3} to \newtheorem{1}[thmcount]{3}
% \newtheorem{1}{2} to \newtheorem{1}[thmcount]{3}
% \newtheorem{1}{2}[3] to \newtheorem{1}[thmcount]{3}
%
\@definecounter{thmcount}\@addtoreset{thmcount}{section}
\def\thethmcount{\thesection .\arabic{thmcount}}
\let\@@othm\@othm
\def\@othm#1[#2]#3{%
% if #1 is already defined, do nothing (but print a warning)
\@ifundefined{#1}{%
% if #1 is undefined, do \@othm but force counter to thmcount
\@@othm{#1}[thmcount]{#3}
}{\@warning{othm: `#1' already defined; skipping this definition}}}
\def\@xnthm#1#2[#3]{%
% if already defined, just print a warning
\@ifundefined{#1}{%
% if #1 is undefined, do \@othm but force counter to thmcount
\@@othm{#1}[thmcount]{#2}
}{\@warning{xnthm: `#1' already defined; skipping this definition}}}
\def\@ynthm#1#2{%
\@ifundefined{#1}{%
% if #1 is undefined, do \@othm but force counter to thmcount
\@@othm{#1}[thmcount]{#2}
}{\@warning{ynthm: `#1' already defined; skipping this definition}}}