设计理论:网页中文字体排版设计

TeX 排版中文字体嵌入问题,兼谈不拘小节的中文字体设计

原文:http://yulewang.spaces.live.com/blog/cns!5C815C994ABB661E!262.entry

低于 18 周岁的小朋友们请不要看此文,会被吓到的。如果你和中国的字体公司有联系,请把我所描述的问题转告给他们。

考完作文后,在上海小歇,除了吃喝玩乐加上逛街还有被导师虐着写文章,自己看两眼G词以外,就是在尝试解决中文 TeX 用户几年来一直抱怨的关于 TeX 产生的 pdf 文档中文字体看上去太细的问题。

这个问题的来龙去脉是这样的。很久以前,大家都需要用 dvips 或者 dvipdfm 来转换 TeX 产生的 dvi 文件为 pdf 文件,这个路径很麻烦,需要把一个中文 trueype 字体转为大约一百多个 Type1 字体,然后再把这些字体的 Subfont 给嵌入到文档中。南韩的一个数学家 Cho,因为不满意 TeX 的这种状况,因此写了一个 dvipdfm 程序的扩展,名为 dvipdfmx。dvipdfmx 可以直接嵌入 CID 的 TrueType 和 OpenType 字体,不需要把字体分割成许多个 subfont,产生的 pdf 文件小巧,而且比原先的方法在阅览器下渲染速度快,质量比较高。因此得到了中日韩用户的喜爱。但是许久以来,中文用户一直抱怨一个问题,就是貌似由 dvipdfmx 产生的文档,在 Adobe 公司官方的 Acrobat Reader 下,显得发虚,严重地影响阅读,而相同的字体,如果不用 dvipdfmx,比如使用 cairo、quartz 或者 word2007 进行转化,产生的 pdf 就没有这个问题。如果文章中都是中文,那只不过是难以阅读而已。而如果是中文和英文混排的,而英文部分又比较正常,比如使用了 Times 字体或者 Palatino 字体,则整个 type block 就显得斑驳,一眼看到的都是突出的英文,所以一直以来,我们都建议用户使用本来就细得要命的默认的 Computer Modern 字体,以使得文档不至于失调。

几年来,从来没有人认真地研究过这个问题,南韩的用户都觉得 dvipdfmx 产生的 pdf 质量不错,因为他们使用的随 KTUG 定制的发行版发布的字体本来就比较粗,而中国的用户如果使用 Windows 下的中易公司的宋体,即 simsun,则相当不能忍,方正公司的字体,比如书宋,则稍微好一点,但怎么也好不过 Adobe 公司的 OpenType 字体 Adobe Songti Std Light。若干年前,jjgod 同学写过一篇文章比较了几十个中文字体,他是使用了 dvipdfmx 输出的结果的视觉效果来评价字体的质量,结果一个相当好的字体,方正博雅宋,由于在阅览器中显示过细,被他认为不如方正书宋。而几年以后,这个问题被泛化,当今,TeX 正在走向国际化,如今的 TeX 已经支持 Unicode 和各种高级的字体格式,也全面从 dvi 时代过渡到 pdf 时代,目前两大炒作得很热的 TeX 引擎,都和 dvipdfmx 扯上了关系。 XeTeX 直接使用了 dvipdfmx 的一个变种,xdvipdfmx 来产生 pdf,而 LuaTeX,则用 dvipdfmx 的代码替换掉部分产原先 pdfTeX 的代码,来产生 pdf。这就导致,目前所有的先进的 TeX 系统,在 CID 字体嵌入方面的代码,是近亲关系,所有产生的中文 pdf,都虚得离谱,LuaTeX 尤甚。

