Overleaf以及sharelatex是一款开源的线上Latex编辑器,集编辑和编译一体化的线上latex,对于有服务器资源的朋友来说,非常方便,但是存在存在一个问题,官方的Overleaf以及sharelatex只有很少的字体文件,有很多,比如宋体,黑体,仿宋,楷体等等都没有,究其原因,是docker运行环境中的ubuntu字体文件太少,下面介绍如何把windows下的字体(各种都有)迁移到Overleaf以及sharelatex所在的ubuntu环境下,解决无法编译带宋体,楷体等等问题
1、安装Overleaf以及sharelatex
如果你的服务器(Linux)没有安装Overleaf以及sharelatex,可以参考我的博客文章:Latex系列之如何安装线上latex编辑器
2、导出windows下所有的字体文件
word是通过加载windows下字体文件来显示字体,我们可以把windows下字体文件全部导出来,一般情况下,windows下字体文件在下面的目录下。
// windows 字体目录
C:\Windows\Fonts

将它们压缩打包,上传到服务器
3、上传字体文件
使用 docker ps 查看运行的容器的id号

进入容器
# 进入容器 827693f7c09d 为容器的id号 根据上面的查询结果来定
docker exec -it 827693f7c09d /bin/bash
进入容器之后,执行下面操作
cd /usr/share/fonts/
mkdir windows
新建一个ssh回话,在宿主机上将字体文件拷到/usr/share/fonts/windows/目录下
# 827693f7c09d 为容器的id号 根据上面的查询结果来定
docker cp Fonts.zip 827693f7c09d:/usr/share/fonts/windows/
在容器中,将压缩文件解压,将压缩文件下所有的字体文件移动到/usr/share/fonts/windows/,然后就可以删除压缩包了
4、安装字体文件
进入容器后,我们只需要执行下面命令更新字体文件就可以
fc-cache
通过下面的命令查看字体文件
fc-list
字体文件比较多,只截图了部分图片

5、容器备份
在容器中操作,一般不会保存,在容器重启之后,会消失,这是我们需要将容器重新保存为镜像,执行下面的操作来保存镜像
# 827693f7c09d 为容器的id号 根据上面的查询结果来定
docker commit 827693f7c09d sharelatex/sharelatex:with-texlive-full
好的,现在你已经完成了字体的安装,你会发现基本上所有的中文或英文的工程都能成功的编译了,请尽情享受吧