cleveref 和 titlesec,\section 问题。

cleveref 和 titlesec,\section 问题。

cleveref我对和有一些问题titlesec,下面提供一个最小的工作示例:

\documentclass{report}
\usepackage{titlesec} %% <-- the issue as far as i know, but i need the package
\usepackage{hyperref}
\usepackage{cleveref}
\begin{document}
\chapter{ninjas are okay}
some text \cref{app:ninja_bkg} bla bla and \cref{app:ninja_fail}
\appendix
\chapter{ninja background}
\label{app:ninja_bkg}
ninjas originated from ???
\section{ninja fail}
\label{app:ninja_fail}
usually ninjas dont fail, but sometimes they do
\end{document}

中间的线产生:

一些文本附录 A bla bla 和部分A.1

但我想要:

一些文本附录 A bla bla 和附录A.1

如果我删除titlesec包,一切都会正常,但不幸的是我需要它。猜测titlesec重新定义\section,但我不够擅长乳胶黑客来修复它=/

答案1

您可以使用(如cleveref的文档中所述)\crefname\Crefname和命令的可选参数\label为附录中的章节提供新的“类型”;一个小例子:

\documentclass{report}
\usepackage{titlesec}
\usepackage{hyperref}
\usepackage{cleveref}

\crefname{secinapp}{appendix}{appendices}
\Crefname{secinapp}{Appendix}{Appendices}

\begin{document}

\chapter{Test chapter}\label{testchap}

\section{test section}\label{testsec}

A reference to a regular section: \cref{testsec}, and a reference to a section in appendix: \cref{testsecapp}

\appendix
\chapter{Test appendix}\label{testapp}

\section{Test section in app}\label[secinapp]{testsecapp}

\end{document}

文档cleveref给出了有关使用该包的提示aliascnt,以避免必须使用新类型的可选参数(不过,我还没有测试过这种方法)。

相关内容