【2024】VsCode + Latex + Linux(Ubuntu) + wsl环境下配置教程 | 包含 中文配置,和 格式化处理

前言

本篇教程是针对WSL下的Ubuntu操作系统的配置教程,它和一般的Linux环境下的配置有所不同,并且和Windows环境下的也有所不同。

本篇博客编写参考了 官方文档(Tex) 和 插件官方(Texlive Workshop) 文档等内容。

顺序

在继续之前,首先要求已经安装完毕VsCode,并且已经能够成功连接WSL。
选择Linux系统的原因是,似乎在Linux下编译会更快?(

下面,本文将安装以下步骤介绍:
(1)安装 Texlive linux版本
(2)安装 Texlive Workshop插件
(3)配置 Texlive Workshop插件 包含解释与基础操作
(4)中文化支持 - CTex
(5)格式化支持和配置

安装Texlive和Texlive Workshop插件

安装texlive

Reference: https://tug.org/texlive/quickinstall.html
使用两种方式下载:

wget https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz

或者使用这种方式下载:

curl -L -o install-tl-unx.tar.gz https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz

下载完成后,执行以下的步骤,zcat可以用于显示压缩包的内容。

zcat < install-tl-unx.tar.gz | tar xf -
cd install-tl-*
perl ./install-tl --no-interaction

如果安装过程中遇到问题,请检查文件权限,例如可以使用chmod来修改。
在安装的过程中,可以自定义一些配置,小熊自己是选择全部安装的,占8个GB左右大小,所以就不在安装这里进行配置讲解。

(Reference:https://github.com/James-Yu/LaTeX-Workshop/wiki/Install)
安装完毕后,现在开始配置PATH环境变量。
对于WSL而言,不要使用.bashrc来配置PATH,而是使用.profile或者.bash_profile文件。

nano ~/.profile # 你也可以使用自己喜欢的文本编辑器来修改文件,使用GUI也行

在文件末尾修改:

# 配置Texlive Powerbear
export MANPATH=${MANPATH}:/usr/local/texlive/2024/texmf-dist/doc/man
export INFOPATH=${INFOPATH}:/usr/local/texlive/2024/texmf-dist/doc/info
export PATH=${PATH}:/usr/local/texlive/2024/bin/x86_64-linux

如果您是后来者,当前已经是2025年了,而且安装的是2025的版本,请将上面的2024修改为2025。
在这里插入图片描述

如果是nano,最后按住Ctrl+X来离开,和写入文件。
之后使用:

source ~/.profile

或者在powershell / windows终端 里面,利用重启WSL的方式来更新。

wsl --shutdown

插件安装

✔️确保已经在Linux系统下安装完毕texlive前提下,继续。
✔️确保已经安装VsCode和了解基础操作的前提下,继续。

有两种方法以供参考:
(1)在Vscode插件市场搜索“Texlive Workshop”,然后点击“安装”按钮。
(2)按住Ctrl + P,然后输入ext install latex-workshop
在这里插入图片描述

插件配置

当插件安装完成后,还不能直接运行,还有几个步骤需要配置。当配置完毕这些操作后,便可以方便的进行一些操作了。

Compiler & Recipes

在继续之前,先来了解此项配置的相关含义和包含关系。编译器配置是用于TEX文件编译时的相关操作,而Recipe是方案,它能包含多个编译器配置,在Tex插件面板上(左侧最后的TEX按钮)可以通过GUI的方式来调用Recipe。

所以,现在我们开始配置编译相关操作,和Recipe设置。打开VsCode的Settings.json文件(通过 文件 -> 首选项 -> 设置 ,或者 Ctrl+shift+p 打开命令面板,搜索“> 设置 json” 或者 在打开的文件夹下 .vscode 下新建settings.json)。

本文章配置在 设置WSL(JSON) 下 。

如果不想麻烦,直接参考这个小节的最后部分,那个地方给出了一份配置参考文件。可以在其上进行一些自定义的修改。

✔️确保已经打开Settings.json的前提下,继续。

  • 配置TEX编译器相关操作:

在Ubuntu下,打开终端。

  • 再次配置Recipe的相关设置:

  • Settings.json文件参考

不想看上文的直接参考这个地方的内容。

{// Latex 文件处理"latex-workshop.latex.tools": [{"name": "latexmk","command": "latexmk","args": ["--shell-escape","-synctex=1","-interaction=nonstopmode","-file-line-error","-pdf","-outdir=%OUTDIR%","%DOC%"],"env": {}},{"name": "xelatex","command": "xelatex","args": ["--shell-escape","-synctex=1","-interaction=nonstopmode","-file-line-error","%DOC%"]},{"name": "pdflatex","command": "pdflatex","args": ["--shell-escape","-synctex=1","-interaction=nonstopmode","-file-line-error","%DOC%"],"env": {}},{"name": "bibtex","command": "bibtex","args": ["--shell-escape","%DOCFILE%"],"env": {}}],"latex-workshop.latex.autoBuild.cleanAndRetry.enabled": true,// Recipes : 食谱,在这里配置命令方案"latex-workshop.latex.recipes": [{"name": "xelatex (中文支持)","tools": ["xelatex"]},{"name": "latexmk","tools": ["latexmk"]},{"name": "pdflatex -> bibtex -> pdflatex*2","tools": ["pdflatex","bibtex","pdflatex","pdflatex"]}],"latex-workshop.latexindent.path": "/usr/local/texlive/2024/bin/x86_64-linux/latexindent","latex-preview.command": "latexmk","editor.tabSize": 4,"latex-workshop.view.pdf.viewer": "tab","latex-workshop.showContextMenu": true,"ltex.enabled": true,"ltex.language": "en-US",
}

配置完成后,在编辑器的界面应该是如下图所示:
在这里插入图片描述
到这一步,现在应该已经能够支持latex的编译与预览了。
使用这些来测试一下效果吧!

\documentclass{article}
\begin{document}
Hello latex.
\end{document}

完成后,点击左侧的 配方xelatex试一试

中文化支持配置

在经过上一小节的配置后,实际上默认的是xelatex。
然后使用

\usepackage{ctex}

把上文的Hello latex改为中文字符试一试吧。

格式化支持和配置

当以前没有配置过Perl的时候,尝试进行格式化操作时候会出现以下提示信息:

[20:20:12.751][Event] STRUCTURE_UPDATED
[20:20:14.083][Format][TeX] Start formatting with latexindent.
[20:20:14.084][Format][TeX] Formatting LaTeX. The command is /usr/local/texlive/2024/bin/x86_64-linux/latexindent:["-c","%WS1%/","%WS1%/__latexindent_temp_main_2.tex","-y=defaultIndent: '    '"].
[20:20:14.131][Format][TeX] Formatting failed with exit code 2
[20:20:14.132][Format][TeX] stderr: Can't locate YAML/Tiny.pm in @INC (you may need to install the YAML::Tiny module)(@INC contains: /usr/local/texlive/2024/texmf-dist/scripts/latexindent /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.34.0 /usr/local/share/perl/5.34.0 /usr/lib/x86_64-linux-gnu/perl5/5.34 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.34 /usr/share/perl/5.34 /usr/local/lib/site_perl) at /usr/local/texlive/2024/texmf-dist/scripts/latexindent/LatexIndent/GetYamlSettings.pm line 24.
BEGIN failed--compilation aborted at /usr/local/texlive/2024/texmf-dist/scripts/latexindent/LatexIndent/GetYamlSettings.pm line 24.
Compilation failed in require at /usr/local/texlive/2024/texmf-dist/scripts/latexindent/LatexIndent/Verbatim.pm line 23.
BEGIN failed--compilation aborted at /usr/local/texlive/2024/texmf-dist/scripts/latexindent/LatexIndent/Verbatim.pm line 23.
Compilation failed in require at /usr/local/texlive/2024/texmf-dist/scripts/latexindent/LatexIndent/Lines.pm line 23.
BEGIN failed--compilation aborted at /usr/local/texlive/2024/texmf-dist/scripts/latexindent/LatexIndent/Lines.pm line 23.
Compilation failed in require at /usr/local/texlive/2024/texmf-dist/scripts/latexindent/LatexIndent/Document.pm line 31.
BEGIN failed--compilation aborted at /usr/local/texlive/2024/texmf-dist/scripts/latexindent/LatexIndent/Document.pm line 31.
Compilation failed in require at /usr/local/texlive/2024/bin/x86_64-linux/latexindent line 28.
BEGIN failed--compilation aborted at /usr/local/texlive/2024/bin/x86_64-linux/latexindent line 28.[20:20:22.200][Event] STRUCTURE_UPDATED

解决方法:利用cpan安装缺少的模块。
Reference: https://github.com/James-Yu/LaTeX-Workshop/issues/699
可能需要多次使用cpan命令安装缺少的模块。

cpan YAML::Tiny
cpan File::HomeDir

之后,再次执行Format时候,就能成功格式化文档了。

接下来

下面,读者应该去了解更多有关latex的使用方法,语法和其他操作姿势。
例如:如何优美的插入代码和公式?如何去绘制三线图表?等。


若觉得此文对您有帮助,请予以一个赞以示鼓励!
如果阅读完毕尚有疑问,建议,直接在评论区开喷即可!

PowerBear 大千小熊 2024年

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

沙袋装袋机的原理和特点_鼎跃安全

在现代工业和建筑领域&#xff0c;沙子等散状物料的包装是一个必不可少的环节。传统的手工包装方式效率低下且劳动强度大&#xff0c;而沙袋装袋机的出现则极大地提高了包装效率和质量。 一、沙袋装袋机的工作原理 沙子通过输送系统从储料仓输送到装袋机的料斗中。输送系统设计…

Win10+Docker环境使用YOLOv8 TensorRT推理加速

这一部分内容和WSL-Ubuntu20.04环境使用YOLOv8 TensorRT推理加速-CSDN博客 是基本相同的,有细微差别我也会在文中指出来。 1.TensorRTX下载 这里使用Wang-xinyu大佬维护的TensorRTX库来对YOLOv8进行推理加速的演示,顺便也验证一下前面环境配置的成果。 github地址:GitHub -…

C++初学者指南-5.标准库(第一部分)--容器遍历

C初学者指南-5.标准库(第一部分)–容器遍历 文章目录 C初学者指南-5.标准库(第一部分)--容器遍历前向遍历基于范围的循环for_each / for_each_n迭代器的显式使用基于索引的循环 逆向遍历反向范围循环(C20)反向 for_each / for_each_n反向迭代器的显式使用基于索引的反向循环…

本地部署,APISR: 动漫超分辨率技术

目录 引言 技术背景 APISR 的架构与原理 APISR 的主要特点 应用实例 本地部署 运行结果 结论 参考文献 GitHub - Kiteretsu77/APISR: APISR: Anime Production Inspired Real-World Anime Super-Resolution (CVPR 2024)APISR: Anime Production Inspired Real-World A…

Why can‘t I access GPT-4 models via API, although GPT-3.5 models work?

题意&#xff1a;为什么我无法通过API访问GPT-4模型&#xff0c;尽管GPT-3.5模型可以工作&#xff1f; 问题背景&#xff1a; Im able to use the gpt-3.5-turbo-0301 model to access the ChatGPT API, but not any of the gpt-4 models. Here is the code I am using to tes…

vue仿甘特图开发工程施工进度表

前言 本文是根据项目实际开发中一个需求开发的demo&#xff0c;仅用了elementUI&#xff0c;可当作独立组件使用&#xff0c;C V即用。 当然没考虑其他的扩展性和一些数据的校验&#xff0c;主要是提供一个处理思路&#xff0c;有需要的小伙伴可以直接复制&#xff1b;本demo的…

元服务体验-服务发现

服务发现&#xff0c;无论线上或线下的方式都可以发现元服务。 线上&#xff1a;基于用户意图。从精准意图的搜索、用户事件触发的推荐到主动探索等场景。用户可以在设备的负一屏、全局搜索、应用市场、桌面等场景发现元服务。 线下&#xff1a;用户在 HarmonyOS Connect标签…

C++ | Leetcode C++题解之第238题除自身以外数组的乘积

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<int> productExceptSelf(vector<int>& nums) {int length nums.size();// L 和 R 分别表示左右两侧的乘积列表vector<int> L(length, 0), R(length, 0);vector<int> answer(l…

Modbus转Ethernet/IP网关模块与汇川PLC通讯案例

Modbus转Ethernet/IP网关模块&#xff08;XD-MDEP100&#xff09;是一种用于将Modbus协议转换为Ethernet/IP协议的设备。它可以将Modbus RTU和Modbus TCP两种不同格式的Modbus数据包转换为Ethernet/IP协议的数据包&#xff0c;实现不同厂家的设备之间的数据交换和共享。在汇川P…

解决elementUI列表的疑难杂症,排序显示错乱的问题

大家好&#xff0c;在使用elementUI表格时&#xff0c;有时会出现一些意料之外的问题&#xff0c;比如数据排序正常但表格显示、排序错乱等。在网上搜索后一般有2种解决方法&#xff1a;1.给表格每一项的el-table-column添加唯一的id用于区分。2.给表格每一项的el-table-column…

案例 | 人大金仓助力山西政务服务核心业务系统实现全栈国产化升级改造

近日&#xff0c;人大金仓支撑山西涉企政策服务平台、政务服务热线联动平台、政务网、办件中心等近30个政务核心系统完成全栈国产化升级改造&#xff0c;推进全省通办、跨省通办、综合业务受理、智能审批、一件事一次办等业务的数字化办结进程&#xff0c;为我国数字政务服务提…

mybatis语法进阶1

日志的使用 我们在使用MyBatis的时候, 其实MyBatis框架会打印一些必要的日志信息, 在开发阶段这些日志信息对我们分析问题,理解代码的执行是特别有帮助的; 包括项目上线之后,我们也可以收集项目的错误日志到文件里面去; 所以我们采用专门的日志系统来处理. 步骤 导入坐标拷贝…

如何在SpringCloud中使用Kafka Streams实现实时数据处理

使用Kafka Streams在Spring Cloud中实现实时数据处理可以帮助我们构建可扩展、高性能的实时数据处理应用。Kafka Streams是一个基于Kafka的流处理库&#xff0c;它可以用来处理流式数据&#xff0c;进行流式计算和转换操作。 下面将介绍如何在Spring Cloud中使用Kafka Streams实…

pytorch说明

深度学习中的重要概念&#xff1a; 激活函数&#xff1a; 激活函数的必要性&#xff1a;激活函数不是绝对必须的&#xff0c;但在深度学习中&#xff0c;它们几乎总是被使用。激活函数可以引入非线性&#xff0c;这使得神经网络能够学习更复杂的模式。 激活函数的位置&#x…

记录些MySQL题集(9)

MySQL之死锁问题分析、事务隔离与锁机制的底层原理剖析 一、MySQL中的死锁现象 所谓的并发事务&#xff0c;本质上就是MySQL内部多条工作线程并行执行的情况&#xff0c;也正由于MySQL是多线程应用&#xff0c;所以需要具备完善的锁机制来避免线程不安全问题的问题产生&#…

嵌入式智能手表项目实现分享

简介 这是一个基于STM32F411CUE6和FreeRTOS和LVGL的低成本的超多功能的STM32智能手表~ 推荐 如果觉得这个手表的硬件难做,又想学习相关的东西,可以试下这个新出的开发板,功能和例程demo更多!FriPi炸鸡派STM32F411开发板: 【STM32开发板】 FryPi炸鸡派 - 嘉立创EDA开源硬件平…

STM32入门开发操作记录(二)——LED与蜂鸣器

目录 一、工程模板二、点亮主板1. 配置寄存器2. 调用库函数 三、LED1. 闪烁2. 流水灯 四、蜂鸣器 一、工程模板 参照第一篇&#xff0c;新建工程目录ProjectMould&#xff0c;将先前打包好的Start&#xff0c;Library和User文件^C^V过来&#xff0c;并在Keil5内完成器件支持包的…

【ARM】CCI集成指导整理

目录 1.CCI集成流程 2.CCI功能集成指导 2.1CCI结构框图解释 Request concentrator Transaction tracker Read-data Network Write-data Network B-response Network 2.2 接口注意项 记录一下CCI500的ACE slave interface不支持的功能&#xff1a; 对于ACE-Lite slav…

手机和电脑通过TCP传输(一)

一.工具 手机端&#xff1a;网络调试精灵 电脑端&#xff1a;野火网络调试助手 在开始通信之前&#xff0c;千万要查看一下电脑的防火墙是否关闭&#xff0c;否则可能会无法通信 在开始通信之前&#xff0c;千万要查看一下电脑的防火墙是否关闭&#xff0c;否则可能会无法通信…

vue3+TS从0到1手撸后台管理系统

1.路由配置 1.1路由组件的雏形 src\views\home\index.vue&#xff08;以home组件为例&#xff09; 1.2路由配置 1.2.1路由index文件 src\router\index.ts //通过vue-router插件实现模板路由配置 import { createRouter, createWebHashHistory } from vue-router import …