在写一个for newbie的linux下texlive 2008安装配置说明

44 views
Skip to first unread message

yyz@tongji

unread,
Sep 7, 2009, 1:23:11 AM9/7/09
to 同济大学Linux用户组--TongjiLUG
计划是写一个菜鸟级别的linux新手也可以看懂并照着操作的texlive 2008安装和配置指南,重点在照顾像我这样的入门级选手的水平,以方便
大家在同济推广texlive的论文模板,大家意下如何?

你们写texlive模板,我水平有限帮不上太多忙,希望能在基础的前提准备工作方面多少尽一份力量吧....

考虑到水平有限,这操作方法也不知道是否合适,我一点一点贴出来,大家帮着挑一挑bug,等基本上没问题了再发布出去,如何?

这是前言部分:

;;Time-stamp: <2009-09-07 Mon 13:22:35 K.T>
在ubuntu/debian下安装并配置latex环境

yyz@tongji
Email & Gtalk:caoanroad4800 (at) gmail.com


<h1>0-序言<h1>

本说明中的简略特色介绍:
GNU Debian/Ubuntu 9.04 with en_US.utf-8 locale
texlive 2008
zhspacing & xecjk
emacs-snapshot with auctex reftex gnuserv etc.
jabref


得忙活毕业论文了,要写一个十多万字的大家伙,多少是个很浩大的工程。欲善其事必先利其器,office无论如何都很不靠谱,想到office需要作那
么多字体格式的调整工作,尤其是数学公式上的麻烦程度,就觉得头皮一阵发麻。打算用<a target="_blank" href="http://
en.wikipedia.org/wiki/TeX">Tex</a>来写。摸索了一阵子后,基本上算是有了着落。以下简单介绍一下安装和配置的过
程。

大致的描述一下:

硬件:Thinkpad T400。<a target="_blank" href="http://www.google.com/url?
sa=t&source=web&ct=res&cd=1&url=http%3A%2F%2Fwww.thinkwiki.org%2Fwiki
%2FInstall_Ubuntu_8.10_(Intrepid_Ibex)
_on_a_ThinkPad_T400&ei=goakSsa4BY-
QkQWepqDqDw&usg=AFQjCNHeRI95Uj1TGcyWgNyy4hy2FE8mCA&sig2=rvtMActJFcb3Ax-
gyT09Yw">这里</a>有一个关于在t400上安装ubuntu的简单介绍。
操作系统:<a target="_blank" href="http://www.ubuntu.com">ubuntu</a> 9.04,随后
我会测试一下是否同样的安装过程可以在debian下顺利通过。不过就我的感觉来看,应该问题不大。
Tex系统: <a target="_blank" href="http://www.tug.org/texlive/">Texlive
2008</a>,其中TeX的中文环境部分采用的是<a target="_blank" href="http://
code.google.com/p/ctex-kit/">zhspacing和xecjk</a>。
文本编辑器:必然是大神<a target="_blank" href="http://www.google.com/url?
sa=t&source=web&ct=res&cd=1&url=http%3A%2F%2Fwww.gnu.org%2Fsoftware
%2Femacs%2F&ei=MIikSounAs2BkQXWwvGBBA&usg=AFQjCNF-
UrvnmwwWhDrd24WiOD_D6YC64w&sig2=2pOXewt41kiKS1Fb_2PdGw">Emacs</a>。这里采用的
是GNU Emacs 23.0.91.1,在GNU Debian/Ubuntu下对应的名称叫做emacs-snapshot。大概需要用到的
emacs包有<a target="_blank" href="http://www.google.com/url?
sa=t&source=web&ct=res&cd=1&url=http%3A%2F%2Fwww.gnu.org%2Fsoftware
%2Fauctex
%2F&ei=b4ikSv3XH8GTkAWu6tCBBA&usg=AFQjCNHtMmRmrFwU3G6tZTEexgQFN0Mu6Q&sig2=LNAhub5PRAGMXkB4WtrGIw">auctex</
a>和<a target="_blank" href="http://www.google.com/url?
sa=t&source=web&ct=res&cd=1&url=http%3A%2F%2Fwww.gnu.org%2Fsoftware
%2Fauctex
%2Freftex.html&ei=rIikSoG_EIrk6gOI_OD3Cw&usg=AFQjCNFQjJOplRI6rAD3Gjp2L6m9Pr728g&sig2=af_sZHynGEVNwqYJzbri-
w">reftex</a>。
文献管理软件:<a target="_blank" href="http://www.google.com/url?
sa=t&source=web&ct=res&cd=1&url=http%3A%2F%2Fjabref.sourceforge.net
%2F&ei=cJakStX7MM2AkQW2-djPDw&usg=AFQjCNGUJ7u98NypIvJ8qhnSTHFks6B-
Jg&sig2=dM6Pbu0w98Tx4DdA8a2gOA">jabref</a>

注:下文中操作命令前面带#符号的,表示需要以root方式运行,或者以普通用户的$ sudo的方式运行。

yyz@tongji

unread,
Sep 7, 2009, 1:29:21 AM9/7/09
to 同济大学Linux用户组--TongjiLUG
OOOOPS。用html的代码写的.....发出来就是乱码了.....

yyz@tongji

unread,
Sep 7, 2009, 1:46:07 AM9/7/09
to 同济大学Linux用户组--TongjiLUG
<h1>1.系统的基本配置</h1>
<h2>1.1 en.us_utf8 格式的ubuntu系统,以及中文支持</h2>
ubuntu的安装不多说了,大家尽可能google一下吧。这里需要指出的是,我是在en_us.utf8的locale下安装并配置TeX的。
utf8格式的tex对中文支持现在比较方便,en的locale是个人习惯。
首先确定/etc/apt/sources.list中的源地址正确与否:
<quote># vim /etc/apt/sources.list</quote>
以下debian.ustc.edu.cn的中国科大源可以用ftp.sjtu.edu.cn的上海交大源来代替,或者用其他你需要的部分。但是按我的
使用经验来看,貌似ustc.edu.cn的要比交大的源更丰富一些。比如,sjtu好象是没有vlc的。
<quote>
deb http://debian.ustc.edu.cn/ubuntu/ jaunty main multiverse
restricted universe
deb http://debian.ustc.edu.cn/ubuntu/ jaunty-backports main multiverse
restricted universe
deb http://debian.ustc.edu.cn/ubuntu/ jaunty-proposed main multiverse
restricted universe
deb http://debian.ustc.edu.cn/ubuntu/ jaunty-security main multiverse
restricted universe
deb http://debian.ustc.edu.cn/ubuntu/ jaunty-updates main multiverse
restricted universe
deb-src http://debian.ustc.edu.cn/ubuntu/ jaunty main multiverse
restricted universe
deb-src http://debian.ustc.edu.cn/ubuntu/ jaunty-backports main
multiverse restricted universe
deb-src http://debian.ustc.edu.cn/ubuntu/ jaunty-proposed main
multiverse restricted universe
deb-src http://debian.ustc.edu.cn/ubuntu/ jaunty-security main
multiverse restricted universe
deb-src http://debian.ustc.edu.cn/ubuntu/ jaunty-updates main
multiverse restricted universe
</quote>
ubuntu下给系统添加中文支持,最方便的方法是利用图形化模式操作,在gnome下依次点击菜单中的"System --
Administration -- Language Support -- Add/Remove Languages",输入root的密码后,
在弹出的菜单中找到"Chinese"选项,勾选之,并且如果硬盘空间足够的话,顺便把下面"Components"中的几个勾也都选上吧。系统会自动
从源中下载并安装中文环境和字体。

<h2>1.2 在ubuntu系统中安装中文字体并配置</h2>
ubuntu中自带的中文字体是在/usr/share/fonts目录下,比如/usr/share/fonts/truetype下保存着一些
truetype格式的字体。但是很多时候它并不丰富,或者因为版权问题没办法加入一些simsun simhei 等相应的字体。这就需要我们进行手
动的操作了。

比如,我是分三个途径将可能需要的字体都搞了进来(没办法,笨人一个,只能尽可能多搞进来,很可能字体太多了自己不需要,但是总比系统找不到相应字体要
好...)
途径一:ubuntu源里的文泉驿系列字体,用aptitude安装:
<quote>
sudo aptitude install ttf-wqy-zenhei xfonts-wqy
</quote>

途径二:黑体字部分,个人比较倾向于stheiti、lihei Pro这两种字体,而胜过微软的雅黑。大家可以根据个人喜好,将这三种字体中想要的
(或者全部三种字体)通过google下载下来,解压缩后将*.ttf格式的字体放到/usr/share/fonts/truetype目录中。

途径三:windows系统中的字体。这个,我是图懒图省事,直接找一台windows操作系统,把C:\WINDOWS\Fonts\目录下的全部字
体都拷贝下来了,放到了/usr/share/fonts/truetype中去。其实我估计了一下,真正需要的字体也就是simsun
simhei tahoma tahomabd等少数几款。不过先不管这么多了,都拿过来再说......

全部字体都搞定之后,记得运行字体生成的程序来让它生效。
<quote># fc-cache -f -v</quote>
稍等半分钟左右,字体配置完毕。可以用fc-list命令查看字体是否安装并配置成功。
<quote> fc-list</quote>
也可以用加上管道|grep的方式查看具体字体是否有顺利安装到系统中去。
<quote> fc-list | grep SimSun</quote>
将SimSun替换成其他你想要查询的字体。

<h2>1.3 ubuntu下的locale配置</h2>
ubuntu下是用localepurge来配置系统的locale的。如果没有的话,先安装之
<quote>sudo aptitude install localepurge</quote>
再配置localepurge
<quote>sudo dpkg-reconfigure localepurge</quote>
在弹出的locale窗口中选择en_US.UTF-8 zh_CN.UTF-8 zh_CN.GB18030 zh_CN.GB2312
zh_CN.GBK
前两个utf-8格式的是必须的。后三个是备选的,有些地方会需要GB2312 GBk或者GB18030格式的中文locale环境。
一路回车。
再运行locale-gen命令生成locale。
<quote>sudo locale-gen</quote>

