ここでの初めての質問です。ルールに従わなかったらごめんなさい。
私は持っている:
私は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}.
私が使用するコマンドのシーケンス:
- pdflatex -jobname=tmp main && mv tmp.pdf main.pdf (x2)
- pdflatex -jobname=tmp "\def\tosplit{1}\includeonly{maintoc}\input{main}" && mv tmp.pdf maintoc.pdf
- pdflatex -jobname=tmp "\def\tosplit{1}\includeonly{parttoc}\input{main}" && mv tmp.pdf parttoc.pdf
- pdflatex -jobname=tmp "\def\tosplit{1}\includeonly{chapter1}\input{main}" && mv tmp.pdf chapter1.pdf
- pdflatex -jobname=tmp "\def\tosplit{1}\includeonly{chapter2}\input{main}" && mv tmp.pdf chapter2.pdf
私は試したアドバイス著者よりハイコ・オベルディエクhyperref および zref パッケージの。正直、私にはよく分かりませんが、2 つの PDF (TOC と残り) しかない場合以外は動作しますが、それ以外は動作しません。常に 1 つの PDF だけを開こうとしますが、私は PDF をたくさん持っています。