命令版权符号怎么输入

版权符号怎么输入  时间:2021-04-04  阅读:()
CTEXFAQ(常见问题集)Version0.
4beta(88)吴凌云(aloft@ctex.
org)2005年12月19日Rev.
1.
25本文的大部分内容都来自于CTEX论坛上的讨论.
版本号为0.
4,一共收录有88个问题.
这份常见问题集会不断更新,请到CTEX网站的主页下载它的最新版本.
本文档的主要目的是帮助你快速的找到问题的答案,因此可能不是非常详细.
如果你想系统的学习TEX和LATEX请参考专门的资料(见问题85和问题86).
符号表示后面的内容需要比较深的LATEX知识.
表示后面的内容带有试验性质,有时会带来意想不到的结果,应尽量避免在实际中使用.
新增171835688284修订312142039404453Copyrightc2003–2005CTEXandalltheContributorstoCTEXFAQ.
Allrightsreserved.
目录A关于FAQ51CTEX是干什么的52CTEX网站包括几个部分53这个FAQ的目的是什么54我可以打印、传播、转载这份文档的内容吗5B基本概念55什么是TEX56LATEX是什么67什么是AMS-TEX/AMS-LATEX68TEX和LATEX是什么关系69LATEX2.
09和LATEX2ε有什么区别610MiKTEX、fpTEX、teTEX、CTEX又是什么关系711什么是CTAN7CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORG目录2C安装升级712哪里可以下载CTEX中文套装软件713哪里可以下载MiKTEX的最新版本714哪里能找到我想要的宏包815如何升级现有的MiKTEX816我下载了一些新的宏包,该如何安装到我的系统中去817CTEX中文套装软件的Basic和Full版本都有什么区别818CTEX-Fonts、CTEX-CS、CTEX-Ext都是干什么的和CTEX中文套装有什么关系9D新手入门919我是新手,该如何开始920能否举一个简单的英文排版例子921用什么编辑工具来编辑LATEX文件1022什么是导言区(preamble)1023什么是文件名数据库怎么刷新10E中文支持1124比较一下CJK与CCT的优缺点1125能否举一个简单的CCT中文排版例子1126能否举一个简单的CJK中文排版例子1227在CJK中如何使段首缩进两个中文字符宽度1228在CJK中如何调整汉字的间距1229CJK和CJK*有何不同1230中英文混排时为何无法正确分行1331什么是点阵字库和矢量字库1332在CJK中都可以使用哪些矢量字库1433两种类型矢量字库会不会发生冲突1434如何生成支持中文拷贝粘贴的PDF文件1435如何在PlainTEX中使用中文14F文档排版1436如何使首段段首也缩进1437如何设置双倍或者更大的行间距1438如何注释掉一大段内容,不做编译1539如何生成分栏的文档1540如何使得双栏文档保持底部对齐1541如何在双栏文档中使用通栏的摘要1642如何产生全部横排的文档1743如何使文档中的某一页横排1744如何使用NewTimeRoman字体17CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORG目录3G数学公式18G.
1编号1845如何实现定理、定义、推论等的统一编号1846如何让公式编号中使用当前章节编号做前缀1847如何实现如(1a)(1b)这种公式编号1848如何让一个公式编号表示为另一个公式编号的变化形式19G.
2字体1949实数域R或复数域C等的字体该用什么命令1950书中向量常用斜体加黑体表示,该用什么字体命令排版20G.
3其它2051如何使上下限出现在求和、积分符号的上下方而不是右边2052如何实现上下方能输入公式文字且可伸长的等号或者箭头符号20H图形表格21H.
1图形2153LATEX如何使用图形2154LATEX支持哪些图形格式2255DVI里不能显示EPS图片23H.
2表格2356表格中使用p参数的列如何改变对齐方式2357如何生成固定宽度的表格24H.
3浮动对象2458浮动对象和上下文之间的距离太大了,怎么办2459分栏文档中如何使用单栏或者通栏浮动对象2560分栏文档中为何不能设定通栏浮动对象的位置25I参考文献2661如何将文献引用作为上标出现2662如何排序并压缩连续的引用,产生如[2,4–8]形式的引用2663如何定制自己的参考文献样式2664如何才能把参考文献条目放在正文中2665能否生成反向引用(从参考文献指向引用的正文)2766如何让每章或者每节都有单独的参考文献2767如何产生多个参考文献列表2768如何将多篇参考文献合并在一个条目中列出28J其它专题28CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORG目录4J.
1脚注2869如何在表格中使用脚注2870如何在章节标题中使用脚注2971如何在图表的标题中使用脚注2972如何重复使用相同内容的脚注30J.
2目录3173怎样象第几章一样,将参考文献也加到目录3174手工加入的目录项页码错误,生成的书签链接也不对,怎么回事31J.
3特殊符号3175如何输出和符号3176如何显示可见的空格符号3277如何显示带圈的符号32K高级技术3278\makeatletter和\makeatother是干什么用的3279如何查询LATEX命令和参数的缺省定义33L辅助工具3380WinEdt和GSview经常出现过期和注册提示,如何解决3381如何去掉WinEdt的自动断行和自动续行3382如何让WinEdt显示行号3383Yap里如何预览带有颜色的EPS图片33M错误处理3384Error:pdatex(lesimsun.
ttf):can'tndtable'maxp'33N帮助文档3485能否推荐一些比较好的中文资料3486能否推荐一些比较好的英文资料3487有没有关于LATEX宏包的详细说明3588我的问题没找到答案,或者有答案但是解决不了我的问题,怎么办35参考文献35Contributors36ChangeListofv0.
437CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGB基本概念5A关于FAQ1CTEX是干什么的CTEX是一个关于TEX的中文网站,CTEX是中文TEX的缩写.
CTEX的宗旨是为中国广大的TEX用户提供力所能及的帮助.
目前CTEX的主要工作包括维护CTEX网站,为用户提供学习交流的场所;开发中文TEX系统安装配置软件;致力于TEX文档的中文化工作.
CTEX的服务器和网络接入得到了中国科学院数学与系统科学研究院的支持.
2CTEX网站包括几个部分目前CTEX主要有三个部分:http://www.
ctex.
org主页,发布最新软件、消息http://bbs.
ctex.
org论坛,提问、讨论问题ftp://ftp.
ctex.
orgFTP,提供软件资料下载、交流3这个FAQ的目的是什么Revisedv0.
4本FAQ是为了收集CTEX论坛上经常出现的问题以及解答,以便大家遇到问题时能方便迅速地找到帮助.
本文档也适合初学者作为学习TEX和LATEX的参考资料.
FAQ中的解答力求正确完整,大部分都经过试验确认.
除了常见问题,本文档也收录一些难题和当前为止比较好的解决方法.
如果你对FAQ中的问题有更好的方法,欢迎到CTEX论坛上提出,或者联系本文档的维护人.
在经过确认以后,你的方法将被收录到FAQ的新版本中.
4我可以打印、传播、转载这份文档的内容吗可以.
本文档采用自由软件组织颁布的GNU自由文档许可证.
因此,你可以在保证文档的完整性前提下自由拷贝、传播这份文档.
你也可以摘录、转载这份文档中的部分内容,但是要注明来源以及保证所有包含摘录内容的文档也都是自由文档,也就是可以免费得到的.
详情请阅读GNU自由文档许可证.
B基本概念5什么是TEX电子排版系统的出现给印刷出版业带来了一场革命,利用电子计算机及各种辅助设备,可以完成从文稿、图表的录入、编辑、修改、组版,直至得到各种不同用途、不同质量的输出结果.
利用电子排版系统,可以减轻劳动强度,缩短出版周期.
目前世界上有许多电子排版系统.
这些系统各有特点,也各有自己的适用范围.
TEX就是一种优秀的电子排版系统.
TEX提供了一套功能强大并且十分灵活的排版语言,它多达900多条指令,并且TEX有宏功能,用户可以不断地定义自己适用的新命令来扩展TEX系统的功能.
许多人利用TEX提供的宏定义功能对TEX进行了二次开发,其中比较著名的有美国数学学会推荐的非常适合于数学家使用的AMS-TEX以及适合于一般文章、报告、书籍的LATEX系统.
CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGB基本概念6TEX系统是公认的数学公式排得最好的系统.
美国数学学会(AMS)鼓励数学家们使用TEX系统向它的期刊投稿.
世界上许多一流的出版社如Kluwer、Addison-Wesley、牛津大学出版社等也利用TEX系统出版书籍和期刊.
大部分的TEX系统都是免费的.
Knuth教授还公开了他的全部源程序.
TEX系统目前已经在数百种计算机系统上得到实现.
TEX系统的排版结果DVI(DeViceIndependent)文件与输出设备无关.
DVI文件可以显示、打印、照排,几乎可以在所有的输出设备上输出.
TEX排版源文件及结果在各种计算机系统上互相兼容.
6LATEX是什么LeslieLamport开发的LATEX是当今世界上最流行和使用最为广泛的TEX宏集.
它构筑在PlainTEX的基础之上,并加进了很多的功能以使得使用者可以更为方便的利用TEX的强大功能.
使用LATEX基本上不需要使用者自己设计命令和宏等,因为LATEX已经替你做好了.
因此,即使使用者并不是很了解TEX,也可以在短短的时间内生成高质量的文档.
对于生成复杂的数学公式,LATEX表现的更为出色.
LATEX自从八十年代初问世以来,也在不断的发展.
最初的正式版本为2.
09,在经过几年的发展之后,许多新的功能,机制被引入到LATEX中.
在享受这些新功能带来的便利的同时,它所伴随的副作用也开始显现,这就是不兼容性.
标准的LATEX2.
09,引入了"新字体选择框架"(NFSS)的LATEX,SLiTEX,AMS-LATEX等等,相互之间并不兼容.
这给使用者和维护者都带来很大的麻烦.
为结束这中糟糕的状况,FrankMittelbach等人成立了LATEX3项目小组,目标是建立一个最优的,有效的,统一的,标准的命令集合.
即得到LATEX的一个新版本3.
这是一个长期目标,向这个目标迈出第一步就是在1994年发布的LATEX2ε.
LATEX2ε采用了NFSS作为标准,加入了很多新的功能,同时还兼容旧的LATEX2.
09.
LATEX2ε每6个月更新一次,修正发现的错误并加入一些新的功能.
在LATEX3最终完成之前,LATEX2ε将是标准的LATEX版本.
7什么是AMS-TEX/AMS-LATEXAMS-TEX是美国数学会提供的,在PlainTEX基础上开发的TEX宏集.
它主要用于排版含有很多数学符号和公式的科技类文章或书籍.
AMS-TEX给出了许多高级命令,可以让使用者很方便地排版大型的,复杂的数学公式.
AMS-TEX排版数学公式等的功能通过AMS-LATEX中的宏包amsmath在LATEX中得到实现.
AMS-TEX目前的版本为2.
1.
AMS-LATEX包括两部分,一是上面提到的amsmath宏包,主要的目的是用来排版数学符号和公式.
另一部分是amscls,提供了美国数学会要求的论文和书籍的格式.
AMS-LATEX目前的版本为2.
0.
在提供AMS-TEX和AMS-LATEX的同时,美国数学会还提供一套数学符号的字库,AMSFonts.
这套字库中增加了很多TEX的标准字库ComputerModern所没有的一些数学符号,粗体数学符号等.
AMSFonts现在的版本为2.
2,有Metafont和Type1两种字库提供下载.
8TEX和LATEX是什么关系LATEX是TEX中的一种格式(format),是建立在TEX基础上的宏语言,也就是说,每一个LATEX命令实际上最后都会被转换解释成几个甚至上百个TEX命令.
但是,普通用户可以无需知道这中间的复杂联系.
就象编程的时候如果使用一些已经编译好的函数库和模板可以使我们仅仅用几个命令就实现很多功能一样,LATEX根据人们排版文章的习惯,定义了许多命令和模板,通过这些命令和模板,我们可以很快的得到漂亮的排版结果.
9LATEX2.
09和LATEX2ε有什么区别LATEX2.
09是LATEX在LATEX2ε之前的一个版本(参见问题6).
LATEX2ε对LATEX2.
09做了很大的改进,增加了很多新功能.
从文件内容上看,两者最显著的不同在于LATEX2.
09使用\documentstyle命令定义文档类型以及所包含宏包,如CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGC安装升级7\documentstyle[twoside,epsfig]{article}而LATEX2ε使用\documentclass命令定义文档类型,用\usepackage命令包含宏包,如\documentclass[twoside]{article}\usepackage{epsfig}如果你使用的不是几十年前的老机器,你的系统的LATEX都是LATEX2ε版本.
LATEX2.
09文件一般都可以在LATEX2ε系统中以兼容方式编译.
但是兼容方式编译速度慢,而且很多LATEX2ε的新功能无法使用.
如果你不是需要编译以前的LATEX2.
09文件,你根本无需使用LATEX2.
09,也不用知道LATEX2.
09与LATEX2ε的差别.
大部分LATEX2.
09文件都可以通过用\documentclass命令和\usepackage命令代替\documentstyle命令修改为LATEX2ε格式.
有时可能需要一些特殊宏包,例如latexsym,对旧的LATEX2.
09命令提供支持.
10MiKTEX、fpTEX、teTEX、CTEX又是什么关系TEX在不同的硬件和操作系统上有不同的实现版本.
这就像C语言,在不同的操作系统中有不同的编译系统,例如Linux下的gcc,Windows下的VisualC++等.
有时,一种操作系统里也会有好几种的TEX系统.
目前常见的Unix/Linux下的TEX系统是teTEX,Windows下则有MiKTEX和fpTEX.
CTEX指的是CTEX中文套装的简称,是把MiKTEX和一些常用的相关工具,如GSview,WinEdt等包装在一起制作的一个简易安装程序,并对其中的中文支持部分进行了配置,使得安装后马上就可以使用中文.
11什么是CTANCTAN是英文ComprehensiveTEXArchiveNetwork的首字母缩写,直译成中文就是综合TEX文件网络,它包含有三个主服务器和几十个镜像服务器,以FTP和WWW方式向所有的TEX用户提供文件服务.
CTAN可以说几乎收罗了世界上所有的TEX相关软件、文档,并保证不断更新.
你可以访问http://www.
ctan.
org来得到更详细的信息.
在CTAN中搜索文件可以参见问题14.
C安装升级12哪里可以下载CTEX中文套装软件Revisedv0.
4CTEX首页上的下载中心:http://www.
ctex.
org/CTeXDownload或者直接到CTEX的FTP服务器上下载:ftp://ftp.
ctex.
org/pub/tex/systems/ctex/13哪里可以下载MiKTEX的最新版本可以到MiKTEX的主页:http://www.
miktex.
org或者CTEX提供的CTAN镜像中下载:ftp://ftp.
ctex.
org/CTAN/systems/win32/miktex/setup/setup.
exe然后执行setup.
exe,在其提供的站点列表中选择合适的网站(CTEXFTP是列表中唯一的中国大陆网站),按照程序提示即可完成下载.
CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGC安装升级814哪里能找到我想要的宏包Revisedv0.
4CTAN(见问题11)可以说几乎收罗了世界上绝大多数的TEX相关软件、文档,并保持更新,为广大用户提供了方便.
虽然CTAN的目录结构很有规则,并不算太难找,但对于许多对其目录结构不熟悉的人来说,还是一个问题.
特别是很多初学者,经常找不到想要的东西.
CTAN提供了一个搜索引擎http://www.
ctan.
org/search.
html通过它,你可以确定你需要的文件在CTAN目录中的相对位置,然后就可以在任何一个CTAN镜像中下载了.
CTAN在全世界有几十个镜像服务器,每日同步更新,本站的FTP也是其中之一.
你可以从搜索引擎提供的列表中挑选一个离你最近服务器下载.
注意一点:不同的镜像服务器存放CTAN的根目录可能不同.
例如,CTEXFTP是在/CTAN/目录下.
把搜索引擎的结果加到这个目录后面,就是这个文件在我们的FTP上的路径了.
15如何升级现有的MiKTEX无论是CTEX中文套装包含的MiKTEX还是单独安装的MiKTEX都可以使用以下方法升级(只适用于MiKTEX2.
2以后版本)运行开始菜单中MiKTEX组中的MiKTEXUpdateWizard,在其中提供的站点列表中选择合适的网站,则程序会自动完成下载所需的文件并升级.
也可以使用安装时的程序setup.
exe把最新的内容下载到你的硬盘上以后,再运行MiKTEXUpdateWizard并选择从本地(localfolder)升级.
16我下载了一些新的宏包,该如何安装到我的系统中去如果你得到的宏包已经是编译过的,也就是已经有.
sty或者.
cls文件,你只需把这些文件放在localtexmf\tex\latex\下的某个子目录中,可以自己建一个.
然后你还要让TEX系统知道这个新的宏包的存在,你需要刷新系统的文件名数据库(见问题23).
现在你可以使用这个宏包了.
你也可以把这些宏包文件和你的TEX源文件放在同一目录下,这种情况下你不需要刷新系统的文件名数据库,但只有同一个目录下的文件可以使用这些宏包.
如果你拿到的是宏包的源文件,一般来说都包含两个文件:一个扩展名为.
ins,另一个扩展名为.
dtx.
此外,通常会有一个readme.
txt对宏包进行简要的说明.
你应该先阅读这个文件,接着对.
ins文件运行LATEX命令,这会产生一个或者数个.
sty文件以及其它相关文件.
然后参照上面的方法结合宏包说明文件的要求,把生成的文件加入你的TEX系统中.
你还可以直接对.
dtx文件运行LATEX从中产生宏包的帮助文档.
更详细的说明可以参见lshort[1].
17CTEX中文套装软件的Basic和Full版本都有什么区别Newv0.
4CTEX根据不同用户的要求制作了Basic和Full两个不同大小版本的CTEX中文套装.
他们之间的区别仅在于其中的MiKTEX包含的内容.
Basic版本中的MiKTEX只有最基本的LATEX系统.
你可以通过MiKTEX提供的自动安装功能添加所需的LATEX组件和宏包.
Basic版本所需的安装空间为一百多兆.
Full版本中包含的是完整的MiKTEX,适用于需要很多功能而且有较大硬盘空间的用户.
Full版本需要六百多兆的安装空间.
CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGD新手入门918CTEX-Fonts、CTEX-CS、CTEX-Ext都是干什么的和CTEX中文套装有什么关系Newv0.
4除了CTEX中文套装,CTEX还制作了几个相关的安装包,分别是CTEX-Fonts、CTEX-CS和CTEX-Ext.
CTEX-Fonts中包含了几种常用的中文字体的Type1字库和相应的配置文件.
在没有安装CTEX-Fonts时,CTEX缺省使用Windows系统中的TrueType字库.
关于两种字库的差别,参见问题31和问题32.
此外,对于Windows2000以及之后的Windows操作系统,安装CTEX-Fonts还可以避开其中宋体字库的问题(参见问题84).
目前包含的字体有宋体、仿宋体、楷体、黑体、隶书和幼圆六种.
CTEX-CS是CTEX套装中的中文安装部分,包括CJK和CCT的所有文件.
对于使用CTEX套装的用户,CTEX-CS可以用于将中文相关的设置恢复到CTEX套装的初始状态.
对于没有安装CTEX套装的用户,则可以在用户自行安装的MiKTEX中增加中文支持.
此外,CTEX-CS还支持为fpTEX(即TEXLive)增加中文支持.
CTEX-Ext是CTEX套装的扩展部分,用于一些TEX相关工具的中文设置和安装.
目前的版本包括ConTEXt的中文设置安装.
D新手入门19我是新手,该如何开始首先,我们建议你至少阅读一些简单的教材,例如lshort中文版[1],对LATEX有一个基本的了解.
在安装系统方面,如果你不需要中文支持,可以安装MiKTEX或者fpTEX,如果需要用到中文,建议使用CTEX中文套装来学习使用.
否则,光是中文的设置安装就可能使你焦头烂额.
在Linux下,你可以使用teTEX.
在安装完系统以后,先输入一个最简单的例子(英文的例子参见问题20,中文的例子参见问题25和问题26)来看看系统是否正确安装了.
之后你就可以开始使用了.
如果遇到问题,建议使用一个尽可能简单的例子来测试你的问题,否则的话,在一个复杂文件里排除错误会花掉你很多的精力.
而且由于大的文档上下文的命令互相影响,会使得调试变得困难,特别是对初学者来说.
如果你使用的是别人的模板,那么遇到问题最好的解决办法就是问模板的作者,请求他的帮助.
如果是一般的问题,你可以到CTEX论坛或者其他国内外的TEX网站上请求帮助.
在CTEX网站上你可以找到这些网络链接.
20能否举一个简单的英文排版例子Revisedv0.
4\documentclass{article}\begin{document}Thisisatestfile.
\end{document}这个例子需要保存为.
tex后缀的文件,然后用LATEX编译,生成的DVI文件可以用DVI浏览器进行查看或者用dvips转换成PostScript文件.
假设文件名是test.
tex,生成PostScript文件的完整编译过程是:latextestdvipstestCTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGD新手入门1021用什么编辑工具来编辑LATEX文件LATEX文件是标准的文本文件,任何一个文本编辑工具都可以编辑LATEX文件.
但是有些编辑器针对LATEX文件作了设置和优化,例如增加可以直接调用LATEX编译程序的菜单或者按钮,使得你可以更方便的进行编辑、编译工作.
在Windows中对LATEX支持最好的是WinEdt,针对MiKTEX和fpTEX都有预制好的菜单和工具条按钮,安装完就可以使用.
WinEdt还可以通过工具条输入许多数学符号,免去了记忆的烦恼.
在各种细节上,例如项目管理、彩色关键字、括号匹配等等,WinEdt对LATEX的支持都很完善,你可以在使用中慢慢发掘他的强大功能.
还有一部分用户喜欢使用UltraEdit和Editplus,这两个都是功能强大的通用编辑工具,你可以针对LATEX定制菜单和工具条.
缺点就是这些都要你自己动手,在一些细的方面,也没有WinEdt考虑得周到,毕竟不是专门针对LATEX的编辑器.
此外,还有一些其他的编辑器,如WinTeX、TeXnicCenter等,如果你感兴趣,可以一一尝试,挑一个自己喜欢的来编辑LATEX文件.
在Linux/Unix下,我们推荐使用vi或者Emacs作为LATEX编辑器.
22什么是导言区(preamble)LATEX文档的标准结构是\documentclass{article}.
.
.
\begin{document}.
.
.
\end{document}.
.
.
在\begin{document}和\end{document}之间的是我们的正文部分.
而在\documentclass{article}和\begin{document}之间的部分,通常用于定义一些全局命令和参数,这个部分就称为导言区,英文是preamble.
在\end{document}之后的部分会被LATEX完全忽略,可以用来写一些关于文档的注释,或者暂时不想包含到正文中去的内容,也有人把它叫做postamble,因为它和导言区(preamble)处在完全相对的位置.
23什么是文件名数据库怎么刷新TEX系统通过这个数据库记录了所需要的各种文件的名字和具体目录位置.
每次你往系统中添加文件后,都要记得刷新这个数据库,否则TEX有可能找不到需要的文件.
刷新文件名数据库的具体命令取决于你使用的TEX系统.
teTEX和fpTEX的命令是texhashMiKTEX用户可以在Dos窗口中输入以下命令initexmf--update-fndb或者使用MiKTEX提供的图形界面工具MiKTEXOptions.
在开始菜单中找到MiKTEXOptions,打开点击General页上的RefreshNow按钮即可.
CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGE中文支持11E中文支持24比较一下CJK与CCT的优缺点CJK比CCT的优越之处有以下几点:1.
字体定义采用LATEXNFSS标准,生成的DVI文件不必像CCT那样需要用patchdvi处理后才能预览和打印.
而且一般GB编码的文件也不必进行预处理就可直接用LATEX命令进行编译.
2.
可使用多种TrueType字体和Type1字体,生成的PDF文件更清楚、漂亮.
3.
能同时在文章中使用多种编码的文字,如中文简体、繁体、日文、韩文等.
当然,CCT在一些细节上,如字体可用中文字号,字距、段首缩进等更符合中文的习惯.
而CJK就没有针对中文习惯指定特殊的排版标准.
目前,CCT的作者已经推出了最新版的CCT,可以使用CJK的字库,从而也避免了预处理和patchdvi的过程,使用更方便,排版效果更美观了.
最新版的CCT可以在ftp://ftp.
cc.
ac.
cn/pub/cct/下载,或者使用CTEX提供的工具CTEX-CS升级.
25能否举一个简单的CCT中文排版例子一个简单的老版本CCT格式的例子是:\documentclass{cctart}\begin{document}\kaishu这是中文楷体字.
\end{document}这个例子需要保存为.
ctx后缀的文件,然后用cct命令进行预处理,生成同名.
tex文件.
再用LATEX编译,生成的DVI文件需要patchdvi进行处理后才能用DVI浏览器进行查看或者用dvips转换成PostScript文件.
假设文件名是test.
ctx,完整的编译过程是:ccttestlatextestpatchdvi-r600x600-btest.
dvitemp.
dvideltest.
dvirentemp.
dvitest.
dvidvipstest新版的CCT除了保留原来的处理方式以外,增加了两种新的处理方式.
第一种是用TEX的处理来代替原来的cct.
exe的预处理.
这种方式的源文件和老的文件相同,但是不用再存成.
ctx为后缀的文件,也不用cct命令进行预处理.
除此之外,其余和老的处理方式基本相同.
第二种处理方式是采用CJK的中文字库,需要在系统中安装好CJK字库.
与第一种方式的主要区别就在于去掉了patchdvi处理DVI文件的需要.
使用上,是在\documentclass命令中加上参数CJK.
具体的例子如下:CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGE中文支持12\documentclass[CJK]{cctart}\begin{document}\kaishu这是中文楷体字.
\end{document}这个例子可以象英文文档一样的编译(见问题20)得到正确的输出.
26能否举一个简单的CJK中文排版例子在安装好CJK的系统中,下面这个例子可以象英文文档一样的编译(见问题20)得到正确的输出.
\documentclass{article}\usepackage{CJK}\begin{document}\begin{CJK*}{GBK}{kai}这是中文楷体字.
\end{CJK*}\end{document}27在CJK中如何使段首缩进两个中文字符宽度在CJK环境中使用命令\CJKindent28在CJK中如何调整汉字的间距CJK会在两个汉字之间插入一个\CJKglue,因此我们修改\CJKglue的定义就可以调整汉字的间距.
用法是\renewcommand{\CJKglue}{\hskipbpluspminusm}其中b、p和m都是TEX长度,如0.
05pt.
执行以上命令后,汉字的标准间距就是b,在需要的时候向上向下调整,调整幅度分别不超过p和m.
CJK的缺省值是\hskip0ptplus0.
08\baselineskip.
29CJK和CJK*有何不同CJK宏包有两种不同的处理方式.
一个是\begin{CJK}.
.
.
.
.
.
.
\end{CJK}称为CJK模式;另一个是\begin{CJK*}.
.
.
.
.
.
.
\end{CJK*}CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGE中文支持13称为CJK*模式.
两个模式的区别在于CJK*会忽略CJK字符之间的空格,这是我们中文的习惯.
而CJK则使用英文的习惯,即词之间保留空格,当然如果空格多于一个,TEX也会忽略多余的空格.
两种方式各有利弊.
首先来看CJK模式,它的好处是符合TEX的英文处理习惯,无需对空格进行额外处理,坏处是不符合中文习惯.
一个经常发生的问题就是,由于TEX将分行符也视为空格,因此就造成中文字符间产生多余的空格,使得排版结果很难看.
解决方法是在行尾加上注释字符%来告诉TEX忽略两行间的分行符.
因此,我们不建议使用CJK模式.
CJK*模式由于自动忽略中文字符之间的所有空格,因此没有上面的这种副作用.
但是这也带来了另一方面的问题,就是如果想在中文字符中间加入空格就必须加以保护,避免被忽略.
加保护的方法是在空格前面加上\字符.
实际上CJK*模式忽略中文字符后面的空格,因此中文后面如果接着英文,必须加上保护的空格\或者~符号,否则可能造成断行错误(参见问题30).
两种模式还可以通过命令互相转换,使用\CJKnospace则进入CJK*模式,用\CJKspace则进入CJK模式.
30中英文混排时为何无法正确分行首先,英文标点符号后要留空格,这是英文的习惯,否则TEX无法断句.
其次,要用空格隔开中英文字符,TEX才能正确分行.
但是如果是用正常的空格,由于空格间隙太大,容易造成比较难看的排版效果.
因此,CJK宏包重新定义了符号~的意义.
~的原始定义是不可断行的空格,CJK将其重定义成一个比较合适的弹性距离,大约相当于四分之一个汉字宽度,用于分隔中英文字符.
我们通过使用命令\CJKtilde来实现~的重定义.
如果要恢复原始定义,可以用命令\standardtilde注意:在CJK*模式下中文字符后面的空格会被忽略,因此中文字符后面必须加上保护的空格\或者~符号来隔开英文字符.
31什么是点阵字库和矢量字库我们都知道,各种字符在电脑屏幕上都是以一些点来表示的,因此也叫点阵.
最早的字库就是直接把这些点存储起来,就是点阵字库.
常见的汉字点阵字库有16x16,24x24等.
点阵字库也有很多种,主要区别在于其中存储编码的方式不同.
点阵字库的最大缺点就是它是固定分辨率的,也就是每种字库都有固定的大小尺寸,在原始尺寸下使用,效果很好,但如果将其放大或缩小使用,效果就很糟糕了,就会出现我们通常说的锯齿现象.
因为需要的字体大小组合有无数种,我们也不可能为每种大小都定义一个点阵字库.
于是就出现了矢量字库.
矢量字库是把每个字符的笔划分解成各种直线和曲线,然后记下这些直线和曲线的参数,在显示的时候,再根据具体的尺寸大小,画出这些线条,就还原了原来的字符.
它的好处就是可以随意放大缩小而不失真.
而且所需存储量和字符大小无关.
矢量字库有很多种,区别在于他们采用的不同数学模型来描述组成字符的线条.
常见的矢量字库有Type1字库和TrueType字库.
CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGF文档排版1432在CJK中都可以使用哪些矢量字库在CJK中可以使用Type1字库和TrueType字库,都能产生很好效果的输出,但有许多细微的差别,输出结果取决于所用的工具.
下面根据转换工具和输出文件类型来比较它们的差异.
1.
使用dvips生成PostScript文件dvips可以直接使用Type1字库,生成的PostScript文件中包含了字符的矢量描述,具有很好的缩放效果.
dvips不能直接使用TrueType字库,因此必须通过ttf2pk生成中间的pk字库,这是一种点阵字库,所以生成的PostScript文件在效果较差.
2.
使用dvipdfm生成PDF文件和dvips类似,可以直接使用Type1字库或者通过ttf2pk间接使用TrueType字库.
3.
使用pdfLATEX生成PDF文件可以直接使用两种字库,因此都可以产生效果很好的输出.
4.
使用dvipdfmx生成PDF文件可以直接使用两种字库,因此都可以产生效果很好的输出.
而且直接使用TrueType字库时生成的PDF文件是唯一能支持对中文内容进行正常拷贝粘贴的.
33两种类型矢量字库会不会发生冲突不会,每个工具都有自己的cong和map文件按一定的顺序查询有哪些字库可以使用,来决定使用哪种字库.
34如何生成支持中文拷贝粘贴的PDF文件生成可以拷贝粘贴中文的PDF文件目前只有dvipdfmx(原名dvipdfm-cjk)可以做到,它必须配置成直接使用中文TrueType字库.
35如何在PlainTEX中使用中文Newv0.
4CCT支持PlainTEX中使用中文.
在最新版的CCT中,只需在TEX源文件的开始加上如下命令:\let\CCTCJKfonts=1\inputCCT.
styF文档排版36如何使首段段首也缩进使用indentrst宏包:\usepackage{indentrst}37如何设置双倍或者更大的行间距使用命令\renewcommand{\baselinestretch}{倍数}CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGF文档排版1538如何注释掉一大段内容,不做编译用命令\iffalse和\fi把需要注释的内容包含起来,这样LATEX编译的时候就会忽略这些内容,不做编译.
也可以使用verbatim宏包提供的comment环境:.
.
.
\usepackage{verbatim}.
.
.
\begin{comment}Thisiscomment.
\end{comment}.
.
.
39如何生成分栏的文档Revisedv0.
4如果全文都是双列分栏格式,可以在\documentclass命令中加入参数twocolumn.
例如:\documentclass[twocolumn]{article}如果要生成单双列混合的分栏格式,或者超过两列的分栏格式,则要用到multicol宏包的multicols环境.
\usepackage{multicol}然后将需要多列的地方使用:\begin{multicols}{列数}和\end{multicols}包含起来.
40如何使得双栏文档保持底部对齐Revisedv0.
4在LATEX标准文档类中使用twocolumn选项产生双栏格式文档的时候,如果一页的内容不足以排满页面时,LATEX的结果是先排满左栏,然后再排版右栏.
这样就造成了两栏的长度不相等,底部不齐.
很多时候我们不希望这种排版结果.
这个问题只有在用标准文档类的twocolumn模式的时候才会遇到,使用multicol宏包就可以避免这个问题(参见问题39).
但是multicol宏包也有一些缺点,例如不允许单栏的浮动对象(参见问题59).
要使标准文档类的twocolumn模式下也能做到双栏底部对齐,可以通过手工调整分栏的位置.
在twocolumn模式下\newpage命令使LATEX开始在新的一栏上排版,如果单前栏是左栏,就换到右栏上开始排版.
在合适的地方使用\newpage命令可以使得双栏底部对齐(注意,不能用\clearpage命令,这个命令CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGF文档排版16会开始在新的一页上排版,而不管当前在哪一栏上).
几乎没有人愿意使用这种方法,不仅因为它需要你手工计算需要插入命令的位置,每次改动文档都有可能需要变动\newpage命令的位置,而且对于一些自动生成的文档内容(例如参考文献和索引),要插入\newpage命令十分困难.
ushend宏包通过修改LATEX核心定义来解决这个问题.
使用它提供的\flushend命令可以使得双栏底部对齐,而\raggedend命令则取消底部对齐.
\flushend命令会在宏包装入的时候自动运行.
ushend宏包只对文档最后一页有效,也就是说所有中间的强制换页,或者章节的自动换页导致的双栏底部不齐现象都无法解决.
balance是另一个针对该问题的宏包,它比ushend宏包更加完善,而且对整个文档的任何位置都有效.
balance宏包提供了\balance命令来打开双栏底部对齐机制,\nobalance命令来关闭这个机制.
和ushend宏包不同,它在装入的时候缺省不打开对齐机制,因此需要在文档中加入\balance命令来启用底部对齐.
在使用这些宏包的时候需要注意,单栏的浮动对象有可能破坏这些宏包的对齐机制.
这种时候需要手工调整浮动对象的位置来改善排版效果.
这也是multicol宏包不支持单栏浮动对象的原因之一.
41如何在双栏文档中使用通栏的摘要在排版双栏文章的时候最经常遇到的一个问题就是如何产生通栏(不分栏)的摘要.
解决这个问题的方法是:\documentclass[twocolumn]{article}.
.
.
\begin{document}.
.
.
\title{.
.
.
}\author{.
.
.
}\twocolumn[\begin{@twocolumnfalse}\maketitle\begin{abstract}.
.
.
\end{abstract}\end{@twocolumnfalse}].
.
.
\end{document}注意,\maketitle命令必须放在示例中的位置,否则标题结束后会另起一页.
但是标题和作者的定义可以放在前面的位置.
上面这个方法会带来一个副作用,那就是\thanks命令在\title和\author中失去了作用,无法产生脚注.
这个问题可以通过附加一小段代码来解决:CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGF文档排版17.
.
.
\title{.
.
.
}\author{.
.
.
\thanks{}}%这里用一个空的\thanks\twocolumn[.
.
.
]{\renewcommand{\thefootnote}{\fnsymbol{footnote}}%如果使用数字做脚注标号,则不需要这一行\footnotetext[1]{真正的脚注内容}}.
.
.
abstract宏包提供了一个\saythanks命令和onecolabstract环境来简化这个稍嫌复杂的过程.
它们的用法是:.
.
.
\title{.
.
.
}\author{.
.
.
\thanks{.
.
.
}}\twocolumn[\maketitle\begin{onecolabstract}.
.
.
\end{onecolabstract}]\saythanks.
.
.
42如何产生全部横排的文档使用文档类的landscape参数,例如\documentclass[landscape]{article}为了产生正确的结果,dvips必须加上-tlandscpae参数,dvipdfm/dvipdfmx必须加上-l参数.
43如何使文档中的某一页横排使用lscape宏包提供的landscape环境,例如.
.
.
\usepackage{lscape}.
.
.
\begin{landscape}Thisisalandscapepage.
\end{landscape}.
.
.
将产生一个横排的页面,但是只有在PostScript或者PDF文件中才能看到正确的效果.
44如何使用NewTimeRoman字体Revisedv0.
4用times宏包就可以把文本的缺省字体换成TimesNewRoman字体.
如果你安装有MathTime字库,那么还可以使用mathtime宏包来把数学环境中的字体都变成TimesNewRoman字体.
例如\usepackage{times}\usepackage[mtbold,mtpluscal,mtplusscr]{mathtime}CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGG数学公式18G数学公式G.
1编号45如何实现定理、定义、推论等的统一编号现在很多文章的定理、定义、推论、例子都采用统一编号,不再是独立编号.
如定义1.
1,接下来可能是定理1.
2,然后推论1.
3,等等.
这可以用如下的定义来完成:\newtheorem{thm}{Theorem}[section]%如果不采用章节号做前缀,则不用[section]\newtheorem{defn}[thm]{Definition}%这句定义使得defn环境和thm共享编号\newtheorem{lem}[thm]{Lemma}%这句定义使得lem环境和thm共享编号46如何让公式编号中使用当前章节编号做前缀如果你想让LATEX产生的公式编号中包含当前的章节编号,例如第一节的公式编号是(1.
1)(1.
2),第二节的公式编号是(2.
1)(2.
2)等等,你可以重新定义\theequation:\renewcommand{\theequation}{\thesection.
\arabic{equation}}这么做有一个小问题,每当新的章节开始的时候,公式编号不会重新从1开始.
你不得不使用\setcounter在新的章节开始的时候把公式编号的计数器清零.
amsmath宏包提供了一个\numberwithin命令来自动完成这些工作.
\numberwithin{equation}{section}使得公式编号和章节编号联系在一起,而且章节编号改变时公式编号自动清零.
\numberwithin命令不光可以用于修改公式编号的格式,也可以用于将任意的两个计数器联系在一起.
47如何实现如(1a)(1b)这种公式编号使用amsmath宏包中的subequations环境.
例如:\begin{subequations}\begin{equation}A=B\end{equation}\begin{equation}C=D\end{equation}\end{subequations}A=B(1a)C=D(1b)所有在同一个subequations环境中的公式共享一个主编号(例子中的1).
如果想用数字代替字母作为公式的子编号,或者修改编号的格式,可以在subequations环境内部重新定义命令\theequation,例如CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGG数学公式19\begin{subequations}\renewcommand{\theequation}{\theparentequation-\arabic{equation}}\begin{equation}A=B\end{equation}\begin{equation}C=D\end{equation}\end{subequations}A=B(2-1)C=D(2-2)公式的主编号使用计数器parentequation,子编号使用计数器equation.
如果这种公式很多,在每一个subequations中都加上这么一句命令不是一个好的方法.
你可以重新定义一个新的环境:\newenvironment{mysubequations}{\begin{subequations}\renewcommand{\theequation}{\theparentequation-\arabic{equation}}}{\end{subequations}}然后使用自定义的环境代替subequations就可以了.
48如何让一个公式编号表示为另一个公式编号的变化形式我们经常使用一个公式编号加上某些符号如来表示公式的一个变化.
这样的公式编号可以通过amsmath宏包的\tag命令加上LATEX的引用机制来实现.
例如\begin{equation}\label{eq:original}A=B\end{equation}.
.
.
\begin{equation}\tag{\ref{eq:original}$'$}\label{eq:origprime}A=B+1\end{equation}.
.
.
~公式~\ref{eq:origprime}~是由公式~\ref{eq:original}~变化而来~.
.
.
A=B(3).
.
.
A=B+1(3).
.
.
公式3是由公式3变化而来.
.
.
类似的,你也可以实现其他形式的编号变化.
G.
2字体49实数域R或复数域C等的字体该用什么命令使用amsfonts宏包提供的\mathbb{字母}命令,例如:$x\in\mathbb{R}$and$c\in\mathbb{C}$x∈Randc∈CCTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGG数学公式2050书中向量常用斜体加黑体表示,该用什么字体命令排版使用bm宏包提供的\bm命令,例如:${\bmx}^T{\bmy}$xTyG.
3其它51如何使上下限出现在求和、积分符号的上下方而不是右边数学公式中求和、积分符号的上下限的位置取决于是行间公式还是独立公式.
在行间公式中,类似的上下限出现在符号的右边,而在独立公式中出现在符号的上下方.
这一规则可以通过命令\limits和\nolimits来改变.
行间公式缺省使用\nolimits而独立公式缺省使用\limits.
如果要改变缺省规则,就在符号后面,上下限之前加入上面的两个命令之一.
例如缺省情况是$$\sum_{i=1}^{n}i^2=0$$If$\sum_{i=1}^{n}i^2=0$then.
.
.
nXi=1i2=0IfPni=1i2=0then.
.
.
我们可以修改为$$\sum\nolimits_{i=1}^{n}i^2=0$$If$\sum\limits_{i=1}^{n}i^2=0$then.
.
.
Xni=1i2=0IfnPi=1i2=0then.
.
.
52如何实现上下方能输入公式文字且可伸长的等号或者箭头符号宏包amsmath提供了两个可以伸长的单箭头符号\xleftarrow[下方公式]{上方公式}和\xrightarrow[下方公式]{上方公式}示例如下:CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGH图形表格21$A\xleftarrow{n=0}B\xrightarrow[T]{n>0}C$An=0←Bn>0→TC至于其他样式的符号,我们可以利用amsmath提供的一些内部命令定义几个通用的ExtendSymbol命令来实现:.
.
.
\usepackage{amsmath}.
.
.
\makeatletter\def\ExtendSymbol#1#2#3#4#5{\ext@arrow0099{\arrowfill@#1#2#3}{#4}{#5}}\def\RightExtendSymbol#1#2#3#4#5{\ext@arrow0359{\arrowfill@#1#2#3}{#4}{#5}}\def\LeftExtendSymbol#1#2#3#4#5{\ext@arrow6095{\arrowfill@#1#2#3}{#4}{#5}}\makeatother三个命令的差别只在于符号上下的字符位置处理上.
简单解释一下五个参数的意义:前面三个参数用来组合生成最后的符号,第一个参数代表左端的符号,第二个参数的代表中间重复的符号,第三个参数代表右端的符号.
最后两个参数分别是符号下的字符串和符号上的字符串.
现在我们就可以利用ExtendSymbol来定义我们想要的符号了.
例如,定义一个长的双箭头\newcommand\myRightarrow[2][]{\RightExtendSymbol{|}{=}{\Rightarrow}{#1}{#2}}又如定义一个长的双向箭头\newcommand\myArrow[2][]{\ExtendSymbol{\Leftarrow}{=}{\Rightarrow}{#1}{#2}}使用的时候可以用宽度为0的rule支撑指定符号的最小长度也可以根据符号上下的字符长度来确定符号长度$$A\myRightarrow[\rule{3cm}{0cm}]{A=B}B$$$$A\myArrow[A=B^2]{B=A^2}B$$$$A\myArrow{B^2=A^2}B$$AA=B|================BAB=A2===A=B2BAB2=A2====B大家可以举一反三.
H图形表格H.
1图形53LATEX如何使用图形Revisedv0.
4由于DVI文件经常被转为PostScript文件,所以LATEX支持最好的是EPS格式(EncapsulatedPostScript,是PostScript语言的子集)的图形.
目前的LATEX2ε包含两个功能相同的图形宏包:graphics和graphicx宏包.
两者的差异是graphics宏包使用标准的LATEX参数语法规则,而graphicx版本则使用更为简便灵活的命名机制.
一个使用图形的简单例子是:CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGH图形表格22\documentclass{article}\usepackage{graphicx}\begin{document}\includegraphics{file.
eps}\end{document}因为\includegraphics不会结束当前段落,所以它能够在文本行中放置图形.
如果需要放置独立的图形,则需要用到gure浮动环境.
例如:\documentclass{article}\usepackage{graphicx}\begin{document}\begin{figure}\includegraphics{file.
eps}\caption{Thisiscaptionoffigure}\end{figure}\end{document}在gure环境中可以使用\caption命令来制定图形的标题,这个标题将会出现在图形的上方或者下方,还会通过使用\listoffigures命令出现在一个图形目录中.
我们建议LATEX用户详细阅读《LATEX图形指南》[3]一书,可以使得你对在LATEX中使用图形有一个全面的了解,避免走弯路.
54LATEX支持哪些图形格式目前LATEX只有EPS格式的图形在所有的TeX系统中都能得到全面的支持.
而其他的图形,如JPEG可以在某些系统中使用,这取决于所用的DVI转换程序.
因为一般最终要得到的都是PostScript或者PDF格式的文件,因此先将图形转换为EPS格式仍然是最有效、最方便的图形处理方法.
虽然如此,我们在这里还是给出一个直接使用JPEG图形和PNG图形的方法.
假设我们有ctex-j.
jpg和ctex-p.
png图形,以及两个格式为%%BoundingBox:00widthheight的ctex-j.
bb和ctex-p.
bb文件,其中的width为对应图形的宽度,height为高度.
这个文件也可以用ebb程序生成.
ebb是dvipdfm带的一个工具,专门用来生成图形文件的BoundingBox.
MiKTEX和fpTEX中都已带有这个程序.
然后编译下面的例子:\documentclass{article}\usepackage{graphicx}\DeclareGraphicsRule{.
jpg}{eps}{.
bb}{}\DeclareGraphicsRule{.
png}{eps}{.
bb}{}\begin{document}\includegraphics{ctex-j.
jpg}\includegraphics{ctex-p.
png}\end{document}在\includegraphics命令中可以使用各种参数,和EPS图形一样.
编译后使用dvipdfm将DVI转换为PDF文件可以看到图形已被正确插入.
用最新的MiKTEX中的dvips转换为PostScript文件或者用DVI预览工具yap0.
99e也可以看到图形,不过图形的大小和颜色都不正确.
而fpTEX的DVI预览工具windvi就完全看不见图形.
CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGH图形表格2355DVI里不能显示EPS图片这是正常现象,因为EPS图形并没有真正被加到DVI文件中,它是在从DVI到PostScript转换时才被加到生成的PostScript文件中的.
因此,所有用到的EPS文件必须和DVI文件在一起.
大多数旧版本的DVI浏览器不支持显示EPS图形.
这时,DVI浏览器一般会将EPS图形的BoundingBox用一方框显示出来,以方便使用者对图形进行定位.
目前版本的一些TEX软件如MiKTEX、fpTEX和teTEX等所带的DVI浏览器(Yap,Windvi,Xdvi)可以借助于Ghostscript来显示EPS图形.
即使是这样,它们对EPS的支持仍然是有限的,不支持psfrag之类的PostScript特殊处理效果,而且经常会出现不正常的显示.
此时并不是你的DVI文件或者DVI浏览器损坏了,而是要将DVI文件转换成PostScript文件或者PDF文件进行察看和打印,才能得到最终的真正效果.
H.
2表格56表格中使用p参数的列如何改变对齐方式表格的列参数中的p参数可以指定列的宽度,但是由于无法和其他控制对齐方式的参数同时作用在一个列上,因此需要使用额外的方法来控制这些列的对齐方式.
常用的控制对齐方式命令有:\centering(居中)、\flushleft(左对齐)和\flushright(右对齐)等.
真正的麻烦并不在这里,而在于换行命令.
当p参数被用在最后一列时,如果在这一列中使用上面的这些对齐命令,例如.
.
.
&\centering.
.
.
\\就会遇到.
.
.
misplaced\noalign.
.
.
或者类似的编译错误.
问题的原因是换行命令\\在不同的环境下有着不同的定义.
在tabular环境中,这个命令被重新定义以适合于控制表格的显示,而\centering、\flushleft和\flushright命令把它修改成了另一个不兼容的定义.
因为表格的每一个格子都是通过一个盒子(box)来实现的,格子内的定义在分隔符&或者\\之后都不再有效,因此上面的这个问题只会出现在每一行的最后一列上.
LATEX2.
09的解决方法是保存并在稍后恢复\\的定义:\def\PBS#1{\let\temp=\\%#1%\let\\=\temp}用法是.
.
.
&\PBS\centering.
.
.
\\这种技巧在使用array宏包提供的格式化列参数方法中也可以使用\begin{tabular}{.
.
.
>{\PBS\centering}p{50mm}}.
.
.
\end{tabular}而LATEX2ε则通过公开\\在表格中的内部定义来解决这个问题.
这个定义被保存在命令\tabularnewline中.
于是你可以使用.
.
.
&\centering.
.
.
\tabularnewlineCTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGH图形表格2457如何生成固定宽度的表格在LATEX中生成固定宽度的表格有两种方法,一种是通过扩展列之间的空隙,另一种是扩展某些指定的列.
第一种方法通过tabular*环境来实现.
在tabular*环境的第一个参数中指定表格的总宽度,然后在表格的列格式参数中使用\extracolsep命令来增加列之间的空隙.
\begin{tabular*}{5cm}{@{\extracolsep{\fill}}lllr}\hline1&2&3&4\\21&22&23&24\\\hline\end{tabular*}123421222324这种方法的一个缺点是列之间如果加入分隔符,则列之间的空隙是放在下一列的左边而不是在两列之间平均分配.
我们来看上面的例子加入分隔符后的样子\begin{tabular*}{5cm}{@{\extracolsep{\fill}}|l|l|l|r|}\hline1&2&3&4\\21&22&23&24\\\hline\end{tabular*}123421222324另一种方法可以通过使用tabular环境的列格式参数之一p宽度来指定相应列的固定宽度.
这种方法需要用户手工计算分配每个列的具体宽度.
另外,由于p参数不能和其他控制对齐方式的参数同时作用在一个列上,因此需要使用额外的方法来控制这些列的对齐方式(参见问题56).
tabularx宏包提供了一个自动计算分配列宽度的表格环境tabularx.
这个环境的使用方法和tabular*相同.
不同之处在于它增加了一个X参数.
所有使用X参数的列会平均分配多余的空间,然后转换为p参数来指定列的宽度.
该宏包也提供了方法让你可以指定如何转换或者转换为其他的列参数.
该宏包需要array宏包的支持.
ltxtable宏包则结合了longtable和tabularx宏包的特点.
但是它的用法有点复杂,请仔细阅读它的文档.
H.
3浮动对象58浮动对象和上下文之间的距离太大了,怎么办经常有用户抱怨浮动对象figure或者table和上下文之间的距离太大了,以至他们不得不手工调整这个距离.
但是大多数人没有意识到是他们自己使用的代码引入了这些额外的空间.
问题出在center环境(以及类似的flushleft和flushright环境)上面,这些环境都是基于LATEX的list定义的.
list类型的环境都会在它们自己和上下文之间加入间隔,这个间隔的大小通过许多参数来决定.
因此,如果我们是用下面的代码:\begin{figure}\begin{center}\includegraphics{.
.
.
}\caption{.
.
.
}\end{center}\end{figure}CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGH图形表格25或者更糟糕的\begin{figure}\begin{center}\includegraphics{.
.
.
}\end{center}\caption{.
.
.
}\end{figure}那么就会多出一些无法预料的空白.
解决的方法是使用一些基本命令,而不是使用它们经过list类型环境包装后的格式.
例如\begin{figure}\centering\includegraphics{.
.
.
}\caption{.
.
.
}\end{figure}这个方法适合于所有的LATEX宏包,除了一些过时的LATEX2ε之前的宏包,如psg和epsf.
59分栏文档中如何使用单栏或者通栏浮动对象如果你使用的是LATEX标准文档类的twocolumn模式,那么使用figure和table环境可以产生单列的浮动图形或者表格,而使用figure*和table*环境则可以产生通栏的浮动图形或者表格.
如果你使用的是multicol宏包提供的multicols环境,那么就有一点小问题了.
figure和table在这种方式下无法正常工作,会导致图形或者表格丢失.
但是,figure*和table*仍然可以正常工作,产生通栏的浮动图形或者表格,就像在标准文档类的twocolumn模式下一样.
要在multicols环境中使用单栏的图形或者表格,可以使用oat宏包提供的[H]位置选项.
例如\begin{figure}[H].
.
.
\caption{.
.
.
}\end{figure}但是要注意的是,这种方式产生的对象是不能"浮动"的,也就是说位置是固定的.
因此,有时候你必须仔细调整它的位置,以免造成分栏的底部参差不齐.
60分栏文档中为何不能设定通栏浮动对象的位置如果你在在分栏的文档中设定一些通栏的浮动对象(参见问题59)的位置选项,你会发现[htbp]四个选项中的h和b选项是不起作用的.
也就是说,通栏的浮动对象只能在页面的顶部(t选项)或者单独的页面上(p选项).
以上是对标准文档类的twocolumn模式而言.
如果使用multicol宏包的multicols环境,b选项是有效的,但h选项也是不起作用.
对于在标准文档类的twocolumn模式中需要把通栏浮动对象放置在页面底部,也就是让b选项有效,可以使用宏包stoats.
而要让h选项有效,目前还没有好的办法.
midoat宏包提供的strip环境可以作为一种近似的解决方案,但效果并不是很好.
CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGI参考文献26I参考文献61如何将文献引用作为上标出现将文献引用作为上标出现可以使用overcite宏包\usepackage{overcite}或者使用natbib宏包的super参数\usepackage[super]{natbib}但是,这两种方法产生的上标引用都没有括号.
要增加括号,可以修改这两个宏包中的相应定义.
更简单的一个方法是使用如下命令\makeatletter\def\@cite#1#2{\textsuperscript{[{#1\if@tempswa,#2\fi}]}}\makeatother而不需使用任何宏包.
62如何排序并压缩连续的引用,产生如[2,4–8]形式的引用如果你在LATEX中使用\cite{a,b,c,d,e,f}则LATEX不会对条目进行排序,因此,可能会产生象[6,2,5,8,4,7]这样很难看的排版效果.
大多数人都希望对引用的条目进行排序,并且对连续的条目使用压缩的表示方式,即用[2,4–8]表示上面的例子.
使用cite宏包可以解决这个问题.
另一种方法是使用宏包natbib并指定选项numbers和sort&compress,可以得到一样的效果.
如果使用BibTEX则必须使用natbib所带的数字式参考文献风格(plainnat.
bst和unsrtnat.
bst).
在使用hyperref宏包来生成超链接的时候会有点问题.
cite宏包会完全失效,产生没有排序和压缩的引用.
而natbib则可以得到排序但没有压缩的引用效果.
如果你想得到排序而且压缩的效果,可以在加入natbib宏包后再使用宏包hypernat.
63如何定制自己的参考文献样式用户可以自己编写参考文献的样式文件(.
bst文件).
但并不是所有的用户都能迅速掌握用于编写参考文献样式文件的语言.
在这种情况下,修改现有的样式文件比较适合对该语言不熟悉的普通用户.
如果你需要的样式和现有样式的差别不是太大的话,你可以考虑使用custom-bib工具.
这个工具包含一个makebst.
tex文件.
在命令行上输入命令latexmakebst在回答一系列问题之后,一个按照你的要求定制的参考文件样式文件就诞生了.
64如何才能把参考文献条目放在正文中一些学术期刊和出版社要求把参考文献条目放在正文中,而另一些可能要求放在脚注里.
可以帮助你把参考文献条目放入正文中的宏包有宏包bibentry,该宏包对你使用的.
bst文件产生的参考文献条目格式有一些限制,但除此之外没有要求使用特定的样式文件.
CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGI参考文献27宏包inlinebib,该宏包要求必须使用它自带的inlinebib.
bst样式文件.
宏包jurabib,该宏包也要求使用它自带的四个样式文件之一.
而用于把参考文献条目放入脚注中的宏包有宏包footbib宏包jurabib65能否生成反向引用(从参考文献指向引用的正文)可以.
有两个宏包可以使用,一个是citeref,另一个是backref宏包.
citeref的代码似乎相对简单些(因此可能更稳定些),但是不能配合hyperref生成超链接.
而backref是hyperref宏包附属的.
backref有四个选项可以选择,缺省是pageref:ref选项得到引用所在的节编号pageref选项得到引用所在的页码hyperref选项是超链接形式的refhyperpageref选项是超链接形式的pageref配合hyperref宏包使用时可以通过指定hyperref的backref或者pagebackref选项来自动装入backref宏包.
两个宏包都只能产生没有压缩的引用(如[5,6,7]不会被输出成[5–6]),同时对于对该参考文献多次引用的页面,也不会重复出现.
66如何让每章或者每节都有单独的参考文献使用chapterbib宏包可以让你在一个文档里产生多个参考文献.
不过并不像它的名字所表示的那样,这些参考文献并不是和章或者节联系在一起,而是和\include命令包含的子文件联系在一起.
也就是说,每一个通过\include命令包含的子文件可以拥有一个单独的参考文献,bibunits宏包则允许用户使用\bibliographyunit命令选择让每章还是每节拥有一个单独的参考文献.
也可以通过它提供的bibunit环境和\putbib命令使得任意的一段文档内容拥有一个单独的参考文献.
bibunits必须配合BibTEX使用.
详细的用法请参考宏包使用说明.
67如何产生多个参考文献列表如果你想让文档的某些部分(如章、节)拥有单独的参考文献,请参考问题66.
这里讨论的是如何将文档的参考文献分割为多个部分,有三种方法可以选择,都必须配合BibTEX使用.
multibbl宏包通过对标准命令的扩展来支持多个参考文献并存.
用户可以用\newbibliography来定义一个新的参考文献,该命令的参数将会用来生成单独的.
aux文件,同时用在其他的相关命令中使得LATEX知道使用哪个参考文献.
而标准的参考文献命令和引用命令都被修改,增加额外的参数来区分不同的参考文献.
其中\bibliography命令还增加了用于修改参考文献的标题的参数.
该宏包没有包含在MiKTEX中,用户可以从CTAN下载并安装.
而宏包multibib则通过\newcites命令让用户定义新的参考文献分类以及分类的标题,而每定义一个新的分类都会产生这个分类专用的参考文献命令.
例如,当用户定义了一个新的分类sec,就会产生四个相应的命令:\bibliographysec、\bibliographystylesec、\citesec和\nocitesec.
使用这些命令,你就可以把来自一个或者多个参考文献库(.
bib文件)的引用放入任意一个参考文献分类中.
CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGJ其它专题28与上面的两个宏包不同,bibtopic宏包采用另外一种解决方案.
用户把参考文献按照自己的分类放入不同的参考文献库(.
bib文件)中,然后通过宏包提供的btSect环境指定对应的参考文献库来生成参考文献列表.
一个例子如下:\begin{btSect}{english}%使用english.
bib\section{References(English)}\btPrintCited\end{btSect}\begin{btSect}{chinese}%使用chinese.
bib\section{参考文献(中文)}\btPrintCited\end{btSect}\begin{btSect}{chinese}%使用chinese.
bib\section{未引用的参考文献(中文)}\btPrintNotCited\end{btSect}68如何将多篇参考文献合并在一个条目中列出Newv0.
4可以使用mcite宏包和phaip.
bst样式文件.
mcite宏包修改了标准宏包的\cite定义,在前面加了*号的文献将和它前面的文献合并到同一个条目.
例如\cite{paper1,paper2,*paper3,*paper4,paper5,*paper6}将只产生三个参考文献条目.
第一个条目为文献paper1,第二个条目包含文献paper2、paper3和paper4,第三个条目包含文献paper5和paper6.
J其它专题J.
1脚注69如何在表格中使用脚注在标准的LATEX表格环境中使用\footnote会使得脚注内容被吞掉,而不是出现在页面底部.
因此脚注无法在表格中使用.
如果你用的是浮动表格环境table,那么你只有将表格放到一个minipage环境中,这样所有的脚注会出现在表格的下方,例如Thisistext.
.
.
\begin{minipage}{\textwidth}\begin{tabular}{|c|c|c|}\hlineaaa\footnote{test}&bbb&ccc\\\hline\end{tabular}\end{minipage}Thisisanothertext.
.
.
Thisistext.
.
.
aaaabbbcccatestThisisanothertext.
.
.
另外一个办法是使用宏包threeparttable中定义的表格.
如果你没有使用浮动环境而只是用了tabular环境,那么可以使用下面几种方法对表格进行注释.
CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGJ其它专题291.
使用\footnotemark[编号]命令在需要的位置放置脚注的标记,然后在结束tabular环境以后使用命令\footnotetext[编号]{文字}来加上脚注的内容.
这是Lamport的书[6]中给出的方法.
但是如果要做大量的脚注,这个方法就显得有点笨拙了.
2.
使用LATEX2ε的标准宏包tabularx或者longtable.
这会比用标准的tabular环境麻烦一点,但是可以正常的使用脚注.
3.
使用footnote宏包,把tabular环境放入一个savenotes环境中,或者在导言区使用\makesavenoteenv{tabular}这样表格中的脚注就会被正确处理.
4.
把表格放在minipage环境中,这种方法使得所有的脚注都出现在表格的下方(见上面的例子),比较难看.
5.
使用threeparttable宏包提供的表格.
但该宏包是设计为浮动的表格使用的,用在非浮动的表格时会显得有些奇怪.
6.
使用mdwtab宏包提供的表格,也可以正确处理脚注,还有一些独特功能.
但会使得某些和表格有关的宏包无法正常工作.
70如何在章节标题中使用脚注\footnote是一个脆弱的(fragile)LATEX命令,这使得当它出现在\section这类命令的参数中时无法正常工作.
在\footnote之前使用\protect命令来保护它可以使得LATEX正常编译,但是会有副作用:这些脚注标记会出现在目录上,甚至在页眉上,这会进一步带来意想不到的结果!
你无法控制单独这些标记是否只出现在目录或者只出现在页眉上,但可以通过以下的方法使得脚注不出现在目录和页眉上.
使用章节标题命令的可选参数,这样只有可选参数中的内容才会出现在目录和页眉中.
例如\section[标题]{标题\footnote{脚注}}使用footmisc宏包并加上stable参数.
这样就可以避免脚注出现在目录和页眉上.
71如何在图表的标题中使用脚注在命令\caption的参数中使用脚注相当麻烦,可以说是问题69和问题70的混合体,此外还有它自己的问题.
所以决定在标题中使用脚注前最好认真考虑一下是否真的有必要这么做.
你必须用可选参数或者其他方法来使得文件能够被LATEX处理而且脚注不会出现在目录中,同时也要把浮动的对象放入一个minipage环境以使得脚注能够被显示出来.
同时你要小心你的脚注是否被打印了两次.
假如你使用下面的语句CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGJ其它专题30\begin{figure}\begin{minipage}{\textwidth}.
.
.
\caption[目录中的标题]{真正的标题\footnote{脚注}}\end{minipage}\end{figure}而其中"真正的标题"足够长(具体的说,需要两行甚至更多行来排版)的时候,LATEX的结果中就会出现两个一样的脚注.
这个讨厌的现象可以通过使用不带caption2参数的ccaption宏包来避免.
72如何重复使用相同内容的脚注如果具有相同内容的脚注在文档中多次出现在不同地方,简单地重复输入脚注内容不是一个好办法.
我们可以通过半自动的方法来避免重复输入,或者对需要重复的脚注加上标签然后在其他地方加以引用.
但是没有完全自动的解决方法(自动发现重复的脚注并加以处理).
如果你的整个文档只有一个脚注,而且需要重复使用,那么最简单的方法就是使用\footnotemark命令的可选参数,例如.
.
.
\footnote{需要重复使用的脚注内容}.
.
.
.
.
.
\footnotemark[1]可以这么做的原因就是因为我们知道只有一个编号为1的脚注.
如果脚注不止一个,但是顺序和位置是固定的,那么可以使用类似的技巧,只需重复使用LATEX给相应的脚注分配的编号即可.
但是大多数时候这么做会比较麻烦,因为文档内容的改变经常会导致脚注之间的关系改变.
这时候,使用标签是一个更好的办法.
一个手工标签的方法是使用计数器来记住脚注的编号:\newcounter{fnnumber}.
.
.
.
.
.
\footnote{需要重复使用的脚注内容}%\setcounter{fnnumber}{\thefootnote}%.
.
.
.
.
.
\footnotemark[\thefnnumber]经常这么做确实有点繁琐.
LATEX的标签引用机制可以帮助我们简化工作.
.
.
\footnote{需要重复使用的脚注内容\label{fn:repeat}}.
.
.
.
.
.
\footnotemark[\ref{fn:repeat}]但是又有另外一个问题,LATEX会在第一次运行时报告\footnotemark命令的参数为空的错误,这是因为\ref命令无法确定标签的内容而返回了一个空值造成的.
这个错误会在第二次运行LATEX命令后消失.
footmisc宏包和memoir文档类中定义了一个\footref命令来解决这个问题.
这个命令还有一个额外的好处就是即使脚注使用了非数字的标记,它也能正确工作.
使用\footref命令后我们的例子变成了.
.
.
\footnote{需要重复使用的脚注内容\label{fn:repeat}}.
.
.
.
.
.
\footref{fn:repeat}这可能是最简洁的解决方法了.
需要注意的是在以上的例子里\label命令必须放在\footnote的参数中.
xfoot宏包提供了另外一种解决机制:使用\DeclareFixedFootnote命令预先定义好你需要重复使用的脚注,一般都放在导言区中,然后每次只需简单地使用定义好的命令就可以了.
CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGJ其它专题31\DeclareFixedFootnote{\rep}{需要重复使用的脚注内容}.
.
.
.
.
.
\rep{}.
.
.
\rep{}这个宏包会保证每个重复的脚注在每一页最多出现一次.
但是通常你需要运行多次LATEX来除去多余的脚注.
J.
2目录73怎样象第几章一样,将参考文献也加到目录在参考文献部分之前加入\clearpage%双面打印(openright)用\cleardoublepage\addcontentsline{toc}{chapter}{参考文献}语句即可.
类似的,你也可以手工加入其它目录项.
74手工加入的目录项页码错误,生成的书签链接也不对,怎么回事这是因为\addcontentsline命令后面的命令换页造成的页码不一致.
需要在\addcontentsline命令之前加上\clearpage如果是book类或者用了openright参数的report类文档,新的章总是从奇数页开始,则要把命令改成\cleardoublepage如果使用了hyperref宏包来生成PDF文件的书签链接,则还需要在上面的命令后再加上\phantomsectionJ.
3特殊符号75如何输出和符号和符号都是LATEX的特殊符号,可以在verbatim环境得到符号本身,例如\verb|^|and\verb|~|isspecialcharacters.
^and~isspecialcharacters.
还可以使用命令\textasciicircum得到符号,用\textasciitilde得到符号.
CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGK高级技术3276如何显示可见的空格符号可以使用\textvisiblespace命令,例如Hello\textvisiblespaceworld\textvisiblespace!
Helloworld!
77如何显示带圈的符号可以使用\textcircled{letter}为了产生比较美观的符号,可能要对其中的字体大小做一定的调整.
\textcircled{\scriptsize1}\textcircled{\scriptsize2}\textcircled{3}\textcircled{4}\textcircled{\scriptsizea}\textcircled{\scriptsizeb}\textcircled{c}\textcircled{d}1234abcd实际上版权符号c就是这么产生的,只是为了方便用户专门预定义了命令\copyright.
你也可以为自己常用的一些符号定义一个简短的命令.
K高级技术78\makeatletter和\makeatother是干什么用的一些LATEX内部命令含有@字符,如\@addtoreset,如果需要在文档中使用这些内部命令,就需要借助于另两个命令\makeatletter和\makeatother.
下面的例子可以实现公式编号与节号的关联:\documentclass{article}.
.
.
\makeatletter%@isnowanormal"letter"forTeX\renewcommand\theequation{\thesection.
\arabic{equation}}\@addtoreset{equation}{section}\makeatother%@isrestoredasa"non-letter"characterforTeX\begin{document}.
.
.
CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGM错误处理3379如何查询LATEX命令和参数的缺省定义首先你可以直接搜索相应的LATEX宏包以及同一目录下的其他文件.
如果你有宏包的源文件(.
dtx)的话,搜索源文件会更方便些.
而且源文件中会有详细的说明.
对于这些源文件,可以直接用LATEX编译,产生说明文档.
LATEX宏包的源文件一般放在texmf\source\latex\目录下.
例如LATEX标准文档类的源文件就是texmf\source\latex\base\classes.
dtx如果这些文件里都找不到定义,则有可能在LATEX内核中定义.
你可以搜索texmf\source\latex\base\目录下的其他.
dtx文件,所有的LATEX内核定义都在那里了.
如果还没有的话,那就可能是TEX的基本命令或者定义了,查询DonaldE.
Knuth的TheTEXbook[7],CTEXFTP上可以下载该书的源文件.
L辅助工具80WinEdt和GSview经常出现过期和注册提示,如何解决WinEdt和GSview是共享软件,需要注册才能使用全部功能,如果你不能忍受它的提示,那就只有花钱注册了.
81如何去掉WinEdt的自动断行和自动续行点击WinEdt状态栏上的Wrap使其变为灰色可以完全禁止WinEdt的自动断行和自动续行.
在行首加入空格或者Tab符可以防止自动续行(将本行并入上一行).
在WinEdt的菜单Options下选择Perferences,在弹出的对话框中的Editor页的右下角可以设置RightMargin来修改WinEdt判断自动断行的字符数.
82如何让WinEdt显示行号Newv0.
4点击WinEdt状态栏上的总行数(左数第四格)可以打开和关闭行号的显示.
83Yap里如何预览带有颜色的EPS图片打开Yap的菜单Views下的Options,在弹出的对话框中选择PostScript,然后在Quality的下拉框中选择16millioncolors.
M错误处理84Error:pdatex(lesimsun.
ttf):can'tndtable'maxp'Newv0.
4这个错误是因为中文Windows2000及以后的操作系统的宋体字库使用了新的TrueType格式的文件simsun.
ttc,而pdatex不支持该文件格式.
解决方法可以选以下四种之一:CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGN帮助文档341.
不使用pdatex而改用其他方法生成PDF文件2.
不使用宋体改用其他字体3.
不使用TrueType字库而改用Type1字库(安装CTEX-Fonts)4.
从中文Windows98下拷贝一个simsun.
ttf到Windows安装目录下的fonts目录或者CTEX的安装目录下的locatexmf的相应子目录下N帮助文档85能否推荐一些比较好的中文资料目前TEX和LATEX的中文资料还不是很多,特别是相对大量的英文资料而言.
如果你刚开始学习LATEX,我们推荐你使用《lshort中文版》[1].
这是一份很好的入门学习教材.
它的最新版本可以在CTEX网站免费下载.
如果你需要一本详细的LATEX命令手册,我们推荐使用邓建松等人翻译整理的《LATEX2ε科技排版指南》一书[2].
这本书可以说是目前国内正式出版的LATEX书籍中最值得购买的一本.
它的一份电子版初稿也可以在CTEX网站免费下载.
另外一本值得推荐的书是《LATEX2ε插图指南》[3].
它是由CTEX的王磊在KeithReckdahl编写的UsingImportgraphicsinLATEX2ε(Ver.
2,Dec.
1997)一书的基础上翻译整理的.
该书目前尚未正式出版,其电子版可以在CTEX网站免费下载.
86能否推荐一些比较好的英文资料如果你刚开始学习LATEX,我们推荐使用lshort(TheNotSoShortIntroductiontoLATEX2ε)[5].
与其他的书相比,这份小册子相对比较简短,但覆盖了所有常用的LATEX2ε命令,而且附有大量的实例.
lshort一直在不断更新,而且有十几个语言的翻译版本.
你可以把英文版和中文版[1]对照着看,这样会对一些专业名词更加容易理解.
如果你打算详细全面的学习LATEX,最经典的教材莫过于LATEX的作者LeslieLapmport的著作LATEX:ADocumentPreparationSystem[6]了.
另一本更加详细的介绍LATEX及其宏包的书就是TheLATEXCompanion[8],这本500多页的书中包含了超过150个宏包的描述.
这两本书没有在国内出版,但是你可以在一些图书馆中借到.
TheLATEXCompanion的第八章是关于数学公式排版的介绍,有一份电子版可以在CTAN上下载,路径是CTAN:/info/companion-rev或者用ch8.
pdf在CTAN上进行搜索(参见问题14).
LATEX系统自带了许多文档,除了各个宏包的说明以外,还有一些是关于LATEX系统的说明.
这些文档都放在texmf\doc\latex\base目录下.
其中,LATEX2εforAuthors[9]是介绍如何用LATEX2ε来排版的,LATEX2εforClassandPackageWriters[10]则介绍了如何利用LATEX2ε来编写宏包,这两份文档侧重点都在于描述LATEX2ε的新特性.
如果你是LATEX2.
09的用户,这两份文档会有很大的帮助.
LATEX2εFontSelection[11]则介绍了LATEX2ε的字体选择方案,它会帮助你了解LATEX2ε是如何定义、使用字体的.
如果你对LATEX底层的东西开始感兴趣,或者你开始想自己修改或者编写一些LATEX宏包,那么TEX的作者DonaldE.
Knuth的巨著TheTEXbook实在是必不可少.
TheTEXbook同时也是一部漂亮的排版杰作,而且还能让我们接触到一代宗师Knuth卓越不凡的思想与理念.
CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORG参考文献3587有没有关于LATEX宏包的详细说明TEX系统安装时候带的LATEX宏包,都可以在TEX的安装目录下的texmf\doc\latex目录下找到帮助文件和例子.
CTEX的在线文档提供了一份关于常见的LATEX宏包的列表和说明.
另外,GrahamWilliams维护的TheTeXCatalogue[12]是一份全面的TEX和LATEX宏包分类目录,这份文档可以在CTAN的镜像服务器上下载(参见问题11和问题14).
88我的问题没找到答案,或者有答案但是解决不了我的问题,怎么办欢迎到CTEX论坛上提出你的问题,也欢迎指出这份文档中不正确或者不准确的地方.
提问的时候请提供尽可能详细的信息,例如使用的TEX系统、操作系统、使用的文档类和宏包命令、简单而又可以重复错误现象的例子等等,而不是仅仅说"为什么我的DVI中看不到中文"这样一句话,这种问题没有人能够回答你.
参考文献[1]CTEX翻译小组.
lshort中文版3.
20,2003.
[2]邓建松,彭冉冉,陈长松.
LATEX2ε科技排版指南,科学出版社,书号:7-03-009239-2/TP.
1516,2001.
[3]王磊.
LATEX2ε插图指南,2000.
[4]张林波.
关于新版CCT的说明,2003.
[5]TobiasOetiker,HubertPartl,IreneHynaandElisabethSchlegl.
TheNotSoShortIntroductiontoLATEX2ε4.
12,2003.
[6]LeslieLamport.
LATEX:ADocumentPreparationSystem.
Addison-Wesley,Reading,Mas-sachusetts,secondedition,1994,ISBN0-201-52983-1.
[7]DonaldE.
Knuth.
TheTEXbook,VolumeAofComputersandTypesetting.
Addison-Wesley,Reading,Massachusetts,secondedition,1984,ISBN0-201-13448-9.
[8]MichelGoossens,FrankMittelbachandAlexanderSamarin.
TheLATEXCompanion.
Addison-Wesley,Reading,Massachusetts,1994,ISBN0-201-54199-8.
[9]LATEX3ProjectTeam.
LATEX2εforAuthors.
LATEX2ε随机文档usrguide.
tex[10]LATEX3ProjectTeam.
LATEX2εforClassandPackageWriters.
LATEX2ε随机文档clsguide.
tex[11]LATEX3ProjectTeam.
LATEX2εFontSelection.
LATEX2ε随机文档fntguide.
tex[12]GrahamWilliams.
TheTEXCatalogue.
一份全面的TEX和LATEX宏包分类目录,在线访问CTAN:/help/Catalogue/catalogue.
html[13]RobinFairbairns.
TheUKTEXFAQ.
英国TEX用户协会FAQ.
CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGCONTRIBUTORS36Contributors吴凌云(aloft@ctex.
org)Neals(nosferuda@hotmail.
com)Copyrightc2003–2005CTEXandalltheContributorstoCTEXFAQ.
Allrightsreserved.
CTEX以及CTEXFAQ的作者拥有版权c2003–2005.
保留所有权利.
Permissionisgrantedtocopy,distributeand/ormodifythisdocumentunderthetermsoftheGNUFreeDocumenta-tionLicense,Version1.
2oranylaterversionpublishedbytheFreeSoftwareFoundation;withtheInvariantSectionsbeingContributors,noFront-CoverTexts,andnoBack-CoverTexts.
你可以拷贝、发布或者修改这份文档,但必须遵守自由软件组织颁布的GNU自由文档许可证1.
2或者以后版本的条款.
InvariantSections包括Contributors,没有Front-CoverTexts和Back-CoverTexts.
CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORGCHANGELISTOFV0.
437ChangeListofv0.
4New17CTEX中文套装软件的Basic和Full版本都有什么区别818CTEX-Fonts、CTEX-CS、CTEX-Ext都是干什么的和CTEX中文套装有什么关系935如何在PlainTEX中使用中文1468如何将多篇参考文献合并在一个条目中列出2882如何让WinEdt显示行号3384Error:pdatex(lesimsun.
ttf):can'tndtable'maxp'33Revised3这个FAQ的目的是什么512哪里可以下载CTEX中文套装软件714哪里能找到我想要的宏包820能否举一个简单的英文排版例子939如何生成分栏的文档1540如何使得双栏文档保持底部对齐1544如何使用NewTimeRoman字体1753LATEX如何使用图形21(Lastupdated:December19,2005)CTEXFAQ(常见问题集)v0.
4betaCopyrightc2003–2005CTEX.
ORG

香港站群多ip服务器多少钱?零途云香港站群云服务器怎么样?

香港站群多ip服务器多少钱?想做好站群的SEO优化,最好给每个网站都分配一个独立IP,这样每个网站之间才不会受到影响。对做站群的站长来说,租用一家性价比高且提供多IP的香港多ip站群服务器很有必要。零途云推出的香港多ip站群云服务器多达256个IP,可以满足站群的优化需求,而且性价比非常高。那么,香港多ip站群云服务器价格多少钱一个月?选择什么样的香港多IP站群云服务器比较好呢?今天,小编带大家一...

妮妮云香港CTG云服务器1核 1G 3M19元/月

香港ctg云服务器香港ctg云服务器官网链接 点击进入妮妮云官网优惠活动 香港CTG云服务器地区CPU内存硬盘带宽IP价格购买地址香港1核1G20G3M5个19元/月点击购买香港2核2G30G5M10个40元/月点击购买香港2核2G40G5M20个450元/月点击购买香港4核4G50G6M30个80元/月点击购买香...

HostKvm:香港国际/韩国KVM夏季7折,2G内存套餐月付5.95美元起

HostKvm是一家成立于2013年的国外主机服务商,主要提供基于KVM架构的VPS主机,可选数据中心包括日本、新加坡、韩国、美国、中国香港等多个地区机房,均为国内直连或优化线路,延迟较低,适合建站或者远程办公等。目前商家发布了夏季特别促销活动,针对香港国际/韩国机房VPS主机提供7折优惠码,其他机房全场8折,优惠后2GB内存套餐月付5.95美元起。下面分别列出几款主机套餐配置信息。套餐:韩国KR...

版权符号怎么输入为你推荐
京沪高铁上市首秀我能买京沪高铁股票吗甲骨文不满赔偿未签合同被辞退的赔偿rawtools闪迪32Gsd卡,无法格式化,显示只有30M,并且是raw格式。如何恢复?罗伦佐娜手上鸡皮肤怎么办,维洛娜毛周角化修复液seo优化工具想找一个效果好的SEO优化软件使用,在网上找了几款不知道哪款好,想请大家帮忙出主意,用浙江哪款软件效果好www.vtigu.com如图所示的RT三角形ABC中,角B=90°(初三二次根式)30 如图所示的RT三角形ABC中,角B=90°,点p从点B开始沿BA边以1厘米每秒的速度向A移动;同时,点Q也从点B开始沿BC边以2厘米每秒的速度向点C移动。问:几秒后三角形PBQ的面积为35平方厘米?PQ的距离是多少lcoc.topoffsettop和scrolltop的区别45gtv.comLETSCOM是什么牌子?www.jizzbo.comwww.toubai.com是什么网站汴京清谈都城汴京,数百万家,尽仰石炭,无一燃薪者的翻译
网站域名 net主机 hostmonster 全球付 kdata 10t等于多少g 12u机柜尺寸 阿里云代金券 512m内存 好看qq空间 怎么测试下载速度 稳定免费空间 ftp免费空间 香港新世界中心 360云服务 国内域名 群英网络 asp空间 聚惠网 zcloud 更多