我使用cleveref
和classicthesis
。classicthesis
定义章节标题使用小写字母,并使用\MakeTextLowercase
来实现这一点。但是,当使用 选项时capitalize
,cleveref
参考文献的首字母仍设置为大写字母;似乎 以\MakeTextLowercase
某种方式忽略了它。
这是一个没有的 MWE \classicthesis
:
\documentclass{article}
\usepackage[capitalize,noabbrev]{cleveref}
\usepackage{titlesec}
\usepackage{textcase}
\usepackage{microtype}
\DeclareRobustCommand{\spacedlowsmallcaps}[1]{\textls[80]{\scshape\MakeTextLowercase{#1}}}%
\titleformat{\section}{\relax}{\textsc{\MakeTextLowercase{\thesection}}}{1em}{\spacedlowsmallcaps}
\begin{document}
\section{\label{sec:foo}foo}
\section{Code for \protect\cref{sec:foo}}
\end{document}
这是输出(忽略部分编号未大写的事实;)
):
答案1
您可以重新定义名称,以便它们使用在生效\cref
时可以被中和的宏。\spacedlowsmallcaps
\documentclass{article}
\usepackage{titlesec}
\usepackage{textcase}
\usepackage{microtype}
\usepackage[capitalize,noabbrev]{cleveref}
\makeatletter
\DeclareRobustCommand{\spacedlowsmallcaps}[1]{%
\textls[80]{\let\crefuc\@firstofone\scshape\MakeTextLowercase{#1}}%
}
\DeclareRobustCommand{\crefuc}[1]{\MakeTextUppercase{#1}}
\makeatother
\titleformat{\section}{\relax}{\textsc{\MakeTextLowercase{\thesection}}}{1em}{\spacedlowsmallcaps}
\crefname{section}{\crefuc{s}ection}{\crefuc{s}ections}
\begin{document}
\section{\label{sec:foo}foo}
\section{Code for \cref{sec:foo}}
Here's a reference to \cref{sec:foo}
\end{document}