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 with
  update-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安装的,应该属于前述那种不是完整版本的情况),它竟然也是因为版本的问题二不告诉我。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

服装商城小程序设计分享,服装商城设计分享,自助建站模板分享

在当今数字化的时代&#xff0c;服装商城小程序的设计成为了提升用户购物体验的关键。下面&#xff0c;我将分享一些关于服装商城小程序设计的要点和思路。 首先&#xff0c;界面的简洁与美观至关重要。简洁的布局能让用户轻松找到所需商品&#xff0c;避免繁琐的操作流程。同时…

如何水出第一篇SCI:SCI发刊历程,从0到1全过程经验分享!!!

如何水出第一篇SCI&#xff1a;SCI发刊历程&#xff0c;从0到1全路程经验分享&#xff01;&#xff01;&#xff01; 详细的改进教程以及源码&#xff0c;戳这&#xff01;戳这&#xff01;&#xff01;戳这&#xff01;&#xff01;&#xff01;B站&#xff1a;Ai学术叫叫兽e…

血细胞检测数据集 | 用于血细胞计数+检测的小规模数据集_已经整理成VOC格式_总共410张图

项目应用场景 面向血细胞检测计数数据集&#xff0c;已经整理成 VOC 格式&#xff0c;可以直接用于目标检测算法的训练&#xff0c;如 YOLO 等目标检测算法的训练。血细胞检测数据集图片质量好&#xff0c;可直接训练出一个血细胞检测模型&#xff0c;或者作为血细胞检测数据集…

SOLIDWORKS在教育领域的应用

随着科技的飞速发展和数字化浪潮的推进&#xff0c;SOLIDWORKS作为一款强大的三维设计软件&#xff0c;其应用领域已经不仅局限于工程设计和制造行业&#xff0c;还逐渐渗透到教育领域中&#xff0c;成为培养学生实践能力和创新思维的重要工具。本文将探讨SOLIDWORKS在教育领域…

数组排序(Comparator)

题目 import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();sc.nextLine();Integer[] res new Integer[n1];//使用Integ…

idea Springboot 电影推荐系统LayUI框架开发协同过滤算法web结构java编程计算机网页

一、源码特点 springboot 电影推荐系统是一套完善的完整信息系统&#xff0c;结合mvc框架和LayUI框架完成本系统springboot dao bean 采用协同过滤算法进行推荐 &#xff0c;对理解JSP java编程开发语言有帮助系统采用springboot框架&#xff08;MVC模式开发&#xff09;&…

能否安全地删除 Mac 资源库中的文件?

在管理Mac电脑存储空间时&#xff0c;用户确实可能考虑对资源库&#xff08;Library&#xff09;文件夹进行清理以释放空间。Mac资源库是一个系统及应用程序存放重要支持文件的地方&#xff0c;其中包括但不限于配置文件、临时文件、缓存、插件、偏好设置、应用程序支持数据等。…

vitepress系列-05-其他优化设置

其他优化设置 设置底部上一页和下一页 设置&#xff1a; import { defineConfig } from vitepress// https://vitepress.dev/reference/site-config export default defineConfig({lang: en-US,title: "东东爱编码的技术博客",description: "记录日常学习点点…

Cute Background FX

Cute Background FX是环境背景粒子系统的集合。非常适合作为菜单的背景。 该包包括: -20个独特预制件+20个URP预制件 -5种独特的环境设计 -15种纹理 -2个自定义着色器+2个URP着色器 -共59项独特资产 -一个演示场景,您可以在其中概述所有内容。 所有纹理都是512x512分辨率的P…

LDR6328助力Type-C普及,便捷充电,绿色生活更精彩

随着科技的进步和全球统一接口的需求&#xff0c;Type-C接口正日益受到青睐。越来越多的设备正选择采纳这一先进的接口设计&#xff0c;它的普及无疑在改善着我们的日常生活。 在过往&#xff0c;许多小功率设备如小风扇、蓝牙音箱、桌面台灯以及家用加湿器等&#xff0c;都普遍…