我在去年和今年,一直使用 LuaTeX 引擎和 ConTeXt 格式,写各种包括论文以内的文档,在使用的过程中,发现了不少问题,就开始和开发者交流。几个月来,报告了不少 bug,其中一些,还给出了补丁。此外,我和 ConTeXt 开发者 Hans 等 TeX 专家讨论,试图让最新的 ConTeXt 和 LuaTeX 来支持中文排版。其他事情,还包括为ConTeXt 的用户们提供 FreeBSD 操作系统的 TeX 二进制文件。因此,我和 LuaTeX 与 ConTeXt 的开发者(其实是同一拨人),有很频繁的联系,也彼此保持着不错的关系。开发者们也很勤快地修复着我汇报的各种 bug,这也使我能够很好地使用这些软件进行各种文档(学术论文、技术文档)的排版。今年考完作文后,我暂时可以小歇一下,同时由于 LuaTeX 的开发者们刚刚搞定了一项新功能,mplib,也有空余的时间。因此,我们就有时间来讨论和解决这个由来已久的问题。

我一开始写信给 LuaTeX 的开发者,Taco Hoekwater,之所以不写给 dvipdfmx 开发者 Cho 而发给他,因为我和他熟,而且 Taco 这两年来,勤勤恳恳地写代码,我比较相信他解决问题的效率。有时候一个 bug 提交给他他不到几十分钟就已经 fix 了。结果 Taco 看了好几天,一无所获,于是,Taco 帮助我把信转给了当今世界上几个重要的大牛,准备来专家会诊。这个会诊的医师阵容庞大,技术高超,随便举几个人:dvipdfmx 开发者 Cho,LuaTeX 开发者 Taco,外加 XeTeX 开发者 Jonathan Kew。不久以后,话说解铃还需系铃人,Cho 找到了一个可能的问题。他把 pdf 文件解开,仔细观察 cairo 输出了 LuaTeX 输出中字体嵌入部分的参数,发现某个数值 StemV,相差悬殊。使用编辑器修改解开的 pdf,将 StemV 调整到相同,两个 pdf 文件顿时就差不多了(虽然还有些许差别,但是这个就是最重要的因素之一)。

时间: 2024-12-03 01:53:55

设计理论:网页中文字体排版设计的相关文章

网页设计参考:网页中文字体对应的英文名

文章简介:有时css文件里面用到中文字体的时候由于字体编码的关系要使用到中文字体的英文字体名字. 有时css文件里面用到中文字体的时候由于字体编码的关系要使用到中文字体的英文字体名字. 然而有些中文字体的英文名字却不是那么好记. 所以我这里就搜集了一些. 中文名 英文名 Unicode Unicode 2 Mac OS 华文细黑 STHeiti Light [STXihei] \534E\6587\7EC6\9ED1 华文细黑 华文黑体 STHeiti \534E\6587\9ED1\4F53

网页设计人员参考:网页中文字体设计总结

文章描述:读一本书,看一份报,文字从产生之初就发挥着它不可撼动的地位,充斥着我们每个人每天的生活:然而在繁杂的文字设计中,跳开这些设计,更该去看看最初的文字是什么样子的,珍惜它们每一次的蜕变- 读一本书,看一份报,文字从产生之初就发挥着它不可撼动的地位,充斥着我们每个人每天的生活:然而在繁杂的文字设计中,跳开这些设计,更该去看看最初的文字是什么样子的,珍惜它们每一次的蜕变- 中文字体之宋体 中国文字创造之初,与埃及相同,都是由图画.象形文字演化而来的.但其进化情况却又不同.中国文字的演化,始终维

网页banner设计理论:工作中对banner设计的理解

网页制作Webjx文章简介:Banner广告条中的字体设计. 由于banner一般用于专题类网站,在门户网站的二级页面,用户进来之前,在首页已经对主题有一定的了解和认识,所以banner的作用是在二级页面中起到包装页面的同时增加内容的趣味度和内容方向引导:所以这也是和传统广告中普遍要求第一感官视觉冲击力来强奸眼球所不同的地方 本来想写"Advertisemen中的字体结构分析",后来发现这个标题写得有点大,偏离了在目前工作中的针对性,因此缩小到banner的范围,以下内容仅个人在目前工

