前言
本文不仅解释如何在服务器上安装overleaf,还将说明如何加速下载安装包、如何安装各种必要字体等等,以便达到类似于“开箱即用”的效果。
我对于LaTeX的要求是:
比较简便的排版日文和中文(通过安装思源宋体实现,如果做不到将会是一个比较大的劝退点。这个word也能做到)
能够顺畅的使用和无缝连接(比如说在宿舍、在图书馆,乃至外出时。还有在台式机、平板电脑,甚至pad上都能拥有相同的打字体验。这是word万万做不到的,光是字体就得在每台电脑上都安装一遍)
因此我决定使用overleaf来解决我的需求。而我的overleaf已经运行了1年,写了20多篇作业/讲义/幻灯片,使用体验已经相当不错了。可以说是用比较有限的学习成本,达到了全方位超越word的效果。LaTeX带给我的好处还包括:
美观且方便(比如我在用word的时候,每新建一个文档写作业,第一件事情是设置各种标题的字体、行间距、段前段后间距等等。换成LaTeX之后只需要拷贝模板文件就OK)
拼接生僻字(古文偶尔需要)、做图等。
可以看出,即便是不太需要排版数学公式的文科学生,也是可以找到充分理由去使用LaTeX的。
而之前阻碍我使用LaTeX的一大因素,就是它需要配置环境(字体、包等等)。换一台电脑又得重新配置,很不方便,更严重的是它有可能导致我在过去写好的文档,在N年后的新电脑上无法编译。而使用Overleaf之后,我只需要配置一次环境,即可在左右地方享受到完全一致的体验。
Overleaf的缺点包括:
就我所知,似乎只有网页浏览器端一种编辑器,不够灵活。
需要一台服务器来运行(对我来说不算缺点,因为我本来就需要一台服务器)
安装
首先你需要一台运行Linux操作系统的电脑(官方推荐Ubuntu),我这里使用的是2核4G的某讯云学生机。有NAS的同学完全可以在NAS上运行overleaf服务。
首先安装Docker-compose,打开终端运行下面的命令:
# 参考https://www.runoob.com/docker/ubuntu-docker-install.html
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
#安装docker-compose
sudo su #切换到root
curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
su <自己的用户名> #这里写你自己的用户名 然后拉取overleaf的安装文件:
git clone https://github.com/overleaf/toolkit.git ./overleaf
# 上面这条命令大概率没有反应,我们可以使用github的国内镜像站来代替:
git clone https://hub.fastgit.org/overleaf/toolkit.git ./overleaf
# 镜像站不止上面一个,可以百度一下,多尝试几个。 然后我们自动安装即可:
cd ./overleaf
bin/init
sudo bin/up 这一步会拉取overleaf的docker镜像,docker可以理解为Linux里面运行的一个套娃。这里我们是通过overleaf toolkit提供的脚本直接安装,大概率会遇到网络问题。因此我们需要更换国内的云镜像。
运行这个命令,会进入到一个类似记事本的地方:
sudo nano /etc/docker/daemon.json 把下面的内容复制进去:
{
"registry-mirrors":[
"http://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com",
"http://registry.docker-cn.com"
] ,
"insecure-registries":[
"docker.mirrors.ustc.edu.cn",
"registry.docker-cn.com"
]
} 按Ctrl+X退出。
然后重新运行
sudo bin/up 中间有时候会发现运行失败,重新运行即可。安装成功后会自动开始运行,而且会在开机后自动运行,不需要我们自己去操心它。我们需要在浏览器上输入:
http://<ip地址>/launchpad
网站会提示我们设置用户名和密码,之后我们发现Overleaf已经可以使用了。到这里,只需要排版英文等欧洲语言的朋友看到这里基本上可以离开了。当然up主的需求是排版中文和日文,所以下面我们需要进入后半部分:
安装中文
(这部分参考 https://github.com/overleaf/toolkit/blob/master/doc/ce-upgrading-texlive.md 和 https://www.freesion.com/article/9925804761/ )
关闭浏览器,回到终端。
前面说了,docker相当于一个虚拟的linux系统。我们可以登陆进去手动调整overleaf后端的latex环境,且这个环境并不影响物理机的使用。overleaf内部使用texlive作为tex包管理器,而默认安装的Overleaf toolkit自带的texlive环境并不能满足使用要求(尤其输入中文的要求)。我们需要安装完整版的texlive,但是texlive会提示我们必须升级到texlive2021,只需按照指引输入升级即可。
sudo ~/overleaf/bin/shell
sudo docker exec -it sharelatex bash # 切换到docker环境 当我们看到“root@____________:/# ”的时候,说明我们顺利切换到了内部环境(也就是overleaf所在的container)。下面的命令需要在内部环境执行:
tlmgr option repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet
# 让LaTeX下载速度更快
# 也可以使用 tlmgr option repository https://mirrors.bfsu.edu.cn/CTAN/systems/texlive/tlnet
tlmgr update --self
tlmgr install scheme-full
#稍等亿下,可以去喝杯茶。 现在,overleaf已经完整安装在服务器里。但字体依然是不全的,我们需要手动安装字体。我有一定的中日文混排的需求,如果使用一般字体,只能保证正确显示一种语言,另一种语言会出现大量的豆腐块。使用Noto / 思源字体可以解决这个问题(但是,仍然只能指定一种可以完美显示的语言,另一种语言的一些具体的汉字字形会不标准,如下图)。

这种方法至少能保证PDF中不出现“豆腐块”
上面是思源的日文字体,中文的“改”不标准(左边下面的弯钩)。下面是思源的中文字体,日文的“变”不标准(上面亦的一撇的长度、竖钩)。up主写日文为主,因此一直都使用日文字体。
回到正题,我们开始下载字体:
wget https://mirrors.tuna.tsinghua.edu.cn/github-release/googlefonts/noto-cjk/LatestRelease/repo-snapshot.tar.gz # 下载noto字体
tar zxvf repo-snapshot.tar.gz # 解压
mv goo~~~/ /usr/share/fonts/ # 复制字体
apt update
apt install xfonts-utils
mkfontdir # 安装字体
fc-cache -fv # 刷新字体缓存 注意,上面goo~~~/这一步的意思是,输入“goo”,然后按“CAPSlock”键上面的那个“Tab”键,就可以自动补全成文件夹的名字。
现在我们已经可以正常运行overleaf了。下面是两个可选操作。Enjoy!
(可选,有法律风险)
还可以把自己电脑里面的字体上传到/usr/share/fonts/文件夹下,并运行fc-cache -fv。
或者直接下载安装:
sudo apt install ttf-mscorefonts-installer
(可选)
如果你不希望Overleaf安装在80端口,你可以参考: https://github.com/overleaf/toolkit/blob/master/doc/overleaf-rc.md