显示标签为“fonts”的博文。显示所有博文
显示标签为“fonts”的博文。显示所有博文

制作一个Office Ready的字体

2010年11月21日星期日

下面通过一个例子来介绍如何制作一个Office Ready的字体。

在浏览字体的时候看上了Compatil Fact,兴高采烈地装上,打开Firefox一看:

四个字体没有被组合到一起,换句话说,常规/粗体/斜体/粗斜体之间没有关联,无论是网页中的还是Word里面的Ctrl+B等,都无法调用相应的字体。

可事实上这个字体的设计并没有错,打开Win7的字体目录,它们确实归在同一个家族。Photoshop/Illustrator这样的软件里的效果也相同。

实际上这是一个难以两全的问题。简单说,Word/Firefox遵守的是规则可俗称为“Office 4字体规则”, 即常规/粗体/斜体/粗斜为一组。这是一个比较保守和传统的字体家庭结构,在这个结构下无法变更字重和字宽,换句话说一家最多四口。而对设计者而言,一个 字体大家庭远远不止四口,而是存在着Thin, Light, …, Ultra Bold, Black的字重变化和Compress, Condensed, …, Extended, Extra Wide的字宽变化。Compatil Fact这个字体虽然目前只有四个字形,但它的设计已经前瞻性地考虑到了添丁进口的问题,它遵守的规则可以俗称“大家庭规则”。

但是我现在只是想把这个字体制作成显示字体,而不是给Photoshop用,为了方便,我可以使用Fontlab调整字体使之“Office Ready”。

  1. 把四个字体用Fontlab打开。从Regular开始,点File-Font info(Ctrl+Alt+F):

  1. 为了不和原版混淆,我把Family Name改一下,改成Compatil Fact Office

  1. 然后点击Build Names(绿色钻石图标),自动生成了新的名称

  1. 然后切换到OpenType-specific names点一下Build Opentype Names。最后点OK,Regular就修改完成了。

  1. 下面是Bold,打开Font info后是这样

