这是我在这里的第一个问题。如果不符合规则,请见谅。
我有:
我正在用 pdflatex(Linux 下的 TeX Live)在书籍类中编写手册。每章都存储在单独的 tex 文件中(第一章.tex,第二章.tex)。
此外,我还使用 minitoc 包来创建每个部分的目录。生成主目录和每个部分的目录的命令也存储在单独的 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
parttoc.tex:
\part{The first and last part}
\parttoc
第一章.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 包。老实说,我不太清楚,但除非你只有两个 pdf(TOC 和其余部分),否则它就无法工作。它总是尝试只打开一个 pdf,但我有很多 pdf。