Emacs-snapshot会有和scim不兼容的问题出现,即在emacs中按"ctrl+空格"键,会出现无法调出scim输入法的情况。这主要
是由于没有设置LC_CTYPE变量的原因。为了避免这种现象的出现,将这段代码
<quote>export LC_CTYPE="zh_CN.utf8"</quote>
(1)加入到系统级的环境变量/etc/environment或者/etc/profile中,(2)加入到用户的环境变量中~/.bashrc或
~/.profile中。
根据自己的实际情况,在(1)和(2)选择其中之一执行即可。

<h2>1.4 重新起动X或者计算机</h2>
这部分工作都做完之后,你需要的是重新起动X,或者像我一样,干脆重新起动一下计算机。Bis bald !

yyz@tongji

unread,
Sep 7, 2009, 4:27:48 AM9/7/09
to 同济大学Linux用户组--TongjiLUG
<h1>2. texlive 2008的安装和配置说明</h1>
<h2>2.1 why texlive 2008 other than 2007?</h2>
debian/ubuntu源里都是自带有texlive 2007的,用aptitude install texlive-base即可安装。那
么,为什么又要费力去下载几G的iso回来手动安装呢?
简单的说,这里的逻辑是:
1.texlive 2007已经很好了,在我的机器上以前安装的就是2007,利用编译好的cjk字体,可以正确处理cjk格式的tex文档并作出显
示。
2.但是tex最初是用于英文环境的文档处理的,在中文显示方面存在着很大的缺陷和不足,即使cjk方面在一定程度上弥补了它,但在很多地方还是很难以
忍受的,比如最突出的一点,中英文混排的时候,显示效果很糟糕:总不能在每一次中英文输入切换的地方手动加上一个空格吧...
3.此外,cjk方式的字体编译也是一个很麻烦很麻烦的事情,在我以前的thinkpad T43上,为了将simsun字体编译为tex能用的字体,
花时间大概在2个小时。想想看还需要几个其他的字体吧...
3.zhspacing和xecjk等项目的出现就是为了解决中英文混排等让人很头痛的问题的,以及,zhspacing和xecjk等等可以比较方便
的支持utf8格式,从而让tex中的中文字体配置和操作变得尽可能的简单。
4.但是问题是,诸如xecjk等tex包需要的tex核心组件,比如xetex,要求版本在0.9995。不过源里texlive 2007附带的
xetex版本低于它,这就带来非常严重的问题。想要用xecjk,就必须用0.9995的xetex,而源里texlive 2007提供的
xetex版本不能满足要求。
5.中文字体的问题!!!!
etc.
恩,口干舌燥了半天,不知道您听明白了没有。没听明白没关系,反正我这个配置说明是按照texlive 2008来的,您还是先从了我吧~~~

<h2>2.2 删除掉旧版的texlive 2007</h2>

如果您此前没有安装过texlive,请略过此步骤,直接进入2.3。如果您已经安装了旧版的texlive,请在aptitude包管理器中删除之。
斩草除根的办法是:
<quote>gksu synaptic</quote>
在"搜索"中输入"texlive",相应的删除掉吧。

<h2>2.3 texlive 2008的下载,挂载和安装</h2>
texlive 2008是一个dvd包,容量比较大,解压缩后大概占2.4G,可以在<a target="_blank"
href="http://www.tug.org/texlive/acquire.html">Tex User Group</a>下载到。不过
考虑到我们脆弱的流量和网速限制,还是找国内的镜像吧。
<a target="_blank" href="http://www.ctex.org/HomePage">CTEX</a>作了<a
target="_blank" href="http://www.ctan.org/">CTAN</a>的国内镜像,速度很快且稳定(我这里在华
东电信的教育网,速度大概可以稳定在1m/s),功德无量,请在下载前先默默感谢CTEX相关人等的八辈祖宗一百遍阿一百遍。
地址在:<a target="_blank" href="ftp://ftp.ctex.org/mirrors/CTAN/systems/
texlive/Images/texlive2008.iso.lzma">ftp://ftp.ctex.org/mirrors/CTAN/
systems/texlive/Images/texlive2008.iso.lzma</a> 是个.lzma格式的压缩包,大概在1.3G左
右,用你们各自最喜欢的下载工具拖下来吧。
解压缩完成后,假设该压缩包保存在~/Desktop/目录下。下一步的工作是将lzma的包解压缩。这需要安装额外的软件lzma。
<quote>sudo aptitude install lzma
lzma -d texlive2008.iso.lzma
</quote>
解压缩完毕后,~/Desktop/目录下会新生成一个叫做texlive2008.iso的文件,就是它了。
将它挂载到硬盘中,比如/media/cdrom0目录。
<quote>
sudo mkdir /media/cdrom0
</quote>
如果/media/cdrom0不存在,创建之
<quote>sudo mount -o loop ~/Desktop/texlive2008.iso /media/cdrom0
cd /media/cdrom0
ls
</quote>
目录中的install-tl程序就是用来安装texlive 2008的。

既然有X,为什么不选择图形化的安装界面呢。
只是为了以图形化的方式安装texlive 2008,需要提前先安装两个软件到ubuntu中去。
<quote>sudo aptitude install perl-tk p7zip </quote>
好了,开始吧。用--gui参數启动图形化安装界面。
<quote> sudo ./install-tl --gui</quote>

-安装的时候,建议您都选择默认的安装目录,这样方便日后的管理和操作。
-可以在"Future Customization"的"Language Selection"中去掉你不需要的语言包,以适当节省空间。
-最后一项"System Integeration"的"Create Symlinks in System directories"是用来创建
系统连接符号的,你可以在日后手动创建它,也可以在这里顺手点成Yes,让系统自动创建一下。

耐心等待安装完毕吧。

<h2>2.4 texlive 2008的升级。tlmgr的基本操作。</h2>
和GNU Debian/Ubuntu的操作系统类似,texlive利用tlmgr程序来作为texlive的包管理器,其基本操作和apt-
get/aptitude有细微差别,但是基本逻辑是一样的。简单来说,可以用以下方式测试一下:
<quote>sudo tlmgr --gui</quote>
这个命令打开tlmgr的包管理系统图形界面,操作方式也很简单,大家慢慢摸索吧。
这里介绍三个最基本的操作。
一是更改tlmgr的源地址。理论上来说,可以在tlmgr --gui中手动输入源地址,以取得最快的更新速度,但是我始终都没有在图形化界面中成功
过。但是在字符模式下,这点很容易做到。
<quote>sudo tlmgr option location ftp://ftp.ctex.org/CTAN/systems/texlive/tlnet/2008</quote>
回车,系统会自动按照输入的地址配置源。
二是升级texlive 2008。配置好源地址后,我们需要将通过iso安装的texlive 2008升级到最新版,这点很重要,比如后面将要安装
的xecjk包就需要最新版的xetex,只用iso附带的旧版xetex是不行的。
<quote>
sudo tlmgr update -list
</quote>
与上文的ctex的ctan服务器镜像取得连接,刷新列表
<quote>
sudo tlmgr update -all
</quote>
升级texlive 2008。耐心等带一会吧,趁着有时间,该喝口水的喝口水,该上wc的上wc,该打电话问候gf的赶快去问候,该感谢
ctex.org八辈祖宗的默默在心里感谢就行了。
三是安装需要的sty包。也是用tlmgr实现的。比如在你运行一个.tex文档的时候,系统提示无法找到utopia,一个Adobe的字体,就用这
样的方法安装它:
<quote>
sudo tlmgr search --global utopia
sudo tlmgr install algorithmicx algorithms
</quote>
更多关于tlmgr的操作方式,不熟悉的地方可以阅读帮助文档:
<quote>sudo tlmgr --help</quote>

最后,运行以下命令让texlive 2008生效
<quote>
sudo mktexlsr
</quote>

加入PATH变量,并利用texhash命令使其生效。和上文的情况类似,也可以加入到系统级的变量/etc/environment或者用户级变量
~/.bashrc中
在"PATH="一行中,加入/usr/local/texlive/2008/bin/i386-linux。注意不同变量path之间用英文的:隔

<quote>PATH=/usr/local/texlive/2008/bin/i386-linux:</quote>
保存,重新起动一下吧。

> deb-srchttp://debian.ustc.edu.cn/ubuntu/jaunty-updates main

yyz@tongji

unread,
Sep 7, 2009, 5:19:19 AM9/7/09
to 同济大学Linux用户组--TongjiLUG
<h1>3. texlive 2008的tex文档测试以及中文配置</h1>
<h2>3.1 测试texlive 2008的英文文档</h2>
如果一切正常的话,现在的texlive 2008已经可以为您正确的处理tex文档了。可以作下面个测试来确认一下。
第一个测试是一个英文的tex。这个可以完美支持。
将以下字段保存为test_eng.tex (请确认,保存该.tex文件的目录是你有操作权限的地方,比如~/Desktop/ )
<quote>
\documentclass{article}
\begin{document}
Hello World

The first \LaTeX{} document.

