仅编译子文件时,无法将图形从一个子文件引用到另一个子文件

仅编译子文件时,无法将图形从一个子文件引用到另一个子文件

我在 Overleaf 中有以下文件:

main.tex在根目录中:

\documentclass[conference]{IEEEtran}
\usepackage{xr}
\usepackage{subfiles}

\begin{document}

\section{Methodology} \label{methodology}
\subfile{section/methodology}

\section{Results and Discussion} \label{discussion}
\subfile{section/discussion}

\end{document}

以及目录中的2个子文件section

discussion.tex,如下图所示,带有标签fig:myfig

\documentclass[../main.tex]{subfiles}
\begin{document}

\begin{figure}
\includegraphics[width=0.45\textwidth]{myfig.pdf}
\caption{My Figure.}
\label{fig:myfig}
\end{figure}

\end{document}

然后,在我的其他子文件中methodology.tex,我想要引用fig:myfig

\documentclass[../main.tex]{subfiles}
\externaldocument{discussion}

\begin{document}

I want to refer to Figure \ref{fig:myfig}

\end{document}

如果我编译main.tex,则该图引用得很好。但如果我仅编译methodology.tex,则得到??图引用。我该如何正确引用它?

答案1

xr在本地 TeX 安装中,问题中的示例代码(几乎)可以工作。所需的更改与软件包和无关subfiles,而只是使图像加载工作正常。因此,如果 Overleaf 上存在问题,则它们是由那里的特定设置引起的,而不是由软件包引起的。

文件结构如下:

main.tex
section/discussion.tex
section/methodology.tex

排版main.texsection/discussion.tex照常工作:运行latex两次。

要排版section/methodology.tex,您必须先运行latex一次discussion.tex(这将生成discussion.aux,它包含来自 的标签discussion.tex),然后再运行一次methodology.tex(此运行读取discussion.aux):

cd section
pdflatex discussion
pdflatex methodology

以下是这三个文件的内容。

% main.tex
\listfiles % to get the list of loaded packages with version information
\documentclass[conference]{IEEEtran}
\usepackage{graphicx}
\usepackage{xr}
\usepackage{subfiles}
\begin{document}
\section{Methodology} \label{methodology}
\subfile{section/methodology}
\section{Results and Discussion} \label{discussion}
\subfile{section/discussion}
\end{document}

% section/discussion.tex
\documentclass[../main.tex]{subfiles}
\begin{document}
\begin{figure}
\includegraphics[width=0.45\textwidth]{example-image}
\caption{My Figure.}
\label{fig:myfig}
\end{figure}
\end{document}

% section/methodology.tex
\documentclass[../main.tex]{subfiles}
\externaldocument{discussion}
\begin{document}
I want to refer to Figure \ref{fig:myfig}
\end{document}

作为参考,以下是已加载软件包的列表,其中包含所用版本的信息。您可以通过\listfiles在 中添加第一行来获取它main.tex。该列表显示在日志输出的末尾。

 *File List*
IEEEtran.cls    2015/08/26 V1.8b by Michael Shell
  ot1ptm.fd    2001/06/04 font definitions for OT1/ptm.
graphicx.sty    2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR)
  keyval.sty    2014/10/28 v1.15 key=value parser (DPC)
graphics.sty    2019/11/01 v1.3d Standard LaTeX Graphics (DPC,SPQR)
    trig.sty    2016/01/03 v1.10 sin cos tan (DPC)
graphics.cfg    2016/06/04 v1.11 sample graphics configuration
  pdftex.def    2018/01/08 v1.0l Graphics/color driver for pdftex
      xr.sty    2019/07/22 v5.05 eXternal References (DPC)
subfiles.sty    2019/10/30 v1.5 Multi-file projects (package)
  import.sty    2009/03/23  v 5.1
supp-pdf.mkii
epstopdf-base.sty    2016/05/15 v2.6 Base part for package epstopdf
infwarerr.sty    2016/05/16 v1.4 Providing info/warning/error messages (HO)
  grfext.sty    2016/05/16 v1.2 Manage graphics extensions (HO)
kvdefinekeys.sty    2016/05/16 v1.4 Define keys (HO)
 ltxcmds.sty    2016/05/16 v1.23 LaTeX kernel commands for general use (HO)
kvoptions.sty    2016/05/16 v3.12 Key value format for package options (HO)
kvsetkeys.sty    2016/05/16 v1.17 Key value parser (HO)
etexcmds.sty    2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)
ifluatex.sty    2019/10/25 v1.5 ifluatex legacy package. Use iftex instead.
   iftex.sty    2019/11/04 v1.0b TeX engine tests
pdftexcmds.sty    2019/07/25 v0.30 Utility functions of pdfTeX for LuaTeX (HO)
   ifpdf.sty    2019/10/25 v3.4 ifpdf legacy package. Use iftex instead.
epstopdf-sys.cfg    2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Live
methodology.tex
discussion.tex
example-image.pdf    Graphic file (type pdf)
 ***********

相关内容