• 在Ubuntu下简易配置Tex UTF8中文环境


    在Ubuntu下配置使用Tex中文环境有好几种选择和相关方法,有些比较简单(比如直接用XeTeX),有些则相对麻烦一点(比如手动去生成相关字体)。

    现在应用最广的一般是TexLive+CJK,如果想尽量使你的Tex文档在Windows/Linux下互相通用,一般都选择这种组合,而且这也是目前最成熟的(相对于XeTeX)。

    今天这篇文章中的方法,是利用目前已经成功的方法,再结合Ubuntu的特定环境所作的。希望能给想在Ubuntu下配置Tex中文环境的朋友一个参考。

    —–

    先介绍一下之前最流行的在Linux下配置Tex的方法,一般是参考这篇文章:

    http://mailboxpublic.googlepages.com/texlive2007cjkchinesehowto

    下载1GB左右的ISO档,挂载ISO并安装其中的TexLive,再自己生动生成相关字体文件。一般都能顺利的配置好Tex+UTF-8的中文环境。

    但是对于习惯了apt-get的用户,可能不愿意从外部安装Tex套件。因此,我参考了一些文章,琢磨出了这个利用Ubuntu源里的TexLive,再手动生成字体包的方法,优点是:

    • 不需要下载1GB的ISO档,只需要下载我准备的几百KB的字体生成要用的相关文件。
    • 只从Ubuntu源里安装相关Tex套件,不往系统目录写入其他文件,方便删除。
    • 仍需要手动生成字体文件,不过是安装在自己的主目录下。

    好。请看详细方法:

    一、安装TexLive+Latex+CJK:

    打开终端,执行下述命令安装TexLive和常用的一些Latex宏包(可以根据自己的需要增改):

    sudo apt-get install texlive texlive-math-extra texlive-latex-base texlive-latex-extra texlive-latex-recommended texlive-pictures texlive-science texlive-bibtex-extra texlive-common latex-beamer

    如果硬盘充裕的话,直接完整安装也可以:

    sudo apt-get install texlive-full latex-beamer

    安装完后,就可以安装CJK的相关软件包了,如果只需要获得中文支持,那么执行:

    sudo apt-get install latex-cjk-chinese ttf-arphic-* hbf-*

    否则,建议安装latex-cjk-all以获取完整支持。

    二、生成中文字体包

    安装好TexLive+CJK以后,还需要安装一个软件──fontforge用于生成字体:

    sudo apt-get install fontforge

    好了,前面所做的,都是标准的Debian式安装,假如哪天你不需要了,直接remove安装即可。

    生成字体前,请自己准备你需要生成的字体文件:simsun.ttc,simhei.ttf等,这里以simsun.ttc(宋体)为例。

    准备好后下载下面这个包,解压到一个地方,如自己的主目录~/font:

    font.tar.bz2

    然后把simsun.ttc也复制到~/font里去,执行下面的命令生成字体地图:

    cd ~/font
    time fontforge -script subfonts.pe simsun.ttc song Unicode.sfd

    加time是为了计算时间,因为比较耗时,在我的Core 2 Duo T5500下,生成song花了40分钟,生成hei花了24分钟,仅供参考。

    字体生成好了,再建立一个描述文件吧。

    在~/font下,建立一个makemap文件,内容如下:

    for i in *.tfm
    do
    cat >> song.map << EOF
    ${i%.tfm} ${i%.tfm} < ${i%.tfm}.pfb
    EOF
    done

    然后在终端下执行:chmod +x makemap让文件加上执行权限,最后执行:

    ./makemap

    再建立一个一个c70song.fd文件:

    % This is c70song.fd for CJK package.
    % created by Edward G.J. Lee
    % modify by Yue Wang
    /ProvidesFile{c70song.fd}
    /DeclareFontFamily{C70}{song}{/hyphenchar /font/m@ne}
    /DeclareFontShape{C70}{song}{m}{n}{<-> CJK * song}{}
    /DeclareFontShape{C70}{song}{bx}{n}{<-> CJKb * song}{/CJKbold}
    /endinput

    好的,相关文件都已生成,开始复制字体使其生效。

    执行下面的命令,在你的主目录下生成隐藏的个人Tex配置,如果你哪天不需要了,也可以删除:

    mkdir -p ~/.texmf-var/fonts/map/dvips/CJK
    mkdir -p ~/.texmf-var/fonts/tfm/CJK/song
    mkdir -p ~/.texmf-var/fonts/type1/CJK/song
    mkdir -p ~/.texmf-var/tex/latex/CJK/UTF8

    建立完这层层叠叠的目录以后,就把刚刚生成的字体复制进去吧。

    cp ~/font/song.map ~/.texmf-var/fonts/map/dvips/CJK
    cp ~/font/*.tfm ~/.texmf-var/fonts/tfm/CJK/song
    cp ~/font/*.pfb ~/.texmf-var/fonts/type1/CJK/song
    cp ~/font/c70song.fd ~/.texmf-var/tex/latex/CJK/UTF8

    复制完后就执行命令刷新缓存,让它生效:

    sudo texhash
    updmap --enable Map song.map

    假如一切顺序的话, 就测试一下我们安装的song体是否能用吧。

    在任意位置编辑这个文件,然后保存为test.tex,支持UTF-8格式:

    /documentclass{article}
    /usepackage{CJKutf8}
    /begin{document}
    /begin{CJK}{UTF8}{song}
    你好!这里是Ubuntu下的TexLive+CJK环境!
    /end{CJK}
    /end{document}

    执行分别生成pdf文档和用evince来查看文档:

    pdflatex test.tex
    evince test.pdf

    看看你的过程顺不顺利,生成的PDF档也是下面这样吗?

    texlive.png

    texlive-2.png

    用同样的方法搞定hei和kai等常用中文标准字体,开始享受你的Tex吧!

    参考资料是:

    Fedora上配置Tex UTF-8 中文系统

    TeXLive 2007 CJK Chinese Howto

    ubuntu 7.10下搞定Latex + CJK

  • 相关阅读:
    posix_memalign详细解释(转)——自定义对齐大小的内存分配函数
    dos下遍历目录和文件的代码(主要利用for命令)(转)
    Android遍历获取指定目录的文件(转)
    adb shell settings 控制安卓系统设置(转)
    Android中保存静态秘钥实践(转)
    Android 如何将Canvas上绘制的内容保存成本地图片(转)
    Nginx随笔
    虚拟内存和物理内存(转)
    glibc的几个有用的处理二进制位的内置函数(转)
    一个开发学习的网站(待验证)
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6470560.html
Copyright © 2020-2023  润新知