VScode写LaTeX配置,实测有效

news2024/11/25 0:59:36

 环境配置请看LaTeX环境配置-TexLive,实测有效icon-default.png?t=N7T8http://t.csdnimg.cn/0txlL

VScode写LaTeX配置

0.smatra pdf下载

如果使用外部pdf查看器,比如我用的sumatra pdf,官网是Sumatra PDF reader download page

 下载对应版本,比如64位,下载直达链接https://www.sumatrapdfreader.org/dl/rel/3.5.2/SumatraPDF-3.5.2-64-install.exe

1.VScode配置

先下载扩展LaTeX Workshop

安装完成后,按图示打开VScode的json配置文件

将下面的配置添加进自己的json中,我的配置如下

//latex配置部分,来源于https://zhuanlan.zhihu.com/p/166523064
    "latex-workshop.latex.autoBuild.run": "never", //使用第一个编译链自动编译,可选onFileChange,onSave ,never
    "latex-workshop.showContextMenu": true, //将编译和正向查找添加到右键菜单
    "latex-workshop.intellisense.package.enabled": true, //设置为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": "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"
            ]
        },
        {
            "name": "pdflatex -> bibtex -> pdflatex*2",
            "tools": [
                "pdflatex",
                "bibtex",
                "pdflatex",
                "pdflatex"
            ]
        },
    ],
    "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", //清除辅助文件的时间,onBuilt,onFailed,never 
    "latex-workshop.latex.recipe.default": "lastUsed", //默认编译链,可选first(recipes中第一条编译链),lastUsed
    "latex-workshop.view.pdf.internal.synctex.keybinding": "double-click", //反向查找,可选ctrl-click,double-click
    //配置外部PDF查看器
    "latex-workshop.view.pdf.viewer": "external", //设置默认PDF查看器,可选tab,browser,external
    "latex-workshop.view.pdf.ref.viewer": "external", //\ref引用查看,可选auto,tabOrBrowser,external
    "latex-workshop.view.pdf.external.viewer.command": "D:/ProgramFiles/SumatraPDF/SumatraPDF.exe",      //注意选自己的sumatra pdf安装位置
    "latex-workshop.view.pdf.external.viewer.args": [
        "%PDF%"
    ],
    "latex-workshop.view.pdf.external.synctex.command": "D:/ProgramFiles/SumatraPDF/SumatraPDF.exe",      //注意选自己的sumatra pdf安装位置
    "latex-workshop.view.pdf.external.synctex.args": [
        "-forward-search",
        "%TEX%",
        "%LINE%",
        "-reuse-instance",
        "%PDF%"
    ]

像我这样添加进去就行了,注意每行的上一行末尾有逗号

 如果要实现VScode长行自动换行显示,可以在刚才的json文件中写

"editor.wordWrap": "on"

 像我这样

 2.smatra pdf配置

按图示进入设置页面

进入后,在最下方的设置反向搜索中填入

"D:\ProgramFiles\Microsoft VS Code\Code.exe" -r -g "%f:%l"

注意要填自己的VScode安装位置

3.快捷键及编译查看

编译快捷键为ctrl+alt+b,正向搜索快捷键为ctrl+alt+j,反向搜索只许在生成的pdf文件中双击即可

 

 

实现编译完成自动打开pdf,在设置中搜索afterbuild,即可找到选项,打钩即可实现,如图

或者也可以在json文件中添加如下信息,效果一样

    "latex-workshop.synctex.afterBuild.enabled": true

4.测试

注意,使用时需要自己先手动启动smatra pdf软件,否则反向搜索不生效

 测试用tex源码

\documentclass[a4paper, 12pt, draft]{ctexart}
\usepackage[normalem]{ulem}
\usepackage{amsmath}
\begin{document}
% 封面信息
\title{\LaTeX 练习}
\author{BOS}
\date{\today}
\maketitle

\newpage
\setcounter{tocdepth}{2} %设置目录深度
\tableofcontents