网页设计理论:网页设计风格

文:Jeffrey Zeldman 我的父亲是个业余画家,我的童年就是被他的那些美术书籍塑造的.跟很多小孩一样,我对「纯粹的再现」十分着迷.那些巨细无遗的版画--搏斗中的角斗士,风景如画的村庄,日出时的罗马废墟--每每让我瞠目结舌.口不能言.当时我对艺术的理解就是「画功好」.在那年幼而懵懂的日子里,细节越丰富.蚀刻的线条越密集.树叶越多,这艺术家就越棒.稍后我邂逅了漫画,再往后是美术馆.麦菲·派瑞(Maxfield Parrish)让我想嗑药,也让我明白自己永远当不了画家.保罗·克利(Paul

交互设计理论:我们眼中的交互设计

交互设计(Interaction Design, 缩写 IxD 或者 IaD),是定义.设计人造系统的行为的设计领域.人造物,即人工制成物品,例如,软件.移动设备.人造环境.服务.可佩带装置以及系统的组织结构.交互设计在于定义人造物的行为方式(the "interaction",即人工制品在特定场景下的反应方式)相关的界面(Wikipedia).通过对界面和行为进行交互设计,从而可以让使用者使用人造物来完成目标,这就是交互设计的目的. 从用户角度来说,交互设计是一种如何让产品易用,有效

设计理论:网页输入框的大小

     开始的时候我写了个标题:输入框的高度,再一想单讲输入框的高度实际上是没法限定的,输入框的高度取决于需要输入的文本的多少.输入框的宽度这2个因素.      我简单的把输入框归为以下几类:搜索.表单.地址栏.状态栏类:微博.IM工具聊天输入域.短评输入域.自我介绍:博客文章编辑.大段文字输入.       对于第一类这样的输入框似乎是没有什么规则可依的,google.com.g.cn.baidu.com等等这些搜索引擎的输入框貌似都是随性而为的?      好事的对比了一下:google

设计理论:网页设计中的垂直韵律

原文:http://ued.taobao.com/blog/2009/03/31/vertical-rhythm-and-the-incremental-leading/ 准备工作 去年的时候,青云发表过关于栅格系统的文章  . 我们知道网页的栅格系统是运用固定的格子设计版面布局,使其风格工整简洁. 视觉上来说,栅格系统能够将大块区域分割成小区域,清楚地展示页面的布局,并能够引导视觉线在各个板块之间扫描.阅读. 从信息上来说,栅格系统让信息的呈现方式更加直观,从而有效提高易读性.但是大部分栅格系

设计理论:网页像素误差的解决方法

像素误差 看自己设计好上线的网站,偶尔会发觉像素行间出现了弹性空间,总在不经意间蹦出一定的差距.有些页面很难发现,比如活动类页面,这类页面多呈不规则造型,在设计上也更加灵活多变.但在portal类的页面设计上,像导航.登录框.行距等,几个像素的误差可能就会影响到用户的感受.这时,像素误差问题就很直观了. 面对不断成长的用户,Qzone的平台.活动等不断的推陈出新,新的视觉观感.新的操作方式.新的体验等等都在追求尽善尽美.但由于时间进度和对界面的不同理解,以及上线前开发联调等原因,导致线上的页面和

设计理论:网页气球状提示用户体验设计

Balloons(气球状提示) 问题摘要 气球状提示(Balloon)是一个小型的弹出窗口,用于通知用户出现非关键性问题或控件处于某种特殊情况. 实例 图1 注:气球状提示由图标.标题.正文文本组成,且所有这些部分都是可选的. 注:当用户试图提交操作的时候,任何未处理的问题都必须由其所有者用户界面来处理. 注:气球状提示通常与文本框或其他使用文本框来改变值的控件一起使用,如组合框.列表视图.树形视图等等. 注:保持控件之间的一致性.当发现不一致性出现时,气球状提示不再适用. 注:如果其他类型的控