Я попыталсяиспользуйте пакет xrдля получения перекрестных ссылок между файлами.
Мой основной документ — book.tex:
\documentclass[a4paper,10pt]{scrbook}
\usepackage{hyperref}
\begin{document}
\chapter{Beginning}
\label{ch1}
Foo
\input{chapter2.tex}
\end{document}
book.tex включает chapter2.tex:
\chapter{End}
\label{ch2}
Bar
Мой вторичный документ — supplement.tex:
\documentclass{powerdot}
\usepackage{xr}
\externaldocument{book}
\begin{document}
\begin{slide}{Slide Title}
Reference A: \ref{ch1} page \pageref{ch1}
Reference B: \ref{ch2} page \pageref{ch2}
\end{slide}
\end{document}
book.tex прекрасно компилируется с использованием, pdflatex book.tex
но когда я latex supplement.tex
застреваю с
LaTeX Warning: Reference `ch1' on page 1 undefined on input line 13.
LaTeX Warning: Reference `ch2' on page 1 undefined on input line 13.
Все файлы находятся в одном каталоге, и я запускаю pdflatex
и latex
в этом каталоге без использования флага -output-directory. Я также попробовал пакет xr-hyper
.
Что еще мне нужно сделать, чтобы supplement.tex взял ссылки из book.tex (и включенного в него файла chapter2.tex)?
решение1
Текущее состояние дел таково, что \label
- \(page)ref
-механизмLaTeX2e-ядро модифицируетсягиперреф-упаковка.
Таким образом, если book.tex загружаетгиперреф-package, то требуется, чтобы supplement.tex
- загружает лигиперреф- также пакет.
- загружает лиxr-гипер-пакет вместохр-пакет.
(xr-гипер-пакет должен быть загружен догиперреф-упаковка.)
(На используемой мной платформе (MiKTeX 2.9)powerdot-class, похоже, работает только при компиляции в режиме dvi, создавая файл .dvi, который приводит к сбою YaP-предпросмотрщика MiKTeX, но который без проблем можно преобразовать с помощью dvips в файл postscript, который в свою очередь можно преобразовать с помощью ps2pdf в файл .pdf.)
книга.текс:
\documentclass[a4paper,10pt]{scrbook}
\usepackage{hyperref}
\begin{document}
\chapter{Beginning}
\label{ch1}
Foo
\input{chapter2.tex}
\end{document}
глава2.tex:
\chapter{End}
\label{ch2}
Bar
дополнение.tex:
\documentclass{powerdot}
\usepackage{xr-hyper}
\usepackage{hyperref}
\externaldocument{book}
\begin{document}
\begin{slide}{Slide Title}
Reference A: \ref{ch1} page \pageref{ch1}
Reference B: \ref{ch2} page \pageref{ch2}
\end{slide}
\end{document}
Кстати: Если вы хотите использоватьпроектор-класс, это также работает с использованиемxr-гипер-пакет вместохр-упаковка.
В этом случае supplement.tex может выглядеть так:
\documentclass{beamer}
\usepackage{xr-hyper}
\usepackage{hyperref}
\externaldocument{book}
\begin{document}
Reference A: \ref{ch1} page \pageref{ch1}
Reference B: \ref{ch2} page \pageref{ch2}
\end{document}