cleveref、ntheorem 和 lj-igpl

cleveref、ntheorem 和 lj-igpl

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}}}

相关内容