晓明's profileGarden of Lazy CatPhotosBlogListsMore Tools Help

晓明 刘

Occupation
Location
感谢访问!
Please wait...
Sorry, the comment you entered is too long. Please shorten it.
You didn't enter anything. Please try again.
Sorry, we can't add your comment right now. Please try again later.
To add a comment, you need permission from your parent. Ask for permission
Your parent has turned off comments.
Sorry, we can't delete your comment right now. Please try again later.
You've exceeded the maximum number of comments that can be left in one day. Please try again in 24 hours.
Your account has had the ability to leave comments disabled because our systems indicate that you may be spamming other users. If you believe that your account has been disabled in error please contact Windows Live support.
Complete the security check below to finish leaving your comment.
The characters you type in the security check must match the characters in the picture or audio.
Photo 1 of 38

Garden of Lazy Cat

June 04

技术维护中

好久没写blog了,咱也跟风技术维护一下吧……

March 24

原来幸福是这样的…

  年前跑步的时候,就发现教育台的“幸福剧场”的广告是用的西门大官人被莲妹的叉竿打中了幞头的片段。结果今天晚上发现还是这个,想来《水浒》就是再长也能演个好几遍了吧。原来对于教育台的人来说,幸福就是这个样子的。

March 11

Zebra Crossing vs. Crosswalk

  昨天和Chris闲聊,说起来中国和美国交通标志的差异。我给他举例子说,机动车道上的白色空心菱形,在美国表示car pool车道;但是在中国则表示前方有人行横道(zebra crossing)。不过没想到Chris居然听不懂zebra crossing,问我这是动物表演么…… 于是我给他解释说,就是那种黑白相间的线,用来让行人横穿机动车道的。Chris恍然大悟,告诉我,这东西在美国不叫zebra crossing,而是叫crosswalk。

  回来查字典,Colins上倒是明确标明zebra crossing和pedestrian crossing都是英国用语。但是维基百科上则说zebra crossingpedestrian crossing的一种,并且二者都没有标明是英国用语。而crosswalk则被直接重定向到了pedestrian crossing。

February 27

再说在LaTeX中使用中文字体

  在刚开始学用LaTeX的时候,曾经花了相当大的精力去折腾中文字体。最近才发现,原来用XeTeX处理中文非常方便,不需要任何设置,就能够使用系统中安装的TrueType和OpenType字体。

  MikTeX2.7中已经集成了XeTeX 0.999.7,所以安装了MikTeX2.7之后,就已经有了XeTeX了。只需要在编译的时候,使用xetex代替tex;xelatex代替latex命令即可。下面就是一个简单的例子,将下面的代码以UTF-8编码方式保存成一个文本文件,命名为test.tex

\documentclass[12pt,a4paper]{article}
\usepackage{fontspec}
\usepackage{hyperref}
 
\setmainfont{SimSun}
\begin{document}
    \tableofcontents
    \newpage
    \section{宋体}
        测试简体字
    \section{细明体}
        \fontspec{PMingLiU}\selectfont 測試繁體字
\end{document}

  然后执行xelatex test两次,就可以生成带有中文书签的pdf文件了。包括CJK extB的字体都可以直接使用,非常方便。生成的pdf文件是内嵌字体的,而且可以直接copy。所以需要考虑所用的字体是否被授权可以嵌入pdf。

  XeTeX无法和CJK包一起使用,不过可以到ctex论坛上下载一个xeCJK包。xeCJK可以和XeTeX一起使用,这个包处理了诸如中文标点之类的问题,还支持分别设置中英文的默认字体,使用起来比较方便。

  文件中使用的字体名称,比如SimSun,PMingLiU等,可以用fc-list命令获得。在命令行窗口中执行fc-list可以看到所有能够检索到的字体,也可以后边跟上语言名称来缩小范围。比如我的机器上执行fc-list :lang=zh-cn命令查询简体中文的字体,结果如下:

STCaiyun,华文彩云:style=Regular
YouYuan,幼圆:style=Regular
STHupo,华文琥珀:style=Regular
FZYaoTi,方正姚体:style=Regular
NSimSun,新宋体:style=Regular
FangSong,仿宋:style=Regular,Normal,…
KaiTi,楷体:style=Regular,Normal,obyčejné,Standard,...
Microsoft YaHei,微软雅黑:style=Regular,Normal,obyčejné,…
SimSun,宋体:style=Regular
STFangsong,华文仿宋:style=Regular
STXinwei,华文新魏:style=Regular
Arial Unicode MS:style=Regular,Normal,obyčejné,Standard,…
STXingkai,华文行楷:style=Regular
STLiti,华文隶书:style=Regular
SimHei,黑体:style=Regular,Normal,…
Adobe Heiti Std R,Adobe Heiti Std,Adobe 黑体 Std,Adobe 黑体 Std R:style=Regular,R
STZhongsong,华文中宋:style=Regular
Microsoft YaHei,微软雅黑:style=Bold,Negreta,tučné,fed,Fett,…
FZShuTi,方正舒体:style=Regular
Adobe Song Std L,Adobe Song Std,Adobe 宋体 Std,Adobe 宋体 Std L:style=Regular,L
STXihei,华文细黑:style=Regular
LiSu,隶书:style=Regular
STKaiti,华文楷体:style=Regular

  同理查询繁体中文字体可以用fc-list :lang=zh-tw命令,查询日语字体可以用fc-list :lang=ja。

