利用Github Action运行latexdiff,在overleaf上自动生成修订文件

前言

overleaf是大家经常使用的论文协作编辑平台,对于有协作编辑需求、本地编译慢、懒得配texlive的科研工作者来说是神器。
在回复审稿人意见或者需要做不同版本tex之间的内容对比时,latexdiff能够生成高质量的修订校对文件,效果如下图所示:

在这里插入图片描述

由于overleaf本身是论文协作平台,不支持使用在平台安装及使用latexdiff命令为了生成修订文件,每次都需要下载主tex文件 main.tex,本地运行latexdiff生成修订文件diff.tex,再上传编译形成修订稿,非常麻烦。因此在发现overleaf支持同步github仓库之后,想尝试一下能否利用github的 workflow功能实现自动生成diff.tex。

折腾的过程走了很多弯路,本博文直接贴上操作流程及配置文件。

1. 从github 导入项目到overleaf中

首先 在github上创建论文project,本文中的项目名为ieee_template。

在tex源文件目录下,初始化git仓库,并上传到github。

git init
git remote add origin https://github.com/{你的仓库地址}
git branch -M main
git push -u origin main

然后在overleaf上创建项目,new project -> import from Github:
在这里插入图片描述
完成授权后,导入指定项目:

在这里插入图片描述

如果已经是在overleaf上开始写了的论文,overleaf也支持直接链接到github创建仓库.
在这里插入图片描述

在目录中,需要有两个tex文件:

  • old.tex,作为想要生成修订对照的旧版本
  • new.tex:修订之后的新tex文件: 。

比如,在给编辑和审稿人写回复信,生成修订版时,old.tex内容为上一次投稿时的源文件。new.tex为修改之后的文件。
在这里插入图片描述

配置github action

在github仓库ieee_template中,点击actions。创建workflow在这里插入图片描述

在main.yaml中键入如下内容:

name: Latexdiff
# Controls when the workflow will run
on:
  # Triggers the workflow on push or pull request events but only for the main branch
  push:
    branches: [ main ]
    paths:   # 这里是用来指定哪个文件更改,才会触发的
      - '*.tex'

  workflow_dispatch:

jobs:
  generate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: generating diff.tex
        uses: addnab/docker-run-action@v3
        with:
          image: 18810919727/latex_diff:v1
          options: -v ${{ github.workspace }}:/dir:rw
          run: |
            latexdiff /dir/old.tex /dir/new.tex > /dir/diff.tex # 此处可以按需替换 old.tex、new.tex
            echo "Generating diff.tex successfully"
      - name: git add & commit
        run: |
          # 此处可以键入邮箱及姓名
          git config --global user.email "you@example.com"
          git config --global user.name "Your Named"
          git add diff.tex
          git commit -m "update diff"
          git push -u origin main

其中 18810919727/latex_diff:v1 是本人自己制作的latexdiff镜像,已经在dockerhub开源,按上述方式配置即可直接使用,不用自制镜像。

注意修改上面的old.tex, new.tex文件名为自己论文项目的新旧tex文件名。
然后点击start commit ->commit new file

在这里插入图片描述

使用流程

在overleaf中修改new.tex。然后点击Menu-> github -> Push changes to Github
在这里插入图片描述
此时在github的actions界面可以看到运行的workflow。在这里插入图片描述
黄色为正常运行,绿色为运行成功,点进去之后如果为如下效果,说明成功生成diff文件,并提交到仓库成功:

在这里插入图片描述

点击此处可以手动调用workflow,更新diff.tex。
在这里插入图片描述

等待1min钟左右(github分配虚拟机和下载镜像还是需要时间的),最后点击Menu-> github -> Pull Github changes into overleaf。
在这里插入图片描述
编译生成的diff.tex文件,效果如图:
在这里插入图片描述

使用总结:

使用流程总结图

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值