Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save yarakos95/4c088084faa5fd6f39aaac747b744390 to your computer and use it in GitHub Desktop.
Save yarakos95/4c088084faa5fd6f39aaac747b744390 to your computer and use it in GitHub Desktop.
Problems with cross-references using "xr-hyper" packages

Problems with cross-references using "xr-hyper" packages

Typeset : upLaTeX+dvipdfmx

xr パッケージを利用した相互参照を実行すると,相互参照される番号が上手く生成されない.

Using package

Files

状況を再現する最小コード.

main.tex

\RequirePackage{plautopatch}
\documentclass[uplatex,dvipdfmx,report]{jlreq}
\usepackage{xr-hyper}
\usepackage{hyperref}
\usepackage{docmute}

\externaldocument[1:]{xr-test1}
\externaldocument[2:]{xr-test2}

\begin{document}

\chapter{TEST xr pakcage}

\ref{test1} and \ref{test2}

\input{xr-test1.tex}
\input{xr-test2.tex}

\end{document}

以下の警告が表示された.

Invalid page number (0)
(hyperref)	for remote PDF file.
(hyperref)	Using page 1.

xr-test1.tex

\csname docmute\endcsname
\RequirePackage{plautopatch}
\documentclass[uplatex,dvipdfmx]{jlreq}
\usepackage{xr-hyper}
\usepackage{hyperref}
\usepackage{docmute}

\externaldocument[1:]{xr-test1}
\externaldocument[2:]{xr-test2}

\begin{document}

\section{xr test1}\label{test1}

This is section\ref{1:test1}.

Reference: \ref{2:test2}

\end{document}

xr-test2.tex

\csname docmute\endcsname
\RequirePackage{plautopatch}
\documentclass[uplatex,dvipdfmx]{jlreq}
\usepackage{xr-hyper}
\usepackage{hyperref}
\usepackage{docmute}

\externaldocument[1:]{xr-test1}
\externaldocument[2:]{xr-test2}

\begin{document}

\section{xr test2}\label{test2}

This is section\ref{test2}.

Reference: \ref{1:test1}

\end{document}

Typeset results

xr-testX.tex では,それぞれの相互参照が適用される. ただし,ファイルをまたぐセクション番号はともに"01" になる.

main.tex では,xr パッケージを介した相互参照は"01" となり,xr パッケージを介さない相互参照は通し番号となった. また,xr パッケージを介した相互参照はチャプター番号を考慮していなかった.

Expected results

ファイル間をまたぐ相互参照には番号を付与してほしいが,main.tex で統合した際にはxr パッケージを使用する前と同様に通し番号を正常にしてほしい.

もちろん,それぞれのファイルで以下のようにして\input されるファイルの相互参照を作成して,main.tex ではxr パッケージを使用しなければ,main.tex での相互参照の問題は解決する.

- \externaldocument[1:]{xr-test1}
- \externaldocument[2:]{xr-test2}
+ \externaldocument{xr-test1}
+ \externaldocument{xr-test2}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment