多くのファイルへの正しいハイパーリンクを含む別のファイルの目次

多くのファイルへの正しいハイパーリンクを含む別のファイルの目次

ここでの初めての質問です。ルールに従わなかったらごめんなさい。

私は持っている:

私はpdflatex(Linux上のTeX Live)を使ってブッククラスのマニュアルを書いています。各章は別々のtexファイルに保存されています(章1.tex章2.tex)。

また、各パートの目次を作成するために minitoc パッケージを使用しています。メインの目次と各パートの目次を生成するコマンドも、別々の tex ファイルに保存されています (テキストパートToc)。

私は欲しい:

ドキュメント全体をコンパイルした後、\includeonlyを使用して個別のPDFファイルを取得しています(役職)。hyperrefおよびzref-xrパッケージを使用すると、異なる章に対応する異なるPDF間の正しいハイパーリンクを取得できます。しかしメインの目次と各パートの目次のリンクが壊れています。

最小限の動作例:

メイン.tex:

\documentclass[12pt,oneside]{book}
\usepackage{minitoc}
\usepackage{hyperref}

\ifdefined\tosplit
    \usepackage{zref-xr}
    \zxrsetup{toltxlabel}
\fi

\begin{document}
    \include{maintoc}
    \include{parttoc}
    \include{chapter1}
    \include{chapter2}
\end{document}

maintoc.tex:

\doparttoc
\tableofcontents

parttoc.tex:

\part{The first and last part}
\parttoc

章1.tex:

\ifdefined\tosplit
    \zexternaldocument*{chapter2}
\fi

\chapter{The first chapter}
\label{chap:first}
See chapter~\ref{chap:second}.

章2.tex:

\ifdefined\tosplit
    \zexternaldocument*{chapter1}
\fi

\chapter{The second chapter}
\label{chap:second}
See chapter~\ref{chap:first}.

私が使用するコマンドのシーケンス:

  1. pdflatex -jobname=tmp main && mv tmp.pdf main.pdf (x2)
  2. pdflatex -jobname=tmp "\def\tosplit{1}\includeonly{maintoc}\input{main}" && mv tmp.pdf maintoc.pdf
  3. pdflatex -jobname=tmp "\def\tosplit{1}\includeonly{parttoc}\input{main}" && mv tmp.pdf parttoc.pdf
  4. pdflatex -jobname=tmp "\def\tosplit{1}\includeonly{chapter1}\input{main}" && mv tmp.pdf chapter1.pdf
  5. pdflatex -jobname=tmp "\def\tosplit{1}\includeonly{chapter2}\input{main}" && mv tmp.pdf chapter2.pdf

私は試したアドバイス著者よりハイコ・オベルディエクhyperref および zref パッケージの。正直、私にはよく分かりませんが、2 つの PDF (TOC と残り) しかない場合以外は動作しますが、それ以外は動作しません。常に 1 つの PDF だけを開こうとしますが、私は PDF をたくさん持っています。

関連情報