与 travis 持续集成——未找到 package.sty

与 travis 持续集成——未找到 package.sty

我想在 github 上的项目中使用 travis-ci,此处提供 MWE

我正在使用以下.travis.yml文件,按照此处给出的步骤操作最小 CI LaTeX 构建器地点。

before_install:
- sudo apt-get update -qq
- sudo apt-get install texlive-latex-base
script:
- mkdir build
- pdflatex -output-directory build Example.tex
deploy:
  provider: releases
  api_key:
    secure: <mykey>
  file: Example.pdf
  skip_cleanup: true
  on:
    repo: HughParsonage/travis-latex-ci

但是,当我推动提交时,出现错误scrreprt.cls not found

我尝试将安装更改为sudo apt-get install texlive-latex-extra,但出现错误adjustbox.sty not found

我理解这些错误——我请求 travis 使用的 TeX Live 发行版没有我需要的包/类文件,但不知道如何通过文件解决它们.travis.yml。我理解我可以将相应的.cls/.sty文件放在同一个目录中,直到没有构建错误。但是,有没有办法在 travis 机器上获取所有这些包?

答案1

在本地系统上,可以简单地安装“所有 TeX Live”并避免这些问题。对于远程测试系统,您需要最小化安装大小,这更加困难。(是的,Travis-CI 将缓存已安装的软件包,但要求所有 TeX Live 可能有些极端。)

正如所讨论的如何在 Linux 系统上安装单独的软件包?,可以查找哪个 Ubuntu 包包含哪个.sty文件(或类似文件),从而调试这些问题。但是,在“实时”系统上运行时,这仍然可能容易出错。因此,我建议设置与您选择的 CI 系统相匹配的虚拟机:例如,Travis-CI 目前使用 Ubuntu 12.04 LTS。然后,您可以“本地”测试(并可以访问日志,ETC。) 到底需要安装哪些包,不需要安装哪些包才能使事情正常进行。

正如评论中所述,对于 LaTeX3 开发,我们有设置 Travis-CI,但使用脚本它会安装“vanilla”TeX Live,而不是使用 Ubuntu 打包版本。这种方式的注意事项大致相同:选择所需的 TeX 包,省略其他包。从这个意义上讲,测试编程和测试文档之间没有真正的区别:仍然是找出需要什么并安装它的问题。

相关内容