当前位置: 首页 > news >正文

Ubuntu下TexStudio如何兼容中文

怎么就想起来研究一下这个?

我使用大名鼎鼎的3Blue1Brown数学动画引擎Manim,制作了一个特别小的动画视频克里金插值。在视频中,绘制文字时,Manim使用到了texlive texlive-latex-extra这些库。专业的关系,当年的毕设没有使用过LaTex,不过它的大名还是听过的。于是视频做完后,好好研究了一下,发现这玩意书写文档,从美观度和数学公式录入的简易程度来说,简直是神器。

背景知识

LaTeX是什么不赘述了,他相当于是一个内核,往上有篇文章说的挺好,LaTeX之于Linux来说,他相当于Linux的内核,然后真正跟用户打交道的是Linux内核的各种发行版,比如Debian,Ubuntu红帽等等。LaTeX发型版也有很多,比如Tex Live,MacTex等等。但是这些发行版,一般都是命令行工具,而常见的具有语法高亮、自动补全、PDF预览等功能的应用软件,叫做LaTeX IED(软件开发中,叫做集成开发工具),是负责跟LaTeX发行版打交道的,常见的有TeXstudio,TeXworks等等。

我在我的工作电脑上,为了让Manim正常工作,是从深度软件仓库APT安装的texlive texlive-latex-extra,然后安装的TeXstudio,体验了LaTeX排版的强大和美观。但是我发现他是不支持渲染中文的,然后找了一圈,也不知道如何解决这个问题。最终,定位到要通过引入ctex包的形式,选择XeLaTex编译器或者LuaLaTex编译器才能正确处理中文。而ctex这个包,是要通过发行版的包管理器来实现的,从这里,我就开始犯难了。

如何安装CTEX

我从CTAN下载了ctex的包,仔细研读它的文档,文档上说最常见的 TEX 发行版(TEX Live 和 MiKTEX)已收录 CTEX 宏集及其依赖的宏包和宏集。如果本地安装 TEX Live 或 MiKTEX 不是完整版本,则可能需要通过这两个发行版提供的包管理器来安装宏包。实际上我当时还没理解TeXstudio和texlive的关系,总觉得从TeXstudio能安装ctex,或者,把我下载的ctex复制到某个目录,就能解决我的问题。然后文档上的那个tlmgr gui长这个样子:
在这里插入图片描述
点哪里哪里没反应,然后我运行tlmgr install ctex,它的提示是这样的:

(running on Debian, switching to user mode!)tlmgr: Remote repository is newer than local (2018 < 2024)
Cross release updates are only supported withupdate-tlmgr-latest(.sh/.exe) --update
Please see https://tug.org/texlive/upgrade.html for details.

我想这玩意不对啊,版本不对啥都不让我安装吗?遂作罢。

不过,我弄清了texlive的包管理工具是tlmgr

在Ubuntu上折腾了一番

我的Ubuntu是个干净的系统,我重新看了下TeXstudio的安装文档和texlive的安装文档。我用在线安装的方式,安装了texlive2024,这个过程比较长,大概7个G的东西,成功后,他提示我将texlive执行目录,设置到PATH中。我没有照做,而是从TeXstudio的官网,按照添加PPA的方式,进行了安装。按照我的预期,TeXstudio编译时,由于找不到没有texlive,一定会报错。

然而,当一切就绪后,TeXstudio能正常编译,只是依然显示不了中文。而且当我运行tlmgr install ctex时,它提示我texlive没有进行初始化云云,那一堆提示,我忘记截图了

我自行安装的texlive都没有加进PATH中,它还能工作,这是怎么回事?我心里一阵嘀咕。然后默默的运行了apt depends texstudio,突然就悟了,我通过PPA安装的TeXstudio,它自己处理的依赖,把必须的一些依赖,例如 texlive-basetexlive-latex-basetexlive-latex-recommended等自己安装了,所以跟他打交道的不是我安装的那个,是通过apt自己安装的。

知道了问题根源,那就先卸载了通过添加PPA安装的TeXstudio,然后通过apt auto remove的方式,卸载了texlive相关的依赖。检查了一下我自己安装的texlive,确认了tlmgr等程序都在,然后将其目录加入PATH中,通过tlmgr命令,检查ctex是不是想网上资料描述的那样,已经集成:
在这里插入图片描述
OK,确认完毕,万事具备。然后从TeXstudio下载其APPImage格式的执行文件,运行程序,在Help > Check LaTeX Installation中检查编译器,看看所在目录,确实是我自行安装的目录。然后在编辑区引入包名,输入中文,编译,搞定:

在这里插入图片描述
想想这一套东西还是挺不人性化的,按理说,安装了新包,TeXstudio应该能在快速向导里体现才好,然而并没有。然后我验证我办公电脑上textlive是否带有ctex(想想也不会,因为apt安装的,应该属于前述那种不是完整版本的情况),它竟然也是因为版本的问题二不告诉我。

软件的行为真是千差万别,叹。
在这里插入图片描述

相关文章:

  • 简析数据安全保护策略中的十个核心要素
  • 【精品整理】最新数据安全评估标准合集
  • 基于单片机钢琴电子节拍器系统设计
  • PTA字符串约束
  • nginx + keepalived 搭建教程
  • LeetCode 60. 第k个排列
  • 云原生技术精选:探索腾讯云容器与函数计算的最佳实践
  • 使用Python实现逻辑回归模型
  • AI结合机器人的入门级仿真环境有哪些?
  • Linux USB host driver 枚举前的源码分析
  • 算法基础之组合数 I
  • 【Apache Doris】周FAQ集锦:第 2 期
  • Android JNI基础
  • QT智能指针
  • 腾讯光子工作室群 一面 (30min)
  • hexo+github搭建个人博客
  • [Vue CLI 3] 配置解析之 css.extract
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • ES6--对象的扩展
  • JAVA_NIO系列——Channel和Buffer详解
  • Kibana配置logstash,报表一体化
  • Python_OOP
  • React-生命周期杂记
  • SpingCloudBus整合RabbitMQ
  • XML已死 ?
  • 记录一下第一次使用npm
  • 前端存储 - localStorage
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • # include “ “ 和 # include < >两者的区别
  • # Panda3d 碰撞检测系统介绍
  • #每天一道面试题# 什么是MySQL的回表查询
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (附源码)ssm码农论坛 毕业设计 231126
  • (七)Knockout 创建自定义绑定
  • (十一)图像的罗伯特梯度锐化
  • (一)RocketMQ初步认识
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (转) ns2/nam与nam实现相关的文件
  • (状压dp)uva 10817 Headmaster's Headache
  • .NET HttpWebRequest、WebClient、HttpClient
  • .NET 表达式计算:Expression Evaluator
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • @Data注解的作用
  • @Valid和@NotNull字段校验使用
  • [Android]一个简单使用Handler做Timer的例子
  • [C#]科学计数法(scientific notation)显示为正常数字
  • [C#基础知识]专题十三:全面解析对象集合初始化器、匿名类型和隐式类型
  • [c++] 什么是平凡类型,标准布局类型,POD类型,聚合体