Tabla de contenidos en un archivo separado con hipervínculos correctos a muchos archivos

Tabla de contenidos en un archivo separado con hipervínculos correctos a muchos archivos

Es mi primera pregunta aquí. Lo siento si no sigue las reglas.

Tengo:

Estoy escribiendo un manual en la clase de libros con pdflatex (TeX Live en Linux). Cada capítulo se almacena en un archivo tex separado (capítulo1.tex,capítulo2.tex).

También estoy usando el paquete minitoc para crear la tabla de contenido de cada parte. Los comandos para generar la tabla de contenido principal y la tabla de contenido para cada parte también se almacenan en archivos tex separados (maintoc.tex,parttoc.tex).

Necesito:

Después de compilar todo el documento, estoy usando \includeonly para obtener archivos pdf separados (gracias acorreo). Usando los paquetes hyperref y zref-xr obtengo hipervínculos correctos entre diferentes pdf correspondientes a diferentes capítulos,peroLos enlaces en la tabla de contenido principal y en la tabla de contenido de cada parte están rotos.

Ejemplo de trabajo mínimo:

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

capítulo1.tex:

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

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

capítulo2.tex:

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

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

La secuencia de comandos que uso:

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

Lo intentéconsejodel autorHeiko Oberdiekde paquetes hyperref y zref. Honestamente, no lo tengo claro, pero funciona a menos que tengas solo dos pdf (TOC y el resto), de lo contrario no es así. Siempre intenta abrir solo un pdf, pero tengo muchos.

información relacionada