siunitx 版本 v3.0.2 带有 xr-hyper

siunitx 版本 v3.0.2 带有 xr-hyper

我正在排版这本多卷书。最简单的形式如下:

第一卷的主文件(卷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}

相关内容