【问题标题】:Fraction Value support in Verdana fontVerdana 字体中的分数值支持
【发布时间】:2014-01-06 08:06:46
【问题描述】:

我正在使用Delphi XE4Report Builder 15。我必须将报表生成器中的所有字体更改为 Verdana。我在处理报告中的分数值时面临一个问题。以下是我的代码示例:

var
AppFont: TLogFont;
....
....

AppFont.lfFaceName := 'Times Fraction';

它可以在我的报告中显示 1/2、3/4 等。我必须将报告中的所有字体更改为 Verdana。当我将上面的行更改为:

AppFont.lfFaceName := 'Verdana';

报告中的所有小数值都开始显示一些垃圾值。

Verdana 支持分数吗?请提出建议。

【问题讨论】:

  • 什么是时间分数?你用的是什么字符代码?
  • @DavidHeffernan - Times Fraction 是字体名称。
  • 叹息,显然是这样。它有什么特别之处而不是时代?那么如何回答我的第二个问题呢?
  • @DavidHeffernan - 我试图找出字符代码的定义位置。据我所知,它是 utf-8。
  • 这是一种编码。我们需要知道的是实际的 Unicode 字符代码。你+???您必须提供文本。你提供什么价值?

标签: delphi delphi-xe4 reportbuilder


【解决方案1】:

Unicode 有一系列代码点来表示粗俗的分数。例如VULGAR FRACTION ONE HALF (U+00BD)。这个字符在 Windows 附带的 Verdana 字体中有一个非常体面的字形。 Unicode 标准中还定义了许多其他常见的粗俗分数。

我怀疑您正在做的是使用一种特殊字体,该字体在代码点中包含分数字形,根据 Unicode 标准未指定包含分数。当您选择这样做时,您承诺自己单独使用该字体。这是一个糟糕的举动。在可能的情况下,坚持标准。

所以我建议你停止使用 Times Fraction 并坚持使用 Unicode 字体,使用 Unicode 代码点来表示粗俗分数。

当然,如果您需要不属于 Unicode 标准的分数,那么您需要一种不同的解决方案,一种不尝试使用 Verdana 中的单个字形的解决方案!

【讨论】:

  • 谢谢大卫,我明白你在说什么。但我现在还有一个问题。 Verdana 仅支持 3 个分数:1/2、1/4 和 3/4。但我的应用程序使用了近 30 个分数。例如,我的应用程序中使用了 15/16,它仅受 Times Fraction 字体支持,任何其他字体均不支持。那么,这种情况下我该怎么办呢?
  • 好吧,你对 Verdana 不走运。您需要使用 Times Fraction 之类的字体,或者通过使用标准数字组合来以其他方式呈现它。这很难做好。 TeX 真的是你想要的......
【解决方案2】:

Verdana 支持分数吗?是的,它完全支持 1/2 1/3 等表达式。 检查您的其他设置。

【讨论】:

  • 还有什么设置?
  • 首先:新建一个工程,只勾选这个参数。如果您看到一切正常,则可能与您的第一个项目的其他属性发生冲突。
猜你喜欢
  • 2012-09-29
  • 2012-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-11
  • 2012-02-24
  • 2023-04-03
相关资源
最近更新 更多