当前位置: 首页 > news >正文

【报错】arXiv上传文章出现XXX.sty not found

笔者在overleaf上编译文章一切正常,但上传文章到arxiv时出现类似于如下报错:
在这里插入图片描述
一般情况下观察arxiv的编译log,不通过的原因,很多时候都是由于某一行导入了啥package,引起的报错;但是如果没有任何一个具体的报错,只是告诉你XXX.sty not found,那么很可能是编译器版本的问题。

如上述这个报错,主要是由于arxiv 的latex编译器版本过低,导致tabularray根本无法在内置环境中找到导致的。


截止到目前,arxiv使用的latex编译器版本为2020版,但是像overleaf默认使用的都是最2022新版的tex,这就会导致很多在overleaf上自己能够导入编译成功的package,在arxiv上却not found

具体参考overleaf 官方给出的checklist.

在这里插入图片描述在这里插入图片描述

解决方案

这里给出两种解决方案:

1. 改用老版本的package

最直接的解决方案,自然就是把一些太新的package注释掉,重新上传

如果当前的pdf排版依赖于这些package,那么就得考虑用一些老版本的包代替了。

例如,如果你用了tabularray排版的表格,那么可以将其替换为tabular,可以实现接近的排版效果。

按照笔者的经验,一些新的package,肯定能够找到能够用作替代的老版本packages。

只不过这个操作往往非常耗费时间;而且由于向下兼容,那些新package一两行命令能够实现的功能,用一些老packages就会绕很大的圈子,非常麻烦!

优点:

  • 从源头解决问题

缺点:

  • 极度花费时间
  • 不能做到完全地平替很多新pakcages的功能

2. 下载源码

第二种方法更为省力:将那些太新的package的源码(.sty)下载。然后在项目里倒入本地的.sty文件

例如,去从CTAN下载tabularray.sty ,将文件放到项目目录下,然后再\usepackage{tabularray}

在这里插入图片描述
在这里插入图片描述
但是这种方法也是治标不治本,也并不是所有情况都能奏效。

而且很容易出现,你下载了A包,它依赖于B包;你下载了B包,它又依赖于C、D包。。。然后你可能还得理清楚这些package之间的版本关系。。。

但在某些情况下,比方说依赖的package很少,这还是一个非常有用的方法。

优点:

  • 快速、省力

缺点:

  • 治标不治本
  • 容易出现“连环依赖”,和版本冲突

一些建议

如果你有计划把项目上传arxiv的话,这里给出一些建议:

  1. 先去官网检查一下arxiv最新的tex编译器的版本是啥(可以去arxiv先尝试随便上传一个文件,看看编译的log)。

  2. 将自己的本地环境,或者overleaf编译器设置为和arxiv一致,以防后续发生不兼容的问题。
    在这里插入图片描述

  3. 在上传arxiv之前,把项目里导入过的一些没用的package全部注释掉,以最大程度降低上传出错的可能性。

  4. 保持自己tex源码整洁。。至少能够分得清哪些packages是自己后面加的,哪些是conference template本来就自带的(不然就得像笔者一样,一个个试)。。。

参考

  • https://github.com/tectonic-typesetting/tectonic/issues/871
  • Adding .sty files into tex
http://www.lryc.cn/news/64446.html

相关文章:

  • 项目合同管理
  • 聊聊ClickHouse向量化执行引擎-过滤操作
  • 数据可视化第二版-拓展-网约车分析案例
  • pytest - Getting Start
  • ( 字符串) 205. 同构字符串 ——【Leetcode每日一题】
  • python+django+vue消防知识宣传网站
  • 彻底告别手动配置任务,魔改xxl-job!
  • 【五一创作】Springboot+多环境+多数据源(MySQL+Phoenix)配置及查询(多知识点)
  • Python小姿势 - 线程和进程:
  • Mysql 锁
  • 基于ssm的论坛系统的设计与实现【附源码】
  • Vue中的事件修饰符
  • 如何保证Redis和数据库的一致性
  • Ubantu docker学习笔记(八)私有仓库
  • 【五一创作】网络协议与攻击模拟-01-wireshark使用-捕获过滤器
  • 网络-IP地址(嵌入式学习)
  • 一文介绍Linux EAS
  • 【五一创作】【Midjourney】Midjourney 连续性人物创作 ① ( 通过垫图方式生成类似图像 )
  • 牛客刷题错题记录【03】
  • maven-gpg-plugin gpg禁用交互式输入密码 免密码输入 设置默认密码 关闭pinentry-qt输入 passphrase
  • 急需国产化替代的重要的工程软件有哪些?
  • 计算机组成原理 4.2.1存储芯片连接
  • 这份【互联网项目全流程表】,实在是泰裤辣!!!
  • JAVA医院管理云HIS统计报表子系统、系统管理字系统功能实现
  • 5.Java中抽象类和接口
  • 中国平安将在2023年出现转机,复苏才刚刚开始
  • CUDA编程(六):代码分析与调试
  • 身份鉴别解读与技术实现分析(1)
  • 为什么说7.38万的比亚迪海鸥比仰望更重要
  • 【LLM】低成本部署大语言模型, 并且还能达到部署在GPU上差不多的效果