LaTeX 是一套强大的排版系统,在学术论文排版方面应用广泛,很多西方高效和期刊都会提供自己 LaTeX 模板方便论文提交。虽然 LaTeX 有不少相关的 IDE,如 TeXstudio,BaKoMa,LyX 等,但总给人一种笨重的感觉。如今,VSCode 为我们提供了另一种选择。
引擎是 TeX 语法的解释器。最原始的 TeX 引擎在 1978 年由 Donald Erwin Knuth(高德纳)开发,其生成 dvi 文件,然后经由其他程序转换为 PDF 文件。改进引擎包括:
TeX 语言本身只有 300 个命令,晦涩难懂。一个简单的符号可能就需要多个命令来实现,可以将这些最基本的命令封装起来做个宏以实现特殊的目的。一堆简写的合集就构成了格式。格式可以与不同的引擎相结合。
一个完整的 TeX 需要最基本的 TeX 引擎、格式支持、各种辅助宏包、一些转换程序、GUI、编辑器、文档查看器等等。通过选择不同的组合就构成了不同的发行版。
对于 LaTeX 的安装,由于官方的 TeXLive 体积过大,这里推荐用包管理器进行最小安装
对于包管理器的安装和使用,可以查阅本专栏的相关文章,Homebrew 介绍 和 Scoop 介绍
对 macOS 和 Linux 用户,有 Homebrew
brew install basictex
对 Windows 用户,有 Scoop
scoop bucket add scoopet https://github.com/ivaquero/scoopet
scoop install texlive
也可以选择较为现代的 tectonic
编译器,安装方式如上面类似
对 macOS 和 Linux 用户,有 Homebrew
brew install tectonic
对 Windows 用户,有 Scoop
scoop install tectonic
LaTeX Workshop
基本上没什么可说的,使用 VSCode 写 LaTeX 的都会使用这个扩展,可认为是必备。
LaTeX
安装完毕后,"ctrl"+", " 打开配置,并在搜索框中输入"json",打开配置的 .json 文件。
settings
加入如下配置:
{
"latex-workshop.latex.tools": [
{
"name": "xelatex",
"command": "xelatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOC%"
]
},
{
"name": "bibtex",
"command": "bibtex",
"args": ["%DOCFILE%"]
}
],
"latex-workshop.latex.recipes": [
{
"name": "xelatex",
"tools": ["xelatex"]
},
{
"name": "xelatex -> bibtex -> xelatex*2",
"tools": ["xelatex", "bibtex", "xelatex", "xelatex"]
}
]
}
以上是传统配置,如果使用 tectonic
作为 .tex
文件的编译工具,则配置如下
{
"latex-workshop.latex.recipes": [
{
"name": "tectonic",
"tools": ["tectonic"]
}
],
"latex-workshop.latex.tools": [
{
"name": "tectonic",
"command": "tectonic",
"args": [
"-X",
"compile",
"--keep-intermediates",
"--keep-logs",
"%DOC%.tex"
]
}
]
}
整个编译过程更为简洁,编译过程中会自动下载安装所需包,当然这是一种基于缓存的编译方式,第一次使用时因为需要下载安装包,所以会比较慢。
tectonic
目前对于中文文档编译相对xelatex
较慢,对于英文则优于传统的其他编译器。
安装 latexindent.pl
对 LaTeX 公式格式化
macOS/Linux 用户使用 Homebrew
brew install latexindent
Windows 用户使用 Scoop
scoop install latexindent
在 settings.json
中,加入
{ "latex-workshop.latexindent.path": "latexindent" }
LaTeX 的用户里,不少人均是使用它进行英文写作的,这时就不免会需要拼写检查,这里推荐多语言扩展基于开源语法检查器 LanguageTool 的 LTeX,其功能如下:
简单说这相当于整合了一个 Grammarly。
ltex
其配置如下:
{
"ltex.language": "en-US",
"ltex.enabled": ["latex"],
"ltex.dictionary": {},
"ltex.latex.commands": {
"\\ref{}": "ignore",
"\\documentclass[]{}": "ignore",
"\\cite{}": "dummy",
"\\cite[]{}": "dummy"
},
"ltex.latex.environments": {
"lstlisting": "ignore",
"verbatim": "ignore"
},
"ltex.markdown.nodes": {
"CodeBlock": "ignore",
"FencedCodeBlock": "ignore",
"AutoLink": "dummy",
"Code": "dummy"
},
"ltex.additionalRules.enablePickyRules": true,
"ltex.additionalRules.motherTongue": "en-US",
"ltex.diagnosticSeverity": "information",
"ltex.ltex-ls.logLevel": "finer",
"ltex.sentenceCacheSize": 2000
}
推荐使用 Git 作为论文的版本管理器,不过这带来一个新的问题,LaTeX 编译过程中会产生一系列过程文件,而这些并没有必要同步 Git 仓库。这里可以安装扩展 .gitignore Generator,在根目录下建立一个.gitignore 文件,把过程文件包含进去来避免不必要的同步。
.gitignore
对于 Windows 用户,不需要特别对包进行管理,当在文档中导入未安装的包时,LaTeX 会自动弹出窗口,询问是否安装。
对于 macOS 用户,需要使用包管理器 tlmgr 对 LaTeX 包进行管理。
# 升级自身
sudo tlmgr update --self
# 升级所有包
sudo tlmgr update --all
# 列出已安装包
sudo tlmgr list --only-installed
# 中文支持
sudo tlmgr install ctex latexmk
# 化学 & 电子
sudo tlmgr install mhchem chemfig circuitikz
# 排版
sudo tlmgr install multirow ifoddpage relsize titlesec
# 图表
sudo tlmgr install epstopdf subfigure appendix
# 字符 & 字体
sudo tlmgr install ulem xcolor environ letltxmacro enumitem stringenc trimspaces soul algorithm2e genmisc
需要安装 pandoc-crossref
brew install pandoc-crossref
# 或
scoop install pandoc-crossref
在命令行键入
pandoc input.tex -o output.docx -w docx --reference-doc [ref.docx] --pdf-engine xelatex --filter pandoc-crossref --bibliography=[ref.bib]
本文使用 WPL/s 发布 @GitHub
原网址: 访问
创建于: 2023-05-23 15:32:56
目录: default
标签: 无
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
u2u转换板 - 嘉立创EDA开源硬件平台 Spring Boot 项目的轻量级 HTTP 客户端 retrofit 框架,快来试试它!_Java精选-CSDN博客 手把手教你打造一套最牛的知识笔记管理系统! - 知乎 - 想法有重合-理论可参考 安宇雨 闲鱼 机械键盘 客制化 开贴记录 文本 linux 使用find命令查找包含某字符串的文件_beijihukk的博客-CSDN博客_find 查找字符串 ---- mac 也适用 安宇雨 打字音 记录集合 B站 bilibili 自行搭建 开坑 真正的客制化 安宇雨 黑苹果开坑 查找工具包maven pom 引用地 工具网站 Dantelis 介绍的玩轴入坑攻略 --- 关于轴的一些说法 --- 非官方 ---- 心得而已 --- 长期开坑更新 [本人问题][新开坑位]关于自动化测试的工具与平台应用 机械键盘 开团 网站记录 -- 能做一个收集的程序就好了 不过现在没时间 -- 信息大多是在群里发的 - 你要让垃圾佬 都去一个地方看难度也是很大的 精神支柱 [超级前台]sprinbboot maven superdesk-app 记录 [信息有用] [环境准备] [基本完成] [sebp/elk] 给已创建的Docker容器增加新的端口映射 - qq_30599553的博客 - CSDN博客 [正在研究] Elasticsearch, Logstash, Kibana (ELK) Docker image documentation elasticsearch centos 安装记录 及 启动手记 正式服务器 39 elasticsearch 问题合集 不断更新 6.1.1 | 6.5.1 两个版本 博客程序 - 测试 - bug记录 等等问题 laravel的启动过程解析 - lpfuture - 博客园 OAuth2 Server PHP 用 Laravel 搭建带 OAuth2 验证的 RESTful 服务 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 利用Laravel 搭建oauth2 API接口 附 Unauthenticated 解决办法 - 煮茶的博客 - SegmentFault 思否 使用 OAuth2-Server-php 搭建 OAuth2 Server - 午时的海 - 博客园 基于PHP构建OAuth 2.0 服务端 认证平台 - Endv - 博客园 Laravel 的 Artisan 命令行工具 Laravel 的文件系统和云存储功能集成 浅谈Chromium中的设计模式--终--Observer模式 浅谈Chromium中的设计模式--二--pre/post和Delegate模式 浅谈Chromium中的设计模式--一--Chromium中模块分层和进程模型 DeepMind 4 Hacking Yourself README.md update 20211011
Laravel China 简书 知乎 博客园 CSDN博客 开源中国 Go Further Ryan是菜鸟 | LNMP技术栈笔记 云栖社区-阿里云 Netflix技术博客 Techie Delight Linkedin技术博客 Dropbox技术博客 Facebook技术博客 淘宝中间件团队 美团技术博客 360技术博客 古巷博客 - 一个专注于分享的不正常博客 软件测试知识传播 - 测试窝 有赞技术团队 阮一峰 语雀 静觅丨崔庆才的个人博客 软件测试从业者综合能力提升 - isTester IBM Java 开发 使用开放 Java 生态系统开发现代应用程序 pengdai 一个强大的博主 HTML5资源教程 | 分享HTML5开发资源和开发教程 蘑菇博客 - 专注于技术分享的博客平台 个人博客-leapMie 流星007 CSDN博客 - 舍其小伙伴 稀土掘金 Go 技术论坛 | Golang / Go 语言中国知识社区
最新评论