xr 在外部文件中找不到引用

xr 在外部文件中找不到引用

我嘗試過了使用 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.

所有文件都位於同一目錄中,並且我正在該目錄中運行pdflatexlatex而不使用 -output-directory 標誌。我也嘗試了這個xr-hyper包。

我還需要做什麼才能使supplement.tex從book.tex(及其包含的文件chapter2.tex)中獲取參考文獻?

答案1

目前最先進的技術是\label\(page)ref乳膠2e-內核被修改超引用-包裹。

因此,如果 book.tex 加載超引用-package,那就需要supplement.tex

  1. 確實加載了超引用包也。
  2. 確實加載了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}

相關內容