我曾经因为Firefox的缺点和Google Chrome的吸引,放弃了Firefox一个多月,在这一个多月中我用一个重度Firefox使用者的心态(简而言之就是“能不能”的心态,而不是“快不快”)去配置和使用了Google Chrome,在这里分享一下自己的经历和感触。首先要说的是因为Firefox 4.0的吸引,我又把Firefox变回了自己的默认浏览器。
为什么暂时放弃Firefox?
Firefox 3.7a1 2010-02-14版后引入了新的图标,但是这组浮雕状的图标在我机器上严重拖慢了Firefox的界面和菜单响应,甚至影响了网页打开的速度。症状就是CPU一直居高不下。该问题一直没有得到解决,我也曾经尝试新的配置文件使用0214之后的3.7alpha,但是效果一直不理想。
为什么开始使用Google Chrome?
要放弃Firefox肯定得有一个能替代的浏览器。老婆一直在使用Iron,我一直是抱着“她的需求比较简单所以Google Chrome就够了”的心态,自己并不使用它。后来看到Google Chrome的扩展中心真的提供了很多好的扩展,于是开始认真地对待Google Chrome,看看能不能把它打造成“自己的浏览器”。
Google Chrome的卖点是速度,这一点在刚刚开始使用的时候得到了很好的体现。尤其是我之前用Firefox开Gmail,Google Docs等Google的重度AJAX服务非常痛苦,有时关闭Gmail后,浏览器都会假死好久。这一点对Google Chrome来说是得心应手的,毕竟Google Chrome的跑分能力在那儿摆着。如果说Google Chrome在功能上能够齐全一些,它就会吸引我去用。
真正让我开始使用Google Chrome的契机,乃是字体。Firefox的字体设置非常完备和明了,而Google Chrome的字体只能用 *惨不忍睹* 来形容,我这篇文章如果有一个相当苛刻的词汇,就得用来形容Google Chrome的默认字体。好在找到了Chrome Stylist扩展,用CSS把Google Chrome的字体锁定为Myriad Pro + 微软雅黑。我这才开始愿意用眼睛看Google Chrome。
Google Chrome的优势
冷启动快:这一点毋庸置疑,所以说,需要快速开关浏览器的话,Google Chrome的优势明显。
添加/禁用/启用扩展不用重启。这个是我目前认为Google Chrome最值得借鉴的地方,如果有了它,Firefox一样可以大大缩短启动时间。但是架构的不同让Firefox不可能直接把这个概念搬过来,而只能先通过Jetpack来实现一些简单的扩展。
Google Chrome的不足?
使用它一个月后,我又被Firefox 4.0吸引回去了。为什么我会这么快又放弃Google Chrome?除了一方面自己已然是Firefox的长期用户外,Google Chrome的一些不足让我又可以舍弃它。
** 资源开销巨大 **
Google Chrome是以速度为卖点的。在刚开始用的时候,倒没有觉得速度上的巨大优势是以什么为代价的。直到装了一堆扩展,把它打造成“自己的浏览器”之后,才发现每次启动时CPU风扇响个不停。冷启快不假,点下按钮到界面出现只要3~5秒,如果是无扩展的Google Chrome,界面出现基本上就是能用了。但是我至少有10个扩展是随浏览器启动的(其余有一些备用,因为Google Chrome启用扩展不用重启),这些扩展加载的方式是一个扩展一个chrome.exe进程,需要相当一段时间。也就是说,从界面出现,到真正可以把光标放到地址栏进行输入之类的操作,还要卡住5秒左右。
真正重要的是内存的占用,Google Chrome除了扩展单进程外,每个网站也是单进程的,任务管理器中一排的chrome.exe累加起来,我2G的内存都显得吃力。我不是任务管理器症候群,也一直认为内存闲置着不如不用,但是Google Chrome开着的情况下,再开一个Photoshop做设计,多休眠/唤醒几次之后,就会频频出现“计算机内存不足,请关闭Adobe Photoshop”的提示,而在使用Firefox的时候我甚至可以Photoshop和Illustrator同时开着。
在扩展装多了之后,Google Chrome打开标签页也频频出现一卡一卡的现象。Firefox也存在这个现象,应该是相应的扩展对页面内容进行处理需要额外的CPU开销。在硬件配置不变的前提下,这属于资源占用和软件功能不可调和的矛盾,但至少说明简单地换一个浏览器并不能解决问题——在功能提高之后,Google Chrome的速度也有比较大的下滑。
此外,Google Chrome对磁盘空间的消耗也比较大:在用户数据目录下有几个History Index文件和一个Thumbnail文件,到目前为此他们加进来已经达到了341MB。看来现在不用诟病Firefox的places.sqlite和urlclassifier3.sqlite了。
** 功能和易用性 **
转去Google Chrome本来就是因为它在功能上的提高,这方面是值得称道的,毕竟Google的号召力吸引了大批的扩展作者。Chrome扩展中心里面也有很多优秀的扩展(下文会提到),相信Google Chrome在这方面还会继续进步。但是目前来说,Firefox的易用性和可扩展性依然对我很有吸引力。举个例子,Google Chrome的网页右键菜单至今依然是神圣不可侵犯的禁地。而对于一个普通的电脑用户而言,右键往往是最直接的“功能触角”,没有了它,调用很多功能将是相当复杂的事情。
以Tineye反向图片搜索扩展来说,在Firefox里面,装上了之后只要对某个网页图片点右键便可立即呼叫这个搜索引擎。可是Google Chrome的右键不可侵犯,于是Tineye为它设计的同名扩展在安装之后,便会在工具栏生成一个Tineye按钮,在某网页看到自己想找的图片,你需要点击这个按钮,然后该扩展生成一个新的弹出式窗口,里面包含了该页所有的图片,然后,你去选中你要的那一张吧……说实在的我还蛮佩服Tineye的开发人员解决问题的能力,可是Flashgot(或同类下载器调用扩展)的作者们似乎仍然在捉襟见肘中,目前Google Chrome调用外部下载器依然是比较困难的事情——事实上我在用Google Chrome的这一个月中,凡是要调用外部下载器,我情愿打开那个很慢很慢的Firefox 3.7a1。
Context Search的同名扩展,实现的方式是在你选中任何文本的时候自动出现一个小箭头,让你选择搜索引擎,这些搜索引擎需要你自己独立配置,而不是直接调用Google Chrome的搜索引擎。说起来Context Search想自动调用Google Chrome的搜索引擎也的确有难处:Google Chrome的搜索引擎往往是自己识别某个网站的搜索引擎代码后不加提示地加入到用户的搜索引擎列表中去的,这个功能我不能说它就不好,至少它让用户不需要自己学如何添加搜索引擎,但是用户还是需要在此后的地址栏输入中慢慢发现它们。
其余诸如BBcode这类很依赖右键的扩展都已经没有了自己的容身之处。
此外扩展想改变浏览器本身的一些行为也很难。例如Ctrl+Tab的顺序问题,在诸多使用多标签的应用程序中,Ctrl+Tab的顺序是MRU(Most Recently Used),即用户可以通过反复按这个组合键(按一次后放开Ctrl)来在两个标签页之间切换,通过不放Ctrl连按Tab,在最近使用的标签页之间切换(或者按标签页的左右顺序切换,由某个about:config选项进行控制)。然而Google Chrome却无论如何都是按标签页的左右顺序切换,试想在两个标签页之间进行一些文字的复制粘贴,通过Google Chrome实现进来很难,不过我倒是找到了一个偏方:放弃Ctrl+Tab,而把另一个标签页拖成一个单独的窗口,这样可以用Alt+Tab来切换,后者是系统级的快捷键,遵守MRU。
Google Chrome的地址栏合并了搜索栏的功能:书签、历史、搜索全部整合。有它好的一面——简约并节省空间。但是也有不足:提示条目太少,使得有时想找书签找不到,有时想找历史找不到。在Firefox中,首先提示的条目数可以自己定义,其次提示的内容可以加以限制(例如不显示匹配的书签条目)。最关键的一点:Google Chrome的书签没有Tag功能,大部分时候我无法通过地址栏找到我要的书签。
** 某些扩展 **
在这一个月的使用过程里,鼠标手势和平滑滚动是我认为Google Chrome比较不足的扩展。关于平滑滚动,我承认我有点先入为主,毕竟自己已经习惯了Firefox的平滑滚动(浏览器自带,并非扩展),但是Google Chrome默认的滚动效果我没法接受,几个平滑滚动扩展实现的效果也不好。最好的扩展应该是YASS的Chrome版(Chromium Wheel Smooth Scroller),但是这个扩展在我的机器上使用时,一是会有“滚动到页面外”的奇特效果(在Ubuntu下的Firefox上用YASS,也是这个效果),二是会受到鼠标手势扩展Chrome Gestures的影响,后者自己也有一个平滑滚动的参数,而且即使不启用,也依然有效果,除非整个扩展给禁用了。最终只有割爱,放弃了平滑滚动扩展,只使用鼠标手势扩展和它自带的平滑滚动。
但是鼠标手势的流畅感和功能性依然无法比拟我在Firefox中用的Mouse Gestures Redox。例如:滚轮手势不能用来灵活地切换标签页,取而代之地是出现一个列表。在有新标签页占用资源时,浏览器会卡住,导致手势失灵(不过这一点Firefox也是一样的,依然是硬件能力的问题,因为系统繁忙的时候也有可能无法处理连续的键盘和鼠标动作)。另外Google Chrome的扩展设置页面看着像一个标签页,事实上不具备普通标签页的特性,一个明显的例子就是鼠标手势不可用,往往会影响迅速关闭一系列标签页的动作。
** 号称的功能(暂时)没有效果或没有实用价值 **
* 独立进程
Google Chrome一个很吸引我的功能是多进程:一个网站的所有标签页共用一个进程(并非一个标签页一个进程),这个进程崩溃了,浏览器的其它标签页不会崩溃。相比于Firefox一杆子打翻一船,这个功能能减少崩溃带来的损失,例如论坛发帖白写几千字。
不过很可惜,用 Google Chrome的一个月,这个功能基本上没有享受到。预设的情况是,如果只有一个标签页崩溃,Google Chrome会给你一个深蓝底的页面,中间是一个类似“囧”字的图标,刷新即可显示这个崩溃的标签页。事实上我基本上没有碰到这种情况,我碰到的全都是“Chromium has crashed,restart now?”,点重启,会提示你是否恢复崩溃前的标签页。可是这一点Firefox也完全不赖啊:除了内存不能为read/written这种“硬”崩溃,只要崩溃管理器来得及捕捉到崩溃信息,就可以恢复标签页。而且这也不是Google Chrome的卖点。不仅如此我还发现,想看这个“囧”得不行的小人也不是没有办法:把网络切断,Google Chrome马上给出一排扩展崩溃的信息,这真的有点奇怪。也就是说,在关机之前,如果忘了关Google Chrome,则100%出现崩溃的提示。
相比之下,同样是整个浏览器崩溃掉,Firefox做得更好一些,如果可以进行崩溃恢复,在文字编辑框中写的文字很有可能可以保留,而Google Chrome则肯定无法保留。
不难想像要实现标签页独立的安全保护(多线程?)还有很长的路走,所以说我暂时不期待Firefox实现该功能了。
* 同步功能
Google Chrome有着Google得天独厚的同步功能,书签同步早已是默认的功能,最近的新Builds中又加入了扩展同步,让Firefox的fans们好不眼馋,但是平心而论,这两个功能都还是刚刚起步。书签同步利用的不是Google Bookmarks,而是一个Google Docs的暂存档,并且无法直接查看网络上存放的书签。这一点Xmarks做得更好些,可惜Google Chrome和Firefox书签格式的不同(尤其是没有Tags)使得用Xmarks来在两个浏览器之间同步也显得不太可能。
扩展同步则吸引了相当多的眼球,为了测试,我在Windows 7和Ubuntu Linux底下各安装了最新支持同步的Chromium 6.0版。在Windows 7下先打开同步功能,然后到Linux底下启动Chromium——的确很快,扩展一个个不加提示地就被装上了。不加提示?对,不加提示。这让我有点担忧,不加提示,你知道我想从哪台电脑同步到哪台电脑呢?我在A机器上删除了一个扩展,是马上被B机器的版本同步回来,还是到时候B机器上那个相应的扩展在同步过程中被删除?
目前还没有扩展设置的同步,我想这才是用户比较关心的。但是,通过长期使用Xmarks,我自己也觉得同步这种事情是相当复杂的,所以暂时也不再对这功能望眼欲穿,我情愿要一个优秀的备份扩展。
** 其他 **
在使用Google Chrome的过程中,经常会出现一崩溃,扩展就没了的现象。例如,我之前还挺喜欢Google Chrome的把Application shortcut功能,也就类似于Firefox之前的尝试——Prism。用户可以把常用的网站例如Gmail生成一个快捷方式,双击后打开一个没有地址栏的窗口直接访问相应的Web App(在Win7中可以直接Pin到任务栏)。不知道为什么后来就不能正常工作了,例如我任务栏有一个Google Task的Application shortcut,在Google Chrome运行时,点击这个快捷方式直接会造成Google Chrome崩溃。再重启Google Chrome后,就会丢失一系列扩展。需要去Chrome Extensions Center一个个装回来,虽说扩展设置并没有丢,但不能不让人担心。何况最要命的是Google Chrome不像Firefox,备份一个配置文件目录到时候拷贝一下就行了——我至今没有找到方便的方式能通过备份还原把Windows下的配置同步到Linux下去。
** 缺少交流讨论 **
这也是我用Google Chrome越用越孤独的原因。我以为Google Chrome的得势,相应地在国内会有比较热闹的讨论区(我的参考是Ubuntu,小红伞,卡巴斯基),可是我搜索了一下,国内有两个论坛是比较热门的Chrome论坛,我在两个论坛都注册了,可惜,有一个论坛用Chrome自己都无法登录,遑论发帖交流。另一个论坛在我注册的时候,主讨论区已经7天没有人发帖,查看了一下帖子内容,我想知道的都没有。
Google Chrome的优秀扩展
作为Firefox用户,能在Google Chrome找出的优秀扩展不多,也不足为奇。Chromed Bird是我印象最深的Twitter扩展,它的功能性和易用性远远超过了Echofon(Twitterfox)。另外是一些Google服务的扩展,例如Unofficial Google Task,DayHiker(Google日历扩展),Reader Plus(Googel Reader强化)都是不错的推荐。Ultimate Chrome Flag是一个集成了IP地址解析/国旗/PageRank/Alexa Rank/WOT信息的大型扩展。至于其它,不是逊于Firefox,就是Firefox中已有类同。
为什么回到Firefox?
那是因为Firefox 4.0b2pre。虽然暂时淡出了Firefox的世界,但是还经常回到Firefox中文社区看看讨论,不经意间看到Firefox 4.0的发布。其实在开始用Google Chrome之前,我一直试着用新建配置去尝试2010-02-14之后的几个3.7a1/a2版本,但是那套新图标始终让Firefox的界面响应缓慢。但是Firefox 4.0给我的第一印象是足够快,我开始的时候还跟自己开玩笑说,嗯,图标少了好多,所以不觉得慢了,后来发现不只是这样。我又跟自己说,装多了扩展肯定会慢一点的,可是Google Chrome装多了扩展照样慢啊。于是我说服了自己来看看这个4.0b2pre。
界面上变成了标签页置顶,除了标题栏没有隐藏,已经很像Google Chrome了。这一点我在很长时间都不太赞同,我比较习惯标签页在底下,不过好像Mozilla团队已经彻底关上了这扇门,标签页不再可能放底下了。好在(笑),使用Google Chrome的这个月我已经习惯了标签页在上面……界面简约了一些,开始时略微有不适应,主要是菜单栏不见了,橙色的按钮里面又没有全部的菜单选项,后来才发现可以按一下Alt调出来。我对界面要求不高,屏幕面积多一点,少一点,不是要命的事情,但是如果要优先牺牲性能去搞界面,我觉得有点本末倒置,因为Firefox本来就不太快。
但是这个Firefox 4.0给我的印象是很快!最明显的是之前提到的类似“关闭Gmail后,浏览器都会假死好久”的现象不复存在了,从地址栏输入Gmail地址到看到信件列表只要3秒不到。再装上Adblock之后,很多页面都是眨眼间就打开了。诚然,比起裸体Google Chrome的点链接后秒开还是略有延迟,但是已经大大接近了,尤其是最后渲染页面的视觉效果非常好:一瞬间全部显示出来,完全没有原来的那种自上而下显示出来的印象。而且我听说Google Chrome快的方式是DNS预读,我查了一下也不太理解它的原理。
我又试着装了几个扩展,我承认在装扩展的时候我显得有点谨小慎微,生怕这短暂的迅捷马上毁在Firefox的扩展臃肿手里,而我之前是一个使用50多个扩展的人。即使是现在我也不能确定装回这么多扩展是不是会把Firefox 4.0拖回到原来那个Firefox 3.7,但是经过了使用Google Chrome的这样一个真空期,这个新的Firefox 4.0暗示我也需要改变自己的一些习惯,去尝试着从纯粹的“能不能”的心态过渡到“能不能+快不快”的混合心态。
结语:
如果前天有人要我推荐一个浏览器,我会问对方是一个喜欢速度的人(Google Chrome)还是功能的人(Firefox),如果今天这个人再问我,我会说,用Firefox吧。
大概有一个月了,我Gmail的垃圾邮件中频频出现来自我自己的邮件。显然发信者只是伪造了我的邮件地址而已,并不是真的窃取了我的密码。上网查了一下,这种技术在垃圾邮件界称为“Spoofing”,发信者无非是穷举无数个电子邮箱的地址来一个个试探。这种邮件首先能更有效地进入对方信箱,垃圾邮件过滤器轻易不敢删除之;其次一旦用户点击其中的链接,这个邮件地址则立即得到确认,垃圾邮件的数量马上会激增。
虽说Gmail的垃圾邮件分析器没有100%确认这类Spoofing邮件并直接删除,但它们还至少是进入了用户的SPAM邮箱。下面的问题就是垃圾邮件夹的新邮件数目会让用户比较郁闷,一方面是谁也不愿意看到那个数字,其次是总让人怀疑有没有误判。从而用户每天要花不少的时间去打开垃圾邮件夹,确认没有误判后,点清空,等等。
在我的经验中,Gmail对垃圾邮件的误判是相当少的,几乎是没有。所以,只要不让我看见它们,就跟没有收到一样。再者说,有时我们会担心有没有注册确认信被丢到垃圾邮件中去,这时我们肯定会需要自己判断,这种情况机会非常少。两相权衡,可以采用下面的方法:
即:建立一条过滤器,From写你的邮件地址(注意网上有说法是写me,我觉得写me不够精确,即便me有可能是Gmail内部的变量),has words里面写上is:spam这个条件判断,点Next的时候,Google会这样提示
Warning: Filter searches containing "label:", "in:", or "is:" criteria are not recommended, as these criteria will never match incoming mail.不用理他,点确认(而已我觉得奇怪,根据测试明明是成功match了incoming mail的)。然后在下一步中,选中Mark as read。开始时我觉得应该直接彪悍地Delete it,但这样不好有两个原因:1. 万一真的误判呢?又要去Trash里面找,而Trash里面很多信并不是垃圾邮件,混在一起麻烦。2. 即使spoofing邮件几乎肯定是垃圾邮件(最次的邮件服务器也好歹能判断出你自己主动给自己发的信吧),但删除垃圾邮件后,垃圾邮件不会被Gmail的分析器扫描分析,因为他们跟有用的被删除邮件混装在Trash里面,相反,如果垃圾邮件存在SPAM目录中,Gmail可以分析它们,这跟你点Report Spam是一样的,Report Spam肯定不是真的向Google提交了什么报告,只不过是把Gmail漏判的邮件放到SPAM目录中,让Gmail还有一次机会扫描分析。越过30天的垃圾邮件会自动被彻底删除,不用我担心。
这样是搞定了Spoofing性质的垃圾邮件,为了让他们更好认,建议在上面的filter里面自动为他们加上一个标签例如“Spoofing Spam”。但是非Spoofing性质的邮件呢?干脆再建立一条规则,from, to 什么的都不填,只在has words里面填is:spam,然后mark as read,也就是说,只要是垃圾邮件,就标记为已读。这样,配合上面的规则,我到SPAM文件夹来找可能误判的邮件就方便了。另外如果由于误判,有一封有用邮件淹没在一堆垃圾邮件中,我至少还可以通过label:spoofing spam很快地删除掉spoofing类的垃圾。

