Ubuntu 14.04/14.10 系统安装 Latex及配置中文字体[修订]

来源:互联网 发布:api原油数据分析 编辑:程序博客网 时间:2024/05/17 23:45
说明:以下描述参考“Linux下Latex的安装”以及 “Ubuntu 11.10下CJK宏包的中文字体安装“,同时,结合我在Ubuntu 14.10上安装的实际测试结果对部分操作的描述进行了修正。

此文的第一版上传后,我试验后续的安装步骤发现不少东西在Ubuntu 14.10上与两篇参考文献说的都不同,因此只好大刀阔斧地按实际情况进行了修改。


各位阅读前,先说明以下总体上我们要做的几件事。

  1. 安装TexLive。我们知道Latex只是一套排版的宏定义,为实现Latex,需要在各种操作系统上提供软件支持。TexLive就是实现此目的一个跨平台软件包。
  2. Latex支持的字体非常多,自然包括中文。不过,为了更好地支持中日韩(因为这些是方块型的字符集,与字母类型的文字不同),需要安装CJK扩展包。
  3. 为了使用额外的中文字体,需要配置Latex以便使用它们。
  4. 使用测试文档,确认安装的字体不是已经生效了。

====================================================================================

一、安装TexLive+Latex+CJK:

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

sudo apt-get installtexlive texlive-math-extra texlive-latex-basetexlive-latex-extra texlive-latex-recommendedtexlive-pictures texlive-science latex-beamertexlive-common texlive-bibtex-extra 

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