\section{题目} 内容
\subsection{title} 内容
\subsection{title} 内容
\subsubsection{小小节} 内容
\subsubsection{小小节} 内容
\section{题目} 内容
\subsection{title} 内容
\subsection{title} 内容
\section{题目} 内容
\subsection{title} 内容
\subsection{title} 内容
\section{测试-节} 内容
\uline{uline}  \uuline{uuline} \uwave{uwave}  \sout{sout}
\xout{xout}  \dashuline{dashuline} \dotuline{dotuline}
\emph{emph}
\begin{flushleft}
    居左\\段落
\end{flushleft}

\begin{flushright}
    居右\\段落
\end{flushright}

\begin{center}
    居中\\段落
\end{center}

\section{数学公式测试}
\emph{行内公式:}
$\sum_{i=1}^n i^2 = \frac{1}{6}n(n+1)(2n+1)$


\emph{行间公式:}
\[\sum_{i=1}^n i^2 = \frac{n(n+1)(2n+1)}{6}\]


\emph{内联公式:}
给定两个矩阵 \( A \) 和 \( B \),若要进行矩阵乘法,其中 \( A \) 是一个 \( m \times n \) 矩阵,\( B \) 是一个 \( n \times p \) 矩阵,那么它们的乘积矩阵 \( C = AB \) 是一个 \( m \times p \) 矩阵,其元素 \( c_{ij} \) 的计算方式如下:
\emph{行间公式:}

\[
c_{ij} = \sum_{k=1}^{n} a_{ik} b_{kj}, \quad i = 1, 2, \ldots, m; \quad j = 1, 2, \ldots, p.
\]

\end{document}

 编译时,可以按下图的步骤1,2进行,或者只需点击步骤3即可

 这里出现小对号表示编译成功

 效果

至此,配置完成

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【STM32 CubeMX】I2C中断方式与DMA方式

文章目录 前言一、I2C中断方式1.1 CubeMX配置I2C中断1.2 I2C中断函数使用Master模式Mem模式 1.3 DMA方式发送和接收CubeMX配置IIC DMA方式Master模式Mem模式 总结 前言 在STM32 CubeMX环境中,I2C(Inter-Integrated Circuit)通信协议的实现可…

机器人专题:我国机器人产业园区发展现状、问题、经验及建议

今天分享的是机器人系列深度研究报告:《机器人专题:我国机器人产业园区发展现状、问题、经验及建议》。 (报告出品方:赛迪研究院) 报告共计:26页 机器人作为推动工业化发展和数字中国建设的重要工具&…

【数据结构】无向图创建邻接矩阵、深度优先遍历和广度优先遍历(C语言版)

无向图创建邻接矩阵、深度优先遍历和广度优先遍历 一、概念解析: (1)无向图:(2)邻接矩阵: 二、创建邻接矩阵:三、深度遍历、广度遍历 (1)深度遍历概念&#x…

模型 IPO(输入、处理、输出)学习模型