哈,Gmail清静多了。
tagged_by_kmc
Gmail, SPAM, filter, spoof, mail
2%的市场占有率,这是写本文前不久听说的。
不管受到了来自Linux世界自身的多少反对,Ubuntu对这个百分比的贡献是难以磨灭的。之前让我放弃Linux的是openSUSE 10.2,而让我回来继续使用的是Ubuntu 8.10,为什么?
时至今日,Linux的用户群依然是Geek为主,作者Firefox和LaTeX的熟练用户,我不可能不是Geek,但我要说为什么回来继续使用Linux,我的答案是:更好用。在Geek的眼里,Windows是给傻瓜用的,所以才好用,才会有这样那样由于好用带来的负面效应,诸如安全性、速度等等;而Linux则往往被高手拿来炫耀。诚然Ubuntu把Linux的使用门槛降低了很多,但要装上一个Linux,调整到适合日常使用,没有强烈的探索精神和极高的耐心是不可能的,而更多的时候,有些人只是玩玩它并拿Compiz Fusion来鄙视Aero。
在这里要反思一下自己一直持有的一个观点:对没有任何电脑基础(像我的长辈们一样),那么学Linux和学Windows的难度是一样的。很遗憾自己电脑中毒甚久,无法自己回答这个问题,却又没有机会拿父母来做测试,更何况自己教Windows都未必教得好,Linux还是一知半解,根本无法对比教学成果。即使学Windows的难度跟学Linux一样,我开始用电脑就走上的是命令行并最终成为Linux高手,这也只是证明Windows的卫道士没有足够的证据死批Linux难学,却并不能证明这世界上不用Linux的人要转去用Linux有多容易——习惯的力量太可怕了。
微软不可能为双击安装软件申请专利,可这这的专利却注册到了数亿人的心中。Linux该怎么办?不是任何问题都有两个旗鼓相当的解决办法,在最优的解决之道已经被占据时,只有尽量向对手学习,有鉴于此,Linux世界有了软件源的概念,把开放和简便的优点集中到了一起。这仅仅是一个例子。
Linux的目标是什么?各人有各人的想法,因为Linux的载体(发行版)太多。而最让我不习惯的注解,就是“Linux要战胜并消灭Windows!”。类似的现象有很多,往往是一群使用新兴的免费软件的用户(7-zip,Linux,Firefox)叫嚣着要消灭它们的对手,而对方往往是垄断级别的商业软件(WinRAR,Windows,IE)。这像什么?太平天国?很想知道,报着这种心态的卫士们看到xx软件在终有一天战胜对手,自己成为孤家寡人的时候,会如何面对新的挑战者呢?所幸Linux社区没有输在自我膨胀,如果Linux是社会主义,那么现在的它是中华人民共和国,不是朝鲜民主主义共和国——重要的是放下姿态去向对手学习,失去了对手,博弈就变成了俄罗斯方块,只有以失败来结束。Windows在学Linux的安全理念,像Vista的UAC,诚然是给Windows的用户带来了不少不适,但是微软并没有迁就用户:想要调整UAC?先证明自己除了知道双击还知道控制面板。Linux也是一样,只不过是反方向:想要装软件?除了./configure make外,现在可以用图形界面的新立得、YAST……
自由是Linux的信条,它为Linux的今天奠定了基础,却也给它带来了相应的麻烦。首先是发行版之争,我曾经看见有人不遗余力地在任何关于Ubuntu的帖子中大声疾呼“一个没有自己技术,把别人东西拿来打包炫耀的版本,不要使用!要用就用Fedora……”云云。Linux有太多的外沿,以致Linux社区内部就已经起了纷争,太多人容易把一些细小的问题上升到“Linux精神”层面。有精神是好的(因为我至少没有听过什么Windows精神),但若只剩精神没有“物质”,那不奇怪它总是非主流(难怪没有什么Windows精神)。
那要不要有人扛旗呢(因为Ubuntu的支持者号称要一统Linux江湖来跟Windows斗争)?扛旗并不能解决什么:假设Ubuntu要变得Windows一样“易用”,它可以在短时间吸引大量的用户,累积起虚假的繁荣,但最终又不免要把Windows的毛病全面地复制到Linux,自由的精神又无法得到体现。这几年搜索Ubuntu的比搜索Linux的还多,这种涨势是Canonical喜闻乐见的,却是Linux世界的隐患。不过就像我前面说过的一样,Linux并不是也不该是为了战胜谁,故而Linux发行版之间的竞争也会更多地导向良性的一面,它刺激着Linux世界的发展和演变,我想未来的Linux世界不会出现统一,但至少会逐渐出现明朗的分类(沙盒型、大众型、服务器型等等)。因为一方面,自由的探索让Linux时时刻刻有机会为Geek用户带来最新的理念,促成沙盒版;另一方面在Linux的探索和发展中,必定会有不够成熟的例子要被淘汰,开源的理念会像自然界的一样,把最优秀的留下,给大众和服务器带来安全和稳定。
Tagged_by_kmc Linux, font, hinting, freetype, gdi++
1. 问题的出现——Linux Freetype hinting
用上了Ubuntu 9.04,第一感觉就是“字体边缘怎么有点彩色啊?”,原来我装的是8.04,当时觉得除了Firefox每夜版之外,字体是没有什么问题的。我用的是Myriad Web Pro。后来就有很久没有用过Linux,这期间装上了gdi++,体验了灰阶渲染的美丽。Ubuntu 9.04出来后,装上用了一小会,就觉得眼睛痛。
事实上在网上看到Linux的字体hinting使得字体边缘呈现出彩色是伤眼睛的元凶。大家可以试一下,在命令行输入xmag回车,鼠标附近会出现一个小框框闪烁着,可以点击它生成一个截图。从这个放大的截图上,你会看到字体笔划边上彩色的边际。
下面是我的测试环境:
没有手动修改.fonts.conf或相关文件。在外观-字体中的设置是:次像素平滑-次像素-轻微,顺序是rgb,事实上就是装好Ubuntu的默认设置。
在文件管理器中截图,文本是/home/km,看放大效果截图,如果字体边上出现彩色的边缘,就是我说的“让眼睛累”的效果,但我发现Segoe UI在微调中等的时候没有彩色边缘。
2. 对比gdi++效果
下面是gdi++的效果(LCD显示器)。对比gdi++和Linux可以发现,彩色不是关键,关键是彩色的成份,如果用来微调附加的彩色比主笔划还多的话(像小写 m),就喧宾夺主了。

