请问校内的latex平台在哪里能找到?

201 views
Skip to first unread message

Yx Ryan (YY)

unread,
Jun 6, 2023, 5:07:31 AM6/6/23
to USTC_LUG
学校的latex平台依据GPLv3协议开源,但是去哪里下载这个项目,因为区别于overleaf的社区版,学校版本有一些特色功能如无限数量合作者、无编译时间限制、历史记录、审阅批注、中文支持、Git同步等, 想本地部署一下看一下这些功能的实现方式。

taoky

unread,
Jun 6, 2023, 5:09:00 AM6/6/23
to ustc...@googlegroups.com
据我所知在 https://github.com/ertuil/overleaf

On 6/6/23 17:06, Yx Ryan (YY) wrote:
> 学校的latex平台依据GPLv3协议开源,但是去哪里下载这个项目,因为区别于
> overleaf的社区版,学校版本有一些特色功能如无限数量合作者、无编译时间限
> 制、历史记录、审阅批注、中文支持、Git同步等, 想本地部署一下看一下这些功
> 能的实现方式。
>
> --
> 您收到此邮件是因为您订阅了Google网上论坛上的“USTC_LUG”群组。
> 要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到
> ustc_lug+u...@googlegroups.com
> <mailto:ustc_lug+u...@googlegroups.com>。
> 要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/ustc_lug
> /910f0090-1eaf-424e-88d9-402c6ab69590n%40googlegroups.com
> <https://groups.google.com/d/msgid/ustc_lug/910f0090-1eaf-424e-
> 88d9-402c6ab69590n%40googlegroups.com?utm_medium=email&utm_source=footer>。

sun wilbur

unread,
Sep 20, 2023, 2:33:05 PM9/20/23
to USTC_LUG
自己部署一个就好,这里有教程。https://zhuanlan.zhihu.com/p/656444021

Ayaka

unread,
Feb 5, 2024, 2:28:13 AMFeb 5
to USTC_LUG

overleaf的很多功能都是通过module 导入进去的,有些功能甚至就直接硬编码在里面是否开启。所以说要实现其实难也不难

  • 难在于搞清楚这个体系的代码结构,上下层次,还有后期的维护,overleaf上游代码每天一更新,fork之后魔改一时爽,Merge时候冲突就快乐了

  • 不难是因为overleaf社区版在“删代码”的时候没有删除干净,顺着蛛丝马迹可以类似完形填空一样把删掉的代码给补全。

随便讲俩个例子:

  • 编译镜像切换本质是通过docker编译来实现的,但是clsi微服务里面的容器编译的代码都还在,稍微补一个解析环境变量,就可以实现docker编译了

  • 再说那个审阅功能,核心的写数据库的代码都在,本质就是加个转发给chat微服务的模块就能搞定了

  • 至于为什么官网有人数限制,看看下面的代码就知道了,都是写好了的,不存在什么技术瓶颈

upgradeFeatures(callback) {
  const features = {
    collaborators: -1, // Infinite
    versioning: true,
    dropbox: true,
    compileTimeout: 60,
    compileGroup: 'priority',
    templates: true,
    references: true,
    trackChanges: true,
    trackChangesVisible: true,
  }
  this.mongoUpdate({ $set: { features } }, callback)
}

downgradeFeatures(callback) {
  const features = {
    collaborators: 1,
    versioning: false,
    dropbox: false,
    compileTimeout: 60,
    compileGroup: 'standard',
    templates: false,
    references: false,
    trackChanges: false,
    trackChangesVisible: false,
  }
  this.mongoUpdate({ $set: { features } }, callback)
}

当然有些功能也比较麻烦,比如git集成,这个东西很麻烦,我看了一下ertuil的实现就是加了olbridge,那是个国外的人给自己学校免费版的overleaf开发的工具,相当于就是个外挂的web服务,不过似乎后来他自己学校买了overleaf pro,他也就不维护那个项目了。git相关的代码几乎在开源版里面完全找不到,属于是完全独立的模块,所以很难从0开始写并且接的上。

最后好奇一嘴,ertuil的那个repo似乎behind一千多个commit了,你们还维护这个项目嘛(

Elliot Chen

unread,
Feb 9, 2024, 12:17:21 AMFeb 9
to USTC_LUG
目前head当前暂时已经不在这个仓库了。前期部分功能都放在这个仓库了,后期更复杂的功能目前尽量独立作为上游依赖注入了。

当前架构感觉有一些需要调整的,可能有计划推倒全部重来。如果你很了解且乐意的话,欢迎参与。

Reply all
Reply to author
Forward
0 new messages