Latex002 | 详细教程:LaTeX 编译器哪个好?——如何在 Visual Studio Code 中全流程编写 LaTeX(上篇)_爱学习的Allan的博客-程序员宅基地_latex编译器

技术标签: 编译器  编辑器  vscode  latex  Latex 排版  

一、LaTeX 一般用的编译器

一开始配置 LaTeX 环境的时候,我没有想太多,和大多数人一样直接去网上搜了编译器的选择。在互联网所提供给我们的海量资源中,以下这些是我认为值得一试的一些选择:

  1. WinEdt
    相信看过我之前博客的读者们都能猜到,我在一开始(以及之后很长一段时间)都在使用 WinEdt 作为主要的编辑器。从我的角度来分析,主要有以下原因:

    • 稳定性
      截止这篇博客的写作时间,WinEdt 官方已经出到了 11.0 的版本。相信经过历代版本的更新,WinEdt 在细节上的处理以及功能性方面一定都是最强的。

    • 集成性与可操作性
      简而言之,你只要点开安装包,装好之后就可以写代码了。这对于初学阶段的所有人(包括我)都十分友好。因此强烈推荐新手使用这款软件

      安装方法

    下载地址

  2. TexWorks

    • 这也是网上给出的一种普遍解答(包括我的许多同学在内都是使用的这种编译器)所以关于它的介绍我就不赘述了。在这里我给各位想要进一步了解的读者推荐一篇使用文章,有兴趣可以参考一下:Latex(2)——TeXworks使用技巧
    • 下面来讲讲我的个人感受吧:
      • 高度可编辑性
        意思就是里面有各种各样的参数可以调整。在这里插入图片描述
      • 集成性,方便直接使用
      • 选择较多(大致同第一条)
        在这里插入图片描述
  3. 当然,除了我以上讲的这些,市面上当然还有许多五花八门的编译器。因此我想对它们共有的缺点做一个总结:

    • 对于一个平时编 Python, C++, C 这种对代码美观程度要求很高的程序员来说,这些编辑器的自动格式化缩进功能虽然是有,但是需要自己调整参数。而我们知道,这些编译器天生是用来编写 LaTeX 代码的,因此开发商不可能花费太多精力在缩进这种代码结构方面下功夫。所以你写的代码很可能就变成了这样:
      在这里插入图片描述
      顺带插一句,很多编辑器甚至不让调字体和背景颜色,导致编写时间长了眼睛会极度酸涩不适。

    • (这也是最令人懊恼的地方):大多数编译器不支持自动补全添加高亮。(我的印象中 WinEdt 是支持的,但仍然不够完善)而对于 LaTeX 这种需要大量 \begin{xxx}\end{xxx} 环境的语言来说简直是极度不友好。虽然部分编译器是支持调参数的,但我的亲身经历告诉我你会浪费大量时间在这种本不应该使你操心的东西上面而耽误了主业。
      如果你觉得上述例子是可以接受的话,不妨看一下下面两者的区别:
      我们有一下一个公式:

      \displaystyle\frac{\left( {
             {1}\Bigg/{\sqrt{2\pi \sigma _{0}^{2}}}} \right) ^n\exp \left\{ {
             {\left( -\sum\limits_{i=1}^n{\left( x_i-\mu _0 \right) ^2} \right)}\Bigg/{2\sigma_{0}^{2}}} \right\}}{\left\{ {
             {1}\Bigg/{\left( \frac{2\pi}{n} \right) \sum\limits_{i=1}^n{\left( x_i-\mu _0 \right) ^2}}} \right\} ^{\frac{n}{2}}e^{-\frac{n}{2}}}
      

      ( 1 / 2 π σ 0 2 ) n exp ⁡ { ( − ∑ i = 1 n ( x i − μ 0 ) 2 ) / 2 σ 0 2 } { 1 / ( 2 π n ) ∑ i = 1 n ( x i − μ 0 ) 2 } n 2 e − n 2 \displaystyle\frac{\left( { {1}\Bigg/{\sqrt{2\pi \sigma _{0}^{2}}}} \right) ^n\exp \left\{ { {\left( -\sum\limits_{i=1}^n{\left( x_i-\mu _0 \right) ^2} \right)}\Bigg/{2\sigma_{0}^{2}}} \right\}}{\left\{ { {1}\Bigg/{\left( \frac{2\pi}{n} \right) \sum\limits_{i=1}^n{\left( x_i-\mu _0 \right) ^2}}} \right\} ^{\frac{n}{2}}e^{-\frac{n}{2}}} { 1/(n2π)i=1n(xiμ0)2}2ne2n(1/2πσ02 )nexp{ (i=1n(xiμ0)2)/2σ02}

      如果让你在 TeXworks 里面展示出同样的效果,意味着你要面对这样的界面:
      在这里插入图片描述
      然后……万一报错怎么办?
      请添加图片描述

