2. 字体
上一次用了很大篇幅讲ConTeXt的特性,几乎编程ConTeXt的广告了。这次讲些更有普遍性的。
先从字体开始讲起。长久以来我一直都是用LaTeX的默认字体(所有TeX系统的默认字体)Computer Modern系列。严格讲,Computer Modern是Knuth制作的一系列配套的字体。我们先得介绍一些关于英文字体的术语:
1.serif/sans-serif Serif就是比划顶端的衬线。典型的serif字体有
Times New Roman:
Computer Modern:
如果仔细看的话,computer modern字体横向的比划特别细,纵向比划特别粗。这是所有modern字体相对于old style或transitional(e.g. times new roman)的特点。
sans-serif就是没有衬线的字体。典型的sans-serif字体有
Helvetica
Optima
serif和sans serif的对比接近于汉字中宋体和黑体的对比。
2. roman/slanted/italic:
roman也叫normal或者regular,有人翻译作“正体”。italic和slanted都被人叫做斜体。slanted又叫oblique,通常只是把roman字体倾斜一下而已。而italic则是完全不同的字型。
先看roman和italic:
再看slanted
3. typewriter,bold, small cap, old style numeral, etc
typewriter也叫monospace,就是等宽字体。err,大家应该已经注意到前面所有的字体里,每个字符的宽度都不一样吧。typewriter字体既有serif的也有sans-serif的。典型的例子是Courier
bold是粗体,所有的字体都可以bold,不仅限于sans-serif。
small cap:
old style numerals:
4. pt, em, ex
传统的pt是一英寸的 1/72.27,TeX里的pt也是这个定义。现在新法的pt是1/72英寸,网页设计里讲的pt用的是这个定义。TeX里,1/72英寸叫做big point,或者bp。
em是当前字体中大写M的宽度。ex是当前字体中小写x的宽度。
5. ligature, kerning 找一本正规出版的书,可以发现有些字母组合,比如fi,ff,fl的字形是特制的,并不是简单地把f和i拼在一起。这样的组合叫ligature,TeX可以自动识别很多这样的组合。
另有些字母组合,比如A和V,因为字形的空白互相错开,应当排得紧一些,让A的底部和V的顶部有一点重合。这个叫做kerning。TeX可以kern很多这样的组合,也允许用户进一步调整kerning:
市面上字体多如牛毛,但是大部分LaTeX用户还是在用Computer Modern。原因是大部分字体都没有考虑数学公式中的符号,要配一套风格谐调的正文字体和数学字体不是一件容易的事。 但是选择还是有的,Stephen G. Hartke就此写了篇总结文章:A Survey of Free Math Fonts for TeX and LaTeX1。我们看几个典型的例子
1. computer modern
2. computer mrdern bright
3. concrete + Euler
4. palatino + Euler
Euler math是Knuth和字体设计大师Zapf,根据Euler的手稿的书写风格,合作设计的一种手写风格的字体。Knuth后来出版了他和Zapf的通信,详细描述了他们设计这款字体时的思路,很有趣。
先从字体开始讲起。长久以来我一直都是用LaTeX的默认字体(所有TeX系统的默认字体)Computer Modern系列。严格讲,Computer Modern是Knuth制作的一系列配套的字体。我们先得介绍一些关于英文字体的术语:
1.serif/sans-serif Serif就是比划顶端的衬线。典型的serif字体有
Times New Roman:
Computer Modern:
如果仔细看的话,computer modern字体横向的比划特别细,纵向比划特别粗。这是所有modern字体相对于old style或transitional(e.g. times new roman)的特点。
sans-serif就是没有衬线的字体。典型的sans-serif字体有
Helvetica
Optima
serif和sans serif的对比接近于汉字中宋体和黑体的对比。
2. roman/slanted/italic:
roman也叫normal或者regular,有人翻译作“正体”。italic和slanted都被人叫做斜体。slanted又叫oblique,通常只是把roman字体倾斜一下而已。而italic则是完全不同的字型。
先看roman和italic:
再看slanted
3. typewriter,bold, small cap, old style numeral, etc
typewriter也叫monospace,就是等宽字体。err,大家应该已经注意到前面所有的字体里,每个字符的宽度都不一样吧。typewriter字体既有serif的也有sans-serif的。典型的例子是Courier
bold是粗体,所有的字体都可以bold,不仅限于sans-serif。
small cap:
old style numerals:
4. pt, em, ex
传统的pt是一英寸的 1/72.27,TeX里的pt也是这个定义。现在新法的pt是1/72英寸,网页设计里讲的pt用的是这个定义。TeX里,1/72英寸叫做big point,或者bp。
em是当前字体中大写M的宽度。ex是当前字体中小写x的宽度。
5. ligature, kerning 找一本正规出版的书,可以发现有些字母组合,比如fi,ff,fl的字形是特制的,并不是简单地把f和i拼在一起。这样的组合叫ligature,TeX可以自动识别很多这样的组合。
另有些字母组合,比如A和V,因为字形的空白互相错开,应当排得紧一些,让A的底部和V的顶部有一点重合。这个叫做kerning。TeX可以kern很多这样的组合,也允许用户进一步调整kerning:
市面上字体多如牛毛,但是大部分LaTeX用户还是在用Computer Modern。原因是大部分字体都没有考虑数学公式中的符号,要配一套风格谐调的正文字体和数学字体不是一件容易的事。 但是选择还是有的,Stephen G. Hartke就此写了篇总结文章:A Survey of Free Math Fonts for TeX and LaTeX1。我们看几个典型的例子
1. computer modern
2. computer mrdern bright
3. concrete + Euler
4. palatino + Euler
Euler math是Knuth和字体设计大师Zapf,根据Euler的手稿的书写风格,合作设计的一种手写风格的字体。Knuth后来出版了他和Zapf的通信,详细描述了他们设计这款字体时的思路,很有趣。