外部引用:无法引用其他文档类别中的回忆录标签

外部引用:无法引用其他文档类别中的回忆录标签

有没有办法引用memoir其他文档类别中的标签?

我已经在 中撰写了论文,memoir现在正在 中准备幻灯片beamer,我想在其中引用论文中的元素(章节名称和页码)。问题是,memoir使用仅限回忆录的宏(在本例中为 )将标签写入辅助文件\M@TitleReferencebeamer无法解析。

最小示例:给定两个文件thesis.tex

\documentclass{memoir}
\usepackage{hyperref}

\begin{document}
\chapter{Test}
\label{cha:test}

\end{document}

talk.tex

\documentclass{beamer}
\usepackage{xr-hyper}
\externaldocument{thesis}

\begin{document}
Ref: \ref{cha:test}
\end{document}

我期望 talk.pdf 包含文本Ref: 1,但实际上没有。编译thesis.tex然后talk.text会导致错误:

! Undefined control sequence.
<argument> {\M@TitleReference 
                              {1}{Test}}{1}{Test}{chapter.1}{}
l.4

memoir和的手册中beamer没有提到xrxr-hyper反之亦然。谷歌搜索也没有帮助我,因此我被难住了。

注意:省略hyperref没有thesis.tex区别,使用xr代替也没有区别xr-hyper

答案1

该命令\M@TitleReference在类中是未知的beamer,并且在类中被定义(嗯,\let\@firstoftwomemoir)。它的定义可以被“窃取”并成对引入到beamer文档中,因为宏名中\makeatletter...\makeatother有一个字符。@

\documentclass{beamer}
\usepackage{xr-hyper}
\usepackage{hyperref}
\makeatletter
\let\M@TitleReference\@firstoftwo%
\makeatother
\externaldocument{thesis}

\begin{document}
\ref{cha:test}%
\end{document}

相关内容