热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Ubuntu下安装Texlive并设置CTeX中文套装

Ubuntu下安装Texlive并设置CTeX中文套装1安装texlive20131.1下载texlive2013下载地址:http://ftp.ctex.org/mirrors/CTAN/systems/texlive/Images/texlive2013-20130530.iso1.2挂载iso并安装texlive2013将下载的texlive20

Ubuntu 下安装 Texlive 并设置 CTeX 中文套装

1 安装 texlive2013

1.1 下载 texlive2013

下载地址:http://ftp.ctex.org/mirrors/CTAN/systems/texlive/Images/texlive2013-20130530.iso

1.2 挂载 iso并安装texlive2013

将下载的 texlive2013-20130530.iso 挂载到/mnt 目录下并运行 install-tl进行安装

1 sudo mount -t -iso9660 -o loop texlive2013-20130530.iso /mnt
2 cd /mnt/
3 sudo ./install-tl

出现选项之后,输入 I 直接安装即可,几分钟即可安装完毕。安装完成之后,将 texlive2013-20130530.iso 卸载。

1 cd /
2 sudo umount /mnt/

1.3 修改环境变量

texlive 默认的安装目录是/usr/local/texlive/2013/bin/i386-linux/,为了让 shell 能够自动找到 tex 的 bin 文件,我们需要修改环境变量 PATH。

如果我们希望系统也能够自动找到 texlive 的 man 或 info 文档,我们一并修改环境变量 MANPATH 和 INFOPATH。打开 /.bashrc,在其中添加下面的内容。

PATH=/usr/local/texlive/2013/bin/i386-linux:$PATH; export PATH
MANPATH=/usr/local/texlive/2013/texmf-dist/doc/man:$MANPATH; export MANPATH
INFOPATH=/usr/local/texlive/2013/texmf-dist/doc/info:$INFOPATH; export INFOPATH

1.4 测试安装是否成功

(1)首先确认我们安装的 tex 版本

lienhua34:text$ tex --version
TeX 3.1415926 (TeX Live 2013)
kpathsea version 6.1.1
Copyright 2013 D.E. Knuth.

(2)编写一个简单的 tex 文件,然后编译它

新建一个 test.tex 文件,然后输入下面内容

1 \documentclass{article}
2 \begin{document}
3 Hello \LaTeX!
4 \end{document}

然后运行下面命令即可生成 test.pdf。

1 lienhua34:text$ xelatex test.tex

双击打开 test.pdf,看到如下内容

ok,texlive正常工作。

(3)测试 ctex 套装

要 使 我 们 的 texlive 支 持 中 文, 我 们 使 用 ctex 套 装。 关 于 ctex的 介 绍 见 http://www.ctex.org/HomePage。texlive 安 装 包 默 认 携带 了 ctex 宏 包,ctex 宏 包 的 目 录 为/usr/local/texlive/2013/texmf-dist/tex/latex/ctex。我们新建一个 ctex.tex 文件,输入下面的内容

1 \documentclass{ctexart}
2 \begin{document}
3 您好,\LaTeX!
4 \end{document}

保存,然后运行下面命令

1 lienhua34:text$ xelatex ctex.tex

编译失败,xelatex 命令报如下错误

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! fontspec error: "font-not-found"
!
! The font "SimSun" cannot be found.
!
! See the fontspec documentation for further information.
!
! For immediate help type H .
!...............................................
l.5
{SimSun}
?

 这 是 因 为 ctex 宏 包 默 认 使 用 的 是 windows 系 统 的 字 体, 而 我 的ubuntu 下 没 有 windows 系 统 的 字 体, 所 以 这 里 报 了 找 不 到 宋 体(SimSun)的错误。那么我们就需要进行字体配置,这是下一节要讲的事。

现在可以确认我们的 texlive 已经安装成功,只是还没有支持中文字符而已。

2 配置 ctex 中文套装

