Unicode Gitlab页面+;强氧+;Graphviz创建具有损坏字符的图形

Unicode Gitlab页面+;强氧+;Graphviz创建具有损坏字符的图形,unicode,doxygen,graphviz,gitlab-ci,Unicode,Doxygen,Graphviz,Gitlab Ci,我正在使用Gitlab页面为我的项目托管一个Doxygen创建的API。我还利用graphviz项目创建依赖关系图。我使用CI脚本安装软件包并构建文档: pages: stage: build image: alpine script: - apk update && apk add doxygen - apk add graphviz - doxygen doxy/dox_config - mv docs/html/ public/

我正在使用Gitlab页面为我的项目托管一个Doxygen创建的API。我还利用graphviz项目创建依赖关系图。我使用CI脚本安装软件包并构建文档:

pages:
  stage: build
  image: alpine
  script:
    - apk update && apk add doxygen
    - apk add graphviz
    - doxygen doxy/dox_config
    - mv docs/html/ public/
  artifacts:
    paths:
      - public
  only:
    - master
  dependencies: []
CI脚本运行时没有任何错误,除了Doxygen错误,它抱怨找不到LaTeX和DVIP,这两者都不会影响graphviz图片。我的图表如下所示:


我不确定问题是什么,也不知道如何解决。为什么所有字符都错了?

原来问题出在使用的Docker图像上。Alpine不包括正确的字体,但Debian具备所有的先决条件。虽然几乎肯定有一种方法可以使用Alpine安装字体,但我只是切换到Debian docker图像。下面是一个正在工作的YML脚本:

pages:
  stage: build
  image: ubuntu:trusty
  script:
    - export DEBIAN_FRONTEND=noninteractive
    - apt-get -yq update
    - apt-get -yq install graphviz
    - apt-get -yq install doxygen
    - doxygen doxy/dox_config
    - mv docs/html/ public/
  artifacts:
    paths:
      - public

安装软件包
ttf freefont
ttf ubuntu字体系列
将解决此问题。这是我的文件

FROM alpine:3.6

RUN apk --update add \
  doxygen \
  graphviz \
  ttf-freefont \
  && rm -rf /var/cache/apk/*

ttf ubuntu字体系列
字体更窄,因此您的框会变得更小。

如果遇到同样的问题,我将尝试您的解决方案。对于未来的读者:我通过切换到doxygen配置中的MathJax解决了LaTeX问题,我认为这比在docker映像中请求整个LaTeX安装更相关。