我嘗試過了使用 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
乳膠2e-內核被修改超引用-包裹。
因此,如果 book.tex 加載超引用-package,那就需要supplement.tex
- 確實加載了超引用包也。
- 確實加載了xr-超級- 包而不是xr-包裹。
(這xr-超級-包必須在之前加載超引用-包裹。
(在我使用的平台(MiKTeX 2.9)上動力點-class 似乎僅在dvi 模式下編譯時才起作用,產生一個.dvi 文件,該文件會導致MiKTeX 的dvi 預覽器YaP 崩潰,但可以毫無問題地通過dvips 轉換為postscript 文件,而postscript 文件又可以透過ps2pdf 到 .pdf 檔。
書.tex:
\documentclass[a4paper,10pt]{scrbook}
\usepackage{hyperref}
\begin{document}
\chapter{Beginning}
\label{ch1}
Foo
\input{chapter2.tex}
\end{document}
Chapter2.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}
順便說一句:如果您想使用投影儀-class,這也可以使用xr-超級- 包而不是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}