ctex 宏包提供了三个字体选项:nofonts、adobefonts 和 winfonts,默认使用的是 winfonts。如果在 tex 源文件中没有使用其他选项修改字体配置,则需要操作系统中安装有中文 Windows 操作系统自带的四种 TrueType 字体:宋体(simsun)、黑体(simhei)、仿宋体(simfang)、楷体(simkai)。

如果使用 adobefonts 选项,则需要操作系统中安装有 Adobe 公司的四款 OpenType 字体:Adobe 宋体、Adobe 黑体、Adobe 仿宋、Adobe 楷体。

此处我们打算使用 nofonts 选项,然后通过 CJK 中文方案将 ubuntu自带的中文字体设置成中文的默认字体。

2.1 使用 nofonts 选项设置字体

我们先通过命令 fc-list :lang-zh 查看 ubuntu 系统自带的中文字体

lienhua34:text$ fc-list :lang-zh | sort
AR PL UKai CN:style=Book
AR PL UKai HK:style=Book
AR PL UKai TW MBE:style=Book
AR PL UKai TW:style=Book
AR PL UMing CN:style=Light
AR PL UMing HK:style=Light
AR PL UMing TW MBE:style=Light
AR PL UMing TW:style=Light
...
文泉驿等宽微米黑,文泉驛等寬微米黑,WenQuanYi Micro Hei Mono:style=Regular
文泉驿等宽正黑,文泉驛等寬正黑,WenQuanYi Zen Hei Mono:style=Regular
文泉驿点阵正黑,文泉驛點陣正黑,WenQuanYi Zen Hei Sharp:style=Regular
文泉驿微米黑,文泉驛微米黑,WenQuanYi Micro Hei:style=Regular
文泉驿正黑,文泉驛正黑,WenQuanYi Zen Hei:style=Regular

我们打开之前的 ctex.tex 文件,然后输入以下内容

1 \documentclass[nofonts]{ctexart}
2 \setCJKmainfont[ItalicFOnt={AR PL UKai CN}]{AR PL UMing CN} %设置中文默认字体
3 \setCJKsansfont{WenQuanYi Zen Hei} %设置文泉驿正黑字体作为中文无衬线字体
4 \setCJKmonofont{WenQuanYi Zen Hei Mono} %设置文泉驿等宽正黑字体作为中文打字机字体
5 \begin{document}
6 您好,\LaTeX!
7 \end{document}

保存,然后运行命令

1 lienhua34:text$ xelatex ctex.tex

编译成功,输出了 ctex.pdf 文件,我们双击打开 ctex.pdf 文件,看到如下内容


ok。我们的 texlive 已经能够处理中文字符。但是。。。

2.2 自定义 mylinuxfonts.sty 宏包

通过 setCJKmainfont 等命令我们可以使用 texlive 处理中文字符了,但是要在每个中文文档都写这么一段命令,确实是个烦人的事情。我们可以通过将这段命令写入到自定义的宏包文件 mylinuxfonts.sty 中,然后在文档中以命令 \usepackage{mylinuxfonts} 使用这个自定义宏包即可。

1 % mylinuxfonts.sty
2 \ProvidesPackage{mylinuxfonts}
3 \setCJKmainfont[ItalicFOnt={AR PL UKai CN}]{AR PL UMing CN} %设置中文默认字体
4 \setCJKsansfont{WenQuanYi Zen Hei} %设置中文无衬线字体为文泉驿正黑
5 \setCJKmonofont{WenQuanYi Zen Hei Mono} %设置中文打字机(等宽)字体为文泉驿正黑
6 \endinput

然后修改 ctex.tex 的内容如下即可。

1 \documentclass[nofonts]{ctexart}
2 \usepackage{mylinuxfonts}
3 \begin{document}
4 您好,\LaTeX!
5 \end{document}