sudo apt-get install texlive-full latex-beamer (注:在我电脑上,硬盘空间比较充裕,我直接选择全部安装。

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

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

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

Linux下的中文字体,对于Ubuntu来说有现成的。因此,只要第一步正常安装完毕,就可以用下面的测试文件进行测试。

\documentclass{article}\usepackage{CJKutf8}\begin{document}\begin{CJK}{UTF8}{gkai}这是一个楷体中文测试,处理简体字。\end{CJK}\begin{CJK}{UTF8}{gbsn}这是一个宋体中文测试,处理简体字。\end{CJK}\begin{CJK}{UTF8}{bkai}這是一個big5編碼的楷體中文測試,處理繁體文字。\end{CJK}\begin{CJK}{UTF8}{bsmi}這是一個个big5編碼的明體中文測試,處理繁體文字。\end{CJK}\end{document}
将这部分代码粘贴到文本文件中,然后保存将其保存为test.tex。然后使用下面的命令生成PDF文档。
pdflatex test.texevince test.pdf
如果编译tex文档时没有出错,对于宋体和楷体,应该看到希望的字体正确显示(参考下图的示例)。


二、准备其他中文字体包

不过,为了得到更好地支持,常常会使用Windows既有的TrueType字体或者文泉驿字体,以便扩充现有的系统字体库。对于Linux,安装fontforge可以方便地生成能被Latex识别的字体文件(map、enc等文件)。
sudo apt-get install fontforge
因为Windows的字体涉及版权问题,而且我个人觉得文泉字体更美观,所以我选择文泉字体生成字体地图。

(注:原文推荐下载font.tar.bz2,但是此压缩包很难下载,加上如果使用文泉字体该包可以不需要,因此不必纠结)。

步骤1:将包括wqy-microhei.ttc等相关文件都复制到~/cnfont里去,执行下面的命令生成字体地图:

$mkdir ./cnfont$cd ~/cnfont$cp /usr/share/texlive/texmf-dist/fonts/sfd/ttf2pk/Unicode.sfd ./$cp /usr/share/fonts/truetype/wqy/wqy-microhei.ttc ./$cp /usr/share/latex-cjk-common/utils/subfonts/subfonts.pe ./$cp /usr/share/latex-cjk-common/utils/subfonts/vertical.pe ./$cp /usr/share/latex-cjk-common/utils/subfonts/makefdx.pl ./$ time fontforge -script subfonts.pe wqy-micorhei.ttc hei Unicode.sfd

注:原文中步骤如下,遗漏拷贝重要文件的步骤,此处已修正。按上述命令操作,在Ubuntu 14.10上已通过验证。
cd ~/fonttime fontforge -script subfonts.pe simsun.ttc song Unicode.sfd
在我的电脑上,生成文泉驿的字体地图花了2-3分钟。

步骤2:接下来,
在~/cnfont下,建立一个makemap.sh文件,内容如下( 没有空格):
for i in *.tfmdocat >> song.map << EOF${i%.tfm} ${i%.tfm} < ${i%.tfm}.pfbEOFdone

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

./makemap.sh
编写此配置文件的时候可能会需要查询CJK扩展包的版本,可以参考附注中的步骤操作。

步骤3:将步骤1、2中生成的各种字体配置文件拷贝到系统的指定目录。(相关操作的详细含义可参考 “Ubuntu 11.10下CJK宏包的中文字体安装“


$sudo mkdir -p /usr/share/texmf/fonts/type1/latex-cjk-cn/hei$sudo cp *pfb /usr/share/texmf/fonts/type1/latex-cjk-cn/hei$sudo mkdir -p /usr/share/texmf/fonts/afm/arphic/hei$sudo cp *afm /usr/share/texmf/fonts/afm/arphic/hei/$mkdir -p /usr/share/texmf/fonts/tfm/latex-cjk-cn/hei$sudo cp *tfm /usr/share/texmf/fonts/tfm/latex-cjk-cn/hei/$sudo mkdir -p /usr/share/texmf/fonts/enc/dvips/latex-cjk-cn/hei$sudo cp *enc /usr/share/texmf/fonts/enc/dvips/latex-cjk-cn/hei/$sudo mkdir -p /usr/share/texmf/fonts/map/dvips/latex-cjk-cn$sudo cp hei.map /usr/share/texmf/fonts/map/dvips/latex-cjk-cn


再建立一个文本文件,命名为“c70hei.fd”文件:
% This is the file c70hei.fd of the CJK package% for using Asian logographs (Chinese/Japanese/Korean)% with LaTex2e% % created by the Debian source package for% CJK Version 4.8.3 (30-1-2015)\def\fileversion{4.8.3}\def\filedate{2012/09/14}\ProvidesFile{c70hei.fd}[\filedate\space\fileversion]% character set: UTF-8% font encoding: Unicode\DeclareFontFamily{C70}{hei}{\hyphenchar\font\m@ne} \DeclareFontShape{C70}{hei}{m}{n}{<-> CJK * hei}{\CJKnormal}\DeclareFontShape{C70}{hei}{bx}{n}{<-> CJKb * hei}{\CJKbold}\endinput

将编辑完毕的c70hei.fd文件拷贝到配置目录。
$sudo cp c70hei.fd /usr/share/texmf/tex/latex/CJK/UTF8/

步骤5:
复制完后,执行字体地图更新命令刷新缓存,让配置生效:
sudo texhashupdmap-sys --enable Map hei.map

假如一切顺序的话, 就测试一下我们安装的文泉驿米黑体能否使用。

可以在$HOME目录下编辑如下文本文件,然后保存为"test.tex",支持UTF-8格式:

\begin{CJK}{UTF8}{gbsn}这是一个宋体中文测试,处理简体字。\end{CJK}\documentclass{article}\usepackage{CJKutf8}\begin{document}\begin{CJK}{UTF8}{gkai}这是一个楷体中文测试,处理简体字。\end{CJK}\begin{CJK}{UTF8}{hei}这是一个黑体中文测试,处理简体字。\end{CJK}\begin{CJK}{UTF8}{bkai}這是一個big5編碼的楷體中文測試,處理繁體文字。\end{CJK}\begin{CJK}{UTF8}{bsmi}這是一個个big5編碼的明體中文測試,處理繁體文字。\end{CJK}\end{document}

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

pdflatex test.texevince test.pdf


一切顺利的话,在PDF中应该看到类似下图的效果。


补充说明:

1)如何确认CJK安装包的版本。

sudo apt-get install apt-show-versions mastervind@Zeon:~/cnfont$ apt-show-versions | grep -i cjklatex-cjk-all:all/utopic 4.8.3+git20120914-2ubuntu1 uptodatelatex-cjk-chinese:amd64/utopic 4.8.3+git20120914-2ubuntu1 uptodatelatex-cjk-chinese-arphic-bkai00mp:all/utopic 1.23 uptodatelatex-cjk-chinese-arphic-bsmi00lp:all/utopic 1.23 uptodatelatex-cjk-chinese-arphic-gbsn00lp:all/utopic 1.23 uptodatelatex-cjk-chinese-arphic-gkai00mp:all/utopic 1.23 uptodatelatex-cjk-common:amd64/utopic 4.8.3+git20120914-2ubuntu1 uptodatelatex-cjk-japanese:amd64/utopic 4.8.3+git20120914-2ubuntu1 uptodatelatex-cjk-japanese-wadalab:all/utopic 0.20050817-16 uptodatelatex-cjk-korean:all/utopic 4.8.3+git20120914-2ubuntu1 uptodatelatex-cjk-thai:all/utopic 4.8.3+git20120914-2ubuntu1 uptodatetexlive-lang-cjk:all/utopic 2014.20140717-1 uptodate
0 0
原创粉丝点击