Memoir 的 \NumToName 不适用于交叉引用的项目

Memoir 的 \NumToName 不适用于交叉引用的项目

我得到了外部参考资料,memoir如下hyperref所示:hyperref 和 xr-hyper 破坏了 memoir 的 \titleref,但对外部文档的引用不起作用memoir \NumToNameChapter~\NumToName{\ref{chap:example}}出现错误Missing number

以下两个文件显示了这种行为:

\documentclass[12pt]{memoir}
\usepackage{xr-hyper}
\usepackage{hyperref}

\begin{document}
\chapter{Example}\label{chap:example}

Examples
\end{document}

调用那个文件example.tex,运行pdflatex它,然后第二个文件引用它:

\documentclass[12pt]{memoir}
\usepackage{xr-hyper}
\usepackage{hyperref}

\externaldocument{example}
\begin{document}
See Chapter~\NumToName{\ref{chap:example}}.
\end{document}

编译第二个文件,问题就会出现。

这是我收到的错误消息:

! Missing number, treated as zero.
<to be read again> 
                   \protect 
l.7     See Chapter~\NumToName{\ref{chap:example}}

如何获取对外部文档的 NumToName 引用?

答案1

您可以通过加载包refcount\ref用替换 来解决此问题\getrefnumber

要创建链接,您可以使用包\hyperref中的命令hyperref

换句话说,将后一个文件重写为

\documentclass[12pt]{memoir}
\usepackage{xr-hyper}
\usepackage{hyperref}
\usepackage{refcount}

\externaldocument{example}
\begin{document}
See Chapter~\hyperref[chap:example]{\NumToName{\getrefnumber{chap:example}}}.
\end{document} 

您将获得预期的输出:

在此处输入图片描述

相关内容