交叉引用章节编号作为字符串

交叉引用章节编号作为字符串

我正在尝试打印交叉引用标签章节的章节编号,不是以阿拉伯数字或罗马数字的形式,而是以单词的形式写出。

我设法在这里找到一些信息,建议我使用 fmtcount 和 refcount 包:http://www.dickimaw-books.com/cgi-bin/faq.cgi?action=view&categorylabel=fmtcount#ftmrefcount

以下是我所拥有的:

\documentclass{report}
\usepackage{fmtcount}
\usepackage{refcount}
\begin{document}
\chapter{Introduction}
\label{ch:introduction}
\newcounter{chintroduction}\setcounterref{chintroduction}{ch:introduction}

Chapter~\numberstring{chintroduction} is the introduction.

Chapter~\numberstring{chmain} is the main chapter.

Chapter~\numberstring{chconclusion} is the conclusion.

\chapter{Main}
\label{ch:main}
\newcounter{chmain}\setcounterref{chmain}{ch:main}

\chapter{Conclusion}
\label{ch:conclusion}
\newcounter{chconclusion}\setcounterref{chconclusion}{ch:conclusion}
\end{document}

我意识到为了使标签起作用我必须编译两次。

我想要的(作为介绍章节的主体):

第一章为绪论。

第二章为本文的主体章节。

第三章是结论。

第二次编译后得到的结果:

第一章为绪论。

第零章是主要章节。

第零章是结论。

我在编译过程中还收到以下两个错误信息:

! You can't use `\relax' after \the.
<recently read> \c@chmain 

l.11 Chapter~\numberstring{chmain} 
                                   is the main chapter.
? 
! You can't use `\relax' after \the.
<recently read> \c@chconclusion 

l.13 Chapter~\numberstring{chconclusion} 
                                         is the conclusion.
? 

看来我的方法对引用之前的章节标签有效,但对引用之后的章节标签无效。为什么这种方法无效?我该如何修复?

答案1

这是一个解决方案

\documentclass{report}
\usepackage{fmtcount}
\usepackage{refcount}
\newcommand\mtnumberstring[1]{\numberstringnum{\getrefnumber{#1}}} 
\begin{document}
\chapter{Introduction}
\label{ch:introduction}

Chapter~\mtnumberstring{ch:introduction} is the introduction.

Chapter~\mtnumberstring{ch:main} is the main chapter.

Chapter~\mtnumberstring{ch:conclusion} is the conclusion.

\chapter{Main}
\label{ch:main}

\chapter{Conclusion}
\label{ch:conclusion}
\end{document}

相关内容