科研神器:Vscode + latex+grammarly+github copilot

科研论文编写神器:Vscode + latex + grammarly + github copilot

相信很多科研人都有使用latex排版及撰写论文的需求,我一开始使用的是在线编辑的overleaf,overleaf的优点是省事便捷,不用配置,并且支持版本回溯,如果图方便的话使用完全没有问题。

但是由于overleaf的服务器在国外,国内访问很慢,有时候虽然用科技编译也是非常慢,改一下编译要等半天甚至timeout,这对于一个急性子的人真的很难受,因此参考网上资料我决定使用vscode这个万能编译器配合来编写latex。

先介绍一下一通配置下来的优点吧

  • 光速编译tex文件
  • tex文件和pdf文件双向同步,单击任意一方另一方快速定位到相应位置
  • 多端同步,多人协同,版本回溯
  • AI论文辅助编写及AI对话提问
  • 实时语法检查并一键修改
  • TODO提示

第一步 latex环境配置

第一步是配置本地latex环境,笔者使用的是Tex Live,我们直接下载iso镜像就可以

网址:Acquiring TeX Live as an ISO image

在这里插入图片描述
在这里插入图片描述

下载后右键管理员权限运行install-tl-windows.bat

在这里插入图片描述

然后可以进行下载,你可以更改下载路径,texlive文件大概有7GB大小,最好别放在C盘,然后等待安装,直到出现欢迎界面才可以关闭,一定要耐心,安装过程需要一定时间

请添加图片描述
在这里插入图片描述

测试

下载完毕后,打开cmd,输入xelatex -v,如果出现版本信息,就是安装成功了

在这里插入图片描述

第二步 vscode插件

下载vscode这里就不赘述,移步网上教程

我们想在vscode中使用latex还需要配置一个插件,这里使用最常用的LaTeX Workshop插件

在这里插入图片描述

点击extension \ 扩展后搜索下载

下载完毕后还需要进行配置

打开setting后点击右上角任务栏的文件图标会出现setting.json

在这里插入图片描述

在这里插入图片描述

加入以下配置,如果原本有内容,则在原本内容最后加 , 后加入下面内容

如果原本没有内容,则先输入,在大括号中填充下面的内容

{

}

解释一下部分配置的内容信息,其余可以查询官方文档

  • "latex-workshop.latex.autoBuild.run":设置什么时候进行自动的代码编译

    • “onSave”:保存时编译
    • “onFileChange”:检测到有文件修改就编译
    • “never”:从不自动编译
  • "latex-workshop.showContextMenu":显示latex上下文菜单,这个打开之后会有很好的作用

在这里插入图片描述

在这里插入图片描述

本地配置latex的一个很好作用是可以实现双向同步,在左侧tex文件右键点击SyncTeX from cursor后,右侧会自动跳转定位到左侧光标所在的编辑区

  • "latex-workshop.view.pdf.internal.synctex.keybinding" 从右侧任意地方双击左侧会定位到该位置的代码区
    • "double-click":和overleaf一样,双击
    • "ctrl-click":ctrl+鼠标左键
"latex-workshop.latex.autoBuild.run": "onSave",
    "latex-workshop.showContextMenu": true,
    "latex-workshop.intellisense.package.enabled": true,
    "latex-workshop.message.error.show": false,
    "latex-workshop.message.warning.show": false,
    "latex-workshop.latex.tools": [
        {
            "name": "xelatex",
            "command": "xelatex",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "%DOCFILE%"
            ]
        },
        {
            "name": "pdflatex",
            "command": "pdflatex",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "%DOCFILE%"
            ]
        },
        {
            "name": "latexmk",
            "command": "latexmk",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "-pdf",
                "-outdir=%OUTDIR%",
                "%DOCFILE%"
            ]
        },
        {
            "name": "bibtex",
            "command": "bibtex",
            "args": [
                "%DOCFILE%"
            ]
        }
    ],
    "latex-workshop.latex.recipes": [
        {
            "name": "pdflatex -> bibtex -> pdflatex*2",
            "tools": [
                "pdflatex",
                "bibtex",
                "pdflatex",
                "pdflatex"
            ]
        },
        {
            "name": "XeLaTeX",
            "tools": [
                "xelatex"
            ]
        },
        {
            "name": "PDFLaTeX",
            "tools": [
                "pdflatex"
            ]
        },
        {
            "name": "BibTeX",
            "tools": [
                "bibtex"
            ]
        },
        {
            "name": "LaTeXmk",
            "tools": [
                "latexmk"
            ]
        },
        {
            "name": "xelatex -> bibtex -> xelatex*2",
            "tools": [
                "xelatex",
                "bibtex",
                "xelatex",
                "xelatex"
            ]
        },
    ],
    "latex-workshop.latex.clean.fileTypes": [
        "*.aux",
        "*.bbl",
        "*.blg",
        "*.idx",
        "*.ind",
        "*.lof",
        "*.lot",
        "*.out",
        "*.toc",
        "*.acn",
        "*.acr",
        "*.alg",
        "*.glg",
        "*.glo",
        "*.gls",
        "*.ist",
        "*.fls",
        "*.log",
        "*.fdb_latexmk"
    ],
    "latex-workshop.latex.autoClean.run": "onFailed",
    "latex-workshop.latex.recipe.default": "lastUsed",
    "latex-workshop.view.pdf.internal.synctex.keybinding": "double-click",
    "editor.wordWrap": "on",
    "workbench.colorTheme": "Visual Studio Dark - C++",
    "workbench.preferredHighContrastColorTheme": "Visual Studio Light - C++",
    "workbench.preferredDarkColorTheme": "Visual Studio 2017 Light - C++",
    "workbench.preferredLightColorTheme": "Visual Studio 2017 Light - C++",
    "latex-workshop.linting.chktex.exec.args": [
        "-wall",
        "-n22",
        "-n30",
        "-e16",
        "-q",
    ],

在这里插入图片描述

测试

这里我们提供一个用于测试的tex文件,来自IEEE的官方模板IEEE Conference Template,我将里面的引用修改为常见的bib格式。想要的读者可以直接从我的github仓库拉取latex_vscode或者使用自己的tex文件,具体指令如下:

本地新建一个文件夹,进入cmd后输入以下命令

在这里插入图片描述

git init
git clone https://github.com/jiong952/latex_vscode.git

有时候网速不太行可以直接点击上面链接下载压缩包也是一样的

在这里插入图片描述

在这里插入图片描述

打开vscode选择下载后的文件夹,选中conference_101719.tex后左侧会出现TEX图标,点击右上角三角形运行,下方会显示运行进度,出现√就证明成功

在这里插入图片描述

点击右上角第二个图标,如果出现的pdf显示正常则配置成功

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

到这里,本地的latex配置就已经完成了

第三步 github联动实现overleaf及本地vscode多端同步和协同撰写

对于有多人协作需求以及多端同步需求的用户而言,本地的latex编写无法胜任overleaf的功能,且overleaf还具备出色的历史记录回溯功能,这里我们给出一种方案,通过github作为跳板来实现多端同步以及协同

升级Overleaf Premium

现在overleaf对于普通用户已经不提供github功能,因此我们需要升级到github的Premium会员,这里提供一个免费升级的办法

具体参考这篇博客:免费升级Overleaf Premium(IEEE Collabratec)

  1. 进入IEEE Collabratec网址,点击create a Free Account注册账户
  2. 点击setting->IEEE Account setting

在这里插入图片描述

  1. 点击personalize->attached service 找到overleaf添加之后重新登录overleaf就可以是Premium了

在这里插入图片描述

latex配置github

点击overleaf界面左上角的Menu->点击Github

在这里插入图片描述

会提示你创建github仓库,注意设置private

在这里插入图片描述

点击create后出现下面界面

在这里插入图片描述

到github中查看显示创建成功

在这里插入图片描述

github连通本地

github联通本地就是常规操作了,可以参考上一步中的测试环境,使用git init + git clone克隆仓库

多端同步

在overleaf修改后,点击push可以直接推送到github中,例如这里我修改作者1的名字为answer

在这里插入图片描述

点击push

在这里插入图片描述

github信息

在这里插入图片描述

回到vscode本地使用git pull origin master ,重新编译,本地就同步了

在这里插入图片描述

在这里插入图片描述

如果本地修改,比如我把answer改为jiong,推送到github

在这里插入图片描述
在这里插入图片描述

到overleaf中可以直接一键点击pull拉取

在这里插入图片描述

在这里插入图片描述

同时overleaf上面也可以有版本信息的显示

在这里插入图片描述

.gitignore文件

本地latex在运行时候会出现很多中间文件,这里我们给出一个.gitignore文件来进行忽略,不配置也是ok的

# LaTeX build files
*.aux
*.log
*.toc
*.out
*.synctex.gz
*.acn
*.acr
*.alg
*.bbl
*.blg
*.glg
*.glo
*.gls
*.ist
*.lof
*.lot
*.maf
*.mtc
*.mtc1
*.nlg
*.nlo
*.slg
*.slo
*.stg
*.stt
*.xdy
*.tdo

# Generated files
*.dvi
*.ps
*.pdf

# Editor and IDE files
*.swp
*~
.#*
*.bak
*.backup
*.sav
*.tmproj
*.tmproj.*
*.sublime-workspace
*.sublime-project
.vscode/
.idea/
*.bak

具体解释可以参考这篇博客Git 如何为LaTeX项目设置.gitignore文件

第四步 配置其他插件

vscode的最大优势就是all in one,强大的插件功能可以极大的提高开发效率

这里介绍三个插件,分别是github copilot、grammarly、Todo Tree

github copilot

在这里插入图片描述

在环境中配置 GitHub Copilot

很多人将copilot用于代码开发,但他在写论文时候同样也可以帮你补写,如下方的灰色斜体部分就是copilot自动帮我补写的,按下TAB键之后就可以自动填充这部分了

在这里插入图片描述

学生党可以使用学校邮箱申请教育计划,网址,这个申请通过极其选修,可以查看网上其他人教程配置,多试几次

chat功能就不再解释,用过gpt的懂得都懂,不过速度偏慢,感觉没openai好用

点击左侧聊天按钮输入问题就可以对话了

在这里插入图片描述

grammarly

grammarly提供了vscode插件,帮你边写论文边检查语法

在这里插入图片描述

需要配置一下扫描的文件,这里我们加入**/*.tex文件

  • 打开setting搜索grammarly.files.include

  • 在其中加入**/*.tex就会自动扫描你的tex文件

这里有个单词to be using写错了应该是to be used,grammarly自动帮我们查出来了,鼠标悬停点击Quick Fix后就可以一键直接替换了

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Todo Tree

这个功能一般在项目开发中使用,不过用在latex中也是很好用的

在tex文件中写下TODO,会高亮提示,左侧的TODO中会显示所有写了TODO的地方,用于提醒自己哪里还没写

在这里插入图片描述

在这里插入图片描述

补充:如果英文不太好,也可以下载这个插件修改界面为中文

在这里插入图片描述

参考链接:

配置Visual Studio Code和LaTex环境

Visual Studio Code (vscode)配置LaTeX

免费升级Overleaf Premium(IEEE Collabratec)

Overleaf_to_GitHub

Git 如何为LaTeX项目设置.gitignore文件

dio Code和LaTex环境](https://yangyq.net/2022/05/latex-with-visual-studio-code.html)

Visual Studio Code (vscode)配置LaTeX

免费升级Overleaf Premium(IEEE Collabratec)

Overleaf_to_GitHub

Git 如何为LaTeX项目设置.gitignore文件

在环境中配置 GitHub Copilot

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/224960.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一对一互相聊天

服务端 package 一对一用户;import java.awt.BorderLayout; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Vector;…

换种方式开发软件

前 言 作为程序员,经常苦于项目交付,疲于应对各种需求,一路狂奔,很难有时间停下来思考与抽象,聊起来都是“累”;作为产品经理,最痛苦的莫过于梦醒之后无路可走,心里的苦只有自己知道…

【精】云HIS系统操作过程中常见问题及解决方法

云HIS系统使用和操作过程中常见问题及解决方法 1.门诊业务 (1)门诊医生如何查询往期病人? 答:点击门诊医生站左侧患者列表,在弹出的页面点击已诊分页,在搜索框输入患者姓名,在结果中找到对应…

【2021研电赛】基于EAIDK-310的云端互联无人驾驶系统

本作品介绍参与极术社区的有奖征集|分享研电赛作品扩大影响力,更有重磅电子产品免费领取! 参赛单位:上海理工大学 参赛队伍:你说的都是对的 指导老师:蒋全 参赛队员:童锐,邹祖奇,胡涛 获奖情况&…

亚马逊云科技re:Invent大会:RAG技术赋能企业AI应用的新纪元

在最新一届re:Invent大会中,亚马逊云科技的数据和人工智能副总裁Swami Sivasubramanian博士提出了一系列AI产品,其中RAG技术成为了企业构建生成式AI应用的重要选择。这种技术的实质是将向量数据库与大语言模型相结合,赋予大模型记忆的能力&am…

【译】虚拟线程:绝对优势

原文地址:Virtual Threads: A Definite Advantage 一、前言 深入了解虚拟线程如何提高应用程序的性能和可扩展性,同时将线程管理开销降到最低。 探索虚拟线程是一件很棒的事情,它是 Java 的一项强大功能,有望彻底改变多线程应用…

【星戈瑞】Sulfo-CY3 DBCO荧光光谱特性之吸收、发射光谱

Sulfo-CY3 DBCO的荧光光谱特性通常涵盖了其吸收和发射光谱。这些光谱特性是研究该染料在生物分子标记和成像中的应用时的参数。 吸收光谱: Sulfo-CY3 DBCO的吸收光谱通常显示了其在不同波长下吸收光的能力。典型情况下,Sulfo-CY3 DBCO的吸收峰位于可见光…

单向通信----一对一聊天

package 一对一聊天; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import …

CRM客户关系管理系统的主要功能有哪些?

我们都知道,CRM系统可以帮助企业加快业务增长。如果一个企业能提高业务效率、跨团队协作、有效管理客户、轻松共享和同步数据,那么企业竞争力将极大地提高。基于此,我们说说CRM客户关系管理系统的主要功能分析。 完整的CRM是什么样的&#x…

HarmonyOS开发(十):通知

1、通知概述 1.1、简介 应用可以通过通知接口发送通知消息,终端用户可以通过通知栏查看通知内容,也可以点击通知来打开应用。 通知使用的的常见场景: 显示接收到的短消息、即使消息...显示应用推送消息显示当前正在进行的事件&#xff0c…

最常见的直流负载工作方式

直流负载工作方式是指在电力系统中,直流电源为负载提供电能的方式。在实际应用中,直流负载工作方式有很多种。 直接供电方式:这是最简单的直流负载工作方式,即直流电源直接为负载提供电能。这种方式适用于负载较小、对电源稳定性要…

【Vue第1章】Vue核心

目录 1.1 Vue简介 1.2 初识Vue 1.2.1 代码 1.3 模板语法 1.3.1 效果 1.3.2 模板的理解 1.3.3 插值语法 1.3.4 指令语法 1.3.5 代码 1.4 数据绑定 1.4.1 效果 1.4.2 单向数据绑定 1.4.3 双向数据绑定 1.4.4 代码 el与data的两种写法 代码 1.5 MVVM模型 1.5.1 …

Java基础-代码块及其细节

代码块概念: 注意调用时机 好处与使用场景 将构造器的冗余部分提取到代码块 每个构造器执行时都会先执行代码块 静态代码块与普通代码块的区别 注意:创建对象实例时,静态代码块只会被调用一次 例子 public Class DD{static{//打印"…

Qt开发学习笔记02

将窗口设为提示框 Qt::ToolTipQt 数据库连接池 #ifndef SQLITE_H #define SQLITE_H#include <QSqlDatabase> #include <QSqlError> #include <QSqlQuery> #include <QQueue> #include <QMutex> #include <QDebug> #include "../con…

翻译: 生成式人工智能的经济潜力 第一部分商业价值 The economic potential of generative AI

生成式人工智能即将引发下一波生产力的浪潮。我们首先看看业务价值可能会增加的地方&#xff0c;以及对劳动力的潜在影响。 1. 人工智能已经逐渐渗透到我们的生活中 人工智能已经逐渐渗透到我们的生活中&#xff0c;从为智能手机提供动力的技术到汽车上的自动驾驶功能&#x…

实现简易的多人聊天

服务端 import java.io.*; import java.net.*; import java.util.ArrayList; public class Server{public static ServerSocket server_socket;public static ArrayList<Socket> socketListnew ArrayList<Socket>(); public static void main(String []args){try{…

SpringBoot Maven打包插件spring-boot-maven-plugin无法解析离谱原因记录

目录 一、常见打包插件无法解析原因二、打包插件无法解析离谱原因三、总结 打包配置 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><…

基于深度学习路径规划RRT*-训练图像预处理

基于深度学习路径规划RRT*-训练图像预处理 图像预处理说明 在基于采样的RRT算法对机器人进行路径规划时&#xff0c;由于采样点的随机性&#xff0c;会增加路径的搜索时间的路径的非最优性&#xff0c;所以基于神经网络的优势&#xff0c;利用深度学习进行RRT的随机采样&…

M2芯片回顾

M芯片&#xff0c; 一竟到底&#xff1a; M1芯片的体积&#xff1a; M2 代表 M 系列芯片的第二代&#xff1a; 其进一步提升了芯片的性能和功率 &#xff0c;这也是 M 芯片目前的追求&#xff1a;最大化性能的同时&#xff0c;最大限度降低功耗。 UMA 统一内存架构被再一次提到…

【开源】基于Vue+SpringBoot的智慧家政系统

项目编号&#xff1a; S 063 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S063&#xff0c;文末获取源码。} 项目编号&#xff1a;S063&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询家政服…