\Crefformat 不遵守小节格式

\Crefformat 不遵守小节格式

我在让 \Crefformat 遵守子节的格式时遇到了一些麻烦。我的(非)工作示例如下。

\documentclass[11pt]{article}

\usepackage{amssymb,amsfonts,amsmath}
\usepackage{xcolor}
\usepackage{url}

\usepackage[colorlinks,                                                                                                
             linkcolor=black!75!red,                                                                                   
             citecolor=blue,                                                                                           
             pdftitle={},                                                                                              
             pdfproducer={pdfLaTeX},                                                                                   
             pdfpagemode=None,                                                                                         
             bookmarksopen=true                                                                                        
             bookmarksnumbered=true]{hyperref}

\usepackage[amsmath,thmmarks,hyperref]{ntheorem}
\usepackage{cleveref}

\crefname{section}{Section}{Sections}
\crefformat{section}{#2Section~#1#3}
\Crefformat{section}{#2Section~#1#3}

\crefname{subsection}{Subsection}{Subsections}
\crefformat{subsection}{#2Boo#1#3}
\Crefformat{subsection}{#2Boo#1#3}

\begin{document}

\section{One}\label{se}

\subsection{one.one}\label{subse}

\Cref{se}

\Cref{subse}

\end{document}

部分 Cref命令的行为符合预期:它显示一个可点击的Section 1。但第二次调用 时CrefSubsection 1.1显示Subsection 联合国可点击(因此超链接仅跨越1.1)。

\Crefformat{subsection}如果我只是指示,这就是我所期望的#2#1#3。令我困惑的是,命令Boo中的\Crefformat{subsection}被完全忽略了。

答案1

cleveref重置很多利用的东西\AtBeginDocument,这样做会覆盖你的设置;最好延迟你自己的定义:

\documentclass[11pt]{article}

\usepackage{amssymb,amsfonts,amsmath}
\usepackage{xcolor}
\usepackage{url}

\usepackage[colorlinks,
             linkcolor=black!75!red,
             citecolor=blue,
             pdftitle={},
             pdfproducer={pdfLaTeX},
             pdfpagemode=None,
             bookmarksopen=true
             bookmarksnumbered=true]{hyperref}

\usepackage[amsmath,thmmarks,hyperref]{ntheorem}
\usepackage{cleveref}

\crefname{section}{Section}{Sections}
\crefformat{section}{#2Section~#1#3}
\Crefformat{section}{#2Section~#1#3}

\crefname{subsection}{Subsection}{Subsections}

\AtBeginDocument{%
  \crefformat{subsection}{#2Boo#1#3}%
  \Crefformat{subsection}{#2Boo#1#3}%
}

\begin{document}

\section{One}\label{se}

\subsection{one.one}\label{subse}

\Cref{se}

\Cref{subse}

\end{document}

在此处输入图片描述

相关内容