系列文章 分享 模型,了解更多👉 模型_总纲目录。重在提升认知。信息转化与传递。 1 模型 IPO(输入、处理、输出)学习模型的应用 1.1 项目管理知识体系 PMBOK 中的IPO应用 在项目管理领域,PMBOK(Project Management Body of Know…

ChatGPT绘图指南:DALL.E3玩法大全(一)

一、 DALLE.3 模型介绍 1、什么是 DALLE.3 模型? DALLE-3模型,是一种由OpenAI研发的技术,它是一种先进的生成模型,可以将文字描述转化为清晰的图片。这种模型的名称"DALLE"实际上是"Deep Auto-regressive Latent …

云计算基础-存储虚拟化(深信服aSAN分布式存储)

什么是存储虚拟化 分布式存储是利用虚拟化技术 “池化”集群存储卷内通用X86服务器中的本地硬盘,实现服务器存储资源的统一整合、管理及调度,最终向上层提供NFS、ISCSI存储接口,供虚拟机根据自身的存储需求自由分配使用资源池中的存储空间。…

AcWing 1235. 付账问题(贪心)

[题目概述] 几个人一起出去吃饭是常有的事。 但在结帐的时候,常常会出现一些争执。 现在有 n 个人出去吃饭,他们总共消费了 S 元。 其中第 i 个人带了 a i a_i ai​ 元。 幸运的是,所有人带的钱的总数是足够付账的,但现在问题来…

计算机网络——13P2P应用

P2P应用 纯P2P架构 没有(或极少)一直运行额服务器任意端系统都可以直接通信利用peer的服务能力Peer节点间歇上网,每次IP地址都有可能变化 例子: 文件分发流媒体VoIP 文件分发:C/S vs P2P 问题:从一台…

《Go 简易速速上手小册》第2章:控制结构与函数(2024 最新版)

文章目录 2.1 条件语句:决策的艺术2.1.1 基础知识讲解2.1.2 重点案例:用户角色权限判断实现用户角色权限判断扩展功能实现代码功能扩展:添加或删除用户 2.1.3 拓展案例 1:成绩等级判断实现成绩等级判断功能实现代码扩展功能&#…

Spring中的事务实现、失效场景即AOP的相关概念理解

spring实现事务(声明式事务)的本质就是aop完成的,它会对方法的前后进行拦截,在执行方法之前开启事务,在执行完目标方法之后根据执行情况提交或回滚事务。aop就是面向切面编程,在spring中将那些与业务无关,但却对多个对象产生影响的…

Opencv简单图像操作

Opencv 一、读取图片 1.imshow Mat imread(const string& filename, intflags1 );flags: enum { /* 8bit, color or not */CV_LOAD_IMAGE_UNCHANGED -1, /* 8bit, gray */CV_LOAD_IMAGE_GRAYSCALE 0, /* ?, color */CV_LOAD_IMAGE_COLOR 1, /* any depth, ? */…

深度学习之线性模型

深度学习之线性模型 y w * x模型思路 y w * x b模型思路 y w * x模型 思路 这里求权重w , 求最适合的权重,就是求损失值最小的时候 这里用穷举法:在一个范围内,列出w的所有值,并且计算出每组数据的平均损失值,以w 为横坐标, 损失值为纵坐…

定时器按秒计时

一、函数学习 二、代码、 main.c #include "stm32f10x.h" // Device header #include "Delay.h" #include "OLED.h" #include "Timer.h"uint16_t Num;int main(void) {OLED_Init();Timer_Init(); OLED_ShowString(1,1,"Num:…

树莓派5 EEPROM引导加载程序恢复镜像

树莓派5不能正常启动,可以通过电源led灯的闪码来判断错误发生的大致情形。 LED警告闪码 如果树莓派由于某种原因无法启动,或者不得不关闭,在许多情况下,LED会闪烁特定的次数来指示发生了什么。LED会闪烁几次长闪烁,然…

Linux POSIX信号量 线程池

Linux POSIX信号量 线程池 一. 什么是POSIX信号量?二. POSIX信号量实现原理三. POSIX信号量接口函数四. 基于环形队列的生产消费模型五. 线程池 一. 什么是POSIX信号量? POSIX信号量是一种用于同步和互斥操作的机制,属于POSIX(Po…

C++入门篇——命名空间

在C/C中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存 在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化, 以避免命名冲突或名字污染,namespace关键…

Calendar的使用(Java)

直接从需求来理解:将2024年2月16日增加一个月 如果不使用Calendar的话,我们需要定义字符串记住这个日期,然后把字符串解析成Date日期对象,通过Date日期对象获取其毫秒值,然后增加一个月的毫秒值,再格式化时…

社区养老|社区养老服务系统|基于springboot社区养老服务系统设计与实现(源码+数据库+文档)

社区养老服务系统目录 目录 基于springboot社区养老服务系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员部分功能 (1) 用户管理 (2)服务种类管理 (3)社区服务管理 &#xff08…

嵌入式培训机构四个月实训课程笔记(完整版)-Linux ARM驱动编程第五天-ARM Linux编程之字符设备驱动(物联技术666)

链接:https://pan.baidu.com/s/1V0E9IHSoLbpiWJsncmFgdA?pwd1688 提取码:1688 教学内容: 1、内核模块的简单框架: __init __exit执行完后就释放空间 简单框架:包含三个部分 1)模块初始化和模块退出函数…

题目:3.神奇的数组(蓝桥OJ 3000)

问题描述: 解题思路: 官方: 我的总结: 利用双指针遍历每个区间并判断是否符合条件:若一个区间符合条件则该区间在其左端点不变的情况下的每一个子区间都符合条件,相反若一个区间内左端点固定情况下有一个以…