惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Check Point Blog
aimingoo的专栏
aimingoo的专栏
Jina AI
Jina AI
Microsoft Security Blog
Microsoft Security Blog
IT之家
IT之家
V
Visual Studio Blog
量子位
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 聂微东
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
大猫的无限游戏
大猫的无限游戏
Y
Y Combinator Blog
Stack Overflow Blog
Stack Overflow Blog
D
Docker
MyScale Blog
MyScale Blog
小众软件
小众软件
云风的 BLOG
云风的 BLOG
美团技术团队
Microsoft Azure Blog
Microsoft Azure Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Last Week in AI
Last Week in AI
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 【当耐特】

博客园 - marsggbo

GPU 算力没在算模型,在等 CPU 发号施令——CUDA Graph 是怎么解决这件事的 推理模型做 decode,GPU 只有 3% 在干活——SparseSpec 把稀疏 Attention 变成了 2.1× 加速 vllm v1 源码精读(三):KV Cache 管理、Chunked Prefill 与异步架构 vllm v1 源码精读(二):generate() 计算流——model.forward() 在哪里被调用? vllm v1 源码精读(一):为什么要重写,以及 LLM() 这行代码背后发生了什么 160 个 AI 比 80 个效果更差?这篇论文量化了一件大家隐约知道但说不清楚的事 ICLR'25 | SWIFT:不训练不搜索,Self-Speculative Decoding 的即插即用版 2025 | SSD for dLLMs:扩散语言模型也能用推测解码,最高 3.46× arXiv'26 | SSD for ASR:用 CTC 编码器打草稿,LLM 验证,语音识别也能推测解码 WWW'26 | SS-MoE:显存墙下的 MoE 推理,Self-Speculative Decoding 怎么救场? EMNLP'23 | 不用额外模型,LLM 自己给自己加速——Self-Speculative Decoding 原理详解 ACL'24 | LayerSkip:Meta 把 Self-Speculative Decoding 从头训到尾,直接干到 2.16× 从图像到文本:Diffusion 模型原理全解——数学、结构、训练、推理一次讲清 贝叶斯优化从零推导:从「我对这个函数有个猜测」到自动调参 长音频转写慢 10 倍,99% 的 Attention 在白做功——MURMUR 如何破解这道难题 2026 | dLLM-ASR 让语音识别推理快 4.44 倍,还不掉精度 公司里那个一言不发的马尾辫大叔,现在被装进了你的 AI agent 里 SpecASR:ASR 专属 Speculative Decoding,让 LLM 语音识别快 3.79 倍 COLM'25 | PredGen:你还在说话,LLM 已经想好怎么回了 LLM agent 为什么不稳?问题可能不在模型,在 harness Meta-Harness:让 LLM 自己搜索最优 harness,模型不动,性能白涨 从零理解 ASR:音频基础、Qwen3-ASR 架构,以及离线 vs 流式推理原理 arXiv'26 | LLM Agents 让群体信念变得可编程:当 AI 开始系统性操控舆论 巴西「主权大模型」翻车:当模型可以随便融合,怎么证明它偷了你的权重? 进阶篇 | 不靠人工设计,让遗传算法自己进化出 SOTA 的 LLM 剪枝指标 说人话:一文搞懂现在火热的 LLM agent 自进化原理 ICML'26 | Transformer 真的需要三个投影矩阵吗?Q-K=V 让 KV Cache 直接砍半 UPenn & Meta | NF-CoT:当 LLM 的思维链不再是文字,而是连续概率流 arXiv'26 | 为什么你的多智能体系统越加 agent 越慢?DeLM 用去中心化解了这个矛盾 arXiv'26 | Self-Harness:让 Agent 自己改自己的 harness,pass rate 最高翻倍
解决 Overleaf 中插入 PDF 图片失败的问题:排查与修复
marsggbo · 2025-04-19 · via 博客园 - marsggbo

