我不希望使用阿拉伯数字,而是希望文本和书签中每个部分的编号都显示为写出的文本(三十四代替三十四)我正在尝试使用fmtcount
包裹命令 \Numberstring
。我得到的计数器如下所示chap
:
\section*{\Numberstring{chap}}
\addcontentsline{toc}{section}{\Numberstring{chap}}
\Numberstring
在部分文本中运行良好,但在书签中运行不佳。pdflatex
给出以下警告:
Package hyperref Warning: Token not allowed in a PDF string (Unicode):
我认为这意味着\Numberstring{chap}
给目录一个标记而不仅仅是文本,并且存在问题,因为 PDF 书签必须只是文本。有没有办法将令牌(?) 将其\Numberstring{chap}
提供给文本以便可以工作? 有没有我不知道的更好的方法可以解决这个问题?
为了提供 MWE,我的整体设置是,我在一个目录中有一本书的章节1.tex
,2.tex
等等,并且我\forloop
为每个章节创建一个新的部分,将每个章节的列表添加到目录中(用于 PDF 书签),然后输入文件。
\documentclass{article}
\usepackage{forloop}
\usepackage{fmtcount}
\usepackage[bookmarks]{hyperref}
\begin{document}
\newcounter{chap}
\forloop{chap}{1}{\value{chap}<42}{
\section*{\Numberstring{chap}}
\addcontentsline{toc}{section}{\Numberstring{chap}} % PROBLEM HERE
\input{chapter/\arabic{chap}.tex}
}
\end{document}
答案1
你可以使用\storeNumberstring
它(除了实现得不好)来存储结果保存\Numberstring
在一个安全的地方并检索它。
\documentclass{article}
\usepackage{fmtcount}
\usepackage[bookmarks]{hyperref}
\newcommand{\mysection}{%
\stepcounter{chap}%
\section*{\Numberstring{chap}}%
\storeNumberstring{thisnumber}{chap}%
\addcontentsline{toc}{section}{\FMCuse{thisnumber}}%
}
\newcounter{chap}
\begin{document}
\mysection
\mysection
\mysection
\end{document}