问题就出在这里,Family Name里面就多了Bold,而4字体规则要求的是Family Name要相同才被认为是一家。所以跟上面一致的话,家庭名统一改成Compatil Fact Office。

  1. 另一个重点是要勾上“Font is bold”,然后点Build Style Name,再点Build Names

  1. 然 后再重复“4”里面的步骤一次。细心的人应该已经理解,大家庭规则是靠这个菜单,也就是OpenType-specific names来维系的。点Build Opentype Names这个步骤只是为了在改成4字体规则后,象征性地遵守一下大家庭规则。其实上不会影响Office Ready字体的生成,因为后者是由Basic set of font names决定的。

  1. Italic和Bold Italic类似,但是我还是把截图放上来。

  1. 全 部改好,点了OK之后,回到Fontlab,点菜单File-Generate All。设置好Format(推荐TrueType/OpenType TT,这样生成的字体有分级Hinting,即使不用Mactype也有更好的适应性(这才算Office Ready)。选好保存路径后点Start。

  1. 在生成过程中碰到这样的提示,选Compiled,其实Binary也无所谓。

字体就生成好了,虽然文件名还是没变,但是字体名已经变了并且Office Ready了。再看Firefox:

再谈显示字体



自《字体迷的显示字体推荐》(以下简称“原文)”一文已经过去3年半的时间了,对字体方面有了不少新的认识,再回头看这篇文章时,觉得有很多值得更新的地方,有些甚至是勘误。于是决定再写一篇文章。

时过境迁,很多观点会随着使用的软件和审美观的不同而变化。原文中一上来就说“中文字体我看遍了也只有宋体最适合屏幕显示”,事实上,一者这几年黑体越来越流行,Windows有雅黑,苹果有丽黑/华文黑体,Linux有文泉驿正黑/微米黑,手机操作系统上也大力使用黑体。其二,由于加入了极限论坛,我开始使用和研究gdi++(Mactype)字体渲染,它让字体的美感一下就提高到了一个新的境界。在有Mactype的时候,黑体的美观程度就相当于拉丁的无衬线字体。而事实上宋体之美,或者说原文中提到的“宋体”之美,事实上是局限于ClearType配合点阵宋体,那个严格上来说真的不是宋体。真正的宋体跟拉丁的衬线体一下,在小尺寸下表现能力有限,即使是用Mactype渲染,也是灰蒙蒙的效果,看着吃力。

由于有了Mactype,TrueType字体内建的hinting也可以被无视,OpenType字体同样可以被直接使用。事实上Mactype使得字体的屏幕显示效果大大接近字体真实的效果,很多字体都“化腐朽为神奇了”,从这个意义上来说,字体之间的比拼又回到了字形设计上,而不是依赖于文件格式。但Mactype并不是系统的标配,在很多情况下如果一个字体有良好的hinting,它就有了良好的适应性,这在下文Office ready字体中会提到。

原文中一些错误和值得商榷的地方:

** BitStream字体的含糊命名:

  • Incised 901 BT = Antique Olive,它的显示效果也并非“非常接近Tahoma”
  • Swiss 721 BT = Helvetica,我居然没有认出来……
  • GeoSlab703 = Memphis
  • Humanist 777 = Frutiger
** 过于活泼的字体只适合中英混排,不适合大段的西文阅读:
  • Blueprint
  • Maiandra GD
  • Sassoon Sans
** 衬线感太强的字体更适合打印:
  • Stone Serif
  • ZapfEllipt BT
  • Optima (GE Optical)
** 粗衬线字体(Slab Serif)容易让眼睛疲劳,适合标题而非正文:
  • Memphis
** 不是每个程序都会访问字体的Kerning。此外,在小尺寸、屏幕显示下,Kerning往往没有意义,因为hinting/Mactype渲染会改变字符的几何属性。

选择屏幕字体的一些标准
  1. 空间利用。在小尺寸下,字体必须要合理地利用空间,在这方面不用再多说无衬线比衬线的优越性,但即使这样,Gill Sans却依然不如Georgia易读。

    在有Mactype的介入下,少数衬线体的确也值得一试,这里推荐Georgia, Cambria, Minion Pro(或者Web Pro)和Times Europa Office。

    需要说明的是Mactype的渲染会让字符变粗,这时又成就了无衬线字体的一大优势——字重。在Regular显得拥挤时,很多Sans字体都有比Regular更细的Light版用来匹配。

  2. 简洁明快。不想用“易读性”这个概念,因为它太泛。简洁明快指的是字体的个性不宜太张扬,尤其不能有一两个字符漂亮得让人每看见它就不由得停下来欣赏一番——这影响了文字内容的转达。Helvetica为什么成功?因为它像空气一样。不过这也是一个见仁见智的问题,因为看久了之后就会习惯的……

    举例我现在正使用的Thesis Sans Office,Thesis Sans是很优秀的字体,但它的大写Q的尾巴是悬空的,每次看到,确实会不由自主多欣赏两眼,好在英文中大写Q出镜率不高,可法语就大不相同了。难怪Thesis Sans OT里面有3种关于大写Q的替代字。

  3. 特色字符。刚刚说了不要字符太有个性,为什么马上就来了个“特色字符”?这里主要是针对几个字符的典型写法上的区别。例如:小写a的单/双层版,小写g的单/双圈版,大写G横杠的处理和衔接,大写I是否带双杠,等等。

    单从字符看似乎是这样,实则它们往往是区别Humanist Sans和Geometric Sans的标志。Humanist Sans比较流行使用双圈g(Thesis Sans),Geometric Sans的大写G往往就要更圆润(Neuzeit Office)。另外,Humanist Sans的优势在于独立的斜体,这也是为什么我非常推荐Myriad而非Frutiger,Segoe而非Lucida Grande的原因。独立的斜体用作强调的时候,比伪斜(Slanted)更容易被发现,也显得更有个性(没错,被强调的部分应该要多一点变化)。同样是这个原因,我对Sans Grotesque有点逃避,从而也很少提到Helvetica/Arial和Din。

  4. Office ready: 4字形。对于屏幕字体来说,Regular, Bold, Italic, Bold Italic是最好的搭配,因为网页字体一般也就只使用这标准的四个字形。这也是为什么近些年出现一个新概念“Office ready字体”(在极限论坛推荐过),主要的出发点就是适合网页显示和Word排版。简而言之,在Word里面可以用Ctrl+B和Ctrl+I来访问。

    如果你看上了一套字体,而它的命名未必符合上述规则。这时最好用Fontlab自己修正一下(重点就是在字体信息中合理地勾上“Font is bold”和“Font is italic”),并生成四个TrueType版再安装使用。如果Light是你的基准字重,你甚至可以把它强制定为Regular。具体操作。

    但是如果一字体连这4个字形都无法提供的话还是扔了吧,因为网页和Word中都使用的是伪粗和伪斜。
字体推荐

原文提到的字体中,我依然推荐的有
  • Avenir:在原文中是比较消极的口气,但现在感觉这个字体非常清晰,强烈推荐。Avenir Next和Avenir在做屏幕字体时没有太大的差异。
  • Calibri
  • Myriad Pro/Myriad Web
  • Georgia
  • Minion Pro/Minion Web:一定要开Mactype哦!
然后最近新发现的一些优秀的字体
  • Thesis Sans Office:Humanist风格,偏向柔和。
  • Neuzeit Office:Geometric风格,偏向硬朗,跟Avenir有相似之处。事实上它是Din Neuzeit Grotesk演变而来的,也就是减少了Grotesque的成分,合理地走向Geometric。
  • Times Europa Office:Times是永恒的经典,但是Times New Roman对人是一种伤害,所以,喜欢Times的,换这个吧。
  • Compatil Fact:Compatil事实上是Linotype重金开发的大家族。光拿无衬线版的Office 4字形来做网页显示,就看出制作水平的精良:清晰、和谐、易读。
想要快速测试一个字体的网页效果并不容易,我使用的方法是:
  1. 首先确认4个字形符合Office Ready标准(否则用Fontlab自定义)。
  2. 然后安装,或者用FontExpert的Activate Temporarily Now功能,不好看的话省得卸载。
  3. 用Firefox选择字体后,打开 www.lipsum.com ,先读那些介绍文字,测试字体能否太有个性而让人无心阅读正文内容,然后点Generate Lorem Ipsum生成没有意义的赘文,可以快速了解字体显示大段文字的屏幕灰度(与字符的空间利用直接相关)。再去浏览几个外文网站。当然用记事本保存一段测试文本也是可以的,只是我觉得那种测试太纯粹,只能测一种颜色,一种尺寸。


好的屏幕字体就像老婆,首先她漂亮,但却不张扬;她有很多动人之处,可能你都已经看习惯,但依然能感受到那种整体美。

你冷不丁想瞟一眼的女生,往往只是一两个特点吸引着你,如果天天看,全方面地跟她在一起生活,你会发现其实她那一两个优点掩饰了她很多的缺点,一如漂亮的Swash容易造成行间重叠和整体灰度不均匀。

更为重要的是,这些优点属于字体本身,它们无法有效地帮助传达文字的内容,这就是为什么这种字体更适合引人眼球的Logo。相反,两个人的生活中不免充斥着柴米油盐,这些内容必须要一颗包容和体谅的心才能装得下——就像一个简约淡定的字体。

Ubuntu 9.04 Jaunty 字体微调的问题

2009年5月25日星期一

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. 渲染方式选“最佳对比”(也就相当于平滑=灰度,微调=完全),这样英文和中文都没有彩色了。

kmc字体推荐——几个未来风格的字体



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

被遗忘的宝藏——LaTeX发行版自带的字体&自己的一些字体心得

2008年8月5日星期二

原文发表于CTeX中文论坛(bbs.ctex.org)




可能有不少人像我一样在用LaTeX不久就开始跟字体较劲。我走的是这样一个过程:
- 最初用惯了Word,从而无法理解为什么LaTeX调用字体那么难;
- 为了在LaTeX中调用字体,想用现有的工具一蹴而就(像TTFshape,MTFI,xGBKfonts),往往不能轻易成功,沮丧;
- 之后重新静下心来逐渐了解了什么是字体,LaTeX中字体成功调用的方式,才注意到Mapping,TFM,vf等文件的相互关系,理顺了这一切后,把前面几个软件装不成功的字体装好(我印象中装上过Verdana,GE Quartz等几个);
- 后来发现也有些宏包有现成的字体可用,那个时候主要就是关心TrueType字体,所以见到了winfonts宏包(这个宏包不在MiKTeX的宏包列表中),开始用上一些系统中有的字体;
- 又发现OpenType字体更棒,再去看的时候才知道解包OpenType不但麻烦,还会失去glyphs;
- 在一个相当漫长的时间内没有动过LaTeX,再碰它时,又是从一篇Philipp Lehman的《The font installation guide》开始,这篇文章100多页从头到尾看完,已经比较清楚如何用fontinst来安装手头拥有的Type1字体。也正是从这篇文章开始喜欢上了 Minion字体并且成功安装。由于安装过程相当繁琐,我还写了一些安装Type1字体的批处理,有时间的话会整理出来(因为通用性太差);
- 再次碰字体就是在CTAN上看到MinionPro宏包,这时我已经开始搜集字体,所以MinionPro宏包要求的所有Optical Size我都有。MinionPro包特别大,装上它后刷新文件名数据库都慢几十秒,这也说明了OpenType字体的复杂性。我想要不是Adobe把这个经典字体免费提供,应该不会有谁有心去为它生成那么多的TFM文件(1511个之多)。Minion Pro字体对我而言真的是压倒性的,我估计学校允许的话我的论文都会申请用这个字体排版。
- 后来XeTeX被port到Windows,我这才终于把MiKTeX升级到2.7beta,并且花了大量时间研究XeTeX。XeTeX似乎就是为字体而生的,但同样需要有字体的相关知识,这些知识并不同于前面Type1字体,而更多是字体的OpenType features,这些features,Type1字体要么是根本没有(calt, salt),有也不容易打开(smcp, onum)。


但XeTeX同样有这样那样的问题,而且如果直接访问OpenType字体,编译速度就更不如PDFLaTeX访问Type1字体那么快,在长文章中表现得非常明显。所以才有了今天这个帖子,因为在这几天求助区的讨论过程中,自己又回去看了看。加上之前也注意到,其实打开$texmf/fonts目录就能发现LaTeX发行版中早就自带了不少字体,这些字体虽然是免费,功能上确不输专业字体。更重要的是,这些字体很多都是精心设计过的字体包,用来同时载入正文和数学环境的字体,保持文档统一的风格(在严谨的学术文章中,也确实不该想在哪改字体就在哪改)。

原来自己有个文本文件,就是记录机器上可以为我所用的现成字体包(主要来自于$texmf\doc\latex\psnfss\psnfss2e.pdf文档的介绍),但最近去到tug看过,早就有人写了完整的LaTeX字体巡礼:
http://www.tug.dk/FontCatalogue/
这个网站罗列了156个LaTeX中可以免费使用的字体,并且给出了例子和调用的源代码,需要注意的是这些字体并非默认安装在机器上,但至少都能从 CTAN得到——不光是宏包,还有字体文件(因为像winfonts,MinionPro这些宏包需要用户自己拥有相应的字体,CTAN上并没有)。不过拾人牙慧的工作还是要作,那就是推荐一下几个字体/字体包:

1. Palatino
Will Robertson的文档总是用Palatino,这字体的名气也不小。胖胖的很活泼,笔锋也优雅,有羽毛笔的进化痕迹。LaTeX中最省事的是用\usepackage{mathpazo}来统一修改正文和数学字体,这个宏包还有[sc, osf]参数,分别对应小大写字母和不齐线数字。此外还有一个palatinox宏包可以直接调用Windows系统中的Palatino Linotype(这是微软认证发布赫尔曼·察普夫的原作),相关网址是:http://www.ctan.org/tex-archive/fonts/truetypemetrics/palatinox/,需要手动安装。在这个URL的上一层还能看到另一个经典字体frutiger,只是我手头没有Linotype Frutiger。

2. Garamond
1530年诞生的经典字体,LaTeX中通过mathdesign可以使用:\usepackage[garamond]{mathdesign}来使用。Garamond字体十分大气,打印在纸张上也特别好看,法国很多口袋图书用的是Garamond。

3. Times
除了\usepackage{times}外,\usepackage{mathptmx}可以把数学字体也改成类似Times的字体。这个字体真的不需要再多说什么了,总之我觉得看久了眼睛会累。

4. Utopia
Utopia有点像Times,但更宽敞一些。\usepackage{fourier}统一修改正文和数学字体为Utopia,\usepackage[adobe-utopia]{mathdesign}则是mathdesign的调用方法,差别不太明显。

5. Avant Garde/Courier/Bookman/New Century Schoolbook
不是我懒,这几个字体在PSNFSS中是可以搭配着用的:
\usepackage{avant}只载入Avant Garde
\usepackage{bookman}则同时载入Bookman(衬线),Avant Garde(无衬线)和Courier(等宽)字体
\usepackage{newcent}同时载入New Century Schoolbook(衬线),Avant Garde(无衬线)和Courier(等宽)字体

6. Charter
十分饱满的衬线字体,适合屏幕阅读。\usepackage{charter}

7. Helvetica/Optima
这两个字体放一块是因为我觉得它们是无衬线字体,比较适合用来作幻灯片。Helvetica可以\usepackage{helvet},Optima没有写成宏包的形式,就可以用\renewcommand{\sfdefault}{uop}然后\renewcommand* \familydefault{\sfdefault}来调用。在幻灯片这样的尺寸上,Optima变化的线宽才显现出优美来。

8. 其他数学宏包
建议看看ftp://tug.ctan.org/pub/tex-archi ... t_Survey/survey.pdf 这篇文章,介绍得相当详细,而且有效果图展示。

9. Minion Pro
http://tug.ctan.org/tex-archive/fonts/minionpro/ 有详细的安装说明,只要不出错是肯定能安上的,装了Acrobat Reader 7.0以上的用户都能在Acrobat安装目录下找到MinionPro-Bold.otf, MinionPro-BoldIT.otf, MinionPro-It.otf, MinionPro-Regular.otf这四个文件,按照安装说明拆解它们四个已经能满足日常文档的需要。此外,MnSymbol宏包(MiKTeX 可以自动安装)是配合Minion Pro的数学宏包,最好装上,不过\usepackage{MinionPro}就够了,会自动载入MnSymbol宏包。

其实用来用去才发现,LaTeX自带的这些字体才是真正经过时间和实践检验的经典字体,是TUG智慧的结晶。而且,这150多种字体也涵盖了绝大部分(LaTeX能触及到的)字体使用领域。这是不应该被遗忘的宝藏。

字体迷的显示字体推荐

2008年4月27日星期日

自从迷上了收集和研究字体后,去国外的论坛的共享网站下载了几GB的字体。价值不菲的字体,光收藏着自得其乐似乎太浪费了,而平时写电子文档的机会也并不多(加上对Minion的热爱似乎让其它的字体也没有用武之地),所以屏幕显示方面使用的字体反而成为了主要研究的对象。

我平时使用的标准文本大小是12pt,Windows在这个尺寸下,如果没有hinting(字体微调)技术的话,即便打开ClearType,字体也依然会发糊。或许有gdi++这样的第三方渲染引擎,但试用gdi++后我感觉它还是把字体弄得太粗,而且占用的系统资源不是一般的高。在这个前提下,真正能显示良好的字体只有带hinting的TrueType字体了。从技术层面来看,大部分TrueType字体使用下面的设置:0-6pt: smoothed; 7-13pt:hinted; 14+:smoothed and hinted。相反,OpenType字体则都是0+就smoothed and hinted,自然不适合显示。

首先要说一下,本文讲的都是西文字体,中文字体我看遍了也只有宋体(我指的是SimSun)最适合屏幕显示,所以中文我想我再不用找寻了。

Windows操作系统中默认就带了很多微调良好的字体,比如Tahoma, Arial, Verdana和Georgia,前面三兄弟是无衬线(sans serif),后面的Georgia是衬线字体(serif)。有一点常识的人都知道,在小尺寸下系统对衬线的显示会力不从心,所以衬线字体很难有发挥的空间。不过,粗衬线(slab serif)字体还是不错的,因为它们的衬线的宽度够粗,能显示出来。话虽这么说,多少人在用Time New Roman看网页上的文章啊……

本文介绍的字体很多来自于Will Harris大师的介绍Georgia和Verdana一篇文章,http://www.will-harris.com/verdana-georgia.htm
其中提到的很多字体确实相当不错。此外的字体都是我自己用肉眼去尝试和评判的。还有一点是,我操作系统是Windows XP,打开ClearType级别到1600(还没打开的,不管你是液晶还是CRT,为了视力都赶紧去打开吧)


本文介绍的字体,我用FontExpert在12pt大小生成了预览报告,到时候会想办法找地方传上去。写这篇文章是在EmEditor中写,一边写一边切换到相应的字体看效果,写评价。下面按字母序介绍:
### 无衬线类 ###

  • Avenir:一般般吧,虽然名气比较大,在很多pdf中见过。显示的效果比较扁,高度不够。
  • Blueprint:Harris介绍的一个字体。挺活泼的,只是有点偏淡,粗体效果还可以。
  • Calibri
  • Candara
  • Corbel:上面三个C开头的字体是微软ClearType家族的,我不太明白微软为什么要开发三个这么像的字体。都用的是不齐线数字,可是12pt时都偏小(注,这里的偏大偏小都是跟12pt的Tahoma,也就是大家最熟悉的字体的尺寸来比较)。我觉得Candara比较柔和,Calibri锐利一些,Corbel没有什么个性。
  • Consolas:这个等宽字体也跟上面的“头文字C”兄弟一样是微软的字体,由于等宽,用做屏幕文本的确不太合适,但介绍它的原因是因为写程序代码用它实在太棒了。它也是头文字C字体集中唯一免费下载的,赶紧用它来替代代码编辑器中的courier new吧。
  • DejaVu Sans:这个是Bitstream的免费字体,也是很多Linux发行版的默认字体(是Vera系列的升级版),因为里面字符集相当全,单个字体的尺寸达到了500kB。试用了一下,发现虽然里面带了2500多个kerning pairs,kerning的效果反而不太理想(过犹不及?)。DejaVu Sans Mono是很多Linux程序员的推荐字体,但我还是喜欢Consolas多一些。(杂:DejaVu这个名字我很喜欢,因为在我身上也总是发生既视性现象。)
  • Gill Sans MT:学校的法语系统中默认有这个,但中文系统中没有。这个字体还可以,斜体设计得不错。
  • Helvetica:用得特别多的字体了,几乎不用介绍也知道,没有Arial的地方就有它。
  • Humanist 777:自己淘到的一款Bitstream字体,效果很锐利,我用做任务栏显示。
  • Incised 901 BT:也是在Bitstream字体中发现的一款,非常逼近Tahoma的效果
  • Lucida Grande / Lucida Sans:Lucida Grande是的确很“大”,在显示的时候行距都加宽了,只是它显示不出一些中文的字体,比如全角冒号。Lucida Sans嘛,没有kerning pairs,效果不太均匀,但Lucida Sans Italic却很漂亮。
  • Myriad Web:这是我全面用来替换Tahoma的字体,它的效果非常棒,据说和微软的Segoe UI一样是模仿Frutiger的,可是我这个列表中甚至没有Frutiger字体。Myriad和Minion是Adobe用得最多的文档字体,而为了屏幕显示专门设计的Myriad/Minion Web一下就抢占了我的视线。
  • Neo Sans:很新发布的一个字体,有点生硬,看久了会累,优点是很饱满,高度也够。
  • N.O.- Perfect Kiss:这个字体吸引人的名字让它进入我的视线,效果还是可以的,比较窄一些。
  • Optima:大名鼎鼎的Optima,无衬线中的“准衬线”,在12pt的位置上略微有点淡,行距也比较大。我比较推荐GE Optical,虽然一看后者几乎是无耻地照抄前者,但效果确实要好一些。
  • Page Sans:在字体论坛下载回来后让我眼前一亮,随后拍案叫绝的字体,我就把它安排给了我的Total Commander用。Page Sans设计得相当清晰,但大写的U在12pt上依然表现出左粗右细的精美效果。Page Sans还配着不齐线数字,非常有型。
  • Palatino Sans Com:另一个让我振奋不已的大作,Palatino的衬线字体胖胖的非常可爱,但由于衬线太豪华,显示效果一般。被设计成无衬线后,原来的圆滑风格得以保留,虽然有点小,但行距的增大让阅读文本更方便。由于跟12pt的宋体相比更矮些,夹杂几个英文单词在中文中的效果挺特别的,所以目前经常在Google Talk聊天时使用。
  • Proxima Sans:我以为它跟FontExpert的出品公司有什么联系才试了试它,现在感觉一般。
  • Sassoon Sans:Harris推荐的字体,小巧玲珑,活泼的程度跟前面的Blueprint相似,但不会那么淡,行距加大。
  • Stone Sans:名气不小的公司Stone出名的同名主打字体。不过,我是用了Medium尺寸才觉得够粗的。配合不齐线数字。
  • Swiss 721 BT:Harris推荐的字体之一,大小写高度差比较明显,字母e显得特别圆润。
  • Zurich BT:又是Bitstream公司的杰作。跟Swiss挺像的(名字也都跟瑞士有关),kerning效果各有千秋。

### 衬线类 ###
  • Cambria
  • Constantia:上面这两个是“头文字C”中的衬线字体。Constantia多一组不齐线数字,比Cambria好看些。只是Constantia 粗/斜/粗斜中居然都没有数字,估计是我收集的这个版本有问题。
  • Egyptian 505 Medium BT:论坛上有人求这个字体,找来后发现确实不错。粗衬线字体,“削”出来的效果很漂亮。
  • Esta:DSType公司的作品,细细的衬线处理得相当好,笔划既不会发虚也不会粘在一起,不齐线数字1用的是英文I的效果,多少有点偏艺术型。
  • Georgia:微软精心设计的字体,打开ClearType后才能看到它最美的效果。目前我写电子邮件用Georgia,相信既能让别人眼睛一亮(相比Times, Arial和Courier),通用性又很强。
  • GeoSlab703 Md:跟上面的Egyptian比,GeoSlab更早进入我的首选列表,大小写字母的高度差和行距都很大,很适合阅读大段的纯文本英文说明。字母y的末尾都是向右推出去,跟Minion相同。
  • Maiandra GD:原来在看一篇pdf文档中就认识了这个活泼的字体,用来打印信件一定很不错。没想到在12pt时也表现得十分优秀,字体圆润饱满,在小尺寸上依然展示出丰富的线宽变化。聊天一定也是不错的选择。
  • Memphis:名字来自美国一城市,是Harris推荐的字体,粗衬线,比Egyptian和GeoSlab细了一些,大字T也有点左右不等。
  • Minion Web:我最爱字体的Web版,不过总觉得14pt才能显出它漂亮的笔锋,Minion小写y的右顿收笔是我最欣赏的。
  • Page Serif:Page Sans的衬线版,笔划特别粗,跟宋体放一块比就接近粗体了。阅读大段文本应该很不错,写文章也值得推荐。
  • Caecilia:Harris推荐的衬线字体之一,只能说是中规中矩。
  • Serifa:这是Harris自己常用的屏幕字体,也是粗衬线,效果有点像在看Courier,个人觉得看久了会累。
  • Stone Serif:Stone的衬线版。衬线表现力十分出众,尖的尖圆的圆,方寸空间利用到了极致。为了好看选用的同样是带不齐线数字的Medium版。
  • Zapf Elliptical:字体大师Hermann Zapf在1952年设计的字体,由Bitstream推出,曾经是Linotype报纸所用的字体。想必“超椭圆曲线”是一个技术含量很高的东东,视觉效果也的确很舒服。

这篇文章的字体巡礼在这里
字体下载链接

日常字体(续)

2008年4月15日星期二

经过几天对字体的研究和尝试,最终确定日常使用的字体一套:


  • Windows外观主题(Dogmax):Myriad Web, 10pt
--更改Windows字体并不容易,我在网上淘到一个小工具SFC-System Font Changer,用它直接修改msstyles文件。喜欢Myriad主要是因为它是Minion的兄弟
  • Aston开始菜单:Minion Web, 10pt
--Minion是我最喜欢的字体,不过,由于是衬线字体,不打到10pt的话效果并不好。如是10pt会让中文显得非常之大,所以,应用范围不多,只好用在开始菜单中了。
  • Aston任务栏:Humnst777 BT, 8pt
--Humnst777 BT是Bitstream出品的无衬线,效果很好。
  • Aston时钟:Consolas, 10pt
--Consolas是我选择的编程字体,为了让它也有出场的机会,把等宽的效果用在显示时钟上再好不过了。本来打算用带不齐线数字的字体来显示时钟的,可是我的时钟是显示到秒钟,这样不齐线数字就会出现上翻下翻的效果,而且显示1的时候还比其他数字窄,综合起来就显得右下角总有什么东东在“动”。
  • Total Commander:Lucida Grande, 8pt
--都选完了,TC用什么?选一个美化爱好者比较喜欢的Lucida Grande,其它Lucida字体都偏矮。
  • Google Talk:Calibri, 12pt
--Google Talk只能用单字体纯文本,而且一改全改,尤其有字体的发挥空间。微软的ClearType家族里(Calibri、Candara、Corbel)都带不齐线数字,其中Calibri显得最合适。
  • 再加上在LaTeX写文档中的最爱——Minion Pro!

XeTeX的字体集成问题

2008年4月14日星期一

XeTeX确实能够很方便地调用字体的特殊属性(Text Figures,Ligatures),但自从开始用XeTeX,就发现一个问题,那就是这些特殊的功能虽然能够被看到,却不能够被复制到。比如说在XeTeX中这样写:

\usepackage[cm-default]{fontspec}
\setmainfont[Numbers=OldStyle]{Minion Pro}

在生成的PDF文件中,无法复制/搜索不齐线数字,如果用齐线数字则正常。同样,对ligatures(连字)的支持也有问题,fi,fj和fl连字复制不到,可ff,ffi和ffl就能复制出来。查了一圈XeTeX的文档和相关的文档都没有查到,何况,在fontspec的说明文档中,这样的问题同样存在(不齐线数字复制不到),另外XeTeX Companion里面倒是没有出现连字的错误,只是我没有Goossens的源代码。

日常字体

2008年4月12日星期六

看腻了Windows的默认字体,我开始学着了解其他字体,在成为字体迷之后,对字体的选择也出苛刻起来。我认为,电脑的显示字体用无衬线比较舒服,文档(如pdf)和打印字体选择衬线字体则更加适合阅读,对写程序来说自然是等宽字体的天下。

中文Windows XP默认的显示字体是中文宋体(Simsun)英文用Tahoma。事实上这个选择也是被动型的,即在桌面属性-外观-高级中,默认选择的字体是Tahoma,只不过碰到中文字体的时候,由于Tahoma中不含中文,故而选择系统默认的中文字体宋体。如果主动选择宋体的话,由于宋体中带有英文字符,看到的效果将相当难看。Simsun对显示中文来说我觉得足够棒,即便Vista中引入了雅黑,我还是觉得宋体是看不腻的。Tahoma也是挺棒的,清楚美观。让我看腻了的应该是网页显示中的Times New Roman,这个字体在打印方面的效果或许比较好,但在屏幕显示方面乏善可陈。此外,无衬线的Arial字体亦不如Tahoma好看,可由于习惯的原因Arial运用得几乎跟Times一样广泛。

使用Firefox浏览器后,对字体的设置比IE大为详尽,故而我有机会尝试用不同的字体来优化网页的显示效果。和想像的不同,曾经打算使用Myriad Pro这个专业级的字体来作无衬线,可它在小尺寸下的显示效果发虚,和它的衬线兄弟Minion Pro一样。选来选去,还是Tahoma胜出。不过,微软在Vista中引入的Calibri,Candara,Cambria和Corbel(不知道为什么这几个风格相近的无衬线字体都要C开头,很难记的……)也很不错,这几个字体和Tahoma比要偏小一些,所以没有用来显示网页,但横向空间的利用更合理了些,不会像Tahoma显得很窄,所以我用了Calibri给Google Talk的显示,Emeditor用的也是Calibri。

Emeditor很长时间都用的是Georgia,不过Georgia字体要在打开Cleartype后才会显得饱满。Blogger默认的模板都使用的是Georgia字体,'g'的圆润,'y'的小勾和一组不齐线数字是Georgia的亮点。不过由于上面提到的几种微软字体也带有不齐线数字,所以我在纯文本的Emeditor中暂时试用一下。

显示字体和纯文本方面无衬线字体优势较大,可到了富文本的世界,衬线字体的优雅才展现出来。这里面有老牌的Garamond,Bembo,胖胖可爱的Palatino,也有Adobe免费发放的Minion Pro,Myriad Pro,其中Minion Pro更是得到了LaTeX用户的重视,为它制作了LaTeX的Metrics和宏包,目前我LaTeX文档都默认采用Minion Pro宏包。XeTeX出现后,对于专业字体的使用达到了一个新的高度,而衬线字体的功能往往比无衬线字体要丰富得多。

程序设计是枯燥的工作,如果没有一种舒服的字体,则更容易在代码中晕厥。程序代码和人类的语言文字不同,程序代码往往由变量,数字和标点符号配合着不等的缩进和注释来呈现,所以也不能按照文字排版的视角来看待。由于程序代码的美观标准之一就是两行之间某些元素的对齐,所以在程序代码中使用等宽字体能够让代码显得更均匀更可读;相反,等宽字体如果用在文本中,则会显得既生硬又臃肿。大部分编辑器默认都使用长期以来的标准等宽字体Courier/Courier New,但这个字体看久了容易累,因为它的粗衬线显得比较夸张,加上对数字0没有特别处理,并不是完美的程序代码字体。我目前选择的是微软的Consolas字体,也就是上面的C家庭字体中的等宽兄弟,他继承了Lucida Console的优点,看着清爽稳重并且是为数不多有斜杠0的免费字体(微软的网站上提供下载)。此外,Linux下面的Vera Sans Mono和后继的Dejavu Sans Mono也都很不错,毕竟是经过多少Linux程序员的苛刻遴选的。

不过,要让字体尤其是新型的字体显示出应有的美感,千万别忘了打开ClearType哦(即便是CRT显示器,效果也是相当明显的),除了上面提到的Georgia,微软C家族,微软的雅黑就专门是为ClearType而生的,关掉ClearType的话他们将因为Aliased得厉害而变得像Fixedsys一样难看。

昨天才发现Minion/Myriad有专门为屏幕显示设计的版本:Minion Web和Myriad Web,两个都是TTF,包含在Font Folio 9 CD中。两者的效果都还不错,只是,同样12pt在Emeditor显示得不错,在Firefox中显示得却偏小。选来选去,我发现还是只有Tahoma适合做网页字体,配上Georgia作为衬线字体。

对了,忘了说,本Blog的字体设置如下:模板设置中Body Text:'Tahoma',Verdana;其他标题和日期字体使用了Tahoma, Verdana, Trebuchet MS。考虑到Minion Web不普及,这篇Entry的字体使用了Palatino Linotype,一般系统中都自带了。Minion/Myriad Web到这里下载。

XeTeX实战

2007年12月5日星期三

乱蓬蓬的图标?这Show的是XeTeX中调用Zapfino字体中的9个Variant(变体字型)。XeTeX是一个TeX引擎,最初在Mac系统下使用。它的一大优点就是良好的Unicode支持和简易的字体调用。正如前面的日志写到,LaTeX中安装字体相当麻烦,而XeTeX的出现让Mac用户首先尝到了直接使用系统字体的甜头。后来XeTeX被Port到各个主流平台上,鉴于我一直在Windows下面使用MiKTeX系统,在MiKTeX 2.7 Beta 5 开始集成XeTeX后,我考虑再三升级了自己的MiKTeX。

字体调用方式的改变,使得原有的代码需要进行相应的调整,好在原来安装字体用的是fontinst,这样字体是用宏包方式载入,没有冗余的字体选择代码夹杂在正文中,要修改起来并不算难。XeTeX有一个经典的宏包fontspec来进一步把字体的调用表面化,查阅这个宏包的说明文档后就基本上知道如何使用字体了,为了达到预期的效果,有时要加上几处修正:

\XeTeXinputencoding "bytes"

\XeTeXdefaultencoding "bytes"
%这两条用于修正汉字的编码长度
\XeTeXlinebreaklocale "zh"
\XeTeXlinebreakskip = 0pt plus 1pt
%这两条用于修正汉字断行问题

\defaultfontfeatures{Mapping=tex-text}
%启用tex风格字符,主要是---和--的组合字符

\usepackage[cm-default]{fontspec}
%默认使用Computer Modern系字体,后面可以使用

\setmainfont[Numbers=OldStyle]{Minion Pro}
%来调整正文英文字体,但有了cm-default后,页码会使用CM字体而不是难看的LM字体。

\usepackage{xunicode}% provides unicode character macros
\usepackage{xltxtra} % provides some fixes/extras

hyperref宏包选项中加上xetex,去掉pdftex或者dvipdfm,否则pdf书签乱码。

西方文字方面,如果要在tex文档中直接输入法语重音字,需要把文档按UTF-8编码保存。此时,惯用的WinEdt不能很好支持UTF-8编码,只有考虑换编辑器,这时我选择了轻型、可定制的SciTE,坦率地说,SciTE不好上手,像Firefox一样,刚刚拿到手时你根本不知道它能干什么,同样需要慢慢地配置和扩充才能发挥它最大、最贴心的作用。一边配置SciTE一边实践着XeTeX,西文方面已经可以发挥出OTF字体的优势了,要集成自己很喜欢的Adobe Minion Pro再不需要用fontinst去创建无穷的Type 1字体,而这个Minion Pro比原来Type 1 Minion还要更新、更全。不过在字体上,XeTeX也不是没有缺点,抛开和某些宏包不能很好结合外,它对Computer Modern字体的调用也跟LaTeX的习惯有些不同,比如用\up指令放到上标的文字。

中文方面的工作要更复杂一些(不过在中文系统下文件无需用UTF-8编码):前面提到断行、编码长度的问题都有被XeTeX的作者考虑到,但具体到中文的排版,还是要靠CTeX论坛的高手们,为此,在那里出现了很多具体的解决方案:jjgod的xcp,yindian的zhspacing,孙老师的xCJK和xCCT。刚开始时是因为孙老师的TeXfriend中有给WinEdt添加一个XeTeX编译按钮,装了TeXfriend,自然在其中发现了采用xCJK宏包的例子,但当我尝试了一下后发现,XeTeX的中文编译速度好慢啊!30几页的文档要高cpu高内存地编170秒。生成的文件质量当然是令人很满意,但这个速度够呛。询问了好几次,今天听孙老师说是因为xCJK宏包的处理方式本来就慢,对应到XeTeX来就更慢(XeTeX编译普通英文文档也比LaTeX慢,估计是调用字体的方法不同),用xCCT会快一点。折腾了半天改用xCCT宏包,果然快多了,17秒(10倍!),相应地又要做一些修改,不过有了XeTeX,中文方面真的省事多了。在我看来,PDF中只有集成TTF中文字体才是王道,因为Type 1字体对中文来说来复杂,渲染速度也很低。(更新:
孙老师优化了xCJK,速度现在跟xCCT一样了)

最近还解决了一个西欧编码的问题:学校机器是法语系统,里面默认用西欧编码保存tex文件,拿到家里来就是乱码,编译倒是没问题,但编辑起来太累了(看不清混杂着乱码的单词)。本以为是WinEdt非Unicode程序造成的,但用SciTE打开问题依旧,看来还是系统内码问题,只有彻底走上UTF-8路线才能一劳永逸,为此,tex文档要相应地改变一些:

  • inputenc宏包的选项由latin1改成utf8x-- \usepackage[utf8x]{inputenc}
  • fontenc选项依然是T1字体-- \usepackage[T1]{fontenc}
  • 为了保证hyperref生成的pdf信息没有乱码,在导言区hyperref宏包出现之前需要加上一条神奇的\PrerenderUnicode{é},看起来好像只是指定了é字体,实际上所有法语重音字符全部解决了。这个也真是巧合,是在PDF作者、关键字出现的一堆乱码中找到的“Please insert PrerenderUnicode...in preamble”……
  • hyperref中加上unicode的选项。
  • 文件保存成UTF-8编码,为保证在SciTE中正常显示打开,不要添加UTF-8签名(BOM)——这一条折腾我好久啊。即使是这样,由于没有UTF-8签名,在SciTE中依然需要手动切换显示编码,不过比起只有看着乱码进行编辑,这只要看一眼就也还算省事了。
这回源文件就更加安全了,因为不需要总是切换保存的编码,而且在家里也可以放心地编辑。从WinEdt转到SciTE,失去了一些功能,但得到的是UTF-8带来的更多保证(Jabref也支持把bib文件保存成UTF-8)。

在LaTeX安装Type 1字体

2007年11月11日星期日

自从认识了LaTeX后,我很快对PDF着迷起来,LaTeX生成的PDF文档,既专业又美观,在长期的研习中,我逐渐地成为了一个排版爱好者。

可能说“排版爱好者”有点夸张,毕竟印刷厂的工作要复杂得多,但至少我先是对页面布局,文档可读性有了一个大致的了解,然后马上就进入了LaTeX中比较困难的一部分——字体。

与Word这种所见既所得的文字处理软件不同,LaTeX中并不容易任意地使用字体,即使是在Mac上的XeTeX,把字体的使用通过fontspec宏包大大简化,也依然需要用户对字体有相当的了解。关于字体,我了解的也只是些皮毛,当然就不多说了。但至少,真正意义上的字体使用远远不是在一个下拉菜单中选择一个名字,然后加粗、斜体而已的;原来我一直觉得一个英文字体,即使是商业字体,就26+10个字母和一些符号,ttf/otf文件才百十KB,怎么就能卖个几十上百美元?但在研究LaTeX的字体安装后,我才发现其中的奥妙。

最初关于字体了解不多,基本上只知道TTF(Truetype),于是花了不少时间去安装这类字体,直到当年的实习结束,也没来得及把Verdana字体集成到实习报告中,十分懊悔。后来找到了方法,顺利地安装上了英文/中文TTF。

后来发现大多科技性文档,尤其是电子书,排版相当精美,在PDF集成的字体中却鲜见TTF,更多的是Type 1字体,查询过才知道这是Postscript字体,是Adobe经历时间检验的字体标准。然后才有微软和Adobe合作产生的OTF字体。但它们也不容易在LaTeX中使用,或者说,如果只是像TTF那样装上去能打出字来,就太委屈了。事实上配合输出控制指令,这些字体可以表现出多种不同的外观(Variant)、特有的连字(Ligature)、不等高数字(Text figure,本Blog使用的Georgia字体也有这个效果)、上下标、装饰字等等。

网上看到一些教程,不过很长,一直没有时间去看。随着电子书看得多起来,我又重新开始关注作者们使用的字体,开始了解到Palatino、Sabon、Minion、Garamond等商业字体,它们的美丽远远不是Times/Arial能表现的,LaTeX的CM/CM-super虽然好看,但反正也是原生的字体,没有二择。为了解馋,先是在电驴上把几个重型的字体包(Adobe Fontfolio 7/8/9/10,Linotype和Opentype字体库)拖了下来,本以为是OTF文件,结果发现更多的是PFB/AFM什么的一大堆,这才明白原来Type 1字体并不是单文件的,看来安装肯定简单不了。先攻OTF,很幸运地一下就解决了,但得到的结果很糟糕,连fi的连字都没有。看来还是得从根源上去理解。上周五又被某个网站上用XeTeX表现出来的PDF所震撼,馋得不行,于是下决心要看懂Type 1的安装。

Type 1的安装几乎都是手动,按照某些网站上的说法有16道工序,我自己写的教程中也有8道工序(不含最后的使用)。天昏地暗地看了两天文档,果然是复杂得很,试了好多次,总算成功地装上了Minion,还没来得及欣喜,就发现除了fi的连字,别的都没有了,至少也得给我ffi/fl/ffl的连字和不等高数字吧。再仔细研究文档才发现,除了Minion之外还有一组配合使用的Minion Expert,专家字体才提供复杂的字体控制功能,可是按照上面说的,没有安装成功……所幸不含专家字体的安装方法我已经清楚了,而且,反复的尝试开始有点像在机械的模仿,慢慢地,我也理解到了LaTeX认识字体的方式,要让它生成美丽的字体,真的是每一点细节都不能缺少。

今天终于理解到自己可能是把Minion字体装乱了,于是用全新的Adobe Garamond (+Expert字集)来尝试,总算是成功了,效果见这个PDF。不过,目前也只是依样画葫芦成功了,还有很具体的代码要看,希望能把Adobe说明文档中的效果都展现出来!

-- 更新 --
事实上,把Minion清理干净后再重新装一遍(反正Font installation guide里面有样本TeX文件直接用),就一切OK了,更新的效果依然在上面那个PDF中。

不过现在发现XeTeX已经出现在MiKTeX 2.7 Beta 4中,自己在虚拟机下测试有效,打算慢慢花时间学学,看来使用字体的难度会随着TeX爱好者的努力而逐步降低,LaTeX这个看来很繁杂的工具,相信能有被普遍接受的一天。

我的Logo(Times New Roman字体)

2006年9月11日星期一

本来以为很简单的事,结果制作这个小小logo的过程让我深入地理解了图片中的透明、锯齿、通道、色板和文字显示中的矢量化,边缘平滑等内容。牵涉到的软件有LaTeX系统、GifMovieGear、取色器、Acrobat Professional、Photoshop和Imageready等等。最终我懂得了PNG格式真正的优势所在,放弃了用Gif显示的努力,这张图片用IE6看是没有透明效果的,只有Firefox和IE7才能正常显示,而如果用Gif,花边和锯齿的现象很难得到解决,最重要的是GIF格式适应背景的能力一般,在白色背景下看着好好的效果换了橙色背景或许就歇菜了。之前那个logo用的是LaTeX的CMR(cm-super)字体,效果有点不是很锐利,还是Times字体保险些,呵呵。