我正在尝试设置 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"
也可以看看
- 原始问题:https://github.com/MiKTeX/docker-miktex/issues/21
- PR 在 README 中描述 gitlab CI:https://github.com/MiKTeX/docker-miktex/pull/23
- 关于缓存(目前在 gitlab 上无法实现,因为软件包没有安装在项目目录中):https://github.com/MiKTeX/docker-miktex/issues/22
答案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