那么我们要将 mylinuxfonts.sty 放在什么地方,texlive 才能够自动找得到呢?texlive 提供一个变量 TEXMFHOME(默认为~/texmf),给用 户 存 放 自 己 独 立 安 装 的 宏 包、 字 体 等。 宏 包 文 件 需 要 放 置 到 目 录TEXMFHOME/tex/latex 或 者 它 的 子 目 录 下。 我 们 将 mylinuxfonts.sty放到目录~/texmf/tex/latex 下,然后编译 ctex.tex 文件。ok,成功!

当然,如果将 mylinuxfonts.sty 放到目录~/texmf/tex/latex 下,只有当前用户才能够使用。如果我们希望这个宏包对于能够登录当前机器的所有用户都可用,那怎么办?texlive 另外提供了一个变量 TEXMFLOCAL(默认为 /usr/local/texlive/texmf-local),给系统管理员用来安装供整个系统使用的额外的宏包或者字体。宏包文件需要放到目录 TEXMFLOCAL/tex/latex 或者它的子目录下。我们将 mylinuxfonts.sty 文件放到这个目录下。

1 lienhua34:latex$ sudo cp mylinuxfonts.sty /usr/local/texlive/texmf-local/tex/latex/local

然后编译 ctex.tex 文件,但提示找不到 “mylinuxfonts.sty” 文件,

这是因为 TEXMFLOCAL 目录需要一个保持更新的文件名数据库,否则新增的文件就无法找到。我们通过命令 mktexlsr 来更新它。

lienhua34:latex$ sudo mktexlsr
mktexlsr: Updating /usr/local/texlive/2013/texmf-config/ls-R...
mktexlsr: Updating /usr/local/texlive/2013/texmf-dist/ls-R...
mktexlsr: Updating /usr/local/texlive/2013/../texmf-local/ls-R...
mktexlsr: Updating /usr/local/texlive/2013/texmf-var/ls-R...
mktexlsr: Done.

此时再编译 ctex.tex。ok,没有问题了。

2.3 优化配置

现在我们的 texlive 已经支持中文了,但我们还可以再优化一下我们的ctex 配置。

在我的 ubuntu 下没有安装 windows 系统的字体。而 ctex 默认是使用的字体配置选项是 winfonts,那么我们每个要使用 ctex 宏包的 tex 文档中都要设置 nofonts 选项。

ctex 宏包提供了一个配置文件 ctexopts.cfg,该文件中的代码会在 ctex宏包的开头(选项定义后面)执行。我们可以使用此文件设置 ctex 宏包的默认选项。

1 lienhua34:text$ cd /usr/local/texlive/2013/texmf-dist/tex/latex/ctex/cfg
2 lienhua34:cfg$ sudo cp ctexopts.cfg.template ctexopts.cfg
3 lienhua34:cfg$ sudo vi ctexopts.cfg

然后输入一下内容

1 % ctexopts.cfg: set default options
2 \ExecuteOptions{nofonts}
3 \endinput

保存,然后运行 mktexlsr 命令。ok,此时 ctex 宏包默认的字体选项便改为nofonts 了。

Ubuntu 12.04安装使用Texlive2012  http://www.linuxidc.com/Linux/2013-05/84540.htm

更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-07/120634.htm


推荐阅读
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 本文讨论了在Linux系统中,使用chown命令将django项目目录下的static目录的拥有者从root改为eureka的问题。作者尝试了多种命令,包括chown和sudo chown等,但都没有成功修改拥有者。文章提供了相关目录的权限信息,并补充了项目所在磁盘和操作系统的信息。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • Linuxchmod目录权限命令图文详解在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的内容。对于目录来说,执行位的作用是控制能否进入或者通过 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • 本文总结了Linux下多线程执行shell脚本的4种方法,包括切换到工作目录执行、使用绝对路径执行、直接使用bash或sh执行。同时介绍了为什么需要加上"./"来执行脚本的原因。 ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
author-avatar
mobiledu2502881467
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有