关闭

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

标签: Latex安装中文配置
7467人阅读 评论(0) 收藏 举报
分类:
说明:以下描述参考“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 install
texlive texlive-math-extra texlive-latex-base
texlive-latex-extra texlive-latex-recommended
texlive-pictures texlive-science latex-beamer
texlive-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.tex
		evince 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 *.tfm
do
cat >> song.map << EOF
${i%.tfm} ${i%.tfm} < ${i%.tfm}.pfb
EOF
done

然后在终端下执行: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 texhash
updmap-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.tex
evince test.pdf


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


补充说明:

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

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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:50933次
    • 积分:714
    • 等级:
    • 排名:千里之外
    • 原创:19篇
    • 转载:13篇
    • 译文:0篇
    • 评论:9条
    最新评论