另外我也尝试了很多fontconfig文件,现在基本上已经弄明白font config的语法了,会给字体单独设置微调等等。不得不说的是,如果英文不打开hinting,只有少数几种设计得非常好的字体,如Segoe UI可以让人看得舒服,其余字体都是虚的;可是一旦打开微调,从hintnone到hintfull,几乎都会出现彩色过多,字体主笔划不够粗的尴尬。(这里只看hinting的设置,autohint始终是false,Antialias始终true)。而Linux的fontconfig有没有办法像gdi++那样用一个saturation=xx的参数来调整主笔划的粗细呢?——显然是没有。
中文方面也差不多,网上很多地方说要单独关闭中文的hinting,只用灰度,但如果这样做的话,字体很虚,打开hinting的问题是笔划可能重叠,但是这不比彩色边缘更影响阅读。
3.问题的暂时解决——纯灰度微调(gray-scale hinting)
找到了一个还可以的解决办法:字体用Lihei Pro + Segoe UI. 渲染方式选“最佳对比”(也就相当于平滑=灰度,微调=完全),这样英文和中文都没有彩色了。 
(原文发表于战斗在法国论坛)
Tagged_by_kmc
hadopi, p2p, france, loi, law, emule, bit torrent, téléchargement, piracy
这里把对策和现有的一些疑问放在最前面,没有时间的就不需要往下看了。
危险类(请考虑停止使用)
电驴,Verycd,Emule,电骡:电驴是在欧洲最受打击的P2P软件,报纸报导的截图一般都是一个人在用电驴下载……即使你说你用了PeerGuard,你用了IP过滤,劝你还是不要冒险使用电驴,因为法律一实施,就不知道有多少卧底会上电驴的网络开始搜集IP。
BT,Bitcomet,utorrent:这个直接的联系是海盗湾的倒掉。请不要下载国外网站发布的种子,即使是国内网站发布,也最好靠自己分辨一下,有没有法国人会参与下载?有疑问的话,不要下载。
模棱两可类(弄清楚为什么先)
迅雷:迅雷是个多协议的软件,要区别对待。
1. 迅雷下HTTP:基本安全。最好不要下国外网站提供的(但国外也很少提供HTTP直接下载,多数是网盘,请见网盘的讨论)。其他HTTP下载可以参考这一条。
2. 迅雷下FTP:基本安全。现在用FTP的都是地下党,他们应该不会轻易交出下载者的IP。
3. 迅雷自己的HTTP2P(xx个候选源):安全,这个是法国法律之外的,而且估计几年后也不会有法国人用迅雷。
4. 迅雷下BT/电驴:请参考上面“危险类”,跟用不用迅雷下无关,关键是你下的什么。
网盘:rapidshare, megaupload, skydrive, rayfile, 纳米盘……
1. 国内的网盘绝对安全
2. 国外的网盘基本安全,要看网盘提供商是否跟警方合作,我想不合作的概率更高,毕竟很多人是付费的,这点隐私还不保证?但是网盘接到举报就会删除文件,这一点又比不上P2P的坚挺。
(以下是说下载,上传方面,如果你不确定,请不要从法国的IP主动往网盘上传和分享)
安全类(在目前来说不用担心的)
P2P网络电视(uusee, ppstream):这个目前肯定不会有问题,要找也是找软件开发商,让他们停止提供资源。就像奥运期间我们外国看不了一样。
在线视频(youtube, 土豆,优酷):绝对安全。最多是视频被删除,但是跟网盘一样,担心的话,不要自己上传侵权内容。
看到这里大家也看出点名堂了,如果光是下载,还是不用担心的的,重点是不要上传,这也是为什 么P2P会受打击的原因。
- “不要上传,哪里来的下载?你有没有共享精神啊?”
- “回国了再去发扬共享精神吧。”
好久不来了,大家好吗?
在战法搜索,几乎没有什么结果,不知道是大家不知道,还是都觉得又是虚张声势?这一次(2009年5月12日)在议会通过后,我感觉有必要讨论一下。
HADOPI = Haute Autorité pour la Diffusion des Œuvres et la Protection des Droits sur Internet ,暂且在网络上找到一个翻译是《著作散布与网路保护高级公署》,当然,不爽的人也写作 Haute Autorité de Défense des Opérateurs télécoms, des Producteurs et des Imbéciles。简单说,就是三振出局:相关部门查到你有非法下载,第一次信件通知,六个月内再犯,则再度警告,这次是挂号信,一年内再犯,则会受到禁用Internet两个月到一年的处罚,在处罚期内,用户列入网络公司黑名单,不可再申请任何网络,在受罚期间依然要缴纳预定上网的费用。如果用户进行正式的赔偿(amende honorable,不懂,赔给谁?),可以减轻处罚时间。
自从来了法国就一直在留学生论坛看到这样那样的传闻,但不像这次这样,媒体报导(晚些时候把今天的报纸扫描上来),法国人游行。虽然4月7号左派进行了一次抵抗,但最终法案还是通过了。下面一个可能的挽救机会是欧盟级别的,因为“有议员还提出,法案不符合欧洲议会的规定,后者于本月初通过一项修正案,旨在为民众的互联网接入权提供更加充分的保护,规定只有根据司法机关的决定才可以中断非法下载用户的互联网连接。”。
下面是这个HADOPI的具体执行,我想在这个技术板块,大部分人包括我都质疑这个法律的可执行性,但是不要忘了,这是一个法国人“研发”出来的法律,更主要是针对法国人的,因为法国人比较聪明,所以他们也更容易管。它是这样执行的:由des entreprise privées来监视网络,找到进行非法下载的IP(*讨论1),然后执行HADOPI的“高级公署”收集这些信息,并向网络提供商要求他们交出跟这些IP对应的用户和地址,下面就是三振出局。
*讨论1:也是大家一直都坚持的观点:你凭什么证明我在非法下载?通过监听网络和截获数据包。那么一些传统的P2P下载是有可能被监听的,比如BT和电驴,你可以说“我下载的是合法的软件啊!”,但执法者只要自己加入这个网络,参与到某个盗版电影的下载中,他就可以保存跟他连接的所有Peers的IP,证明他们在下载非法内容。也就是说,这些传统意义的下载,即使创建了迷惑协议(obfuscate protocol),依然相当危险。和原来论坛上广为流传的“上门搜查”从而证明你电脑上有非法资料,这种方法更靠谱——因为你可以说电脑上的资料不是在法国下载的。
对策:
法国的报纸很有趣(或许也从一个侧面反映了法国人对此也是毁誉参半):一版讲HADOPI通过了,旁边那一版讲对策。大禹时代就证明了堵是堵不住的,2009年他们还在老调重谈:
1. 私有的P2P网络。这些交换网络不像BT,电驴用的是公开社区,相反,要通过推荐和自荐来加入,这从一定程度上减少了keuf进去的可能,但是我们都看过《无间道》。不过说到这里,我想说的是:没有绝对安全的网络,不管是用代理还是用加密协议,只要你上网,总是有可能被追踪的。问题在于,谁在乎你干的那些事儿?警力是有限的,下个小破电影跟策划恐怖袭击比,没有那么大的吸引力让他们费尽心思去找你的IP。同理可证,HADOPI的执行者处罚了一些用传统P2P人,可不会少花力气(还顺便为私有企业创造了就业机会),那么好,政客们、FNACards们高兴了,谁还管其他的?
2. 新兴的P2P。报纸列举了(鸣谢)一些例子: Omemo, antP2P, Ipredator,和BT,电驴中可以直接看到IP不同,他们使用IP加密,谁也不知道是谁在下载。IP不暴露,安全系数又高一些。
3. 在线存储网站,如Rapidshare。但是最近有报导,德国警方从Rapidshare要到了上传盗版音乐用户的IP并上门搜查,所以,这些网络也不是绝对安 全,主要看相关地区/国家的法律。
4. 更传统的方式:加密FTP,新闻组和Usenet。这些方式因为太传统往往已经失去了吸引力,但也因为太传统而难以管理,没准在HADOPI mise en place后它们会强势回归。
说到底,作为我们外国留学生倒也没什么太担心,我写这个帖子也只是告诉大家有这么一回事。因为看一下处罚的时间:最快要一年半才封网,封网估计也是从两个月开始封。不能签别的公司?找个伴签。来来回回,到真的要封网了,估计大家都毕业回国了。
Tagged_by_kmc
字体, fonts, futuristic, typography
说实在还不知道该怎么分类它们,但是从myfonts网站的用户标签来看,比较适合归类为Futuristic(未来), Headline(标题), Rounded(圆角)。
字体列表
Baseline Pro
Digitalis
Handbook Pro
Haus Square Pro
Isotext Pro
Korataki
Phantom
Phuture ODC
Phuture Round
Phuture Squared
Reaction
Rebirth
预览(点击放大)
下载链接
http://sharebee.com/9ef833fd
http://www.damipan.com/file/veCJey.html
Tags:
pdf, not embed, font, 不嵌入, 字体, text to curve, pdf, embed font, rename, , 嵌入
1. 字体名伪造
有时出于保护PDF的目的,我们可能不希望别人通过查看PDF信息就知道所用的字体,这个简单。用UltraEdit直接打开生成的PDF文件,由于其中关于字体的信息是纯文本格式的,只要编译掉再保存,就可以伪造字体信息。
2. 字体信息去除(文字转曲线)
上述方式只是隐藏了字体的信息,更多的时候我们想防止PDF被复制。防复制自然有很多方法,例如加密,加密的优点是不会显著改变文件大小,缺点是容易被破解,并且如果是证书加密,查看起来相当麻烦;也可以保存成图片,但是如果保存为位图,矢量化的文字就全部被栅格化了,影响精度。下面介绍一个文字转曲线的方法:
Acrobat 7 Professional简体中文版(升级至7.10,截图为英文版对应),打开一个正常的PDF文件。
- 菜单“文档”-“添加水印和背景”
- 来源--从文本--文本框中打一个空格即可(意思就是不可见的水印),下面的不透明度选99%。确定,保存一次PDF。