February 26

二月二,龙抬头

  古时中国将天空分为三垣二十八宿,用日月所宿之星官断定春夏秋冬。宿,顾名思义,就是指太阳所栖息的位置。而这二十八宿又分为青龙、白虎、朱雀、玄武四组,每组七宿。

  在东方青龙七宿中,角宿是青龙之角。角宿辖十一个星座,但自身只有两颗星,分别是角宿一(室女座α,1.0等星)和角宿二(室女座ζ,3.4等星)。一大一小,分列南北,形状如同一个长角。在春季的夜晚,角宿正好升起于东方。这就是二月二,龙抬头的来历。角宿一是全天第16亮星,在春季的夜晚相当耀眼,它和大角(牧夫座α,−0.05等星,天空第三亮星)以及北斗七星的斗柄,组成了著名的春季大弧线,非常容易辨识。

  早在先秦,先民就已经知道利用角宿来断定春天的来临。东汉时的《四民月令》就有如下记载:“农语曰:‘河射角,堪夜作’”。意指银河指向角宿的时候,春季就到了,需要辛勤务农了。东北还保留有一古谚:“银河吊角,鸡报春早”,正好可以和《四民月令》相呼应。

  清兵入关之后,于顺治二年六月颁布了《薙发令》,其曰:“向来薙发之制,不即令画一,姑听自便者,欲俟天下大定,始行此制耳。今中外一家,君犹父也,民犹子也。父子一体,岂可违乎,若不画一,终属二心。不几为异国之人乎。此事无俟朕言,想天下臣民亦必自知也。自今布告之后,京城内外限旬日,直隶各省地方,自部文到日,亦限旬日,尽令矱发。遵依者为我国之民;迟疑者同逆命之寇,必置重罪。若规避惜发,巧辞争辩,决不轻贷。该地方文武各官,皆当严行察验。若有复为此事渎进奏章,欲将朕已定地方人民仍存明制,不随本朝制度者,杀无赦!”(见《清实录·世祖实录》卷十七)

  清初之时与后世不同,当时薙发只留头顶一小撮,名为“金钱鼠尾”式。清史大家郑天挺先生的《探微集》中有提及说:“剃发是女真人的一种风俗习惯。满族的习俗是男子将头顶四周的头发剃去寸余,只留顶后中间长发,编成辫子,垂于肩背,除父母丧和国丧百日内不剃外,四周长发不得蓄长,要时时剃除,所以叫做剃发或剃头。”发辫可以轻松穿过金钱孔,自然和后世的大辫子不同,尤其难看。

  中国人自古就相当珍惜自己的皮肉,孔子云:“身体发肤,受之父母,不敢毁伤,孝之至也”(《孝经·开宗明义章》)。这里的发肤说的就是毛发和皮肤。故而比如黥面,髡刑都是相当侮辱人的刑法。那么《薙发令》实际上就是在挑衅汉人的羞耻心和孝道观。《明季南略》中就记述了很多因为抵制薙发令而自杀的义士。据说当时的遗民们曲线抗议,相约正月不薙头,想必是正月要祭祖,薙了头无颜见祖宗了。此所谓“正月不薙头——思旧”。后来以讹传讹,就变成了“死舅舅了”。

  如此一来,既然出了正月就可以理发,自然要选二月二了。大抵也是因为把自己比作龙,讨个好口彩吧。

February 25

又遇到一个IE的bug

  我用IE来显示一系列文本的时候,由于格式要求比较复杂,所以不能直接用<pre>元素,但是又需要保持原来的风貌。于是我就自己写了一个函数来转义连续的空格为同等数量的“&nbsp;”,今天在和一个精通CSS的同事聊起来这件事的时候,他建议我使用white-space这个属性。只要将值设置为pre就可以了。这个消息还是很振奋人心的,我可以减少不必要的代码,让浏览器自己去处理。不过用了之后大失所望,原来这东西在IE里有问题。

  以下边的内容为例:

1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Strict//EN">
2 <html>
3     <head>
4         <style>
5             SPAN
6             {
7                 white-space: pre;
8             }
9         </style>
10         <script>
11             function fnLoad()
12             {
13                 var newspan = document.getElementById('test2');
14                 newspan.innerHTML = 'test            whitespace.';
15             }
16         </script>
17     </head>
18     <body onload='fnLoad()'>
19         <div id=somediv>
20             <span class=somespan>test            whitespace.</span><br>
21             <span class=somespan id=test2></span>
22         </div>
23     </body>
24 </html>

  这段代码在IE里显示的结果是:

test            whitespace.
test whitespace.

  而在Firefox里就会正常显示为:

test            whitespace.
test            whitespace.

  万恶的browser quirks!

