Sharelatex本地部署指南

2023-10-19发布于服务部署指南 | 最后更新于2023-10-19 16:10:00

文档 Latex 配置文件

前期准备

开启Windows的WSL2

控制面板->程序和功能->启用或关闭Windows功能:开启“虚拟机平台”与“适用于Linux的Windows子系统”。另外,要成功开启“虚拟机平台”的功能,需要在BIOS中开启CPU的虚拟化功能。

开启启用或关闭Windows功能

开启这两个功能并点击确定后,等待加载完成,加载完成后重启电脑

为了确保WSL2开启和加载,再开启上述功能并重启后,按照微软官方的WSL升级指南进行如下操作:

  1. 以管理员身份打开PowerShell(“开始”菜单 >“PowerShell” >单击右键 >“以管理员身份运行”),然后输入以下命令启用WSL:

    dism.exe /online /enable-feature /  featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    
  2. 启用虚拟化功能,同样以管理员身份运行Powershell并执行以下命令:

    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all / norestart
    
  3. WSL升级指南的第四步中,下载“适用于x64计算机的WSL2 Linux内核更新包”,下载完成后双击安装即可。

  4. 最后,在管理员身份运行的Powershell中运行以下命令,以设置默认使用WSL2:

    wsl --set-default-version 2
    

    重启计算机

安装WSL的Ubuntu

此处安装Ubuntu20.04,此处有两种方式:

  1. Windows自带的Microsoft Store中搜索Ubuntu,点击安装Ubuntu20.04即可。由于网络问题,很可能无法安装,此时应使用第二种方法。

Microsoft Store页面

  1. 从微软官网的发行版列表中下载Ubuntu20.04LTS的AppBundle,下载完成后双击安装即可。

下载AppBundle

双击安装

  1. 安装完成后,系统中就会有一个Ubuntu的应用,打开后是Ubuntu的命令行界面。另外,在powershell中执行wsl -l -v查看已安装的Ubuntu及其Version,版本为2说明使用的确实是WSL2,此时请再次重启电脑

Ubuntu应用

Ubuntu命令行界面

WSL2 Ubuntu

下载Docker image并拉起container

Overleaf官方提供的安装脚本中并没有Windows的版本,但是由于其本质上使用的是Docker,因此在Windows上也是可以安装的,本文根据官方提供的Linux版本下的配置方法与配置脚本给出了一种在Windows上的安装方案。

安装与配置Docker Desktop

Docker官网下载页下载Docker Desktop的Windows安装包,安装时第一个配置必须勾选,第二个根据需要勾选。安装可能需要好一会儿,请耐心等待。

下载Docker Desktop安装包

Docker Desktop的配置

接下来开启Docker Desktop,蓝色小鲸鱼会建议你登录,直接点击“Continue without signing in”,然后小鲸鱼还会问你是做什么工作的,也直接选择“Skip”跳过即可。

接下来需要确认与调整几项配置:

  • 右键右下角托盘处的小鲸鱼,确保使用的是Linux Containers,即显示的是“Switch to Windows containers”

容器类型

  • 开启使用刚刚安装过的Ubuntu

开启WSL集成

拉取镜像并运行容器

下载compose配置文件:docker-compose.yml

打开该文件(可用任何文本编辑器,包括记事本),进行修改。需要修改四处(有三处需要确保填入数据存储路径,必须都是当前已存在的文件夹,建议分别为这三处数据存储创建新的文件夹):

  • sharelatex的对外映射端口。将6600改成一个你自己喜欢的端口号,用于后面在浏览器中访问使用。

  • sharelatex的数据存储位置。将/path/to/sharelatex/data改为一个你自己电脑上的文件夹的路径,例如D:/Program Files/sharelatex/data

sharelatex的配置

  • mongo的数据存储位置。将/path/to/mongo/data改为一个你自己电脑上的文件夹的路径,例如D:/Program Files/sharelatex/mongo_data

mongo的配置

  • redis的存储位置。将/path/to/redis/data改为一个你自己电脑上的文件夹的路径,例如D:/Program Files/sharelatex/redis_data

redis的配置

保存好compose文件后,开启powershell,进入到compose文件所在文件夹,执行下面的命令:

docker compose up

compose文件

compose up

此时查看Docker Desktop,会发现出现了三个容器,点击mongo,选择exec,执行下面两条命令(第一条命令执行完成后等待约10秒再执行第二条):

bash
mongo --eval "rs.initiate({ _id: \"overleaf\", members: [ { _id: 0, host: \"mongo:27017\" } ] })"

初始化容器

mongo加入replicate

执行完之后看到"ok": 1,说明成功了。

sharelatex配置

初始化sharelatex

打开浏览器,输入网址:http://localhost:6600/launchpad,其中6600需要换成刚刚自己设置的端口号。输入用户名密码并点击注册,此账号将作为超级管理员账号。注册后进行登录,并选择开始使用overleaf

管理员注册

launchpad初始化

创建示例项目并进入,编译完成后右边出现pdf预览,说明基础配置完成。

基础配置完成

中文配置

Docker Desktop中进入sharelatex,逐条执行以下命令,安装ctex中文包,第四条命令下载安装中文包需要一些时间,请耐心等待。

bash
cd
tlmgr option repository https://mirrors.aliyun.com/CTAN/systems/texlive/tlnet
tlmgr install ctex
tlmgr path add

tlmgr配置

tlmgr配置

重启整个compose,点击重启后请等待30秒左右。

重启compose

再次在浏览器中进入应用,进入项目后点击左上角的Menu,选择编译器为XeLaTex。

切换编译器

在左侧粘贴下面这段中文测试文章,再按下保存ctrl+S,或者点击右侧窗口的recompile重新编译。

\documentclass{ctexart}
\begin{document}
\tableofcontents

\begin{abstract}
这是简介及摘要。
\end{abstract}

\section{前言}

\section{关于数学部分}
数学、中英文皆可以混排。You can intersperse math, Chinese and English (Latin script) without adding extra environments.

這是繁體中文。
\end{document}

可以发现中文也已经正确显示了。

中文显示

开启与关闭

要关闭sharelatex,在Docker Desktop中直接将整个compose stop即可,点击停止后需要等待一段时间,直到下面的三个容器的状态均显示为Exited。开启也是一样地,点击compose的小三角start即可。

关闭sharelatex

请注意,点击Docker Desktop应用程序右上角的叉不会真正关闭Docker,在关机前,请确保右下角托盘中没有小鲸鱼,若有,请右键小鲸鱼并选择“Quit Docker Desktop”以真正停止Docker Engine

退出Docker