服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - Linux折腾记(十五):再来说说LaTeX排版引擎

Linux折腾记(十五):再来说说LaTeX排版引擎

2019-10-13 16:15京山游侠 Linux

这篇文章主要介绍了Linux折腾记(十五):再来说说LaTeX排版引擎,LaTeX是一个很专业的排版系统,同时也是一个很复杂的系统,需要的朋友可以参考下

在我的上一篇随笔中,我提到了Markdown、LaTeX和MathJax。这几个东西对目前的网络技术文章的写作、展示都有深远的影响。在上一篇中,我还给出了一份LaTeX语法的学习资料。在这一篇里,我想再来谈谈LaTeX。

  在很多人心中,LaTeX是一个很专业的排版系统,同时也是一个很复杂的系统。说到专业,确实很多科技论文都是用LaTeX写作,而且很多知名的杂志社只接受LaTeX格式的投稿,而且使用LaTeX排版得到的效果那是超级赞,特别是对科技论文中充斥的数学公式而言。说到复杂,不仅是因为LaTeX排版语言命令繁多,更因为它数之不尽的宏包,学习成本真的是相当相当相当的高。

  对于一套LaTeX排版系统,它究竟包含哪些东西呢?我认为它主要可以分成这样几个部分:

1.一个排版引擎,TeX或pdfTeX或XeTeX;
2.一系列的字体;
3.一系列的宏包;
一些工具,比如用来查看各种排版引擎输出的排版结果,或者在dvi、ps、pdf等格式之间的转换。

  而对于LaTeX排版系统的复杂性,我认为主要是由于历史原因引起的,理由如下:

1.最早的由Knuth教授写的TeX引擎不支持UTF-8编码的输入文件,所以要让它支持中文实在是太难了;
2.最早的TeX系统自带一套字体,要扩展它就得扩展相应领域的字体,比如LaTeX自带丰富的数学字体,要把字体安装到TeX系统中是一件非常复杂的事情;
3.大量的第三方宏包,安装和学习都非常困难;
4.都什么年代了,谁还用dvi格式和ps格式啊,用pdf多方便啊。

  对于这些历史原因引起的复杂性,现在早就解决了,只是很多书籍没有写清楚而已。我认为现在用LaTeX其实很方便的,理由如下:

1.Knuth教授的Tex引擎用来瞻仰即可,实际工作中使用XeTeX引擎,完美支持Unicode字符集和UTF-8编码,中文再也不是问题;
2.字体神马的,Knuth教授的METAFONT早过时了,现在谁还不用TrueType啊?好的字体当然少不了像Microsoft、Adobe、Apple这些既有钱又有品味的公司出品了;
3.XeTeX引擎可以直接使用操作系统中安装的字体,再也不用考虑把字体安装到TeX系统中了;
4.XeTeX引擎直接输出pdf格式的文件;
5.排版也可以有IDE工具,比如TeXWorks;
6.至于宏包太多这个问题,我们可以用现成的发行版嘛,比如texlive套装。

  下面开始实战。我是在Ubuntu系统下使用texlive,为了省事,我直接安装了texlive-full,使用如下命令:

 

复制代码

代码如下:


sudo apt-get install texlive-full

 

  然后,再安装一个TeXWorks,命令如下:

 

复制代码

代码如下:


sudo apt-get install texworks

 

  下面是TexWorks的工作界面,排版引擎一定要选择XeLaTex哦。左边是文档编辑,右边是预览效果:

Linux折腾记(十五):再来说说LaTeX排版引擎

  第一次运行是不可能成功的,因为还要像下面这样设置一下字体。

  如果要想顺利地进行中文排版,必须得借用一点中文字体。中文排版所用到的字体一般有6种,分别是:宋体、楷体、黑体、仿宋体、隶书和幼圆。所以我从我的Win7系统下将这几个字体拷贝到Ubuntu中,把它们扔到主目录下的.fonts中即可。(隶书和幼圆要安装了Office才有。)如下图:

Linux折腾记(十五):再来说说LaTeX排版引擎

  当然,如果不想完全达到Windows中的效果,也是可以不借用它的字体的。在Linux中,宋体、黑体和楷体是不缺的,其它字体就欠奉了。如果不借用Windows中的字体,则宋体可由AR PL UMing代替,楷体可由AR PL UKai代替,黑体可由Droid Sans Fallback代替,如下图:

