zoukankan      html  css  js  c++  java
  • 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 egin{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 egin{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 <return>.
    !...............................................
    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 egin{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 egin{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 了。

    3 参考列表

    http://www.tug.org/texlive/doc/texlive-zh-cn/texlive-zh-cn.pdf
    http://code.google.com/p/ctex-kit/wiki/CTeXPackage
    http://code.google.com/p/ctex-kit/wiki/UnixFonts
    http://seisman.info/texlive-2013-under-linux.html

  • 相关阅读:
    05 redis中的Setbit位图法统计活跃用户
    04 redis list结构及命令详解
    03 redis之string类型命令解析
    02 redis通用命令操作
    Mesos提交任务没有被执行
    mesos的zookeeper变更
    VS Code使用git
    vs code 安装Scala
    打印正反读计算方式
    cloudera上面安装Spark2.0
  • 原文地址:https://www.cnblogs.com/lienhua34/p/3675027.html
Copyright © 2011-2022 走看看