2013-01-08 69 views

回答

2

字体文件包含信息映射字符(通过字符的“索引”)到可显示的向量或位图数据。阅读http://v1.jontangerine.com/log/2008/08/typeface--font以获得更好的概述。

字符集 - 请参阅例如http://www.iana.org/assignments/character-sets/character-sets.xml不涉及键盘,它是从索引(整数)到字符(概念性,而不是特定字形)的映射。

你描述的东西被命名为keymap(afaik)。

我认为这应该足够你的目的,并给你一些指引,深入研究如果你想。

UPDATE 神奇链(可能有点朦胧,我没有研究它,请修复您发现任何错误):

你按下键盘上的一个键 - 你触发中断,这是一个重要事件。我不知道键盘和计算机之间的线路协议,但我猜它只是每个键的一个字节,类似于键盘的0..127和键盘的-1..- 128。

您的操作系统接收来自键盘的中断并更新其内部状态,按下如Ctrl /移位/ ALT修饰符汇总信息,...您的键盘(键盘映射)的布局和字符集的知识你将会使用这个字符,所以你会得到一个字符(例如“a”+“shift” - >“A”)的关键事件,这很容易,但是你也可以输入类似“Ä”的东西在每个字符集中并且不包含在每个键盘上)。现在你知道哪个字符被按下了。但这不是你可以展示的 - 这只是一个概念(见下一步)。

如果没有热键处理程序或不能拦截您的密钥,它会传递给您的应用程序,它需要知道要在屏幕或打印机上绘制什么。 “A”不完全相同,如果你拿两个手写的,他们可能会看起来不一样。 字体用于绘制或打印代表角色的内容 - 角色的图像。对于大多数用户,并在大多数程序中,字体包括的字符的外观,包含数据的文件,以产生它和类似的所有变型定期粗体斜体以及它们的组合。

类型专家(我不是一个,只是一个发烧友)不喜欢那种缺乏区分。

字体字体变体(参见上文),其被存储在字体文件含描述性数据为字形(字符与特定的样子)家族。的字体也可以含有字距(字符之间的距离),暗示(如何在特定尺寸显示它的细节),替代(替代字形用于一字母)和结扎线(如何将一个组的组合字符转换为单个字形不同的字体文件格式(truetype,open type,所有这些web字体格式)具有不同的能力

单个分辨率的位图字体,如果它们没有显示在多个的原始位图。有矢量字体包含他们的轮廓的数学描述,可以缩放到任何你喜欢的分辨率,并且看起来仍然很清晰(这就是你喜欢的位置nting可能很重要。和cleartype,antialiasing,subpixel antialiasing)。

字体可以由它们的外观可分为:比例( “i” 是比 “M” 更薄)比等宽(每字形具有相同的宽度),无衬 VS 衬线。当它们有一定的相似性时,它们被归类为字体系列怪诞骨折符号签名,...

这就是我的一切,现在,我可能没有得到的一切权利。但这是一个开始。有关更多详细信息,请将粗体内容粘贴到您最喜爱的搜索引擎中如果你,亲爱的读者,发现了一个错误:我会很感激评论,并会更新这个。

+0

我真的很喜欢你的答案的深度,谢谢) – HolyKiller

5

字符集是从无符号整数到抽象字符的映射。例如,在Ascii字符集中,数字103(十进制;十六进制中的67)被映射到拉丁小写字母g。在逻辑层面上,字符集与电脑无关(尽管这个概念在信息技术中具有明显的实际相关性)

字体在现代意义上是计算机代码,用于渲染(显示)特定形状的字符作为特定字形。

在内部,字体使用字形索引,但也使用基于字符集的索引编号。当使用字体来呈现字母g时,它在内部由它在字符集中的数字表示,并且该数字用于在字体中找出它的字形。也就是说,字符号码被映射到一个字形号码。 (如果文本的字符集与字体编码中使用的字符集不同,则在此之前需要执行字符集之间的附加转换。)

这通常通过将字体描述为通过字符数索引的字形数组:索引(例如103)用于拾取包含字形(字符g)的第103个虚拟框。虽然有用于获得基本的想法,但它确实是过分简单化了。在许多字体中,字母g有两个或多个字形(如单圈形式和双圈形式,或普通形式为小型大写形式),但其中一个是默认字形和其他字形表格需要用特殊工具进行选择。

+0

这很棒,Upvote! – Arne

+0

我希望我有足够的代表upvote你! (虚拟+1?)。你的解释很有帮助,谢谢。 – HolyKiller

相关问题