二、一个“不寻常”的选择

当然,写以上内容的目的绝不是彻底否定其它编译器,而是向大家展示我的体验。如果大家有其它值得分享且好用的编译器的话,欢迎在评论区留言或与我私信!

那么大家看了我前面的介绍,是否会觉得,下面这组图好一些呢?
在这里插入图片描述

在这里插入图片描述
以上两张图均出自 Visual Studio Code 的界面。我想,比起前面那些编译器,Visual Studio Code 在写代码上的优势应该不言自现了吧。

那么为什么我会想到选择 Visual Studio Code(以下简称 vsCode)去写 LaTeX 呢?事实上,我愿称以上的介绍都是开胃菜,vsCode 真正强大之处在于它完善的插件系统以及引申而来的强大设置功能几乎对每种语言的支持

  • 先说设置系统。除了各种五花八门的按钮之外,我认为其对于 .json 等配置文件的归类是非常整体与完善的。简而言之,每个设置项都会隶属于一份诸如 settings.json 的设置文件。而这也意味着你只要掌握了语法(或拥有搜索能力),你就能像“剥洋葱”一样把你要的功能一条一条加上。(是的,这很类似 css!)简单展示一下:
    cpp_indent_braces=false
    cpp_indent_multi_line_relative_to=innermost_parenthesis
    cpp_indent_within_parentheses=indent
    cpp_indent_preserve_within_parentheses=false
    cpp_indent_case_labels=false
    cpp_indent_case_contents=true
    cpp_indent_case_contents_when_block=false
    
  • 再说插件。光是搜索一个 ‘LaTeX’,你就会得到成百上千个结果:
    在这里插入图片描述
    也就是说,只要你找到了自己心仪的插件,即便你不会用,只需到网上搜一下便能上手,十分方便。
    另外,单单是一个插件,里面花头可不小!比如我们来看一下以后会介绍到的 LaTeX Workshop 这款插件,它会在左侧栏目中提供一个有关 LaTeX 编译的选项:
    在这里插入图片描述
    甚至还有公式提示:
    在这里插入图片描述
    由此可见,只要能够正确安装这款插件,新手完全可以从这里学到完整的 LaTeX 排版知识。我也将在接下来的文章中向大家介绍它的安装。

如果觉得有帮助,或是认同我的看法,欢迎大家点赞,评论,收藏,关注本博客!

注:下篇已经更新,有需要的读者们可以点击查看


我的 GitHub 账号: 欢迎 Fork + PR!

我的洛谷账号:这是我

我的洛谷团队:这是我的团队

欢迎大家关注我,并加入我的团队哦^ _ ^

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/mad_programmers/article/details/125295342

智能推荐

Ant—使用Ant构建简单Java项目(一)_老高专栏的博客-程序员宅基地

Apache Ant主要用于Java项目的构建。为什么要使用Apache Ant来构建项目呢:        1)项目构建不是简单的编译,各种资源需要合理构建,例如有的类需要压缩成jar文件,有的文件需要放在指定位置,有时候需要使用配置文件。这些工作是繁杂琐碎的,手工处理难免出错。        2)诸如Myeclipse之类的IDE工具可以方便地部署web项目,但是脱离了这些集成工具,例如在需要

“神州六号”发射成功_weixin_34190136的博客-程序员宅基地

   “50秒、30秒……”零号指挥员郭保新的口令在空旷的大漠发射场响起时,中国屏住了呼吸。这是45岁的郭保新第6次为“神舟”倒计时读秒。35年前,同一个岗位上的胡世祥按下了红色的点火按钮,中国第一枚三级运载火箭长征一号托举着中国第一颗人造卫星东方红一号,腾空而起。35年后,手动点火早已发展为自动点火,胡世祥也成为了知名的“发射将军”和中国载人航天工程副总指挥。    2005年1...

【Latex】模板设置及使用教程_锵锵锵锵~蒋的博客-程序员宅基地_如何套latex模板

掌握Latex会为论文排版省下大把时间,本文是本人在自己定制论文模板过程中复杂问题(例如奇偶页眉页脚设置)的总结,参考了大量优秀博客。

