【问题标题】:Docker Alpine Latext texmf-dist styles not found未找到 Docker Alpine Latext texmf-dist 样式
【发布时间】:2021-04-16 14:54:43
【问题描述】:

我正在尝试将一些必要的 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 添加的所有样式,而不仅仅是这个。谢谢。

【问题讨论】:

标签: docker latex pandoc alpine


【解决方案1】:

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

通常,将以下内容添加到 Dockerfile 中

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

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

【讨论】:

  • 谢谢。使用 tlmgr 而不是 Alpine 包最终解决了这个问题。事实证明,包安装到与容器中的乳胶安装不同的位置。
猜你喜欢
  • 2018-04-26
  • 2017-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-01
相关资源
最近更新 更多