Это мой первый вопрос здесь. Извините, если не по правилам.
У меня есть:
Я пишу руководство по классу книги с помощью pdflatex (TeX Live под Linux). Каждая глава хранится в отдельном tex-файле (глава1.tex,глава2.tex).
Также я использую пакет minitoc для создания оглавления каждой части. Команды для генерации основного оглавления и оглавления каждой части также хранятся в отдельных tex-файлах (maintoc.tex,parttoc.tex).
Мне нужно:
После компиляции всего документа я использую \includeonly для получения отдельных pdf-файлов (спасибопочта). Используя пакеты hyperref и zref-xr, я получаю правильные гиперссылки между разными pdf-файлами, соответствующими разным главам,ноСсылки в основном оглавлении и в оглавлении каждой части не работают.
Минимальный рабочий пример:
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
глава1.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, но у меня их много.