Linux折腾记(十五):再来说说LaTeX排版引擎

  然后,修改/usr/share/texlive/texmf-dist/tex/latex/ctex/fontset/ctex-xecjk-winfonts.def中的字体名称和上图中fc-list输出的字体名称一一对应,如下图:

Linux折腾记(十五):再来说说LaTeX排版引擎

  看到上面的路径是不是觉得它太长了?太难找了?的确如此,texlive的路径就是这么复杂。我第一次是根据错误信息找到的这个文件。

  texlive-full实在是太大了,我安装的时候几乎花了一夜的时间去下载。对于这么复杂的系统,它的各种配置文件啊、环境变量啊,都放在哪里呢?使用tlmgr conf命令即可查看,如下图:

Linux折腾记(十五):再来说说LaTeX排版引擎

  对于写写中文文档,使用ctex宏包就足够了。并不是很复杂。LaTeX还有一些更加复杂的功能,比如制作幻灯片啊、绘图啊什么的,都有相应的宏包可以使用,而且安装texlive-full的时候,都安装了非常详细的帮助文档,只需要打开/usr/share/texlive/doc.html这个文件,就可以看到所有宏包和帮助文档的列表,我之前分享的《一份不太短的LaTeX介绍》里面有,经典的《Tex by Topic》里面也有,如下图:

Linux折腾记(十五):再来说说LaTeX排版引擎

  看到这个一公里长的列表,你有什么感想呢?

延伸 · 阅读

精彩推荐
  • Linuxlinux设置tomcat自启动的方法

    linux设置tomcat自启动的方法

    这篇文章主要介绍了linux设置tomcat自启动的方法,需要的朋友可以参考下...

    Linux教程网8512021-10-10
  • Linuxlinux top命令详解

    linux top命令详解

    这篇文章主要介绍了linux top命令详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    sparkdev5622022-03-01
  • Linux理解 Linux/Unix 登录脚本的技巧

    理解 Linux/Unix 登录脚本的技巧

    有一些常见的情况,例如从Debian的包管理程序到Iaas的管理中,很多任务需要设置环境变量才能正常运行。 有时,程序通常只需要在 登陆时运行一次,例如...

    未知1042023-05-12
  • LinuxLinux系统下无法卸载挂载的目录怎么办?

    Linux系统下无法卸载挂载的目录怎么办?

    我们在日常运维中经常性会遇到需要进行磁盘的扩容、卸载、挂载等操作,但是有时候这个系统上跑的应用并没有停止或者有其他的运维同事在操作这个目...

    今日头条10302020-12-30
  • Linuxssh 登录很慢该如何解决

    ssh 登录很慢该如何解决

    这篇文章主要介绍了ssh 登录很慢该如何解决的相关资料,这里提供了两种方法,DNS反向解析及关闭ssh的gssapi认证的解决办法,需要的朋友可以参考下...

    linuxeye9922021-12-16
  • Linuxlinux驱动程序开发详细介绍

    linux驱动程序开发详细介绍

    前提,一般来说内核代码的错误可能会引起一个用户进程的死亡,或者整个系统的瘫痪,更严重的后果,可能导致磁盘损伤~因此建议最好有一台实验机进行...

    Linux教程网5392019-12-17
  • Linux在Linux系统中创建新的亚马逊AWS访问密钥的方法

    在Linux系统中创建新的亚马逊AWS访问密钥的方法

    如何在Linux系统中创建新的亚马逊AWS访问密钥?我在配置一个需要访问我的亚马逊AWS帐号的应用时被要求提供AWS访问密钥ID和秘密访问密钥,我怎样创建一个...

    Linux教程网6182019-10-30
  • Linux将 Linux 终端与 Nautilus 文件管理器结合起来

    将 Linux 终端与 Nautilus 文件管理器结合起来

    Nautilus 是 GNOME 桌面环境中的图形化文件浏览器。你可以使用它来访问和管理系统中的文件和文件夹。 尽管并非所有人都喜欢使用终端来管理文件和目录,...

    未知812023-08-08