在 Overleaf 的主文档中使用独立 .tex 的 pdf 图像

在 Overleaf 的主文档中使用独立 .tex 的 pdf 图像

在我的电脑上,在同一个文件夹中,我创建了主文档main.tex和一个图形disc.tex- 一个独立的 TikZ/Asymptote 代码。首先运行disc.tex以获取disc.pdf,然后运行main.tex(其中有\includegraphics{disc.pdf})。它像往常一样工作。这种方式有助于减少编译时间,尤其是当主文档中有很多图形时。

在此处输入图片描述

内容main.tex

\documentclass{article}
\usepackage{graphics,lipsum}
\begin{document}
\lipsum[1]

\begin{figure}
\centering
\includegraphics{disc.pdf}
\caption{This is my disc}
\label{fig:mydisc}
\end{figure}

\lipsum[2]
\end{document}

内容disc.tex

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\fill[cyan!50] circle(1) node[red]{unit disc};
\end{tikzpicture}
\end{document}

我怎样才能在 Overleaf 上做类似的事情? 我的示例项目 Overleaf 无法识别其位置disc.pdf

在此处输入图片描述

我认为这种情况对于 Overleaf 上的 TeX 用户来说很常见,但我还没有在 texSE 上找到合适的答案。这个答案建议制作 2 个或更多项目,一个用于主文档,其他项目用于每个图,然后导入output.pdf(必要时更改名称)到主项目。这不太方便:想想每次我们修复一个图的代码时,我们都需要再次导入。我们写一本有 100 个图的书,我们需要一个项目,而不是 101 个项目,对吗?

答案1

您还可以尝试使用standalone包和\includestandalonemain.tex

\documentclass{article}
\usepackage{graphicx,lipsum}
\usepackage[mode=buildnew]{standalone}
\begin{document}
\lipsum[1]

\begin{figure}
\centering
\includestandalone{disc}
\caption{This is my disc}
\label{fig:mydisc}
\end{figure}

\lipsum[2]
\end{document}

然后,编译main.tex将触发编译disc.tex、生成disc.pdf并在 中使用它main.tex

在此处输入图片描述

您还可以disc.pdf生成的文件列表

答案2

overleaf 将主文档复制到/compile并使用-jobname=output,因此所有内容都称为 output.pdf,而当您需要时该文件不存在。您可以这样做

在此处输入图片描述

添加

\immediate\write18{pdflatex disc}

因此main.tex它会disc.pdf在生成的目录中进行编译,main但请注意,它每次都会这样做,因此您不会节省任何时间。

您可以将其包装在测试中以查看是否disc.pdf存在


\IfFileExists{disc.pdf}{}{%
\immediate\write18{pdflatex disc}
}

然后,如果您编辑 disc.pdf,则需要暂时​​注释掉测试以强制重建 disc.pdf

相关内容