- 菜单“高级”-“PDF优化器”,在“字体”中把嵌入的字体全部删除以防万一,然后在“透明度”中勾选“拼合透明度”,再勾选“将所有文本转换为轮廓”。确定,另存一个。

打开魔盒——Firefox每夜版(Firefox Nightly Builds)介绍
Tagged_by_kmc
Firefox, hourly, nightly, download, update, 每夜版, 小时版, 每小时版, 更新
为了减少不必要的阅读,请先判断自己是否适 合/有必要用Firefox Nightly Builds(以下简称FNB)
这类用户的特点包括但不限于:
* 就是喜欢测试最新Firefox,把Firefox浏览器不光当浏览器用
* 不折腾会死或者不折腾就难受:有耐心和足够的心理承受力(相信我,征服Firefox的过程绝对是一个有普遍意义的软件学习和个人提高的过程)
* 既然要折腾,显然得了解如何保护自己:具有一定的电脑知识,例如知道Firefox配置文件夹在哪里,知道Firefox多配置是怎么回事,知道备份
* 知道碰到问题可以通过搜索和交流来解决,知道如何在虚拟世界中交流
* 懂一点英语,会用英语搜索(会用英语提问则更好)
如果你确定要使用,那么下面的文章请 -全 -部-看-完-
什么是FNB(Firefox nightly builds,火狐每夜版)?
Firefox是一个开源的浏览器,有着强大的开发团队和社区支持。Firefox还是一个变化和发展着的浏览器——新功能的引入、旧功能的改进/废除、 性能的提升……这一切都需要一个强大的团体,来测试、反馈并参与浏览器的成长历程,有鉴于此,出现了FNB(后来还出现了Hourly Builds,简称FHB):每一天(几乎是每一天),Mozilla的编译机器都会把当前最新的Firefox代码生成各个平台下的FNB,放置在 FTP上供下载测试。事实上FNB有各种形式的衍生,本文在此不进入具体的细节,仅仅关注下面目录中的文件:
| 代码: |
| http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/ |
根据我的经验,这个URL在很长一段时间会保持稳定不变,所以最新的FNB在这里可以提货。
以下以Windows用户为例,其他系统用户类似。
下载
在上面的目录中下载命名为firefox-%version%-en-US.win32.zip的文件,其中%version%是目前最新的开发版本号, 在本文(2009年5月18)写作时,%version%=3.6a1pre,其中
3.6等于目标版本号(根据经验,这个版本号也不一定是最终版本号,但是既然已经用FNB了,知道自己用的是最新的即可)
a1=alpha 1,第一个alpha版
pre估计指的是preliminary
安装
下载回来一个ZIP文件,不考虑术语的精确性,这个压缩包可称为一个绿色版的Firefox——免安装。你可以把它解压到合适的目录下,例如 d:\firefox (注意,压缩包内已经有一级子目录)。当然,不排除解压缩对你来说比较麻烦,那么也可以在上面的目录下载firefox-%version%-en- US.win32.installer.exe,双击安装。
配置后启动
下面是关键:Firefox配置文件。
OK,你准备要测试Firefox最新版,这意味着潜在的bug和崩溃已经不可避免。但显然,你不光是为了测试Firefox而已,因为你更希望这个蓝色 的地雷可以比较好地陪伴着你的浏览生活。要么你会希望FNB和你现在使用的稳定版(正式版)互不干扰,要么你会希望把主要的Firefox设置迁移到 FNB中,那么首先你应该知道如何操作Firefox配置文件。
配置文件(以下也简称profile)默认的位置(针对Windows XP操作系统):
| 代码: |
| C:\Documents and Settings\用户名\Application Data\Mozilla\Firefox\Profiles\%8HEX%.default |
其中%8HEX%是8位随机生成的十六进制数。
Application Data是一个隐藏目录,你可以在资源管理器里面设置允许查看隐藏系统文件,就可以看见了。如果你已经在用Firefox正式版,那么这个文件夹肯定是存 在的,我们把它称为正式版配置文件。
但是做为测试人员,我的建议是新建一个独立的FNB配置文件。假设FNB装在d:\firefox,那么使用命令提示符(cmd回车),输入下面两条命令
| 代码: |
| cd d:\firefox firefox -p |
打开Firefox的配置文件管理器(Profile manager)
然后参照图片中建立你的配置文件夹,让它跟FNB程序文件在同一个目录下:


然后在第一张图片中,选中FNB(如果你想直接碰碰运气使用旧的配 置文件,则选中default,危险!解释在下面),勾上Don't ask at startup,再start Minefield。这样你就可以启动FNB了,如果一切正常你将看到:
新启动的Firefox,但是标题上写的是Minefield,图标是蓝色地雷,这使得它跟Firefox正式版很容易区分。
纯净的Firefox,没有安装扩展,也没有改动设置。
英文版。
也就是说,这个版本没有影响到你原来安装的Firefox。你可以测试这个版本,一切的改动都在d:\firefox目录下,不会影响其他位置的 Firefox。
现在问题来了,你对这个版本很满意,可惜它是裸体的,没有扩展功能,你想迁移正式版配置文件过 来。上面我说了,你可以在Choose user profile的窗口选Default启动,那么FNB就会使用你c:\documents and settings下面那个旧配置文件启动,这样做是非常危险的。第一,FNB可能无法适应从而无法正常工作;第二,由于FNB会改写正式版配置文件内的数据,那么原来的Firefox,例如Firefox 2.0,Firefox 3.0.10将也无法正常工作!——双输的结果,太惨了。
两个建议:
1. 尽量不要用旧的配置文件,因为首先2.0能用的扩展可能已经比较老了,应该更新,其次,版本跳跃很大,有很多设置也会不兼容。如果你的扩展不是太多的话, 还是一个个手动装上最保险,就像重装Windows后,很多软件你也不得不重装一样。如果扩展实在太多,建议用FEBE打包,此不赘述。
2. 如果非要用,就把正式版配置文件下面相应目录中的文件复制到 d:\Firefox\fnb_profile目录中去,再启动Firefox。
如果你只是零星地用一用FNB,平时还是用正式版居多。那么建议建立一个批处理文件来启动FNB,方法是在d:\firefox下面建立一个批处理文件 start_fnb.bat,内容为
| 代码: |
| start "" firefox -profile "fnb_profile" |
其中fnb_profile就是你前面建立的子目录。这样你不用担心FNB不小心启动了你正式版的配置文件。
备份
当你对配置文件逐渐熟悉了之后,你会明白他跟Firefox主程序是两个不同的概念,这样你会知道如何备份它——最简单的办法就是把配置文件夹(例如这里 的fnb_profile)目录打包压缩。另外由于你的配置文件夹在安装目录(主程序)下面,又有一个批处理来启动,那么把d:\firefox打包就得 到了一个绿色版的FNB。
升级/更新
既然是FNB,那么每天都会有一个新版本,你可以通过Help菜单Check for updates来下载更新。如果你每天都更新的话,下载量比较小,目前大约是2MB,超过一天的话,就要全部重新下载,10MB左右。如果你网速不够,可 以每天用多线程下载软件下载latest-trunk下的同一个文件,自己解包覆盖更新到d:\firefox
相关链接:
(分享)Firefox每小时版下载/更新脚本(附注释) - 阅读主题 :: Mozilla Firefox中文社区
Tagged_by_kmc:
latex, word, pdf, 排版, 尺寸控制, 微调, word模板, geometry, fancyhdr, logo, 标志, 会议, 测量, 精确控制, dimension.
这是我博士课程中的第一篇投稿,总觉得国外LaTeX的使用频率应该是很高了吧,没想到依然是个冷冰冰的Word模板放在那里,如下 (Word转成的PDF,里面有我所有的测量值):
http://www.megaupload.com/?d=UV4Y30SE
用了这么久的LaTeX,我可不想第一次就倍受打击地重新拣起Word(因为一想到没有断字的Word排版效果,包括参差不齐的单词间距,我就毛骨悚然,真的!)正好,也想找机会试试看LaTeX到底有多少自由度,能不能按照别人的格式要求精确地调整出预期的结果。最终,我的投稿已经被采纳,没有编辑对版式提出意见,于是打算分享这些经验,因为没有学过写Class,写成模板也没有谁能用得上,不如讲讲用了哪些dirty tricks,仅仅是为了应急。希望能给碰到类似尴尬局面的TeXer们一点参考,也希望高手笑过之后指点一下,哪些方面有更好的方法。如果以后有时间,可能会用LaTeX写成PDF教程并放上图片,看看光用文字描述是不是能让大家看懂吧。
阅读本文需要的知识:LaTeX基础知识(能看懂lshort),页面尺寸方面的知识(边距,缩进,行距,页眉页脚等),了解常用宏包(titlesec, fancyhdr等),一点点字体载入方面的知识。
由于模板是法语写的,所以大致介绍一下模板的要求:
- A4,左右页边距为2cm,上边距2.5cm,下边距2cm
- 页眉页脚高为1.25cm,除了首页,由于要插入会议名称和Logo,首页页眉为2.5cm。
- 双栏排版,栏宽为8.12cm,两栏间距0.75cm
- 字体方面全用Times。文章标题16pt粗,作者和单位10pt斜;section标题12pt粗,subsection标题10pt斜,正文10pt
- 作者/单位的格式是上标引用型,下面立即写出所属单位
- 正文段落缩进0.5cm,标题序号阿拉伯数字后带一个“.”,section标题内容(除了数字)缩进0.5cm(相对于边距而不是相对于前面的那个“.”),subsection的序号缩进0.5cm(即subsection的序号跟section的内容对齐),内容缩进1.5cm
- 图片和表格的caption在模板中没有具体文字描述,但是看效果是粗体,阿拉伯数字并且是换行后缩进(hang模式)
- 首页页眉:会议名称,会议Logo
- 最多15行的Abstract(法语中叫Résumé),斜体
- 参考文献格式疑似IEEEtran,没有具体要求,我用了IEEEtran
其中一些要求很好实现,另一些很变态。
编译方式:PDFLaTeX
----------------页面尺寸----------------
我们先来说跟页面尺寸有关的。首先geometry宏包是不能用了(事实上我是多次想用它的,最终都失败了),只有自己手工调整。由于模板提供了Word转PDF的效果,我正好可以用Acrobat的测量工具来量尺寸(当然会引入一些微小的误差),并且通过Try and error来调整,没有技术活,只是力气活。这一部分的内容如无特别说明,都在\begin{document}之后出现。
首先定下双栏的栏宽和栏距,实践发现最方便的办法是做一个小计算:
\setlength{\textwidth}{17.06cm}
\setlength{\columnsep}{0.75cm}
即“(textwidth-columnsep)/2 = 8.155cm”,原本来说应该等于8.12cm,实际测量发现模板里面也是8.155cm(通过多次测量,发现不是自己的测量误差),不过0.035cm的差距基本不影响实际打印效果。
于是试着编译了一下发现生成的text block在页面上不是很居中,不知道原因。最终量出来这样的设置
\addtolength{\hoffset}{-0.58cm}
把text block“挪动”到合适的位置上。这样一弄,left/right margin自然 = 2cm(根据A4纸的总宽度,他们不是独立的变量)。
下面讲讲真正最变态的要求,也是这次排版中遇到的最大挑战(我曾经在论坛发帖《latex中如何判断现在是第几页?》和《页面尺寸精调的最后一点小问题》),最终的解决方式是一个很dirty的巧合。
这篇文章要求首页的页眉高跟之后的不同,由于首页要放会议题目和logo,首页页眉要2.5cm,后续的页面则只需要1.25cm。可是页脚的高度要不变!(IEEE的模板不是这样,所以没有模板可以参考)。于是简单地调整voffset不可行。我原来是想,默认尺寸是第一页的尺寸,到第二页再改,也就是说动态地调整textheight,可这样又会碰到一个很头痛的问题:LaTeX如何知道现在已经到了第二页?想知道的话除非读source2e,没时间啊!
换个角度想想,既然就只有第一页跟其它不一样,不如默认按2,3,4...页的尺寸设置,而在第一页单独改动。于是测量模板的第二页的页眉,并反复对比页脚到页面最下方的距离,得到:
\addtolength{\voffset}{-1.96cm}
\addtolength{\textheight}{3.90cm}
这样第二页和后续页的text block放置已经没有问题。剩下首页,由于首页我是用\maketitle来生成标题作者等等,我想到的是在\title{}命令里面做文章,事实上我让页眉的内容也“混”到了\title{}命令里面:
\title{
\vspace{-0.74cm}\fontsize{16pt}{16pt}\selectfont
{
16\textsuperscript{èmes} Journées Nationales Microondes
\\
27-28-29 Mai 2009 Grenoble
}
\\
\vspace{1.35cm} 文章标题}
也就是说,我先纵向移动-0.74cm,写上会议标题“第16届……会议”(也就是山寨版的页眉),再移动1.35cm到真正标题位置写标题。这个方法不会改变页脚的高度,因为没有去碰\textheight。
----------------字体相关----------------
文档全局设置为:
\documentclass[10pt, a4paper, twocolumn, fleqn]{article}
而16pt这个尺寸在LaTeX默认的\small, \huge等等是调整不到的,两种方法,LaTeX标准字体选择方式
{\fontsize{16pt}{16pt}\selectfont 内容}
或者原始一点的
\newcommand{\ptmseize}[1]{\font\x=ptmb at 16pt \x #1}
因为ptmb就是Times bold,我这个命令连\textbf{}也包括了进去。
----------------标题相关----------------
跟章节标题有关的自然都要请出titlesec宏包,在导言区写
\usepackage[bf, small]{titlesec}
\titleformat{\section}{\bf\large}{\thesection.\,}{0.24em}{}
\titlespacing{\section}{0cm}{*1.5}{*1.1}
\titleformat{\subsection}{\it}{\thesubsection.\enspace}{0.5em}{}
\titlespacing{\subsection}{0.5cm}{*4}{*1.5}
其中“\,”和“0.24em”是反复测量出来的值,它们保证section标题内容(除了数字)缩进0.5cm,\thesection后面的“.”就是标题序号和内容的分隔点,而那个\bf\large命令则保证在10pt的正文中出现12pt粗体的标题;由于section序号不要缩进,在\titlespacing里面写的是0cm,subsection的设置完全类似,除了序号缩进0.5cm。至于里面的*1.5、*1.1,指的是标题前后的弹性空间,由于模板没有具体要求,我是按自己的美观标准和文章的篇幅限制来选择的,因为把他们设置小一点可以省下很可观的空间,前提是不要跟前后的正文粘得太紧。
那个Abstract,我看也没有什么特别要求,没必要弄一个环境
\noindent \textbf{\textit{Résumé}}
{\itshape }
----------------作者相关----------------
作者和单位,我用的是authblk(全称Author Block)宏包,具体可以看看这个宏包的文档,感觉是挺好用的。
导言区
\usepackage[noblocks]{authblk}
正文区
\author[1]{\normalsize author1}
\author[2]{\normalsize author2}
\affil[1]{\normalsize\itshape address1}
\affil[2]
{
\normalsize\itshape Boss' address
\authorcr
\href{mailto:kmc's Email address}{\normalsize \itshape kmc's Email address} : \normalsize \itshape correspondant principal
}
看得出来吗?我又把通信作者的Email地址“混”到第二个单位(\affil[2])里面去了,注意在authblk宏包定义的换行符是\authorcr而不是\\。
说起来,IEEE模板里面反而显得很dirty,用的是{\small $~^{\#1}$}这种方式。或许dirty和不dirty的区别仅仅是“格式代码放在宏包里”还是“放在你眼前”的差距?
关于{\itshape My text}还是\textit{My text},其实我主要是嫌后者要删除的时候很麻烦,既要删除命令又要删除括号,当然你可以说大括号不用删除,{My text}也不影响,但是无意义的大括号很影响代码的整洁,\itshape有一个作用域的限制,但是在\title{}, \author{}命令里面已经限制了作用域了,不用担心\itshape作用到外面去。
----------------其他设置----------------
caption宏包
\usepackage{caption}
\DeclareCaptionLabelSeparator{period-quad}{.\quad}
\captionsetup{format=hang, singlelinecheck=no, labelfont=bf, font={normalsize,bf}, figurename=Figure, tablename=Tableau, labelsep=period-quad}
声明一个你需要的分隔符,因为模板要求Figure 1后面有一个“.”,距离大约是一\quad这么远,于是我就弄了一个period-quad放到labelsep=后面。
fancyhdr宏包
由于这种投稿的文章不要页码,我是这样设置的,在\title命令之前放这样的代码
\fancypagestyle{empty}{
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0.5pt}
\fancyfoot[C]{16\textsuperscript{èmes} Journées Nationales Microondes, 27-28-29 Mai 2009 - Grenoble}
\fancyfoot[L]{}
\fancyfoot[R]{}
}
这样就控制了第一页的pagestyle,下面,在你源代码靠近编译结果第一页结尾的内容附近放上
\pagestyle{empty}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0.5pt}
\fancyhead{}
\fancyfoot[C]{16\textsuperscript{èmes} Journées Nationales Microondes, 27-28-29 Mai 2009 - Grenoble}
\fancyfoot[L]{}
\fancyfoot[R]{}
用来控制第二页,这里并不一定需要精确知道源代码什么位置对应编译结果的第二页,说实在的我不知道为什么一定要这样,但是如果不这样的话第二页的页脚会往 上移动…………另外为了保证首页无页码,在\maketitle命令后面紧跟\thispagestyle{empty},这个已经被问过很多次了。
浮动体方面除了graphicx,subfigure(好像我没有用到)外,就是booktabs、multirow和makecell宏包用来画表,不过这跟本文没有太大关系。浮动体用的是传统设置
\setcounter{totalnumber}{4}
\renewcommand{\textfraction}{0.15}
\renewcommand{\topfraction}{0.85}
\renewcommand{\bottomfraction}{0.65}
\renewcommand{\floatpagefraction}{0.60}
\setlength{\textfloatsep}{5pt plus 2pt minus 2pt}
\setlength{\intextsep}{12pt plus 2pt minus 2pt}
\setlength{\abovecaptionskip}{5pt}
\setlength{\belowcaptionskip}{0pt}
其中\textfloatsep和\intextsep中的值是弹性长度,表示5pt ± 2pt,当然你也可以设置为 5pt + 10pt - 8pt,表示最多15pt,最少-3pt,用来节省页面篇幅的(因为开始初稿只让写两页,空间实在太少)。我原来一直没弄明白这个,现在趁机解释一下(没准还解释错了……)。
----------------插入logo----------------
还有一个问题就是由于我没有在首页使用页眉,我目前只“混”进去了会议名称,Logo怎么办?网上有说用pgf来放(pgfdeclareimage,pgfuseimage),我没有成功,郁闷。不过搜索到一个还算好用的eso-pic宏包,导言区
\usepackage{eso-pic}
\newcommand\BackgroundPic{
\put(16.57, 23.19){
\parbox[t]{\textwidth}{
\includegraphics[scale=1,keepaspectratio]{logo_jnm.png}%
}
}
}
正文紧接\begin{document}后面写
\AddToShipoutPicture*{\setlength{\unitlength}{1cm}\BackgroundPic}
具体来说就是先声明一个\BackgroundPic命令,这个命令在16.57, 23.19的位置放一个宽为\textwidth的parbox,里面放上你要的图片Logo。这个Logo我是从Doc模板里面截出来的,按Word的100%显示比较缩放成一丝不差,所以scale=1并且keepaspectratio。注意那个\unitlength只有在正文区可以声明,所以导言区的16.57和23.19没写单位。
----------------平衡双栏----------------
末页的双栏平衡,有很多说法,我就只是用了flushend宏包而已,没有遇到网上传说的问题,可能是我末页的浮动体比较少的缘故。
差不多就这些了,在尝试排版的过程中,可以打印测试页,跟Word的打印结果发在灯光下透视着比较。打印PDF的时候一定要注意,Acrobat打印A4纸的时候,根据打印机的不同,如果你选择了“适合打印机边距”,可能会缩放97%,实际效果有出入但事实上你的页面尺寸是正确的!所以页面缩放一定要选“无”。到时候编译说你尺寸不合适,非要你用Word的时候,你可以骄傲地把两张纸放在一起给他看两个Logo,两条页脚线是如何完美重合到一起的。