emacs 探索之六:latex中文支持
- 环境
系统:Ubuntu Desktop 12.04 x86_64 和 Ubuntu Server 12.10 x86_64
Latex:texlive 2012 (texlive 2013同样可以成功配置)
编辑器:GNU Emacs 23.3.1+Auctex (Emacs 24会有问题)
- 缘起
最初安装的Ubuntu Desktop 12.04系统是英文版的,手动添加了中文字体在 /usr/share/fonts目录下面。最近由于写文章需要,由于以前用过一段时间windows+office, 再转过来使用linux下面的office软件,大部分都感觉不是很舒服,可能因为没有花时间找吧。目前对于word文档之类的都暂时使用永中Office,主要都是修改word文档或者与别人交 流的时候只能使用word文档的情况才会用到。因此,就慢慢寻找linux下面的文本编辑器。 在试用的过程中逐渐把目标定在了Emacs+Latex+Autex这个组合上面了。因为之前写的英文 文章,latex的中文支持就一直都没有放在心上,也没有尝试去解决。但现在需要写毕设论文了,因为已经喜欢上了latex编辑器,当然就想着试试。但最初的中文尝试并不顺利,试过大部分自己在网上找到的中文解决方法在我这里都不适用。最初问题是编译包含中文字符的源文件都会报错;经过一番修改调整之后,问题演变为,编译中英文混排的源文件没有问 题,但生成的pdf文件就是不显示中文,该出现中文字符的位置上都是空格代替。在后一个问题上面纠结了两三天都没有解决。就果断卸载重装。
- 新环境安装过程
- texlive2012
- 下载
从google中找到下面的链接地址 http://www.tug.org/texlive/acquire-iso.html,直接下载到目录(假设为/home/username/Downloads)
- 挂载
下载到你的目录中之后,对于iso文件,linux可以直接挂载mount -t iso9660 -o ro,loop,noauto /home/username/Downloads/texlive2012.iso /mnt/disk
- 安装
安装过程有两个途径:文本(text)和图形界面(gui), 我选择的是图形界面下安装;- 安装perl-tk(图形界面的安装需要用到):
sudo apt-get install perl-tk
-
安装texlive2012:
/mnt/disk/install-tl -–gui
在出现的安装界面中,第二步需要选择语言支持,默认是全选的,但有些基本上用不上,我 选的是CJK(中日韩文)和英文;其他的就默认安装即可;
- 安装perl-tk(图形界面的安装需要用到):
- 环境变量
安装结束之后,在shell窗口中会有些提示很重要(以后加上截图)。意思是,这样安装结 束之后,直接输入latex或者xelatex,系统会提示没有此命令,主要是因为环境变量PATH中 没有此命令安装的路径;需要将latex命令的路径 “/usr/local/texlive/2012/bin/x86_64‐linux:”添加到PATH变量中;注意:添加环境变量可选择的配置文件有三个以上,他们是有区别的;
-
1)在/home/username/.bashrc或者/home/username/.profile中添加
export PATH=/usr/local/texlive/2012/bin/x86_64‐linux:$PATH;
-
2)在/etc/profile 中添加
export PATH=/usr/local/texlive/2012/bin/x86_64‐linux:$PATH;
- 或者直接在/etc/environment中修改PATH变量,结尾处双引号之前加
:/usr/local/texlive/2012/bin/x86_64-linux
这种添加方式等于修改原系统默认的PATH。
- 或者直接在/etc/environment中修改PATH变量,结尾处双引号之前加
-
第一种情况下,用户每开启一个shell窗口,都会自动执行配置文件中的命令,因此,能够 在shell中输入latex或者xelatex就显示相应命令提示;但如果想在emacs中使用,还是会出 错的,因为PATH变量只有在启动shell时才会执行。emacs调用时并不会执行,也就是emacs 调用latex时,仍然找不到latex的路径;这时就需要第二种方法; 第二种情况是在系统启动的过程中,执行一次之后,在整个系统活动过程中,都是有效的。 这是不需要第一种情况的修改,用户启动shell窗口调用latex和emacs中C-c C-c自动调用 latex都能够找到latex命令的路径。
二者区别就如同用户级环境变量和系统级环境变量,而emacs自动调用时用到的是后者。
添加完latex执行命令的路径之后,还需要添加其他两个,主要是在帮助文档显示的过程中 用到,例如,man latex 同样加入/etc/profile文件最后
MANPATH=/usr/local/texlive/2012/texmf/doc/man:$MANPATH; export MANPATH
INFOPATH=/usr/local/texlive/2012/texmf/doc/<info:$INFOPATH>; export INFOPATH接着,在帮助文档/etc/manpath.config加入
MANPATH_MAP /usr/local/texlive/2012/bin/x86_64-linux /usr/local/texlive/2012/texmf/doc/man
-
- 下载
-
- 中文配置过程
- 下载字体
使用windows下的某些字体和Adobe字体。windows字体直接从C:\Windows\Fonts∼*拷贝即 可,adobe字体需要下载,直接google就能够找到,adobe字体是*.otf文件。 接下来创建Windows字体目录winfonts和Adobe字体目录adobefonts:sudo mkdir /usr/share/fonts/winfonts
sudo mkdir /usr/share/fonts/adobefonts -
拷贝字体
- 下载字体
- 中文配置过程
我的adobefonts文件夹下的字体有
$ ls /usr/share/fonts/adobefonts/ AdobeFangsongStd-Regular (v5.010).otf AdobeHeitiStd-Regular.otf AdobeKaitiStd-Regular (v5.010).otf AdobeSongStd-Light.otf
winfonts文件夹下的字体有
ls /usr/share/fonts/winfonts/ century_schoolbook_l_bold_italic.ttf segoesc.ttf serife.fon simpfxo.ttf STFANGSO.TTF STXINGKA.TTF sylfaen.ttf century_schoolbook_l_italic.ttf segoeuib.ttf simfang_0.ttf simpo.ttf STHUPO.TTF STxinwei.ttf symbol.ttf msyhbd.ttf segoeuii.ttf simfang.ttf simsunb.ttf stkaiti.ttf STzhongsong.ttf msyh.ttf segoeuil.ttf simhei.ttf simsun.ttc STLITI.TTF STZHONGS.TTF segoeprb.ttf segoeui.ttf simkai_0.ttf sserife.fon STSONG.TTF SURsong.ttf segoepr.ttf segoeuiz.ttf simkai.ttf STcaiyun.ttf STxihei.ttf svgafix.fon segoescb.ttf seguisb.ttf simpbdo.ttf STfangsong.ttf STxingkai.ttf svgasys.fon
将windows字体和adobe字体拷贝到相应的目录之后,修改文件夹下文件的权限为可读可写。
-
-
-
sudo chmod 644 /usr/share/fonts/winfonts/* sudo chmod 644 /usr/share/fonts/adobefonts/*
-
-
- texlive2012
-
-
-
-
更新字体库
sudo mkfontscale sudo mkfontdir sudo fc-cache -fsv
- 查看
- 系统支持的字体:
-
fc-list | sort
-
查看系统支持的中文字体:
fc-list :lang=zh | sort
-
-
- texlive中文配置
如果使用xeLATEX的话,需要xeCJK宏包的支持,需要修改 /usr/local/texlive/2012/texmf-dist/tex/latex/ctex/fontset 的 ctex-xecjk-winfonts.def。修改原来的文件如下% ctex-xecjk-winfonts.def: Windows 的 xeCJK 字体设置,默认为六种中易字体 % vim:ft=tex \setCJKmainfont[BoldFont={SimHei},ItalicFont={KaiTi}]{SimSun} \setCJKsansfont{SimHei} \setCJKmonofont{FangSong} \setCJKfamilyfont{zhsong}{SimSun} \setCJKfamilyfont{zhhei}{SimHei} \setCJKfamilyfont{zhkai}{KaiTi} \setCJKfamilyfont{zhfs}{FangSong} % \setCJKfamilyfont{zhli}{LiSu} % \setCJKfamilyfont{zhyou}{YouYuan} \newcommand*{\songti}{\CJKfamily{zhsong}} % 宋体 \newcommand*{\heiti}{\CJKfamily{zhhei}} % 黑体 \newcommand*{\kaishu}{\CJKfamily{zhkai}} % 楷书 \newcommand*{\fangsong}{\CJKfamily{zhfs}} % 仿宋 % \newcommand*{\lishu}{\CJKfamily{zhli}} % 隶书 % \newcommand*{\youyuan}{\CJKfamily{zhyou}} % 幼圆 \endinput
-
-
- auctex
直接google上面找到的源码,放到emacs配置目录/home/username/.emacs.d中,并在emacs 配文件/home/username/.emacs中添加了一段配置脚本,配置脚本中的preview-latex.el可能auctex中没有,直接用这个文件名称google之,很容易找到。找到之后将这个文件放在auctex解压缩之后的目录中,和auctex.el在一起即可。;;--------------------latex--------------------------------------------- (add-to-list 'load-path "~/.emacs.d/auctex-11.86") (load "auctex.el" nil t t) (load "preview-latex.el" nil t t) (if (string-equal system-type "windows-nt") (require 'tex-mik)) (mapc (lambda (mode) (add-hook 'LaTeX-mode-hook mode)) (list 'auto-fill-mode 'LaTeX-math-mode 'turn-on-reftex 'linum-mode 'turn-on-auto-fill )) (add-hook 'LaTeX-mode-hook (lambda () (setq TeX-auto-untabify t ; remove all tabs before saving TeX-engine 'xetex ; use xelatex default TeX-show-compilation t ;; display compilation windows turn-on-auto-fill t ) (TeX-global-PDF-mode t) ; PDF mode enable, not plain (setq TeX-save-query nil) (imenu-add-menubar-index) (define-key LaTeX-mode-map (kbd "TAB") 'TeX-complete-symbol))) ;(global-set-key (kbd "M-q") 'auto-fill-mode) (global-set-key (kbd "C-c j") 'auto-fill-mode) ;回车时自动缩进 (setq TeX-newline-function 'newline-and-indent) (setq TeX-view-program-list '(("acroread" "acroread %s.pdf"))) (setq TeX-view-program-selection '((output-pdf "acroread"))) ;;-------------------------------------------------------------------------
- auctex
- 旧环境安装过程
- texlive2009
最初安装的latex是从ubuntu源中自带的,直接通过下面的命令完成的:#打开终端,执行下述命令安装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以获取完整支持。 if [ -d ~/texmf ] then echo '~/texmf already exists' else : mkdir ~/texmf && cd ~/texmf gbkfonts /usr/share/fonts/zhCN/TrueType/simsun.ttc song gbkfonts /usr/share/fonts/zhCN/TrueType/simfang.ttf fang gbkfonts /usr/share/fonts/zhCN/TrueType/simkai.ttf kai gbkfonts /usr/share/fonts/zhCN/TrueType/simhei.ttf hei
- auctex
同上面的安装方法一致。
- texlive2009
- 测试模板
%模板一
\documentclass[UTF8]{ctexart} \begin{document} 这是我的第一个\TeX{}文件 \end{document}%模板二
%显示调用xeCJK显示中文 \documentclass[12pt,a4paper]{article} \usepackage{fontspec} \usepackage{xeCJK} \setmainfont{Times New Roman}%缺省英文字体 Times New Roman \setCJKmainfont{宋体}%衬线字体 缺省中文字体为 \setCJKsansfont{黑体}%serif是有衬线字体sans serif无衬线字体。 \begin{document} 我的\Tex{}文档 \end{document} - 参考文献
http://www.cnblogs.com/chaolong/archive/2012/11/24/2785576.html