在写科研文稿时,我们经常需要插入结构图、模型图等 PDF 格式的矢量图。但在 Overleaf 中,我遇到了一个较难定位的问题:使用 \includegraphics 插入 PDF 图片时,编译无报错,但无法显示图片甚至生成 PDF 文件失败。提示如下信息

No PDF
This compile didn’t produce a PDF. This can happen if:
There is an unrecoverable LaTeX error. If there are LaTeX errors shown below or in the raw logs, please try to fix them and compile again.
The document environment contains no content. If it’s empty, please add some content and compile again.
This project contains a file called output.pdf. If that file exists, please rename it and compile again.

本文记录这一问题的背景、排查过程与最终解决方案,希望对遇到类似问题的用户有所帮助。


1. 问题背景

文档中使用如下方式插入图像:

\usepackage{graphicx}
\graphicspath{{figures/.../}}

...

\begin{figure}
    \centering
    \includegraphics[width=\linewidth]{prune_structure.pdf}
    \caption{结构化剪枝示意图}
    \label{fig:pruning}
\end{figure}

其中 prune_structure.pdf 是一张矢量格式的图像,在本地查看没有问题,并没有损坏。

2. 问题现象

在 Overleaf 中:
• 使用 Fast Compile 模式时,文档可以编译成功,但图片显示为空白;
• 使用 Normal Compile 模式时,编译直接失败,并提示:

This compile didn’t produce a PDF.

日志中没有明确的错误信息,定位困难。

3. 排查过程

以下是我尝试过的排插步骤:

    1. 确认路径正确:
    • 日志显示图像被正确找到:File: figures/.../prune_structure.pdf Graphic file (type pdf)
    1. 注释图像代码:
    • 注释掉 figure 环节后,PDF 成功生成,说明问题出在图像本身。
    1. 确认 PDF 未损坏:
    • 图片可以在本地打开,也可以在 Overleaf 文件预览中正常显示,说明文件不是损坏的。
    1. 加入调试信息:
    • 添加 \listfiles,确认使用的是 XeLaTeX,图像类型正确,依然无法定位问题。

原因分析

最后问 chatgpt 和上网查资料,终于找到这个诡异的问题的原因了,就是因为Overleaf 使用 XeLaTeX 编译时,某些 PDF 图像的边界框信息(bounding box / crop box)不规范,可能会导致渲染器加载失败。特别是使用某些工具导出的图(如绘图工具、Python 库等)经常出现这种兼容性问题。这个问题光靠肉眼去检查 PDF 根本不可能看出来。折腾了我一上午这破玩意。

4. 解决方案:使用 pdfcrop 清理边界信息

我用的是Macbook,所以好像自带 pdfcrop命令。使用如下命令重新生成裁剪后的 PDF:

pdfcrop -xetex prune_structure.pdf
mv prune_structure-crop.pdf prune_structure.pdf

这样处理后,重新上传至 Overleaf,即可成功插入图像并正常编译生成 PDF。

每次都这么敲键盘怪累的,我们可以自动化命令简化操作。只需要把下面的代码添加到 .bashrc 或 .zshrc,我用的是后者:

# ~/.zshrc
pdfclean() {
    if [ $# -ne 1 ]; then
        echo "Usage: pdfclean <filename.pdf>"
        return 1
    fi
    local input="$1"
    local base="${input%.pdf}"
    pdfcrop -xetex "$input" "${base}-crop.pdf" && mv "${base}-crop.pdf" "$input"
}

然后使用:

pdfclean prune_structure.pdf

即可一键清理图像并替换原文件。

5. 总结

当 Overleaf 中插入 PDF 图片后出现“无错误但无法显示”或“编译失败”的现象时,建议优先考虑图片的边界信息问题。使用 pdfcrop -xetex 是一个有效且高效的解决方案,能显著提高在线 LaTeX 平台对 PDF 图像的兼容性。

参考