Índice em um arquivo separado com hiperlinks corretos para muitos arquivos

Índice em um arquivo separado com hiperlinks corretos para muitos arquivos

É minha primeira pergunta aqui. Desculpe se não segue as regras.

Eu tenho:

Estou escrevendo um manual na aula de livros com pdflatex (TeX Live no Linux). Cada capítulo é armazenado em um arquivo tex separado (capítulo1.tex,capítulo2.tex).

Também estou usando o pacote minitoc para criar o índice de cada parte. Os comandos para gerar o índice principal e o índice de cada parte também são armazenados em arquivos tex separados (maintoc.tex,parttoc.tex).

Eu preciso de:

Depois de compilar todo o documento, estou usando \includeonly para obter arquivos PDF separados (graças apublicar). Usando os pacotes hyperref e zref-xr, obtenho hiperlinks corretos entre diferentes PDFs correspondentes a diferentes capítulos,masos links no índice principal e no índice de cada parte estão quebrados.

Exemplo mínimo de trabalho:

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

A sequência 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

tenteiconselhodo autorHeiko Oberdiekde pacotes hyperref e zref. Sinceramente, não está claro para mim, mas funciona a menos que você tenha apenas dois PDFs (TOC e o resto), caso contrário não funciona. Sempre tenta abrir apenas um pdf, mas tenho muitos deles.

informação relacionada