單獨文件中的目錄,具有指向許多文件的正確超鏈接

單獨文件中的目錄,具有指向許多文件的正確超鏈接

這是我的第一個問題。抱歉,如果不遵守規則。

我有:

我正在用pdflatex(Linux下的TeX Live)在書本課上寫一本手冊。每章都儲存在一個單獨的 tex 檔案中(第一章.tex,Chapter2.tex)。

我還使用 minitoc 套件為每個部分建立目錄。用於產生主目錄和每個部分的目錄的命令也儲存在單獨的 tex 檔案中(maintoc.tex,部分toc.tex)。

我需要:

編譯整個文件後,我使用 \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

部分toc.tex:

\part{The first and last part}
\parttoc

Chapter1.tex:

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

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

Chapter2.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 套件。老實說,這對我來說並不清楚,但除非你只有兩個 pdf(目錄和其餘部分),否則它不會起作用。它總是嘗試只打開一個 pdf,但我有很多 pdf。

相關內容