我得到了外部参考资料,memoir
如下hyperref
所示:hyperref 和 xr-hyper 破坏了 memoir 的 \titleref,但对外部文档的引用不起作用memoir \NumToName
:Chapter~\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}
您将获得预期的输出: