vscode + LaTex 论文排版

vscode+LaTeX 论文排版

一、什么是 LaTeX

LaTeX 是一种“非所见即所得”的排版系统,即用户需要输入特定的代码,保存在 后缀为.tex 的文件中,通过编译得到所需的 pdf 文件如何理解“非所见即所得”呢?在 这里举个“所见即所得”的例子:Word。Word 的界面就是一张 A4 纸,输入的时候是什么样子,最后呈现出来就是什么样子。这给了我们极高的自由度,也非常容易上手, 但是有如下问题:

  1. 对于对细节不敏感的用户,Word 的排版常常会在细节存在问题,比如两段话之间行间距不同、字体不同、标题样式不同等;
  2. 对于撰写论文的用户,Word 的标题、章节、图表、参考文献等无法自动标号,也很难在正文中引用;
  3. 对于有公式输入需求的用户,Word 自带的公式不稳定,而公式插件效果常常不好。

相比之下,使用 LaTeX 进行排版,就像是在铺好的轨道上驾驶火车一样。使用 LaTeX 没有办法像 Word 一样非常自由,但是可以保证规范性,这使得 LaTeX 非常适合用于论文的排版。

二、安装 LaTeX

LaTeX 国内镜像源:

  • 清华大学开源软件镜像站https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/Images/
  • 中国科学技术大学镜像站https://mirrors.ustc.edu.cn/CTAN/systems/texlive/Images/
  • 香港大学镜像站https://mirror-hk.koddos.net/CTAN/systems/texlive/Images/

下载后得到的 texlive.iso 大约 4.3G 大小,使用解压软件将其解压在磁盘上,打开 解压后的文件,将文件中的 install-tl-windows.bat 使用管理员身份运行。

LaTeX 安装界面

在这个界面可以修改安装路径;因为后续配置 vs code 编写环境,所以可以取消勾 选安装 TeXworks 前端的选项。

然后点击 Advanced,弹出如下界面:

LaTeX 安装 Advanced 界面

查看标红框的选项是否与设置的有误,然后点击 Customize 进入自定义安装界面, 可以取消勾选用不到的语言包以达到减少安装大小。自定义界面如下:

LaTeX 安装 Customize 界面

Languages 只需要勾选这三个就差不多了,然后点击确定安装,进入漫长的安装等 待环节。安装完成之后建议重启一下电脑,因为会需要注册环境变量。

三、Sumatra PDF 安装

Sumatra PDF,又叫 Sumatra,是一款专为 Microsoft Windows 开发的开放源代 码 PDF 阅读器。该程序也可以打开开放 XML 纸张规范、DjVu、EPUB、XPS、CHM、 CB7、CBR、CBT、CBZ、MOBI 和 PRC 文件。这里安装的 Sumatra PDF 是作为 vs code 编译后 LaTeX 之后形成的 pdf 文件的外部预览器,以获取更好的预览体验。

Sumatra PDF 官网下载地址

https://www.sumatrapdfreader.org/download-free-pdf-viewer

四、vscode 安装

Visual Studio Code(简称 VS Code)是一款由微软开发且跨平台的免费源代码编 辑器。该软件支持语法高亮、代码自动补全(又称 IntelliSense(英语:IntelliSense))、 代码重构功能,并且内置了命令行工具和 Git 版本控制系统。用户可以更改主题和键盘快捷方式实现个性化设置,也可以通过内置的扩展程序商店安装扩展以拓展软件功能。

Visual Studio Code 被认为是最受开发者欢迎的开发环境之一。

vscode官网地址

https://code.visualstudio.com/download

1.插件安装

vs code 的强大离不开优质的插件生态环境,其插件商店具有各种各样的插件,帮 助 vs code 可以编写几乎任何语言。

要在 vs code 中编写 LaTeX 首先需要安装插件:LaTeX Workshop 以获取 vs code 对 .tex 文件的支持。在插件商店下载安装插件:

LaTeX Workshop 插件

在 vs code 中新建一个 .tex 文件,输入以下内容,可以看到代码已经被高亮显示了。

LaTeX 代码高亮

2.插件配置

使用 F1 或 ctrl + shift + p 的快捷键,在弹出的输入框中输入 settings,打开用户 设置的 json 文件:

用户设置 settings json 文件

在文件末尾添加以下内容:

 "ltex.enabled": true,  // 启用插件
"ltex.language": "en-US",// 设置语言
// 设置是否自动编译 never
"latex-workshop.latex.autoBuild.run": "never",
//右键菜单
"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.recipes": [
{
"name": "xelatex",
"tools": [
"xelatex"
]
},
{
"name": "xelatex*2",
"tools": [
"xelatex",
"xelatex"
]
},
{
"name": "pdflatex",
"tools": [
"pdflatex"
]
},
{
"name": "bibTeX",
"tools": [
"bibtex"
]
},
{
"name": "latexmk",
"tools": [
"latexmk"
]
},
{
"name": "xelatex -> bibtex -> xelatex*2",
"tools": [
"xelatex",
"bibtex",
"xelatex",
"xelatex"
]
},
{
"name": "pdflatex -> bibtex -> pdflatex*2",
"tools": [
"pdflatex",
"bibtex",
"pdflatex",
"pdflatex"
]
},
{
"name": "pdflatex -> bibtex",
"tools": [
"pdflatex",
"bibtex"
]
},
{
"name": "xelatex -> biber -> xelatex*2",
"tools": [
"xelatex",
"biber",
"xelatex",
"xelatex"
]
}
],
// 编译工具和命令
"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%"
]
},
{
"name": "biber",
"command": "biber",
"args": [
"%DOCFILE%"
]
}
],
//文件清理。此属性必须是字符串数组
"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"
],
//设置为onFaild 在构建失败后清除辅助文件
"latex-workshop.latex.autoClean.run": "onFailed",
// 使用上次的recipe编译组合
"latex-workshop.latex.recipe.default": "lastUsed",
// 用于反向同步的内部查看器的键绑定。ctrl/cmd +点击(默认)或双击
"latex-workshop.view.pdf.internal.synctex.keybinding": "double-click",
//使用 SumatraPDF 预览编译好的PDF文件
// 设置VScode内部查看生成的pdf文件
"latex-workshop.view.pdf.viewer": "external",
// 使用外部查看器时要执行的命令。此功能不受官方支持。
"latex-workshop.view.pdf.ref.viewer": "external",
// 使用外部查看器时要执行的命令。此功能不受官方支持。
"latex-workshop.view.pdf.external.viewer.command": "H:\SumatraPDF\SumatraPDF.exe",
// 使用外部查看器时,latex−workshop.view.pdf.external.view.command的参数。
//%PDF%是用于生成PDF文件的绝对路径的占位符。
"latex-workshop.view.pdf.external.viewer.args": [
"%PDF%"
],
// 将synctex转发到外部查看器时要执行的命令。
// 主要要修改为自己的 SumatraPDF.exe 所在路径
"latex-workshop.view.pdf.external.synctex.command": "H:\SumatraPDF\SumatraPDF.exe",
// %LINE%是行号,%PDF%是生成PDF文件的绝对路径的占位符,
// %TEX%是触发syncTeX的扩展名为.tex的LaTeX文件路径。
"latex-workshop.view.pdf.external.synctex.args": [
"-forward-search",
"%TEX%",
"%LINE%",
"-reuse-instance",
"-inverse-search",
""D:\vscode\Microsoft VS Code\Code.exe" "D:\vscode\Microsoft VS Code\resources\app\out\cli.js" --ms-enable-electron-run-as-node -r -g "%f:%l"",
"%PDF%"
]

具体配置也可以参考:使用VSCode编写LaTeX

https://zhuanlan.zhihu.com/p/38178015

需要注意的是 “latex-workshop.view.pdf.external.synctex.args” 命令中 需要 添加 –ms-enable-electron-run-as-node 才能完成和 SumatraPDF 的反向搜索。

接着就可以使用 vs code 编写 LaTeX 代码,然后用 SumatraPDF 进行预览了。

五、总结

不得不说 LaTeX 的门槛还是挺高的,有各种宏包、各种配置让人摸不着头脑,还有 使用了一些宏包还需要多次编译,有个编译链的概念在,也是大大加大了上手的难度。比之 markdown,LaTeX 无疑复杂了许多,也许选择了一个合适的模板,在模板上进行 论文写作会好很多吧(在接触了 word 写大文档之后,更倾向于 LaTeX 了,稍微碰一下格式就乱了,太烦了)。。。

文章参考与分享:

  • 使用VSCode编写LaTeX
  • https://zhuanlan.zhihu.com/p/38178015
  • Overleaf, 在线LaTeX编辑器,一个在线的 LaTex 编辑的网站,上面也存储很多模板。
  • https://cn.overleaf.com/
  • 华南师范大学硕士/博士学位论文格式要求的LaTeX模板https://github.com/scnu/scnuthesis
  • 如何从零开始,入门 LaTeX
  • https://www.zhihu.com/question/62943097


未经允许不得转载:ai论文写作 » vscode + LaTex 论文排版

评论 抢沙发

评论前必须登录!

立即登录   注册