我正在排版这本多卷书。最简单的形式如下:
第一卷的主文件(卷01.tex)
\documentclass{scrbook}
\usepackage{xr-hyper}
\usepackage{siunitx}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{hyperref}
\begin{document}
\section{First section}\label{section}
\begin{figure}[ht!]
\centering
\includegraphics{example-image-a}
\caption{Units \qty{10}{\m}}
\label{fig:example}
\end{figure}
\end{document}
第二卷的 Tex 文件(卷02.tex):
\documentclass{scrbook}
\usepackage{xr-hyper}
\usepackage{hyperref}
\externaldocument[B-]{vol01}[vol01.pdf]%
\begin{document}
Link to file \texttt{vol1} figure \ref{B-fig:example} in section \ref{B-section}.
\end{document}
但标题中使用的单位会导致错误:
...
/uniquecounter.sty")))
! Undefined control sequence.
<argument> Units \qty
{10}{\m }\relax
l.11 ...nt[B-]{vol01}[vol01.pdf]
对于以前版本的软件包,解决方案是根据 Ulrike Fischer 的解决方案siunitx
使用\protect\SI{10}{\protect\m}
这里。不幸的是它不再有效。
还有其他选择吗?例如使用zref-xref
包。
答案1
根据 Ulrike Fischer 的评论,解决方案是:
\documentclass{scrbook}
\usepackage{xr-hyper}
\usepackage{hyperref}
\usepackage{siunitx}
\begin{document}
\externaldocument[B-]{vol01}[vol01.pdf]%
Link to file \texttt{vol1} figure \ref{B-fig:example} in section \ref{B-section}.
\end{document}