【LaTeX】E喵的LaTeX新手入门教程(6)中文

时间:2021-12-06 06:06:19

假期玩得有点凶 ._.前情回顾【LaTeX】E喵的LaTeX新手入门教程(1)准备篇 
【LaTeX】E喵的LaTeX新手入门教程(2)基础排版 
【LaTeX】E喵的LaTeX新手入门教程(3)数学公式 
【LaTeX】E喵的LaTeX新手入门教程(4)图表 
【LaTeX】E喵的LaTeX新手入门教程(5)参考文献、文档组织
先扯一点没啥用的。。。话说呀在高老头发明TeX的时候。。高老头是美国人嘛,自然是本着能用就好的原则,TeX只支持ASCII码。这一代算是第一代TeX程序。而中文编码都是多字节的,所以要想让TeX支持中文的话,唯一的方法是检测一下第一个字节是不是属于中文的,然后再往后读,查表得到输出的文字。基于这个原理,一位德国人搞出了个宏包叫做CJK,就是干这事儿的。嗯看起来很不错的样子,那个年代的人们都喜欢._.嗯到了第二代pdfTeX,对编码的支持仍然没有改观,于是大家还用CJK。然后又过了好久,第三代XeTeX原生支持了Unicode,于是不用分解多字节编码了,而且XeTeX又能读取系统字体,于是就很欢乐了。第四代LuaTeX嘛继承了优良传统,所以我们现在排版中文的话,已经完全用不着CJK宏包了._.XeLaTeX中输出中文XeTeX原生支持Unicode,因此将源文件保存成UTF-8格式就可以了。但是有一点需要注意的是,虽然中文被识别了,但是XeTeX没有默认的中文字体,所以输出的中文都看不见._.为了中文能够显示,我们就得指定一种字体。XeTeX是可以调用系统字体的,但是具体能用哪些,我们得先看一下。查看字体的方法是:fc-list嗯截个图它长这样的._.【LaTeX】E喵的LaTeX新手入门教程(6)中文在第一个冒号和第二个冒号之间的就是字体名称了,用逗号分隔的,哪个都可以用,比如Adobe Song StdAdobe 宋体 Std调用的是同一种字体的喵。由于XeTeX原生调用字体的方法比较复杂,这里我们使用XeLaTeX的fontspecxeCJK宏包来完成XeLaTeX中中英文字体的设定。提示:xeCJK宏包已经包含了fontspec宏包,因此只用xeCJK宏包即可的喵0w0所以我们需要在导言区加一句\usepackage{xeCJK}指定中文字体指定中文字体很简单啦。\setCJKmainfont{字体名}
\setCJKmonofont{字体名}
一个设置主字体族,一个设置等宽字体族。如果想使用新的字体族可以用\setCJKfamilyfont{族名}{字体名}它们还有很多丰富的选项,具体可以看文档。。。不过xeCJK是国人写的宏包,所以它的文档是中~文~的喵>//< 一口气看五页,不费劲!指定英文字体\setmainfont{字体名}
\setmonofont{字体名}
跟上面似乎一样的说._.由于xeCJK宏包的工作,你可以分别为中文和英文指定不同的字体,十分炫酷的喵。如果我不用XeTeX的话。。那你就杯具了。._.
._.
._.
._.
._.
._.
._.
._.
._.
._.
._.
._.
._.
._.
._.
._.
._.
._.
._.
._.
._.
._.
._.
._.
嘛。。通用的解决方案还是有的喵><伟大的ctex文档类/宏包xeCJK是只有XeLaTeX才能用的宏包,TeX和pdfTeX表示你这是红果果的歧视啊,你看今年春晚都反歧视了是不,总得搞出个通用的套路才行。于是就有了ctex文档类和宏包的喵(似乎反了,ctex貌似早于XeTeX的喵._.管它呢),只需轻轻一用,从此跨越平台过上xing福生活不是梦想。它的原理是检测一下引擎,如果是XeTeX就用新套路,不是就用老套路的喵,当然做了很多其他工作,具体可以看文档,也是中~文~的喵>//<ctex的使用方法是:

  • 使用ctex文档类
  • 使用ctex宏包

使用ctex文档类以前我们说过LaTeX内置了一些文档类,像article什么什么的十分好用之类的。有了CTeX你就可以抛弃原来的文档类了._.ctex文档类直接支持中文,只需要用ctex给出的文档类就可以了。article → ctexart
report → ctexrep
book → ctexbook
换一换就好了的喵。使用ctex宏包\usepackage{ctex}这还用我说么._.小提示ctex的默认字体是Windows自带的那个坑爹宋体,同时还会用到Windows自带的坑爹黑体和坑爹楷体还有坑爹仿宋体,这些字体是有版权的,所以各大TeX发行版是不带的O//O 因此如果你用Linux,确保安装一下它们的喵。下期预告页面设置,指定一下页边距页眉页脚什么的喵。
from: http://blog.renren.com/blog/339175058/895170050?bfrom=01020110200