![仅编译子文件时,无法将图形从一个子文件引用到另一个子文件](https://linux22.com/image/404438/%E4%BB%85%E7%BC%96%E8%AF%91%E5%AD%90%E6%96%87%E4%BB%B6%E6%97%B6%EF%BC%8C%E6%97%A0%E6%B3%95%E5%B0%86%E5%9B%BE%E5%BD%A2%E4%BB%8E%E4%B8%80%E4%B8%AA%E5%AD%90%E6%96%87%E4%BB%B6%E5%BC%95%E7%94%A8%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%E5%AD%90%E6%96%87%E4%BB%B6.png)
我在 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.tex
并section/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)
***********