Congratulations !
\end{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End:
</quote>

保存退出后,分两步来生成.pdf文档:
<quote>$xelatex test_eng.tex</quote>
<quote>$evince test_eng.pdf</quote>
utf-8编码下可以用xelatex来编译.tex文档了,很方便。
evince是我习惯使用的pdf查看器。您也可以换成自己喜欢的程序,比如xpdf gs acroread等等。
查看一下,看看效果是不是理想?

<h2>3.2 利用zhspacing和xecjk来实现中文tex文档的处理</h2>
严格来说,texlive 2008自己就能够进行中文tex文档的处理。但是中英文混排的显示效果实在让我很抓狂。所以我们还是要再走一步,利用
zhspacing和xecjk这两个包,实现以xelatex编译并制作utf-8格式的tex文档。详细的操作步骤如下:
首先是下载zhspacing和xecjk。现在这两个包被整合进入叫做<a target="_blank" href="http://
code.google.com/p/ctex-kit/">ctex-kit</a>的项目中去了,可以通过svn很方便的下载下来:
如果没有安装svn,首先安装之
<quote>sudo aptitude install svn</quote>
按照ctex-kit提供的手册说明,首先下载它到本地硬盘。这里还是假设下载到~/Desktop
<quote>svn checkout http://ctex-kit.googlecode.com/svn/trunk/ ctex-kit-
read-only </quote>
下载完毕后,在~/Desktop目录下会生成一个新的名叫ctex-kit-read-only的目录。
这里我们需要的是/ctex-kit-read-only/xecjk/和/ctex-kit-read-only/zhspacing目录下的内
容。
将其复制粘贴到你的texmf-var目录下,其位置在~/.texlive2008/texmf-var/tex/xelatex(如果没有该目录,
请相应创建之)
<quote>
cp -R ~/Desktop/ctex-kit-read-only/xecjk/ ~/.texlive2008/texmf-var/tex/
xelatex/
cp -R ~/Desktop/ctex-kit-read-only/zhspacing/ ~/.texlive2008/texmf-var/
tex/xelatex/
</quote>
或者将这两个包复制粘贴到用户级别的texlive texmf-local目录中,其位置在/usr/local/texlive/texmf-
local/tex/xelatex/(同样,如果没有该目录,创建之)
<quote>
cp -R ~/Desktop/ctex-kit-read-only/xecjk/ /usr/local/texlive/texmf-
local/tex/xelatex/
cp -R ~/Desktop/ctex-kit-read-only/zhspacing/ /usr/local/texlive/texmf-
local/tex/xelatex/
</quote>
ps-1.大家可以自行进入xecjk和zhspacing的文件夹中查阅文档,按照提示操作,慢慢熟悉即可。
ps-2.google code上ctex-kit项目里"Downloads"中的xecjk-2_2_15.zip 已经陈旧了,相应
的"Wiki"中的介绍说明里的内容不再适用于svn方式获得来的更新的xecjk,请按照svn得到的xecjk文件包里doc中的文档进行操作。我
当时就卡在这里痛苦了好长时间,sigh。

然后,还是用mktexlsr和texhash命令让texlive系统读取最新的xecjk以及zhspacing包:
<quote>
sudo mktexlsr
sudo texhash
</quote>

<h2>3.3 测试xecjk的中文tex文档</h2>
现在,基本上算是配置完成了。我们来测试一下xecjk下的中文tex文档。以我现在在写的一个小notes的部分配置为例,来简要说明:
保存以下文档为test_xecjk.tex
<quote>
\documentclass[12pt,a4paper]{article}
\usepackage{xltxtra,fontspec,xunicode}
\usepackage[slantfont,boldfont]{xeCJK} % 允许斜体和粗体
\usepackage{amsmath}

\setCJKmainfont{SimSun} % 设置缺省中文字体
\setCJKmonofont{SimSun} % 设置等宽字体
\setmainfont{Lucida Grande} % 英文衬线字体
\setmonofont{Lucida Grande} % 英文等宽字体
\setsansfont{Lucida Grande} % 英文无衬线字体

\begin{document}
Production fucntion for firm i could be written as\footnote{方
程式最早来自于Spence(1976),他以积分的形式来表示不同intermediate goods input所产生的util总和,见
Spence(1976)的公式(45)。 在Spence(1976)的基础上,Dixit and Stiglitz(1977)对该方程作以一定
修订,将积分改为求和的公式,以更恰当体现intermediate inputs的特性,见Dixit and Stiglitz(1977)的公式
(2)。
Ethier(1982) 在生产函数中利用了该求和公式,见Ethier(1982)的公式(2')。
Romer(1987,1990)首次在内生经济增长和技术进步的模型中用了Ethier(1982)的这条公式表述形式。}
\begin{equation}
Y_{i}=A\cdot L_{i}^{1-\alpha}\cdot
\sum_{j=1}^{N}(X_{ij})^\alpha \label{Eq-6.1}\end{equation}
\end{document}
</quote>
然后,运行xelatex
<quote>xelatex test_xecjk.tex</quote>
如果一切顺利的话,会在同目录下生成test_xecjk.pdf文件,用evince打开查看一下是否正确?
<quote>evince test_xecjk.pdf</quote>
要是OK的话,那么恭喜,第三部分的工作也宣告成功!

> <quote>sudo tlmgr option locationftp://ftp.ctex.org/CTAN/systems/texlive/tlnet/2008</quote>

> ...
>
> read more >>

yyz@tongji

unread,
Sep 7, 2009, 5:30:09 AM9/7/09
to 同济大学Linux用户组--TongjiLUG
3.3部分有错误。请勿测试。现在正在更正中。等更正后会将新的文档上传。谢谢。

> ...
>
> read more >>

gang xu

unread,
Sep 7, 2009, 5:40:07 AM9/7/09
to yyz@tongji, 同济大学Linux用户组--TongjiLUG
不错!顶!

http://thinfilm.ustc.edu.cn/~liangzi/software/CTeXlive/

你可以参考这个写一个教程,让大家都学习学习。

我现在也只会用 CTeXLive 来写东西, 也不知道里面到底是如何配置的,愿拜读你的攻略教程。

等待中。。。

wolf

2009/9/7 yyz@tongji <caoanr...@gmail.com>

yyz@tongji

unread,
Sep 7, 2009, 5:41:40 AM9/7/09
to 同济大学Linux用户组--TongjiLUG
这是更正过后的第三部分。前文还是把xecjk和xetex分别对应的版本要求记错了(xecjk-2_2_15适用于xetex 0.999.6版本
的texlive 2008,xecjk 2.3.7(svn得到的版本)适用于XeTeX 0.9995.0的texlive 2009)。已将此错
误纠正了。

The first \LaTeX{} document.

这里我们需要的是/ctex-kit-read-only/zhspacing目录下的内容。
将其复制粘贴到你的texmf-var目录下,其位置在~/.texlive2008/texmf-var/tex/xelatex(如果没有该目录,
请相应创建之)
<quote>
cp -R ~/Desktop/ctex-kit-read-only/zhspacing/ ~/.texlive2008/texmf-var/
tex/xelatex/
</quote>
或者将这个包复制粘贴到用户级别的texlive texmf-local目录中,其位置在/usr/local/texlive/texmf-


local/tex/xelatex/(同样,如果没有该目录,创建之)
<quote>

cp -R ~/Desktop/ctex-kit-read-only/zhspacing/ /usr/local/texlive/texmf-
local/tex/xelatex/
</quote>

此外,需要指出的是,我们通过svn方式下载的xecjk是<a target="_blank" href="http://
mail.amss.ac.cn/viewthread.php?tid=40232">2.3.7版,它只支持XeTeX 0.9995.0 以后版
本</a>.而我们现在使用的texlive 2008系统中,xetex的版本是"XeTeX 3.1415926-2.2-0.999.6
(Web2C 7.5.7)",您也可以自己在term中输入"$xetex --version"来查询证实之。换句话说,2.3.7版的xecjk
支持texlive 2009但是不支持我们这里使用的texlive 2008,google code上ctex-kit项目
的"download"栏目中的xecjk-2_2_15.zip才支持texlive 2008。我们需要下载2_2_15版本的xecjk并保存到
tex目录中去。
<quote>
cd ~/Desktop
wget http://ctex-kit.googlecode.com/files/xecjk-2_2_15.zip
unzip xecjk-2_2_15.zip
cp -R ~/Desktop/xecjk-2_2_15/ ~/.texlive2008/texmf-var/tex/xelatex/
sudo cp -R ~/Desktop/xecjk-2_2_15/ /usr/local/texlive/texmf-local/tex/
xelatex/
</quote>

ps-1.大家可以自行进入xecjk和zhspacing的文件夹中查阅文档,按照提示操作,慢慢熟悉即可。
ps-2.google code上ctex-kit项目里"Downloads"中的xecjk-2_2_15.zip ,与按照svn得到的
xecjk 2.3.7,分别适用于texlive 2008和2009,前者目前使用xetex 0.999.6,后者目前使用更新的XeTeX
0.9995.0。请根据你自己的Xetex版本选择对应的xecjk版本号。

> ...
>
> read more >>

gang xu

unread,
Sep 7, 2009, 5:44:03 AM9/7/09
to yyz@tongji, 同济大学Linux用户组--TongjiLUG
希望你能够整理一下
发到 http://lug.tongji.net 里面去,
做一个 wiki 网页来介绍,比较的工整,清晰,明了

2009/9/7 yyz@tongji <caoanr...@gmail.com>

Yanyuan Zhu

unread,
Sep 7, 2009, 5:53:36 AM9/7/09
to 同济大学Linux用户组--TongjiLUG
习惯了直接用html代码写了......等我先把内容搞出来,
发到wordpress上去,格式再慢慢调整也不迟。
这里是个小的private group,不对外公开,正好适合这种alpa版本的howto。大家先帮我挑错,等内容无误了再搞格式,格式也差不多了再正式公布出去吧。

ps. http://lug.tongji.net 其实一直都无法访问


2009/9/7 gang xu <box.wi...@gmail.com>



--
---------------
Yanyuan Zhu
Doctoral Candidate
School of Economics & Management, Tongji University
MSN messenger:CaoAnR...@hotmail.com
E-mail: CaoAnR...@gmail.com
BLOG http://yyzhu.net

ZHOU Yuan

unread,
Sep 7, 2009, 6:44:51 AM9/7/09
to Yanyuan Zhu, 同济大学Linux用户组--TongjiLUG


2009/9/7 Yanyuan Zhu <caoanr...@gmail.com>

ps. http://lug.tongji.net 其实一直都无法访问

 
准备申请lug.tongji.edu.cn,敬请期待 ;-]




--
Sincerely,

HaveF

yyz@tongji

unread,
Sep 8, 2009, 3:27:07 AM9/8/09
to 同济大学Linux用户组--TongjiLUG
<h1>4. Emacs下利用auctex撰写、编译tex文档</h1>
<h1>4.1 Why Emacs?</h1>
理论上来说,你可以使用任何一个编辑器( <a target="_blank" href="www.gnu.org/software/
emacs/emacs">emacs</a> <a target="_blank" href="http://
www.vim.org/">vim</a> <a target="_blank" href="http://
www.lyx.org">lyx</a> <a target="_blank" href="http://www.gnome.org/
projects/gedit/"> gedit</a> etc.)来撰写tex文档,再用term下的命令xelatex编译它,再用pdf软件
读取它。那么,为什么还要用编辑器呢?或者说,为什么要用emacs而不用其他的呢?
(关于emacs和vim,或者其他的优劣争论,此处省略十万字)简单的说,利用配置了auctex的emacs,你可以很方便的作如下的这些操作,而
这些都将大大节省撰写一个tex文档的工作量。你可以按照我的介绍安装配置好emacs,照着搞一下tex,体验一下是不是真如我说的这般。如果不是,
再换用其他的编辑器也不迟。

Emacs现在的版本号是23,比如我现在所用的就是<quote>GNU Emacs 23.0.91.1 (i486-pc-linux-
gnu, GTK+ Version 2.16.0), of 2009-04-05 on palmer, modified by
Debian</quote>。与此前的版本相比,非常简单的说,emacs 23在中文化支持方面有了不小的进步,你可以用很少的一些配置来实现中文
的显示和处理。因此,在这篇文档的说明介绍中,我们以emacs 23为例说明如何撰写和编译emacs文档。

<h2>4.2 Emacs-snapshot的安装</h2>
在GNU Debian/Ubuntu体系下,emacs v23被取名叫做emacs-snapshot,安装方法也很简单,把对应的源地址加入到
ubuntu源中去即可:
<quote>sudo vim /etc/apt/sources.list</quote>
加入以下几行:
<quote>
deb http://ppa.launchpad.net/ubuntu-elisp/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/ubuntu-elisp/ppa/ubuntu jaunty main
</quote>
(注:以上是针对ubuntu 9.04版本的操作系统的。其他版本ubuntu操作系统安装emacs-snapshot请看<a
target="_blank" href="https://launchpad.net/~ubuntu-elisp/+archive/
ppa">这里</a>。若是debian,请看<a target="_blank" href="http://
emacs.orebokech.com/">这里</a>)
保存,退出。运行命令更新一下sources.list的源:
<quote>
sudo aptitude update
</quote>
你会收到这样的错误提示:
<quote>
Reading package lists... Done
W: GPG error: http://ppa.launchpad.net jaunty Release: The following
signatures couldn't be verified because the public key is not
available: NO_PUBKEY 062D648FD62FCE72
W: You may want to run apt-get update to correct these problems
</quote>
解决问题也很简单,你sources.list中的这个源还没有在PGP体系中认证。认证一下就可以了:
<quote>
sudo su
(输入你的root密码,切换到#模式。)
#gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 062D648FD62FCE72
#gpg --armor --export 062D648FD62FCE72| apt-key add -
</quote>
然后再update一下
<quote>
sudo aptitude update
</quote>
现在可以顺利通过了。

现在,安装emacs-snapshot,auctex。
<quote>
sudo aptitude install emacs-snapshot emacs-snapshot-el emacs-snapshot-
common emacs-snapshot-gtk auctex emacs-goodies.el
</quote>
大概会有依赖关系的包。都装上就可以了。

安装完毕后,在term中输入emacs-snapshot,或者按alt+f2,在弹出的窗口中输入emacs-snapshot,就可以进入到
emacs-snapshot界面了。

<h2>4.3 emacs的配置</h2>
emacs是个扩展性极强的系统,这里只简略提几个可能和tex有关的配置情况。
首先当然要它能够正确的显示和处理中文。这个在emacs-snapshot中比较简单,可以分为以下几步:
LC_CTYPE的设置,以支持scim
打开anti_alias功能,字体渲染效果
<h3>4.3.1 emacs的配置----LC_CTYPE的设置</h3>
注:请您打开emacs后,在emacs中按ctrl+scim调出输入法,如果一切正常,就可以略过本小节直接进入4.3.2。否则就请按照下文提示
进行操作。
如果您像我一样使用scim作为中文输入法,这里需要注意的是,必须在自己的环境变量中设置LC_CTYPE=zh_CN.UTF8才可以让scim与
emacs搭配在一起正常工作。否则的话,在emacs-snapshot中是无法用ctrl+space调出scim输入法来的。
解决方案也是分两种,可以在系统变量中(/etc/environment或者/etc/profile,二者选一即可)或者在用户变量中
(~/.bashrc或~/.bash_profile里)加入如下字段:
<quote>
export LC_CTYPE="zh_CN.utf8"
</quore>
重新起动计算机。再打开emacs-snapshot,即可。能够在emacs-snapshot中调出scim的话,表示设置成功。

<h3>4.3.2 emacs的配置----anti_alias效果</h3>
简单些说,emacs-snapshot,就是emacs 23版本支持用xft方式的字体设置了,可以用类似"Fontname-<size>"的方
式很便捷的搞定。否则,在22及以前版本的emacs中,设置中文字体简直是个噩梦....
我们希望用xft字体作为emacs的字体格式,但是emacs-snapshot中的xft字体显示方式有锯齿,看着比较惨痛。这样就需要再打开
anti_alias的抗锯齿功能,让emacs看着更顺眼一些。

分三个步骤进行,第一步是打开你用户根目录下的~/.Xdefaults文件
<quote>vim ~/.Xdefaults</quote>
粘贴进去以下内容
<quote>
!Emacs.font: Monospace-14
Emacs.fontBackend: xft
Xft.dpi: 96
Xft.hinting: None
Xft.antialias: 1
Xft.rgba: rgb
</quote>
来打开xft的anti_alias功能。注意:第一行中我将emacs.font的设置屏蔽掉了,是因为我希望在emacs的配置文件
~/.emacs中实现此功能。
保存,退出之后,运行以下命令来让修改过的.Xdefauls生效
<quote>xrdb -merge ~/.Xdefaults</quote>
当然,也可以重启X,呵呵


第二步是配置自己的.emacs文件,它放置在你的用户根目录下,名字叫作.emacs(不要忘记前面的那个"."了)。如果有的话,打开它,如果没有
的话,建立它,
<quote> vim ~/.emacs </quote>
将以下内容复制粘贴进去
<quote>
(set-default-font "monospace-18")
(set-fontset-font (frame-parameter nil 'font)
'han '("STHeiti" . "unicode-bmp"))
</quote>

注1:这里我用monospace的14号字体作为emacs的默认显示字体(记得找一款等宽字体,否则如果字体本身不是等宽的话,当你进行一些数据操
作的时候,比如利用<a target="_blank" href="http://ess.r-project.org/ ">ess</a>在
Emacs中作<a target="_blank" href="www.r-project.org/">R运算</a>的时候,显示出来的结果就
参差不齐,很难分辨,极大影响工作效率。我还是被郁闷了好久之后才找到问题在于设置了不等宽的字体...
注2:这两段代码的设置原理是,理论上你可以用emacs来分别设置中英文两种字体,比如英文用monospace,中文用simsun,甚至更多种字
体分别显示都可以。我对这个不是很感兴趣,对我来说能够正确显示出来文字就行了,也犯不上和字体太较真作唯美主义者。有兴趣的朋友们可以继续深入研究
之。

第三步:
这是一个小tip。在(set-default-font "monospace-18")这段中,你可以通过修改"monospace-"后面的阿拉
伯数字大小来改变emacs显示字体的大小。对于经常要使用emacs写文档的人来说,当然是字体大一些对眼睛有益。比如我就给他设置成了18号。但是
大字体带来的另一个问题是,启动emacs-snapshot之后,emacs的窗口一出来就超过屏幕了。解决办法是,在.emacs中再加入如下字段
来手动控制emacs启动时的窗口大小:
<quote>
(setq default-frame-alist
'((height . 23) (width . 74) (menu-bar-lines . 20) (tool-bar-
lines . 0)))
</quote>
同样,你也可以自己改动高度和宽度来达到自己想要的效果。

好了,保存你的.emacs文件,退出。现在启动emacs-snapshot,看看你的emacs效果如何吧:)

(注意,是emacs-snapshot,如果你的系统此前已经安装了22或者之前版本的emacs,那你输入emacs就会跳出emacs 22而不
是emacs-snapshot了。)解决方法是,
(1)在系统级别的操作中,建立一个/usr/bin/emacs的连接,指向/usr/bin/emacs-snapshot;
<quote> sudo ln -sf /usr/bin/emacs-snapshot /usr/bin/emacs</quote>
或者(2)在用户级别的操作中,在~/.bashrc中建立一个alias
<quote> vim ~/.bashrc </quote>
加入以下字段后保存,退出,重新登录X或者重新起动计算机
<quote> alias emacs='emacs-snapshot -enable-font-backend'</quote>
这两个方法择一即可。

<h3>4.3.3 emacs的配置----选择一个主题</h3>
默认的emacs-snapshot主题太刺眼,不适合长期盯着来看。这就需要修改emacs的theme了。一个叫做color-theme的扩展包
可以很方便的为emacs实现这个功能。它已经集成在了emacs-goodies.el包中,并且在前文的安装emacs-snapshot步骤中安
装了,如果没有安装好的话,请安装之。

设置方式如下:在.emacs中加入如下字段:
<quote>
;;default theme for emacs when startup
(require 'color-theme)
(color-theme-euphoria)
</quote>

注1:也可以选择从网上下载color-theme的包,解压缩到本地硬盘,并且在.emacs中以设置load-path的方式导入它,但是考虑到本
介绍是主要面向菜鸟们使用的,故一切以简单为要。对这个感兴趣的朋友请自行google之。
注2:在本例子中我使用的是叫做euphoria的theme。color-theme有很多种themes可供选择,您可以在emacs窗口中挨个实
验一下看看自己更喜欢哪种。方法是在emacs中按"M-x color-theme" 然后按tab键,再按tab键翻页。比如您觉得robin-
hood这个theme很好,那就把.emacs中的(color-theme-euphoria)这一行改为(color-robin-hood)

> <quote>svn checkouthttp://ctex-kit.googlecode.com/svn/trunk/ctex-kit-
> read-only </quote>
> 下载完毕后,在~/Desktop目录下会生成一个新的名叫ctex-kit-read-only的目录。

> 这里我们需要的是/ctex-kit-read-only/zhspacing目录下的内容。
> 将其复制粘贴到你的texmf-var目录下,其位置在~/.texlive2008/texmf-var/tex/xelatex(如果没有该目录,
> 请相应创建之)
> <quote>
> cp -R ~/Desktop/ctex-kit-read-only/zhspacing/ ~/.texlive2008/texmf-var/
> tex/xelatex/
> </quote>
> 或者将这个包复制粘贴到用户级别的texlive texmf-local目录中,其位置在/usr/local/texlive/texmf-
> local/tex/xelatex/(同样,如果没有该目录,创建之)
> <quote>
> cp -R ~/Desktop/ctex-kit-read-only/zhspacing/ /usr/local/texlive/texmf-
> local/tex/xelatex/
> </quote>
>
> 此外,需要指出的是,我们通过svn方式下载的xecjk是<a target="_blank" href="http://
> mail.amss.ac.cn/viewthread.php?tid=40232">2.3.7版,它只支持XeTeX 0.9995.0 以后版
> 本</a>.而我们现在使用的texlive 2008系统中,xetex的版本是"XeTeX 3.1415926-2.2-0.999.6
> (Web2C 7.5.7)",您也可以自己在term中输入"$xetex --version"来查询证实之。换句话说,2.3.7版的xecjk
> 支持texlive 2009但是不支持我们这里使用的texlive 2008,google code上ctex-kit项目
> 的"download"栏目中的xecjk-2_2_15.zip才支持texlive 2008。我们需要下载2_2_15版本的xecjk并保存到
> tex目录中去。
> <quote>
> cd ~/Desktop

> wgethttp://ctex-kit.googlecode.com/files/xecjk-2_2_15.zip

> ...
>
> read more >>

gang xu

unread,
Sep 8, 2009, 3:35:05 AM9/8/09
to yyz@tongji, 同济大学Linux用户组--TongjiLUG
我还是比较喜欢 Vim + LaTeXsuite, 编辑效率超高。(自定义快捷 maping, 很方便 )

Emacs 不会用,呵呵。

2009/9/8 yyz@tongji <caoanr...@gmail.com>

yyz@tongji

unread,
Sep 8, 2009, 3:37:52 AM9/8/09
to 同济大学Linux用户组--TongjiLUG
那老兄也来写一个Vim + LaTeXsuite的小说明吧,给新手看的,正好和我的emacs+auctex搭配起来,给大家更多的选择

On Sep 8, 3:35 pm, gang xu <box.wildw...@gmail.com> wrote:
> 我还是比较喜欢 Vim + LaTeXsuite, 编辑效率超高。(自定义快捷 maping, 很方便 )
>
> Emacs 不会用,呵呵。
>

> 2009/9/8 yyz@tongji <caoanroad4...@gmail.com>


>
> > <h1>4. Emacs下利用auctex撰写、编译tex文档</h1>
> > <h1>4.1 Why Emacs?</h1>
> > 理论上来说,你可以使用任何一个编辑器( <a target="_blank" href="www.gnu.org/software/

> > emacs/emacs <http://www.gnu.org/software/%0Aemacs/emacs>">emacs</a> <a


> > target="_blank" href="http://
> >www.vim.org/">vim</a> <a target="_blank" href="http://
> >www.lyx.org">lyx</a> <a target="_blank" href="http://www.gnome.org/

> > projects/gedit/ <http://www.gnome.org/%0Aprojects/gedit/>"> gedit</a>


> > etc.)来撰写tex文档,再用term下的命令xelatex编译它,再用pdf软件
> > 读取它。那么,为什么还要用编辑器呢?或者说,为什么要用emacs而不用其他的呢?
> > (关于emacs和vim,或者其他的优劣争论,此处省略十万字)简单的说,利用配置了auctex的emacs,你可以很方便的作如下的这些操作,而
> > 这些都将大大节省撰写一个tex文档的工作量。你可以按照我的介绍安装配置好emacs,照着搞一下tex,体验一下是不是真如我说的这般。如果不是,
> > 再换用其他的编辑器也不迟。
>
> > Emacs现在的版本号是23,比如我现在所用的就是<quote>GNU Emacs 23.0.91.1 (i486-pc-linux-
> > gnu, GTK+ Version 2.16.0), of 2009-04-05 on palmer, modified by
> > Debian</quote>。与此前的版本相比,非常简单的说,emacs 23在中文化支持方面有了不小的进步,你可以用很少的一些配置来实现中文
> > 的显示和处理。因此,在这篇文档的说明介绍中,我们以emacs 23为例说明如何撰写和编译emacs文档。
>
> > <h2>4.2 Emacs-snapshot的安装</h2>
> > 在GNU Debian/Ubuntu体系下,emacs v23被取名叫做emacs-snapshot,安装方法也很简单,把对应的源地址加入到
> > ubuntu源中去即可:
> > <quote>sudo vim /etc/apt/sources.list</quote>
> > 加入以下几行:
> > <quote>
> > debhttp://ppa.launchpad.net/ubuntu-elisp/ppa/ubuntujaunty main

> > deb-srchttp://ppa.launchpad.net/ubuntu-elisp/ppa/ubuntujaunty main


> > </quote>
> > (注:以上是针对ubuntu 9.04版本的操作系统的。其他版本ubuntu操作系统安装emacs-snapshot请看<a

> > target="_blank" href="https://launchpad.net/~ubuntu-elisp/+archive/<https://launchpad.net/%7Eubuntu-elisp/+archive/>


> > ppa">这里</a>。若是debian,请看<a target="_blank" href="http://
> > emacs.orebokech.com/">这里</a>)
> > 保存,退出。运行命令更新一下sources.list的源:
> > <quote>
> > sudo aptitude update
> > </quote>
> > 你会收到这样的错误提示:
> > <quote>
> > Reading package lists... Done

> > W: GPG error:http://ppa.launchpad.netjaunty Release: The following

> ...
>
> read more >>

gang xu

unread,
Sep 8, 2009, 3:14:39 PM9/8/09
to yyz@tongji, 同济大学Linux用户组--TongjiLUG
需要安装 vim-addons 来安装 vim-latexsuite, 可以以 Root 用户来运行 vim-addons, 也可以以普通用户来安装 vim-latexsuite 这个插件。

都是模糊音惹得祸。(我还真是离不开模糊音,哈哈)

2009/9/8 gang xu <box.wi...@gmail.com>
http://vim-latex.sourceforge.net/

需要安装 vim-addons 来安装 vim-latexsuite, 可以以 Root 用户来允许 vim-addons, 也可以以普通用户来安装 vim-latexsuite 这个插件。
===================
wolf@hawk:~$ vim-addons -h
Usage:
  vim-addons [OPTION ...] { list | status | install | remove | disable | amend | files } [ADDON ...]
=======================



首先 vim-addons list 查看电脑上已有的插件 (如果vim-latexsuite 已经安装好,你应该可以看到类似的)
=============code=====
wolf@hawk:~$ vim-addons list
latex-suite
matchit
=====================
安装 latex-suite 用
$ vim-addons install latex-suite
===================
查看 latex-suite 插件似乎已经安装好
=======code===========
wolf@hawk:~$ vim-addons status
# Name                     User Status  System Status
latex-suite                 removed       installed    
matchit                     removed       removed
======================
可以看出我是以 Root 用户安装的, System install ,反之如果 user status install 应该就是普通用户安装的插件。

==========用 vim-latexsuit 最好还是装一个 带X 的Vim ---GVim  =====
=====以下是我的 .vimrc 设置===========
" REQUIRED. This makes vim invoke Latex-Suite when you open a tex file.
 filetype plugin on

 " IMPORTANT: win32 users will need to have 'shellslash' set so that latex
 " can be called correctly.
 set shellslash

 " IMPORTANT: grep will sometimes skip displaying the file name if you
 " search in a singe file. This will confuse Latex-Suite. Set your grep
 " program to always generate a file-name.
 set grepprg=grep\ -nH\ $*

 " OPTIONAL: This enables automatic indentation as you type.
 filetype indent on

 " OPTIONAL: Starting with Vim 7, the filetype of empty .tex files defaults
" to
 " 'plaintex' instead of 'tex', which results in vim-latex not being loaded.
 " The following changes the default filetype back to 'tex':
 let g:tex_flavor='latex'
 "set by myself
 set textwidth=86
 set spell
 set nu
 set lbr
 set fileencodings=utf-8,gb18030
 syntax on
 augroup MyIMAPs
             au!
                 au VimEnter * call IMAP('ETU', "\\begin{figure}[htbp]\<CR>\\centering\<CR>\\includegraphics[<++>]{<+fig+>}\<CR>\\caption{<+cap+>}\<CR>\\label{<+label+>}\<CR>\\end{figure}<++>", 'tex')
                 au VimEnter * call IMAP('EZT', "\\begin{figure}[htbp]\<CR>\\centering\<CR>\\begin{minipage}[b]{<+width+>textwidth}\<CR>\\centering\<CR>\\includegraphics[<++>]{<+fig+>}\<CR>\\caption{<+cap+>}\<CR>\\label{<+label+>}\<CR>\\end{minipage}\<CR>\\end{figure}<++>", 'tex')

         augroup END
=========== vimrc 说明===========
" REQUIRED. This makes vim invoke Latex-Suite when you open a tex file.
 filetype plugin on

 " IMPORTANT: win32 users will need to have 'shellslash' set so that latex
 " can be called correctly.
 set shellslash

 " IMPORTANT: grep will sometimes skip displaying the file name if you
 " search in a singe file. This will confuse Latex-Suite. Set your grep
 " program to always generate a file-name.
 set grepprg=grep\ -nH\ $*

 " OPTIONAL: This enables automatic indentation as you type.
 filetype indent on

 " OPTIONAL: Starting with Vim 7, the filetype of empty .tex files defaults
" to
 " 'plaintex' instead of 'tex', which results in vim-latex not being loaded.
 " The following changes the default filetype back to 'tex':
 let g:tex_flavor='latex'
=========这一段主要是vim 打开 *.tex 文件的时候自动加载 vim-latexsuite 的菜单栏。
note: 如果你打开的不是 *.tex  (如: vim .vimrc) GVim 的菜单栏是看不到 vim-latexsuite 相关的选项的。
======================================

 set textwidth=86     设置文字宽度(自动换行)
 set spell        (检查拼写)
 set nu        (显示行号)
 set lbr       (设置断行,和 textwidth 对应)
 set fileencodings=utf-8,gb18030    (编码)
 syntax on        (语法高亮显示)

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

MyIMAPs 是用户自定义 maping, 我只定义了插图环境,插子图环境。很方便,大多数常用的环境 latexsuite 都已经内部设置好了,有很多快捷键,详细的请阅读用户手册。
我上面的两个快捷键 分别是 ETU , EZT

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

欢迎大家尝试!
我觉得 vim+latexsuite 的效率相当之高,反正我是很满意!

详细看一下我上面链接到 vim-latexsuite 的主页,特别是讲怎么用的那页。 如果还是鼠标去操作的话,你还是不要考虑用 vim-latexsuite 了,我自认为他的强项就是好多实用快捷键!

祝好!

wolf

2009/9/8 yyz@tongji <caoanr...@gmail.com>

gang xu

unread,
Sep 8, 2009, 3:13:08 PM9/8/09
to yyz@tongji, 同济大学Linux用户组--TongjiLUG
2009/9/8 yyz@tongji <caoanr...@gmail.com>
那老兄也来写一个Vim + LaTeXsuite的小说明吧,给新手看的,正好和我的emacs+auctex搭配起来,给大家更多的选择

yyz@tongji

unread,
Sep 8, 2009, 11:03:18 PM9/8/09
to 同济大学Linux用户组--TongjiLUG
<h2>4.4 在emacs-snapshot中配置auctex工作</h2>
<a target="_blank" href="http://www.gnu.org/software/auctex/">auctex</
a>是一个用来在emacs上撰写及编译tex文档的扩展包,目前它包括一系列小的扩展项,比如<a target="_blank"
href="http://http://www.gnu.org/software/auctex/reftex.html">reftex</
a>,一个用来在tex文档中建立参考文献索引的东东(关于reftex,我们将在下一个章节中讲述)。这里简要介绍一下如何在emacs-
snapshot中安装并配置auctex,以进行tex操作。

<h3>4.4.1 auctex的安装以及在emacs-snapshot中的初步操作</h3>
前文在介绍如何安装emacs-snapshot的时候已经有了安装auctex的方法介绍,即在GNU Debian/Ubuntu系统下,输入这样
一行命令即可:
<quote>sudo aptitude install auctex</quote>

安装完毕后,我们需要在emacs-snapshot中进行一定的设置,以便让auctex发挥作用。这还是通过编辑~/.emacs文件来进行的。
<quote> vim ~/.emacs</quote>
在.emacs中添加进去关于auctex的部分内容:


<quote>
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;AUCTeX
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(load "auctex.el" nil t t)
(load "tex-site.el" nil t t)
(load "preview-latex.el" nil t t)
(setq TeX-electric-escape t)
(setq LaTeX-math-mode t)
;make AUCTEX aware of style files and multi-file documents right away
(setq TeX-auto-save t)
(setq TeX-parse-self t)
(setq-default TeX-master nil)
(setq TeX-auto-untabify t) ;; 不使用 TAB字符缩进
(setq LaTeX-document-regexp "document\\|CJK\\*?") ;; CJK 环境中不缩进
;(setq TeX-newline-function 'newline-and-indent) ;;回车时自动缩进
(add-hook 'LaTeX-mode-hook #'LaTeX-install-toolbar)
;(add-hook 'LaTeX-mode-hook 'turn-on-auto-fill)
(add-hook 'LaTeX-mode-hook 'turn-on-reftex)
(autoload 'LaTeX-preview-setup "preview")
(add-hook 'LaTeX-mode-hook #'LaTeX-preview-setup)
(autoload 'reftex-mode "reftex" "RefTeX Minor Mode" t)
(autoload 'turn-on-reftex "reftex" "RefTeX Minor Mode" nil)
(autoload 'reftex-citation "reftex-cite" "Make citation" nil)
(autoload 'reftex-index-phrase-mode "reftex-index" "Phrase mode"
t)


(setq reftex-plug-into-AUCTeX t)
(setq reftex-revisit-to-follow t
reftex-auto-recenter-toc t)
(add-hook 'TeX-mode-hook
(lambda ()
(setq reftex-plug-into-AUCTeX t)
(turn-on-reftex)
(define-key LaTeX-mode-map (kbd "TAB") 'TeX-complete-
symbol)
(TeX-PDF-mode t)
(setq TeX-save-query nil )
(setq TeX-show-compilation t)
))
(add-hook 'LaTeX-mode-hook (lambda()
(add-to-list 'TeX-command-list
'("XeLaTeX" "%`xelatex%(mode)
%' %t" TeX-run-TeX nil t))
(setq TeX-command-default "XeLaTeX")
(setq TeX-save-query nil )
(setq TeX-show-compilation t)
))

;;;;;; 增加 math, reftex 等模式,有数学符号的栏目辅助输入等等
(add-hook 'LaTeX-mode-hook
(lambda ()
(LaTeX-math-mode)
(imenu-add-menubar-index)
(turn-on-reftex)
(turn-off-auto-fill)
))

;;;;;; 用 evince 预览 pdf
(add-hook 'LaTeX-mode-hook
(lambda ()
(setq TeX-output-view-style (cons '("^pdf$" "." "evince
%o") TeX-output-view-style))
))

;;把beamer的frametitle也放入reftex目录缓冲中,但需要把\frametitle写在行首
(setq reftex-section-levels
'(("part" . 0) ("chapter" . 1) ("section" . 2)
("subsection" . 3)
("frametitle" . 4) ("subsubsection" . 4)
("paragraph" . 5)
("subparagraph" . 6) ("addchap" . -1) ("addsec" . -2)))

;;如何编辑编译 Asymptote 的 .asy 文件
;(add-to-list 'load-path "C:/Program Files/Asymptote")
(autoload 'asy-mode "asy-mode.el" "Asymptote major mode." t)
(autoload 'lasy-mode "asy-mode.el" "hybrid Asymptote/Latex major
mode." t)
(autoload 'asy-insinuate-latex "asy-mode.el" "Asymptote insinuate
LaTeX." t)
(add-to-list 'auto-mode-alist '("\\.asy$" . asy-mode))

;;编辑编译 MetaPost 的 .mp 文件
(defun mpost-compile ()
"Compile current file with MetaPost."
(interactive)
(save-buffer)
(compile (concat "mpview --preview=eps --viewer=gs" (file-name-
nondirectory buffer-file-name))))

(add-hook 'metapost-mode-hook
'(lambda nil
(define-key meta-mode-map "\C-c\C-c" 'mpost-compile)))

(add-hook 'metapost-mode-hook
'(lambda nil
(define-key meta-mode-map "\t" 'meta-complete-symbol)
))
</quote>

保存,重新启动emacs。现在,auctex的配置基本完毕了。
注:这部分代码是我前前后后七拼八凑从若干人的若干份.emacs中摘择整理出来的,没有经过很仔细和细致的梳理,代码显得比较混乱。我能保证它好用,
但其中存在着一定的冗余代码、重复和无效率的情况。实在没时间细细整理和重新排序了,大家凑合着看。

<h3> 4.4.2 利用emacs+auctex编辑操作tex文档,一个初步的介绍</h3>
emacs的快捷键操作部分,并不是本文的重点。大家对这部分感兴趣的,可以在emacs中输入c_h t(注:就是ctrl+h 空格 t 回车)进
入emacs tutorial教程,慢慢摸索,大概一天左右的时间就可以基本熟悉了。或者通过google搜索emacs tutorial的pdf
版本或者online 版本来看,或者如果你英语比较吃力的话,中文版的emacs教程也有很多。

这里大致介绍一下如何利用auctex在emacs中编辑tex。打开emacs-snapshot之后,我们还是回到章节3.3中的那段
test_xecjk.tex文档中去。希望你的硬盘中还保存着它,或者,如果没有的话,重新复制粘贴一份出来。以下操作是在emacs下进行的:

假设你的text_xecjk.tex是保存在~/Desktop目录下。如果不是,请按照相应位置打开。
请记得利用tab键的补齐功能,以减少敲击键盘的次数。
<quote>
c_x c_f ~/Desktop/test_xecjk.tex 回车
c_y
</quote>
其中,第一行的c_x c_f是打开或者新建一个文件,后面的 ~/Desktop/test_xecjk.tex是指该文件的位置和文件名,回车表示
执行操作;
第二行的c_y是粘贴命令,对应office中的c_v

如果你丢失了这段代码,需要在emacs中重新复制粘贴进来这段代码的话,请回到3.3章节找到test_xecjk.tex的源代码,复制,在
emacs-snapshot中c_x c_f 输入~/Desktop/test_xecjk.tex 回车,按c_y将源代码粘贴进来。什么?
c_y的粘贴操作在emacs-snapshot中无效?哦,请在.emacs中加入
<quote>
(setq mouse-yank-at-point t)
(setq x-select-enable-clipboard t)
</quote>
这两行代码,第一行的意思是支持在emacs中鼠标中键的粘贴功能,即不论什么时候,当你用鼠标光标划选标亮一定数量的词的时候,这部分内容会被自动复
制;再将光标移动到合适的位置,按下鼠标中键,就粘贴到该位置去了。这个功能,至少在我看来,很实用。
第二行的意思是,支持emacs和外部程序的复制粘贴。有了这段代码,重新启动emacs之后,就可以解决上文中的问题了。(在emacs中的复制是
m_w,"M"或者"m"在emacs中代表的是Alt键。剪切是c_w。)

好了,现在假设我们已经有了一个保存在~/Desktop/下的test_xecjk.tex文档,其内容如上。先用c_x c_s保存一下。

利用auctex的emacs编译变得很简单:按c_c c_c(就是两次ctrl c),auctex就会自动为你编译该tex文档了。
<quote>Command: (default XeLaTeX)
<quote>
直接按按回车,用默认的XeLaTeX程序来编译。这个tex文档并不大,几秒钟后就会编译完毕。下方小横条内会出现提示:
<quote>
XeLaTeX: successfully formatted {1} pages.
</quote>

注:auctex默认的编译方式是latex,不过我们安装在texlive 2008中的xecjk,是用xelatex方式编译的。这就需要
在.emacs中进行设置auctex将默认的编译方式由latex变成xelatex。代码我们在上一节中已经写入了.emacs,你可以再确认一下
是否有这个字段:
<quote>
(add-hook 'LaTeX-mode-hook (lambda()
(add-to-list 'TeX-command-list
'("XeLaTeX" "%`xelatex%(mode)%' %t" TeX-run-TeX nil t))
(setq TeX-command-default "XeLaTeX")
(setq TeX-save-query nil )
(setq TeX-show-compilation t)
))
</quote>

如果有错误的话,auctex会弹出提示:编译错误,请输入c_c `来查询。就是ctrl_c 之后再按数字键1左边的那个按钮。并根据错误输出的提
示作出调整。

编译完成之后,xelatex会将test_xecjk.tex的tex文档在同样的目录下(在这里,就是~/Desktop目录)生成
test_xecjk.pdf文档。我们可以用在相应目录下双击鼠标等等方式打开查看内容了。但是这样操作还是太复杂,要右手离开键盘去找鼠标,再打开
新的文件管理器窗口,进入到~/Desktop/,再双击该pdf文件.... auctex的emacs提供了直接查看该pdf文件的功能,方法是:
再按一次c_c c_c。是不是很简单?

<quote>
c_c c_c
</quote>
emacs 下方的小横条中会出现提示:
<quote>
Command: (default View)
</quote>
直接按回车就可以了
<quote>
View command: evince test_xecjk.pdf
<quote>
再按一下回车,evince程序就会启动,显示这个pdf文档的内容。

注:auctex默认的pdf浏览程序是xpdf,您可以使用xpdf来打开pdf。但是我个人更习惯于evince。更改auctex默认的pdf程
序可以在.emacs中通过以下字段实现:
<quote>
;;;;;; 用 evince 预览 pdf
(add-hook 'LaTeX-mode-hook
(lambda ()
(setq TeX-output-view-style (cons '("^pdf$" "." "evince
%o") TeX-output-view-style))
))
</quote>
最简单的修改办法是,将其中的evince换成你想要的程序,比如xpdf gs acroread 等等,保存,重新起动emacs-
snapshot即可。

On Sep 8, 3:27 pm, "yyz@tongji" <caoanroad4...@gmail.com> wrote:
> <h1>4. Emacs下利用auctex撰写、编译tex文档</h1>
> <h1>4.1 Why Emacs?</h1>
> 理论上来说,你可以使用任何一个编辑器( <a target="_blank" href="www.gnu.org/software/

> emacs/emacs">emacs</a> <a target="_blank" href="http://www.vim.org/">vim</a> <a target="_blank" href="http://www.lyx.org">lyx</a> <a target="_blank" href="http://www.gnome.org/


> projects/gedit/"> gedit</a> etc.)来撰写tex文档,再用term下的命令xelatex编译它,再用pdf软件
> 读取它。那么,为什么还要用编辑器呢?或者说,为什么要用emacs而不用其他的呢?
> (关于emacs和vim,或者其他的优劣争论,此处省略十万字)简单的说,利用配置了auctex的emacs,你可以很方便的作如下的这些操作,而
> 这些都将大大节省撰写一个tex文档的工作量。你可以按照我的介绍安装配置好emacs,照着搞一下tex,体验一下是不是真如我说的这般。如果不是,
> 再换用其他的编辑器也不迟。
>
> Emacs现在的版本号是23,比如我现在所用的就是<quote>GNU Emacs 23.0.91.1 (i486-pc-linux-
> gnu, GTK+ Version 2.16.0), of 2009-04-05 on palmer, modified by
> Debian</quote>。与此前的版本相比,非常简单的说,emacs 23在中文化支持方面有了不小的进步,你可以用很少的一些配置来实现中文
> 的显示和处理。因此,在这篇文档的说明介绍中,我们以emacs 23为例说明如何撰写和编译emacs文档。
>
> <h2>4.2 Emacs-snapshot的安装</h2>
> 在GNU Debian/Ubuntu体系下,emacs v23被取名叫做emacs-snapshot,安装方法也很简单,把对应的源地址加入到
> ubuntu源中去即可:
> <quote>sudo vim /etc/apt/sources.list</quote>
> 加入以下几行:
> <quote>

> debhttp://ppa.launchpad.net/ubuntu-elisp/ppa/ubuntujaunty main
> deb-srchttp://ppa.launchpad.net/ubuntu-elisp/ppa/ubuntujaunty main


> </quote>
> (注:以上是针对ubuntu 9.04版本的操作系统的。其他版本ubuntu操作系统安装emacs-snapshot请看<a
> target="_blank" href="https://launchpad.net/~ubuntu-elisp/+archive/
> ppa">这里</a>。若是debian,请看<a target="_blank" href="http://
> emacs.orebokech.com/">这里</a>)
> 保存,退出。运行命令更新一下sources.list的源:
> <quote>
> sudo aptitude update
> </quote>
> 你会收到这样的错误提示:
> <quote>
> Reading package lists... Done

> W: GPG error:http://ppa.launchpad.netjaunty Release: The following

> ...
>
> read more >>

yyz@tongji

unread,
Sep 8, 2009, 11:08:15 PM9/8/09
to 同济大学Linux用户组--TongjiLUG
不能上传附件么.....汗

> > W: GPG error:http://ppa.launchpad.netjauntyRelease: The following

gang xu

unread,
Sep 9, 2009, 3:25:32 AM9/9/09
to yyz@tongji, 同济大学Linux用户组--TongjiLUG
可以上传附件! 但是 google group 只支持 1M 以下的

2009/9/9 yyz@tongji <caoanr...@gmail.com>

Yanyuan Zhu

unread,
Sep 9, 2009, 3:59:18 AM9/9/09
to 同济大学Linux用户组--TongjiLUG
哦。测试一下
Screenshot.png

gang xu

unread,
Sep 9, 2009, 4:06:26 AM9/9/09
to Yanyuan Zhu, 同济大学Linux用户组--TongjiLUG
我也来一张 GVIM 的,尽管没有 emacs 的眩!

2009/9/9 Yanyuan Zhu <caoanr...@gmail.com>
nn.jpg

yyz@tongji

unread,
Sep 13, 2009, 4:52:44 AM9/13/09
to 同济大学Linux用户组--TongjiLUG
<h2>4.5 参考文献的建立和管理,基本操作</h2>
写paper,reference(参考文献)是一个很重要的环节。这里简单介绍一下在emacs的 auctex环境下操作参考文献的方法。
可以分成以下几个步骤:
第一,安装并配置好jabref
第二,利用jabref建立.bib的bibtex参考文献库
第三,在auctex中插入和管理参考文献

<h3>4.5.1 java环境</h3>
<a target="_blank" href="http://jabref.sourceforge.net/">jabref</a>是一个
java语言写成的<a target="_blank" href="www.bibtex.org/">BibTex</a>格式的的参考文献管理
工具,具有跨平台、应用广泛等优点(不用找了,<a target="_blank" href="http://
www.reflib.org/">noteexpress</a>只有windows版的,不支持linux......)。这里以jabref为例,介绍如何与emacs+acutex合作,撰写texlive文档。

首先是安装并且配置java环境。如果您已经安装并且配置好了java,那么可以略过这个部分,直接进入到jabref的安装和设置部分。
用如下命令安装java
<quote>sudo aptitude install sun-java6-jre sun-java6-plugin sun-java6-
fonts</quote>
安装完毕之后,在/usr/lib/jvm目录下生成java-6-sun-1.6.*.**的文件夹,对应java现在的版本号。
比如我现在机器的java版本号:java-6-sun-1.6.0.16
一个linux系统下可能同时存在许多版本的java,比如
<quote>
simon@simon-t400:/usr/lib/jvm$ ls
java-6-openjdk java-6-sun java-6-sun-1.6.0.16
</quote>
这里,java-6-openjdk和java-6-sun-1.6.0.16就是两个不同的java environment。java-6-sun
是指向java-6-sun-1.6.0.16的链接,(它的作用是,如果有一天java-6-sun的版本号升级到了java-6-
sun-1.6.0.19,将java-6-sun的链接从java-6-sun-1.6.0.16改向java-6-sun-1.6.0.19即可,
系统不需要作出太多太复杂的调整了)如果没有的话,您可以自己创建一个。
<quote>
sudo ln -sf /usr/lib/jvm/java-6-sun-1.6.0.16 /usr/lib/jvm/java-6-sun
<quote>
然后,我们需要利用update-alternatives命令配置一下java,让系统自动运用最新的java environment
<quote>
sudo update-alternatives --config java
</quote>
以我的操作系统为例,目前有如下两个java环境:
simon@simon-t400:/usr/lib/jvm$ sudo update-alternatives --config java
[sudo] password for simon:

There are 2 alternatives which provide `java'.

Selection Alternative
-----------------------------------------------
* 1 /usr/lib/jvm/java-6-sun/jre/bin/java
+ 2 /usr/lib/jvm/java-6-openjdk/jre/bin/java

Press enter to keep the default[*], or type selection number:
</quote>
选择1,回车,保存。java环境就算编辑好了。

<h3>4.5.2 jabref的安装,配置及中文显示</h3>
安装jabref
<quote>sudo aptitude install jabref</quote>
安装完毕后,在命令行中输入jabref,运行该程序。
默认的jabref程序使用的字体不支持中文,因此使jabref无法正常显示中文。这就需要我们修改jabref所使用的java字体。在
jabref中依次点击"Options"-"Preferences"-"Entry Preview",在Preview 1和Preview 2
中的起始部分有"font face="****""段落,就是jabref所使用的字体。将它改成可以支持中文并且在前面段落中已经安装好的字体,比
如SimSun,比如stheiti。保存,退出。重新打开jabref,就可以了。

jabref的基本操作就不说了,大家可以去网上看看说明文档。这里只是建立一个可以利用作测试的.bib文档,以供大家了解如何在tex文档中建立
references。
在jabref中,新建一个bibtex文档,保存为~/Desktop/test.bib。
打开test.bib后,在菜单条中按那个"加号"的标志,即"new bibtex entry",选择"Article".然后在弹出的窗口中选
择"Bibtex Source",将bibrex source中的原有内容全部删除,用以下内容替代之:
<quote>
@ARTICLE{Ethier1982,
author = {Ethier, Wilfred J},
title = {National and International Returns to Scale in the Modern
Theory
of International Trade},
journal = {American Economic Review},
year = {1982},
volume = {72},
pages = {389-405},
number = {3},
month = {June},
url = {http://ideas.repec.org/a/aea/aecrev/v72y1982i3p389-405.html}

}
</quote>
看到靠近左下角的一竖行图标了么,按一下第一个图标,即"Generate Bibtex Key"。然后,再按ctrl+s,保存整个
test.bib文件。
然后,用同样的方式再操作一遍,在test.bib下再建立一个entry
<quote>
@ARTICLE{Spence1976,
author = {Spence, Michael},
title = {Product Selection, Fixed Costs, and Monopolistic
Competition.},
journal = {Review of Economic Studies},
year = {1976},
volume = {43},
pages = {217 - },
number = {134},
issn = {00346527},
keywords = {MONOPOLISTIC competition, OVERHEAD costs, PRODUCT
management, CONSUMER
goods, PRICE discrimination, COMMERCIAL products, SUBSTITUTE
products,
COMPETITIVE advantage},
url = {http://search.ebscohost.com/login.aspx?
direct=true&db=buh&AN=4624514&site=ehost-live}
}

</quote>
同样,先generate bibtex key,然后ctrl+s保存test.bib。好了,现在我们手头有一个可以用的bibtex文件模板
了。


<h3> 4.5.3 在tex文档中调用这个test.bib文件</h4>
这部分工作的基本逻辑是:
当撰写tex文档,需要建立相应的reference参考文献的时候,一个一个编排文献格式并且复制粘贴到reference部分太吃力而且没有什么意
义。而另一方面,很可能test.bib文件中有几百个参考文献,但是我们当前所写的tex文档只需要引用其中的20个参考文献。那么如何将这20个列
入tex文档的索引文献中而将其他不需要的参考文献也列进去呢?这就需要在auctex中利用<a target="http://
www.gnu.org/software/auctex/reftex.html">reftex</a>来实现了。

首先,我们回到起初建立的那个名为test_xecjk.tex的tex文档中。加入如下两行代码:
在"\begin{document}"的前面加入
<quote>\bibliographystyle{plain}</quote>
这是指定参考文献,bibliography的style为plain。(其他的style,请自行查阅latex手册)。
然后,在你希望这篇paper出现"参考文献"的部分(通常是在正文部分结束之后,即在\end{document}之前,加入如下代码:
<quote>
\bibliography{~Desktop/test.bib}
</quote>
这段代码的作用是,指定本test_xecjk.tex在生成参考文献的时候,依据~/Desktop/test.bib这个参考文献库。

利用c_x c_s来保存test_xecjk.tex。
现在,我们的test_xecjk.tex的内容变成了:

<quote>
\documentclass[12pt,a4paper]{article}
\usepackage{xltxtra,fontspec,xunicode}
\usepackage[slantfont,boldfont]{xeCJK} % 允许斜体和粗体
\usepackage{amsmath}

\setCJKmainfont{SimSun} % 设置缺省中文字体
\setCJKmonofont{SimSun} % 设置等宽字体
\setmainfont{Lucida Grande} % 英文衬线字体
\setmonofont{Lucida Grande} % 英文等宽字体
\setsansfont{Lucida Grande} % 英文无衬线字体

\bibliographystyle{plain}


\begin{document}
Production fucntion for firm i could be written as\footnote{方
程式最早来自于Spence(1976),他以积分的形式来表示不同intermediate goods input所产生的util总和,见
Spence(1976)的公式(45)。 在Spence(1976)的基础上,Dixit and Stiglitz(1977)对该方程作以一定
修订,将积分改为求和的公式,以更恰当体现intermediate inputs的特性,见Dixit and Stiglitz(1977)的公式
(2)。
Ethier(1982) 在生产函数中利用了该求和公式,见Ethier(1982)的公式(2')。
Romer(1987,1990)首次在内生经济增长和技术进步的模型中用了Ethier(1982)的这条公式表述形式。}
\begin{equation}
Y_{i}=A\cdot L_{i}^{1-\alpha}\cdot
\sum_{j=1}^{N}(X_{ij})^\alpha \label{Eq-6.1}\end{equation}

\bibliography{~Desktop/test.bib}
\end{document}
</quote>


<h3>4.5.4 向test_xecjk.tex中插入test.bib中的参考文献</h3>
这里有两个方法来实现该功能,其一是在jabref程序中,利用"push selection to emacs"功能来实现。一个是在auctex
的emacs中,利用reftex的citation功能来实现(本文推荐使用第二种方法)。这里将分别讲述这两种方法:

第一种方法,在jabref下将选定的参考文献的特征key缩写发送到emacs中去。
还记得前面在建立test.bib时,我要大家在粘贴进去bibtex source后,一定要再按一下"Generate Bibtex
Key"么,它的作用就是生成一个bibtex key,用来生成一个可供auctex引用的key。比如test.bib中Spence的那篇论文
《Product Selection, Fixed Costs, and Monopolistic Competition.》,jabref自
动为它生成的BibTex key就是Spence1976。下一步的工作就是将它插入到emacs+auctex中正在撰写的tex文档
test_xecjk.tex中去。

jabref利用<a target="_blank"
href="http://www.emacswiki.org/emacs/EmacsClient">emacsclient</a>
或者<a target="_blank" href="http://www.hpl.hp.com/personal/ange/gnuserv/
home.html">gnuserv</a>来实现该功能。推荐使用gnuserv,原因么....大家可以自己google一下,我就不多说了。
安装gnuserv
<quote>sudo aptitude install gnuserv</quote>
在~/.emacs的emacs配置文件中添加如下字段:
<quote>
(load "gnuserv-compat")
(load-library "gnuserv")
(gnuserv-start)
</quote>
保存,重新起动emacs-snapshot。现在,emacsclient配置完毕了。
再用c_x f打开~/Desktop/test_xecjk.tex文档,将光标移到我们想要插入参考文献Spence1976的地方,比如
<quote>程式最早来自于Spence(1976),他以......</quote>
就是让光标闪烁在Spence(1976)的后面,逗号之前,同时切换回jabref。在jabref中,打开~/Desktop/test.bib文
档。用鼠标左键单击点亮Spence 1976的那篇文献(可以用ctrl+f来进行快速搜索),然后在jabref的菜单下一栏的一行图标的右侧倒数
第二个,就是有向下箭头的那个,按向下箭头,选择emacs,程序图标就变成了emacs的牛头。再按一下牛头。回到emacs中的
test_xecjk.tex,看看这个tex文档有什么变化?
<quote>程式最早来自于Spence(1976)\cite{Spence1976},他以......</quote>
在光标闪烁的位置,多出了\cite{Spence1976}的字段。也就是说,这里插入了一条索引文献。

第二种方法是直接利用auctex中的reftex功能,直接在emacs中读取test.bib的bibliography索引并且导入本篇tex文
档需要用到的参考文献。与第一种jabref导入的方法相比,它更直观简便,操作起来也更方便,因此推荐使用。
在emacs中打开的test_xecjk.tex下,光标移动到(1976)和逗号之间(请记得先删除掉前文测试操作时候输入的\cite
{Spence1976}字段
<quote>程式最早来自于Spence(1976),他以......</quote>
按c_c c_[(就是同时按ctrl和c,再同时按ctrl和中括号),emacs-snapshot会在下端的小窗口中跳出提示:
<quote>Regex { && Regex...}: [1976]: </quote>
其中,方括号内的[1976]是reftex自动查找到光标之前的一个词组1976,默认在test.bib中搜索含有这个字段的参考文献。您也可以将
它改为自己想要的其他字段,比如作者的名字Spence,比如发表年份1976,比如论文的名称的一部分Fixed Costs,再比如这篇参考文献的
bibtex key, Spence1976...
输入之后,按回车,reftex key会自动在test.bib中寻找含有这个关键词的字段,这时候emacs会在下半部的窗口中将搜索结果显示出
来。按上下键选择,再回车,上面那段话同样也变成了:
<quote>程式最早来自于Spence(1976)\cite{Spence1976},他以......</quote>

以上介绍的两种方法都是用来插入参考文献\cite{}的。当参考文献插入完毕后,还是需要运行xelatex命令来编译这个
test_xecjk.tex文档。
如果你没有忘记的话,编译命令还是c_c c_c,用xelatex编译test_xecjk.tex的正文
<quote>Command: (default XeLaTeX) </quote>
按回车,acutex+emacs会利用xelatex命令来编译这个test_xecjk.tex文档。
<quote>You should run BibTeX to get citations right, {1} pages.</
quote>

注意:当含有参考文献后,每次对参考文献部分作出了改动的话,auctex都需要三次次编译(即,c_c c_c要按两遍)以使得参考文献部分生效。
即,第一次c_c c_c是利用xelatex命令编译tex文档的正文,第二次c_c c_c是利用bibtex命令编译tex文档的参考文献,第三
次c_c c_c是将编译后的参考文献和正文部分整合在一起。
c_c c_c,用bibtex编译test_xecjk.tex的正文
<quote>Command: (default BibTeX) </quote>

继续按回车
<quote>BibTeX finished successfully. Run LaTeX again to get citations
right.</quote>

c_c c_c,整合正文和参考文献
<quote>Command: (default XeLaTeX) </quote>
回车

<quote>You should run LaTeX again to get references right, {7} pages.</
quote>

<quote></quote>

c_c c_c,既然系统要求我们再来一次,那就再来一次吧.....
<quote>Command: (default XeLaTeX) </quote>
回车


<quote>XeLaTeX: successfully formatted {1} pages.</quote>

恩,至此,带有参考文献的tex文档编译成功。系统在test_xecjk.tex的同目录文件下生成了一个test_xecjk.pdf文件。再按一
下c_c c_c观看吧。
<quote>Command: (default View) <quote>
回车
<quote>View Command: evince test_xecjk.pdf</quote>
回车

在弹出的evince窗口中,能不能看到参考文献?

ps.更多关于参考文献的格式设置和使用说明,请详细阅读auctex文档。


On Sep 9, 11:03 am, "yyz@tongji" <caoanroad4...@gmail.com> wrote:

> On Sep 8, ...
>
> read more >>

Reply all
Reply to author
Forward
0 new messages