GitLab CI 使用 MiKTeX docker 镜像

GitLab CI 使用 MiKTeX docker 镜像

我正在尝试设置 GitLab CI 来编译我的 LaTeX 文件,但我想避免一遍又一遍地下载完整的 TeXlive。据我所知,MiKTeX 或多或少只会下载 TeX 文件所需的内容。

我已经使用 docker 镜像 blang/latex 进行了适当的设置,但是似乎无法编译 miktex/miktex。

它总是失败:

2018-06-21 09:40:38,858Z INFO  pdflatex - mpm: extracting files from geometry-de.tar.lzma...
2018-06-21 09:40:39,257Z FATAL pdflatex - The installed file does not exist.
2018-06-21 09:40:39,257Z FATAL pdflatex - Info: fileName="/miktex/.miktex/texmfs/install/tex/latex/geometry-de/geometry.sty"
2018-06-21 09:40:39,257Z FATAL pdflatex - Source: Libraries/MiKTeX/Core/Session/findfile.cpp
2018-06-21 09:40:39,257Z FATAL pdflatex - Line: 55
2018-06-21 09:40:39,258Z INFO  pdflatex - finishing with exit code 1

gitlab-ci.yml:

image: miktex/miktex

before_script:
  - apt-get update -qq && apt-get install -y -qq inkscape python-pygments

build:
  script:
    - ./convert_svg.sh
    - pdflatex -shell-escape abgabe.tex
  artifacts:
    paths:
      - "*.pdf"

这是我的项目:https://gitlab.com/ZerataX/DS_TEMPLATE/

如果存在其他较小的 tex 发行版,但也会自动安装我的依赖项,这也将是解决我的问题的一个很好的解决方案。

答案1

我们发现在软件包的动态安装之前需要更新语言环境数据库,因此请尝试以下操作:

image: miktex/miktex

before_script:
  - apt-get update -qq && apt-get install -y -qq inkscape python-pygments

build:
  script:
    - mpm --update-db # <------------------------------------
    - ./convert_svg.sh
    - pdflatex -shell-escape abgabe.tex
  artifacts:
    paths:
      - "*.pdf"

也可以看看

答案2

geometry-de不包含geometry.sty(见https://github.com/MiKTeX/miktex-packaging/issues/29)。

我建议您更新软件包数据库:mpm --update-db

答案3

根据 stuck 的回答,有一个更新,因为 mpm 已被弃用MikTeX 更新 CLI 已弃用。因此,使用

miktex packages update-package-database

相关内容