我正在尝试打印交叉引用标签章节的章节编号,不是以阿拉伯数字或罗马数字的形式,而是以单词的形式写出。
我设法在这里找到一些信息,建议我使用 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}