Docker 未找到 Alpine Latext texmf-dist 样式

Docker Alpine Latext texmf-dist styles not found

我正在尝试将一些必要的 latext 样式文件添加到 pandoc/latex docker 容器(它本身是在 Alpine 上构建的)并且底层的 latex 到 pdf 转换确实无法找到一些我添加的样式文件。这是我的 Dockerfile,它添加了我需要的包。

FROM pandoc/latex:latest
RUN apk --no-cache add texlive-xetex texmf-dist-pictures texmf-dist-latexextra poppler-utils && texhash

可以看到我需要的样式文件已经安装好了

$ docker run --rm -it --entrypoint /bin/sh -v $PWD:/data mypandoc:latest 
/data # find / -name tikzpagenodes.sty
/usr/share/texmf-dist/tex/latex/tikzpagenodes/tikzpagenodes.sty

但是,当我尝试进行实际构建时,出现以下错误。

Error producing PDF.
! LaTeX Error: File `tikzpagenodes.sty' not found.

Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: sty)

Enter file name: 
! Emergency stop.
<read *> 
         
l.103 \usepackage

我曾希望在容器构建中调用 texhash 可以解决这个问题,但事实并非如此。将 texmf-dist 目录放入搜索路径有什么技巧吗?问题似乎出在我从 texmf-dist 添加的所有样式上,而不仅仅是这一个。谢谢。

使用 TeXLive 中的 tlmgr 安装更多包。 pandoc/latex Docker 容器不使用 Alpine 的 TeX 安装,以便为用户提供更大的灵活性并减小图像大小——Alpine 包的粒度要差得多。

通常,将以下内容添加到Docker文件

# Install additional LaTeX packages
RUN tlmgr update --self && tlmgr install \
  pgf # <list of packages goes here>

或者,您可以使用 pandoc/core 图像并使用 Alpine 系统包构建您自己的 LaTeX 容器。