您的位置:首页 > 文旅 > 美景 > Linux系统使用TexLive

Linux系统使用TexLive

2024/12/23 10:41:08 来源:https://blog.csdn.net/silent_missile/article/details/142114590  浏览:    关键词:Linux系统使用TexLive

TeXLive本身提供了超过30000个包,这里面每个包都是独立升级的,而且几乎每天都会有一些包升级。而绝大多数Linux发行版即使安装了桌面最多也就是几千个包而已。所以,让Linux发行版为TeXLive的每个包单独打包,然后随系统升级,这是不可能的。

实际上绝大多数Linux发行版都是简简单单的把TeXLive打包成几个甚至一个大包,然后直接安装,只有少数几个发行版如Fedora、openSUSE才会把TeXLive详细打包,但是也仅仅是打包了几千个而已,不可能把TeXLive的每个包都单独打一个包。

这样的话,如果TeXLive的包升级了,Linux发行版的包就很难跟着升级,而很多时候这是必须的。

所以经过多方对比,我最后决定不再使用Linux发行版的TeXLive包,而是单独安装。

从CTAN的镜像站下载安装程序

在CTAN的镜像站,找到以下路径

CTAN/systems/texlive/tlnet/install-tl-unx.tar.gz

下载install-tl-unx.tar.gz

安装TeXLive

下载完成后将其解压缩

然后通过命令行运行

install-tl -gui -select-repository

会弹出图形界面,让用户选择CTAN镜像站,用户选好CTAN镜像站以后,进入下一个环节。

如果没有弹出图形界面,要安装perl-tk包,不同的发行版按照自己的方法安装即可。

用户可以进行一些简单的设置,最主要的就是安装目录。

如果用户有root权限,可以安装在系统的/opt目录或者/usr/local目录,甚至还可以创建快捷方式。如果没有root权限,可以安装在~/opt目录,这时候就别创建快捷方式了。

安装程序会从CTAN镜像站自动下载TeXLive的各个宏包,并安装。

安装完成后为了能让用户自动识别,要修改~/.profile文件,加入以下内容

export PATH=~/opt/texlive/2024/bin/x86_64-linux:$PATH

这样,每次用户登录的时候,都会自动设置环境变量,就能找到TeXLive的可执行程序。

TeXLive更新

单独安装好TeXLive后,将来更新TeXLive宏包时,可以这样

tlmgr --gui

就会有图形界面,然后简单操作即可。

安装编辑器

TeXLive类似编译器,可以把LaTeX代码编译为pdf,但是TeXLive并不提供前端编辑器,编辑器要用户自己安装。

VSCode是时下流行的编辑器,也可以用来编辑LaTeX,不过说起来还是不如专门的LaTeX编辑器专业。所以最后我还是选择了TeXstudio

很多Linux发行版都带了TeXstudio,但是它们都设置了依赖关系,就是如果安装发行版自带的TeXstudio就必须要安装发行版自带的TeXLive。为了避免这种情况,我避免使用Linux发行版自带的TeXstudio

一种方法是使用TeXstudio自带的AppImage,下载下来后直接双击即可使用。但是这个AppImage在运行时和输入法有点不兼容,无法在里面输入中文,这让我最后不得不放弃了。

于是我最后选择使用Flatpak

flatpak install flathub org.texstudio.TeXstudio # 安装TeXstudio
flatpak run org.texstudio.TeXstudio # 运行TeXstudio

实际上在安装好以后,在系统的开始菜单会生成一个快捷方式,不需要命令行就可以启动。

前面因为已经把TeXLive的可执行文件都加入了PATH,此时就会自动识别

通过flatpak安装的TeXstudio可以和系统的输入法兼容,输入中文没有问题

Linux下TeXLive中文支持

TeXLive对中文的支持和操作系统无关,LaTeX对中文的支持本质在与对中文字体、中文编码、中文板式的使用。

对比Linux和Windows,中文编码和中文版式其实时一样的,其实只有中文字体有差异。因为windows下的中文字体一般是宋体simsun或者微软雅黑msyh;而在Linux系统下的中文字体,一般是文泉驿wqy或者思源source han sans,也有google noto的

所以在Linux下使用TeXLive的时候,只要调整好中文字体就可以了。

目前使用最广泛的LaTeX中文处理方案是ctex

在引入ctex宏包的时候,要指定编码为UTF8,而且还要指定fontset=none

ctex确实预设了几套字体方案,其中还有一套是ubuntu的,但是如果Linux发行版使用的字体配置和ubuntu并不一样,那就会产生问题

所以要用

fc-list > fonts.txt

看一下系统内到底有什么中文字体。对于现代Linux发行版来说,一般系统内会自带很多字体,直接在命令行看是很麻烦的,所以我把它输出到了fonts.txt,然后慢慢看。

比如说我在openSUSE用的中文字体是思源宋体Source Han Serif CN和思源黑体Source Han Sans CN,思源并没有楷体,所以我系统内而楷体是名流Arphic。而ubuntu使用的中文字体是文泉驿,所以我这里就用不了fontset=ubuntu

在openSUSE配置字体的时候就如下所示

% Linux系统下的字体配置
\usepackage[UTF8, scheme=chinese, heading, zihao=5, fontset=none]{ctex}
\ctexset{fontset=none,space=auto,today=small,%	secnumdepth=3,%	tocdepth=3
}
% openSUSE使用系统字体,主体使用Adobe思源字体,包括思源宋体和思源黑体,楷体使用arphic
\setCJKmainfont[BoldFont={Source Han Sans CN},ItalicFont={AR PL UKai CN}]{Source Han Serif CN}
\setCJKsansfont[BoldFont={Source Han Sans CN}]{Source Han Sans CN}
\setCJKmonofont[BoldFont={Source Han Sans CN}]{Source Han Sans CN}

如果是其他系统,可以根据fc-list的结果设定不同的字体。

当然如果不喜欢系统自带的字体,而非要采用一些其他字体的话,也是可以的。可以把额外的字体加入系统,但是一般来讲是加入到用户字体,而不是系统字体,加入系统字体比较麻烦,而且可能会破坏fontconfig字族的设定,并导致系统其他地方的字体问题。

推荐的办法就是外挂字体,直接把ttf或者otf文件放在tex文件的同一个目录。

这样的话,处理起来类似。首先把ctex宏包的编码设定为UTF8,再把fontset设置为none。后面设置字体的时候,直接指定字体的otf或者ttf文件即可。

% 不使用系统字体,而是在主目录下使用外挂字体
\usepackage[UTF8, scheme=chinese, heading, zihao=5, fontset=none]{ctex}\ctexset{fontset=none,space=auto,today=small,%	secnumdepth=3,%	tocdepth=3
}
\setCJKmainfont[BoldFont={FZHTK.OTF},ItalicFont={FZKTK.OTF}]{FZSSK.OTF}
\setCJKsansfont[BoldFont={FZHTK.OTF}]{FZKTK.OTF}
\setCJKmonofont[BoldFont={FZHTK.OTF}]{FZFSK.OTF}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com