Docker 存储原理_self-motivation的博客-程序员宅基地

Docker 存储可以分为分层文件系统和卷,本文将介绍 AUFS 分层文件系统。1. 基础知识1.1 Linux 的 rootfs 和 bootfs  一个典型的 Linux 系统要能运行的话,它至少需要两个文件系统:boot file system (bootfs):包含 boot loader 和 kernel。用户不会修改这个文件系统。实际上,在启动(boot)过程完成后

PyTorch vs TensorFlow,哪个更适合你_JeremyCzh的博客-程序员宅基地_pytorch和tensorflow的区别

文章原标题《PyTorch vs TensorFlow — spotting the difference》,作者:Kirill Dubovikov,译者:夏天,审校:主题曲哥哥。本文将探讨PyTorch和TensorFlow这两种流行深度学习框架之间的关键相似点和不同点。为什么选择这两个框架,而不是其他的呢?目前有很多的深度学习框架,而且很多都可用于实际的生产,我之所以选择这两个只是因为我对它们...

python 全栈开发,Day48(标准文档流,块级元素和行内元素,浮动,margin的用法,文本属性和字体属性)..._shykevin的博客-程序员宅基地

python 全栈开发,Day48(标准文档流,块级元素和行内元素,浮动,margin的用法,文本属性和字体属性) 昨日内容回顾 高级选择器:后代选择 : div p子代选择器 : div&gt...

随便推点

echarts---多个柱子一组的柱状图 使用_String佳佳的博客-程序员宅基地_echarts柱状图多个柱子

在公司做项目的时候,直接用官网现成的模板,柱子显示不出来,可能与项目中的某些配置冲突了才导致的;根据其他的模板,修改之后,可以实现相同的效果:<div id="myChart1" style="width: 1000px;height: 300px;margin: 0 auto"></div>methods:{ drawLine(){ ...

【微信小程序控制硬件④】 深度剖析微信公众号配网 Airkiss 原理与过程,esp8266如何自定义回调参数给微信,实现绑定设备第一步!(附带源码)_半颗心脏的博客-程序员宅基地_微信公众号配网

本博文由热爱分享热爱技术的半颗心脏原创,非官方人员、非组织名义编写,博文如有不对或侵犯您的权益,请及时留言,第一时间纠正!【微信小程序控制硬件①】 全网首发,借助 emq 消息服务器带你如何搭建微信小程序的mqtt服务器,轻松控制智能硬件!【微信小程序控制硬件②】 开始微信小程序之旅,导入小程序Mqtt客户端源码,实现简单的验证和通讯于服务器!【微信小程序控制硬件③】 从软件到硬件搭...

Xilinx FPGA全局介绍_普通网友的博客-程序员宅基地

Xilinx FPGA全局介绍现场可编程门阵列 (FPGA) 具有诸多特性,无论是单独使用,抑或采用多样化架构,皆可作为宝贵的计算资产;许多设计人员并不熟悉 FPGA,亦不清楚如何将这类器件整合到设计中。解决办法之一是深入研究主要供应商提供的 FPGA 架构及相关工具;本文从 Xilinx 产品系列开始着手。FPGA 选件高级概述市场上有许多不同类型的 FPGA,每种类型都有不同的功能和特性组合。可编程结构是任何 FPGA 的核心,以可编程逻辑块阵列的形式呈现,也称为逻辑元件 (LE)(图 1a)。F

股票入门基础知识47:移动平均震荡指标 (OsMA)_Eric2016_Lv的博客-程序员宅基地_osma指标

移动平均震荡指标 (OsMA) 是表示价格走势的指标。它是通过比较较短期移动平均线和较长期移动平均线之间的差异所计算出来的。最常见的两个是 12 周期移动平均线和26 周期移动平均线。因此,对它最恰当的形容就是 MACD。要想确定动量是倾向上涨还是倾向下跌,一个非常简单的方法就是看穿越零线或中线。操盘手会用柱形图所在的线的那一侧来帮助他们决定在市场中的买卖方向。

仿微信和QQ页面滑动效果(Fragment和ViewPager)_TaoLee-的博客-程序员宅基地

相信大家一定使用过微信,微信页面可以实现左右滑动,同时点击下面的三个按钮页面也会随之改变,相比较微信,QQ的聊天界面不能滑动,仅仅通过下面的三个按钮随之改变页面,说按钮不准确,因为那是通过一组单选按钮RadioButton实现的,首先给大家看一看布局文件 main_activity.xml<?xml version="1.0" encoding="utf-8"?><RelativeLayou