在 cref 调用中使用 Numberstring

在 cref 调用中使用 Numberstring

为了满足我女朋友对论文的要求:她希望章节引用为“第一章”、“第二章”等。我发现这个答案,看起来可以工作,但我希望在 cleveref \cref/\Cref调用中使用这些来利用 hyperref 集成。

到目前为止,

\Crefformat{chapter}{#2Chapter~\Numberstringnum{\getrefnumber{#1}#3}

\Crefformat{chapter}{#2Chapter~\mtnumberstring{#1}#3}

导致“第零章”引用 - 尽管超链接是正确的。

编辑-MWE:

\documentclass[12pt]{book}

\usepackage{hyperref}
\usepackage{cleveref}
\usepackage{fmtcount}
\usepackage{refcount}
\newcommand\mtnumberstring[1]{\Numberstringnum{\getrefnumber{#1}}} 

%Both attempts included:
%\Crefformat{chapter}{#2Chapter~\Numberstringnum{\getrefnumber{#1}}#3}
\Crefformat{chapter}{#2Chapter~\mtnumberstring{#1}#3}

\begin{document}

\chapter{Abstract}\label{ch:abstract}

\chapter{Intro}\label{ch:intro}

\Cref{ch:abstract}

\end{document}

有什么方法可以实现这一点,或者我不应该添加超链接?

当前解决方案的关键部分是:

\usepackage{fmtcount}
\usepackage{refcount}
\newcommand\mtnumberstring[1]{\numberstringnum{\getrefnumber{#1}}}

\begin{document}
Chapter~\mtnumberstring{ch:label}.
\end{document}

答案1

你之前是非常关闭。

在 的最后一个参数中\Crefformat#1表示格式化的标签(即\thechapter扩展为的内容)而不是标签名称。因此,如果您使用\numberstringnum{#1}而不是 ,\numberstringnum{\getrefnumber{#1}}它就会起作用。

\documentclass{book}

\usepackage{fmtcount}

\usepackage{hyperref}
\usepackage{cleveref}
\Crefformat{chapter}{#2Chapter~\Numberstringnum{#1}#3}

\begin{document}

\tableofcontents
\chapter{Abstract}\label{ch:abstract}
\chapter{Intro}\label{ch:intro}

\Cref{ch:abstract}

\end{document}

在此处输入图片描述



在此处输入图片描述



在此处输入图片描述

相关内容