Inhaltsverzeichnis in separater Datei mit korrekten Hyperlinks zu vielen Dateien

Inhaltsverzeichnis in separater Datei mit korrekten Hyperlinks zu vielen Dateien

Dies ist meine erste Frage hier. Tut mir leid, wenn sie nicht den Regeln entspricht.

Ich habe:

Ich schreibe ein Handbuch im Buchkurs mit pdflatex (TeX Live unter Linux). Jedes Kapitel wird in einer separaten Tex-Datei gespeichert (kapitel1.tex,kapitel2.tex).

Außerdem verwende ich das Minitoc-Paket zum Erstellen des Inhaltsverzeichnisses für jeden Teil. Die Befehle zum Generieren des Hauptinhaltsverzeichnisses und des Inhaltsverzeichnisses für jeden Teil sind ebenfalls in separaten Tex-Dateien gespeichert (maintoc.tex,parttoc.tex).

Ich brauche:

Nachdem ich das ganze Dokument kompiliert habe, verwende ich \includeonly, um einzelne PDF-Dateien zu erhalten (danke anPost). Mit den Paketen hyperref und zref-xr erhalte ich korrekte Hyperlinks zwischen verschiedenen PDFs, die verschiedenen Kapiteln entsprechen.AberLinks im Hauptinhaltsverzeichnis und im Inhaltsverzeichnis der einzelnen Teile sind defekt.

Minimales funktionierendes Beispiel:

main.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

kapitel1.tex:

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

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

kapitel2.tex:

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

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

Die von mir verwendete Befehlsfolge:

  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 kapitel1.pdf
  5. pdflatex -jobname=tmp "\def\tosplit{1}\includeonly{chapter2}\input{main}" && mv tmp.pdf kapitel2.pdf

Ich habe es versuchtBeratungvom AutorHeiko Oberdiekvon Hyperref- und Zref-Paketen. Ehrlich gesagt ist es mir nicht klar, aber es funktioniert, es sei denn, Sie haben nur zwei PDFs (Inhaltsverzeichnis und den Rest), sonst funktioniert es nicht. Es versucht immer, nur ein PDF zu öffnen, aber ich habe viele davon.

verwandte Informationen