android 资源文件混淆

AGP7.0以上引用AndResGuard有坑 记录下 在项目的build.gradle中添加如下 buildscript {ext.kotlin_version "1.4.31"repositories {google()jcenter()maven {url "https://s01.oss.sonatype.org/content/repositories/snapshots/"}}dependencies {class…

如何在PowerPoint演示文稿中添加音乐?这里有详细步骤

序言 有很多方法可以改进你的PowerPoint演示文稿&#xff0c;向对象添加动画&#xff0c;自定义幻灯片转换样式&#xff0c;以及使用有趣的主题等等。除此之外&#xff0c;你还可以在演示文稿中添加音乐。 向演示文稿中添加音乐 PowerPoint使在演示文稿中添加音乐变得非常简…

C++:if语句(20)

介绍 c最基本的三种程序运行模式为&#xff1a;顺序执行&#xff0c;判断执行&#xff0c;循环执行 顺序执行&#xff1a;前面我们的代码都是从上往下&#xff0c;依次执行的&#xff0c;这就是按顺序依次执行 判断执行&#xff1a;通过我们写的判断条件&#xff0c;去判断要不…

各类聚类算法整理

各类聚类算法整理 0. 先验的基础知识1. K-Means2. GMM3. EM算法4.Spectral Clustering5. Mean Shift6. DBSCAN 本篇将介绍整理各种聚类算法&#xff0c;包括k-means&#xff0c;GMM(Guassian Mixture Models, 高斯混合)&#xff0c;EM(Expectation Maximization&#xff0c;期望…

高新技术企业发展的重要性

高新技术企业发展的重要性及其挑战 随着科技的不断进步&#xff0c;高新技术企业正逐渐成为推动经济发展的重要力量。这些企业以高科技含量、高附加值和高成长性为主要特征&#xff0c;对于提升国家整体科技水平、优化产业结构、促进就业等方面都具有重要意义。 高新技术企业…

hydra九头蛇

一、hydra简介 Hydra是一款非常强大的暴力破解工具&#xff0c;它是由著名的黑客组织THC开发的一款开源暴力破解工具。Hydra是一个验证性质的工具&#xff0c;主要目的是&#xff1a;展示安全研究人员从远程获取一个系统认证权限。 目前该工具支持以下协议的爆破&#xff1a; A…

头盔检测 | 基于Caffe-SSD目标检测算法实现的建筑工地头盔检测

项目应用场景 面向建筑工地头盔检测场景&#xff0c;使用深度学习 Caffe SSD 目标检测算法&#xff0c;基于 C 实现。 项目效果 项目细节 > 具体参见项目 README.md (1) 安装 Caffe SSD(2) 执行训练 sh examples/Hardhat/SSD300/train_SSD300.sh (3) 部署算法 项目获取 h…

远程过程调用(远程调用)

远程过程调用&#xff08;远程调用&#xff09; 1、什么是分布式计算 在计算机科学中&#xff0c;分布式计算&#xff08;英语&#xff1a;Distributed computing&#xff09;&#xff0c;又译为分散式运算。这个研究领域&#xff0c;主要研究分布式系统&#xff08;Distribu…

STL之string模拟实现

面试题&#xff1a;简易版string(深拷贝与浅拷贝的问题) 如果要实现简易版的string 无需涉及增容问题&#xff0c;成员变量可以不用存储容量和元素个数 构造函数 错误示范 class string {string(): _str(nullptr){}string(const char* str): _str(str){}char& operator[](s…

HBase详解(2)

HBase 结构 HRegion 概述 在HBase中&#xff0c;会从行键方向上对表来进行切分&#xff0c;切分出来的每一个结构称之为是一个HRegion 切分之后&#xff0c;每一个HRegion会交给某一个HRegionServer来进行管理。HRegionServer是HBase的从节点&#xff0c;每一个HRegionServ…