在 PDF 书签/索引中使用 fmtcount 命令

在 PDF 书签/索引中使用 fmtcount 命令

我不希望使用阿拉伯数字,而是希望文本和书签中每个部分的编号都显示为写出的文本(三十四代替三十四)我正在尝试使用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.tex2.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}

相关内容