sharelatex:PDF 包含:所需页面不存在

sharelatex:PDF 包含:所需页面不存在

我查看了与此问题类似的其他问题,但我找不到解决我所面临的问题的适当解决方案,即包含.svg使用 inkscape 转换的文件,并将 pdf+latex 选项设置为 ON,并且我还在路径中包含了和文件.pdf.pdf_tex但我收到了上述错误。

My code:

\begin{figure}[h!] 
\centering
\def\svgwidth{\columnwidth}
\input{Implementation/Figs/most_changed_from_default_pos_0.pdf_tex}
\end{figure}

完整错误描述:

!pdfTeX error: pdflatex (file /compile/Implementation/Figs/most_changed_from_default_pos_0.pdf): PDF inclusion: required page does not exist <5>

任何帮助解决此问题的帮助都将不胜感激。我还下载了 pdf 文件以检查它是否有 5 页。我可以验证,pdf 文件中有 5 页。

我想要转换的文件是饼形图

我已将 Google Drive 链接添加到用于分析的文件

与问题相关的文件

答案1

编辑2:此错误已修复。如果您仍然遇到此问题,请将您的 Inkscape 安装更新至版本 0.92.2(2017 年 8 月)或更新版本。


显然,Inkscape 目前有一个错误(有一个错误报告从二月份开始,然而那里有人提到请求的页面只多了一页,而对我来说则多了很多)。

问题是该.pdf_tex文件请求.pdf包含的页面比实际的页面多。您可以手动删除有问题的行。它们应该看起来像这样

put(0,0){\includegraphics[width=unitlength,page=X]{filename.pdf}}%

其中X是一个大于文件中页数的数字.pdf(在您的情况下,这也是由 LaTeX 提供给您的<5>)。

每次编辑时您都必须重复此任务.svg,因此您可能希望避免不必要的编辑。

这是相当艰巨的,但在修复程序发布之前,这似乎是我们能做的最好的事情。


编辑:[已过时并因此被删除]

答案2

避免分层的解决方法

基本思想是将所有文本元素(将单独导出到乳胶的元素)移动到顶层。

  1. 打开.svg所有inkscape元素Ungroup(此操作必须重复,直到出现文本元素下方的小方块)

    在此处输入图片描述

    因此,所有元素都应该有各自的盒子:

    在此处输入图片描述

  2. 现在选择所有文本元素,例如轴标签、轴标题等。

    在此处输入图片描述

    并将这些元素移动到最顶层。

    在此处输入图片描述

  3. 如果您现在将文件保存到.pdf_tex

    在此处输入图片描述

    结果.pdf应该只有一页。

答案3

错误消息

!pdfTeX error: pdflatex (file [...]/most_changed_from_default_pos_0.pdf): PDF inclusion: required page does not exist <18>

不表示请求的页码后加<18>。该数字是总页数。也就是说,文件[...]/most_changed_from_default_pos_0.pdf_tex请求的页码不在 1 到 18 的范围内。

答案4

错误1417470导致该问题的原因现已在 Inkscape 中修复。

对于 Ubuntu,有一个官方 PPA 具有最新稳定版本:https://launchpad.net/~inkscape.dev/+archive/ubuntu/stable

相关内容