国学大师

  记得去年某日和小芃芃闲聊,聊起来文怀沙,颇八卦了一番。没想到最近居然这位老先生的老底都被人翻了出来,相当热闹。

  08年10月刊的《万象》刊登了舒芜老先生的一篇文章《老吾老》。我虽然颇为不待见舒芜这人,但是八卦我还是喜欢看的。这片文章标题是个反话,里边极尽挪揄之能事,狠讽了文怀沙一把。其实舒芜说的事情之前就早有耳闻,像因为《楚辞》注得太滥,被轰出人文社一事就属于证据确凿;而给领袖进春药一事太过八卦,就只能算作姑且听之了。不过很好笑的是,当时文怀沙一门无人出来反驳,想必是不想把事端搞得太大,让舒芜老先生暴出更生猛的料来。

  国学一词,小了说是小学,往大了说医星命卜、经史子集都在其列。文怀沙连训诂都搞不定,遑论其它。文怀沙自吹自擂的作品,只有《楚辞》和《四部文明》。若干年前我在书店曾经翻看过文怀沙的《屈原九歌今绎》,不过是类似于中学里的古文串讲的水平。无义理,无考据,无辞章。相比黄灵庚先生的《楚辞章句疏证》,其差距不可以道理记。《四部文明》更为好笑,不过是找一些古籍影印,便号称“一亿四千万言”,且捧臭脚之人颇多,《光明日报》大肆宣扬,最后以定价八万八推出。文怀沙自称《四部文明》是其半辈子心血,超越了《四库全书》云云。《四库全书》也是古籍选本不假,瑕瑜互见也不假。但是《四库全书》有纪晓岚的煌煌200卷的《四库全书总目提要》,对所选书目叙述源流,提要和评价。到今天仍然是国学研究的圣经级别参考书,又岂是《四部文明》可以比拟的?

  季羡林先生在其《病榻杂记》一书中曾经提及:“我对哪一部古典,哪一个作家都没有下过死工夫,因为我从来没想成为一个国学家。除了尚能背诵几百首诗词和几十篇古文外;除了尚能在最大的宏观上谈一些与国学有关的自谓是大而有当的问题比如天人合一外,自己的国学知识并没有增加。环顾左右,朋友中国学基础胜于自己者,大有人在。在这样的情况下,我竟独占‘国学大师’的尊号,岂不折煞老身!我连‘国学小师’都不够,遑论‘大师’!”季羡林的《大唐西域记校注》和《糖史》两书考据功力颇深,不过他辞国学大师一说也算不上谦辞。至于文怀沙的作品,比起这两本差的还远着呢。

  钱穆先生在《国学概论》之弁言中说:“学术本无国界。‘国学’一名,前既无承,将来亦恐不立。特为一时代名词。”老先生这话果然高瞻远瞩,一针见血。现在不仅‘国学’成了时代名词,连‘国学大师’也成了一时代名词了,与时俱进了呢。

February 20

万恶的IE!

  最近有这么一个需求:在浏览器中的一个能够显示HTML的输入框中,即时检测输入内容的变化以及字符数目。

  首先<input>和<textarea>被排除了,因为这两者只能显示纯文本。如果是HTML文本,就会被近乎原封不动[1]显示出来。那么就只能用<div contenteditable>这种东西来做了,然后问题就出现了。对于欧洲文字来说,这个没有问题,我只需要响应这个HTML element的onKeyPress和onKeyDown事件就可以处理绝大多数的情况。可是对于亚洲语言来说,因为有输入法的存在,这个问题就变得离奇地困难。因为通过onKeyPress和onKeyUp第一无法获知用户输入的是什么字符,第二无法获知长度,第三无法获知什么时候输入结束。

  于是决定响应DIV的onPropertyChange事件,结果发现在IE中居然没有反应。google之,说是IE的著名bug,拥有contenteditable=TRUE属性的element不会发出onPropertyChange和onChange事件。tnnd!

  于是乎,这个问题现在无解了……。


[1] textarea会很“聪明”地帮你去解释转义字符。比如<textarea>&gt;</textarea>会显示成>

February 17

雪花

  早晨上班的时候,在汽车站苦等汽车不来。无聊之下,举起手来,闲看落到手套上的雪花。长这么大还是第一次仔细观察雪花,以前只是从书上,网络上间接地了解到雪花的美。今天才亲身体验到,的确是相当的漂亮,是一种相当精致的美。想来还是东北的雪太大,雪花聚在一起形成大片,已经看不出来单片雪花的样子了。所以我从来没注意到。

  晚上下班的时候已经快九点了,居然还在下。在北京来说,这真是难得的大雪了。

  说起雪花,一定要提加州理工的Kenneth G. Libbrecht教授。这位老大用自制的设备拍摄了好多冰晶的照片,相当漂亮。其照片有一阵子在国内网络上相当流行。此老大还出了若干本关于雪花的专著。对他的照片感兴趣的可以到他的官方网站上看看。

February 12

纯粹好奇

  日语中的地理名词比如山(やま),島(しま),浜(はま),沼(ぬま);还有表示空间的词比如隈(くま),端(つま),隙(ひま)都是以ま结尾。这是一个巧合呢,还是说有其来源呢?这几个词都是同一类型的词,都是日本本土读音——训读,严重怀疑是有原因的。

  Google之,未果……