给LaTeX添加字体
好,第一次正确的拼写LaTeX啦。
下载的是据说挺不错的CTeX套装。2.8吧。就是CTeX+Miktex。
其实是一个CJK解决方案。
话说有没有人用了这么多年电脑没有遇到过编码问题?
如果没有,太幸福了。当然IE偶尔调一调编码只是小case。
LaTeX就不一定了。
首先,啊Knuth老的LaTeX当然不会原生支持中文。。。。
CJK是一个中文解决方案。其实是某德国人写的。用于支持“东亚文字”。
中国原生好像还有个CCT的。有篇文章写了很长地比较它们。。。。
中文真是麻烦的。。。
今天突然想添加一下字体。
英文字体很好搞,弄个什么winfonts包,随便改一改,找他说的initexmf -u 啦updmap啦一下就可以用了。
可是中文字体搞了很久搞不定。。。。
好多DIY教程好脑残。目录localxmf其实是unix下的叫法。。。。对一个WINer很容易误解的/找不到。
xgbkfont一直搞了很久都没用上……
ctex论坛上有人做好的msyh字体,解压了,照说明安装,好像也不能用。。。
正当觉得奇怪时,发现把
/begin{CJK*}{UTF8}{msyh}改成/begin{CJK*}{GBK}{msyh},出来的乱码就是雅黑的……
//好冷啊,其实texworks默认是utf8的,我的notepad++也是。。。
但是据说cjk都是默认给GBK的。
//突然发现 cjk=空姐老师。
那个msyh字体除了只是gbk以外蛮好的。。。。bold也是独立字体。。。
因为本人很国际化很喜欢unicode……
所以——
最后终于找到了个工具,fontsgen,好像是1.3的,弄个perl的dll就可以用。。。。
然后自己convert了个UTF8版本的msyh。和msyhbd。然后把c70msyh.fd几行改成例如:
就是把msyh字体的bold指向msyhbd字体(真正的加粗雅黑。。)
\DeclareFontShape{C19}{msyh}{m}{n}{<-> CJK * msyh}{}
\DeclareFontShape{C19}{msyh}{bx}{n}{<-> CJKb * msyhbd}{}
为什么呢,,这个说来话长。。。
本来中文是没有加粗Bold啊斜体Italic啊一说的。。。。
但是大家很喜欢西方那一套。。。。就仿照之改了来。。。。
但是,中文毕竟字符集很大不能像英文一样给个normal, bold, italic, bold italic四种字形。
so中文的字体的加粗什么都是“字体渲染”的。
具体来说,粗体是三次平移叠加的。。。。
但是这样的坏处是放大容易有锯齿,在拐角的地方。。。。
soMS就托方正搞了这个雅黑。。。
这个雅黑是据说一个字成本几块钱…… 反正,yahei+cleartype在液晶上效果超好。。。
雅黑的粗体就第一次是独立字体的。。。。
但是就UTF8上一直都没有斜体……
后来试过宋体等在UTF8上都没有斜体…… 好冷。。。。
当然咯,据说标准的中文排版时不用斜体,都是使用楷体、仿宋代替的。。。。(同样可以用类似更改*.fd文件的方式实现)
但是还是想要吐槽几句。。。。
当年那个德国友人为什么会把一个东亚语言支持写成非Unicode的呢?莫非他开发环境设置的是东亚语言编码?
很久很久以前,linux的默认编码就是utf8.
utf8有各种好处。当然,用utf8的中文是一个三字节,比起gbk/gb2310要多一个字节。。。。
但是存储器现在毕竟也是比较便宜了。。。。况且可以避免各种无聊的乱码。
而且用pdflatex编译那个msyh字体的tex会特别慢,大概3s一个。。。好像别人做的gbk的没什么问题。。。。
//其实应该是,那个字体生成器产生的索引是GBk的?然后utf8编码时多一道转换?但是song/hei等字体并不会这样。。。据说什么华文新魏也不会……
没有编译过什么方正静蕾简体什么的,不知道会不会很久。。。
|