如何在 UDS(通用目录服务)中编辑字体元数据?

如何在 UDS(通用目录服务)中编辑字体元数据?

我已将其重命名以反映我所了解到的情况。以下详细信息跟踪了该问题。

原始帖子:

我正在尝试安装一组 OpenType Helvetica 字体。字体安装失败,因为“细”字体在字体属性中被描述为“浅色”,从而触发“此字体已安装在您的系统上”错误。

  1. 当我在 KFontView 中打开任一字体时,字体名称是“Helvetica, Light”。
  2. 当我单击“文件属性”并转到“信息”标签时,两种字体的“Font.Weight”均为“Light”。
  3. 当我在 FontForge 中打开字体时,Thin 字体显示“Thin”,而 Light 字体显示“Light”。
  4. 当我从 FontForge 将细字体保存为 sfd 文件并在 Kate 中打开它时,找不到字符串“Light”。
  5. 当我在 Kate 中打开细字体二进制文件 (oft) 时,找不到字符串“Light”。

我非常确定我想将 Thin 文件的 font.weight 属性更改为“Thin”,以便 a) 我可以安装它们,并且 b) 它们的元数据将正确无误。但我实在想不出属性对话框中的字体属性存储在哪里;更不用说如何更改它们了。

到目前为止,我想到的唯一可能的解决方案(我还没有尝试过)是安装 Thin 字体,进入字体配置数据库来更正名称,然后安装 Light 字体。除了很麻烦并且如果必须重新安装字体,我可能会丢失更改之外,这似乎是一个坏主意。

我很乐意根据要求提供更多信息。

修订(2010 年 1 月 27 日)

附加信息:

  1. 这完全是 Qt 或 KDE 的问题。将字体移至 /usr/local/share/fonts,然后调用“fc-cache”即可正常安装字体。但是,这些字体仍然不会出现在 KDE 字体安装程序中。

  2. 粗略地看一下源代码,搞乱 KDE 的字体元数据可能存储在 UDS 中。Google 提供的通用术语太多,无法提供太多帮助;所以我不确定 UDS 是属于文件系统 (ext3)、Qt 工具包,还是(不太可能)属于 KDE。

  3. KMail 对待字体的方式与 Windows 上的 MS Office 类似。它对用户隐藏除字体系列之外的所有字体,并期望仅找到粗体、斜体和粗斜体样式。这对于测试此问题没有多大用处。

  4. OpenOffice 的优势在于它在工具栏中显示字体系列,但在文本属性对话框中显示所有样式。不幸的是,此代码似乎存在错误;将样式更改为基本粗体和斜体以外的任何样式均无效。

  5. Scribus 可以正确处理字体。运行 fc-cache 后,Scribus 运行正常。

答案1

这听起来很像是 Qt/KDE 中的一个错误,应该报告它:

https://help.ubuntu.com/community/ReportingBugs

https://bugs.kde.org/

否则,如果 Qt 字体索引器对此字体有问题,您尝试的任何方法都无济于事。确保包含详细信息和重现步骤。

答案2

对于遇到类似问题的人(我遇到过Candara Light,KDE 一直坚持认为是),Candara Regular请打开字体FontForge并确保字体的OS/2 Weight Class设置正确。(详细说明如下。)

请注意,在内部,即在字体文件中,此设置是纯粹的数字这就解释了为什么 OP 无法在文件本身的任何地方找到字符串“Light”:实际文件中出现的是数字“300”,而不是字符串“Light”。

更多关于Weight Class

Weight Class是一个数字有记录例如这里(寻找usWeightClass)。原则上它可以是 1 到 999 之间的任何整数,但FontForge限制为 100 的倍数。根据FontForge和链接的文档,这些数字与文字描述符(“Light”、“Regular”等)之间的对应关系如下:

100 Thin
200 Extra-Light
300 Light
400 Regular
500 Medium
600 Semi-Bold
700 Bold
800 Extra-Bold
900 Black

(链接的文档还包括950 Extra Black。)

看来只是FontForge为了方便用户而添加的文字描述。

以下事实进一步证实了此设置在内部是一个纯数字:如果在不同的字体管理器中打开相同的字体,则显示的只是数字,没有文字描述。例如,在Typograph字体管理器。(我在 下运行它wineTypograph是商业产品,但您可以下载它并使用某些功能(例如我将要描述的功能),甚至无需购买。)右键单击字体,选择Properties,选择名为 的选项卡,然后查看“Windows 度量数据”。将有一个名为“WeightClass”的条目。这将是一个纯数字,与下Metric出现的数字相同。FontForgeOS/2 Weight Class

如何OS/2 Weight Class更改FontForge

在 中打开字体FontForge。在FontForge的菜单栏中选择Element,然后Font Info…在打开的窗口左侧选择OS/2。在主区域中,确保Misc.已选择选项卡,然后查看Weight Class字段。根据需要进行更改,按OK窗口底部的 ,然后生成(不保存,产生)重新创建字体。(换句话说,在FontForge的菜单栏中,选择File,然后Generate Fonts…

在我的例子中,Weight Class最初设置为400 Regular。但后来我将其更改为300 Light,这为我解决了问题。

相关内容