是否有具有等宽数字和空格的 Arial 或 Tahoma 字体版本?

是否有具有等宽数字和空格的 Arial 或 Tahoma 字体版本?

Windows 提供的 Arial 字体中的数字是等宽的,即每个数字都占用相同的水平空间,但它们似乎忽略了提供空格字符的“等宽”版本。这意味着您无法将一列数字格式化为右对齐(例如)12 个空格,并使右边缘对齐。例如:

         1
        12
       123
      1234
     12345
   1234567
  12345678
 123456789
1234567890 

可以正常工作,因为代码示例所用的字体的空格宽度与数字相同。但是,如果相同的文本以 Arial 显示,则不起作用(我无法演示,因为我目前还不知道如何破解 SU 的重新格式化!)。

碰巧的是,使用 Tahoma 8 点你可以作弊,因为空格的像素数恰好是数字的一半,但这很混乱且非常具体。

答案1

尝试使用图形空间即使在比例字体中,其宽度也应与数字相同:

数字空间是印刷单位,等于单个印刷数字(数字或字母)的大小减去行距。其大小可能会根据所用字体而有所波动。在等宽数字的字体中,它等于一个数字的宽度。

答案2

我用的是图形空间(根据 user1458424 的建议)对齐数字和稀薄空间分隔千位。

例如,在 JavaScript 或 C 中,您可以在字符串中的任何位置输入相应的 Unicode 字符代码:

  • \u2007:图形空间。
  • \u202F:空間較薄。

使用窄空格作为千​​位分隔符具有一些显著的优点:

  • 与使用,或相比,其意图对美国和欧洲读者来说都是明确的.
  • 无论值是否为 ,您都可以添加它>= 1000,因为该空间对于眼睛来说是不可见的。
  • 它比货币符号和值之间的常规空格要细,这使得在货币符号后只有一个空格时看起来更好。

下面,我将描述我是如何获得以下格式的(,本例中为欧洲小数分隔符):

  • 1.75 欧元
  • 100.00 欧元
  • 199.97 欧元
  • 10350欧元
  • 21 003.18 欧元
  • 121 018.33 欧元

    1. 从输入中删除所有非数字字符:price.replace(/[^\d]+/g, '')
    2. 计算“缺失字符”数:missingDigits = maxDigits - price.length
    3. 将输出值设置为'€'
    4. 对于每个缺失的数字,在输出中附加一个数字空格:'\u2007'
    5. 附加除最后两位之外的所有输入数字,然后附加小数点分隔符,然后附加输入的最后两位数字。
    6. 返回输出中除最后六个字符之外的所有字符,并在后面附加一个细空格'\u202F',并在最后六个字符之后附加一个。

输入可以是任何数字的字符串表示形式,可以包含或不包含标点符号和非法字符。输出将如上所示。您必须选择允许的最大位数。

答案3

是的,如果你愿意付费,Monotype 有一个出售的等宽 Arial 变体

另一方面,如果你想要一款好的、免费的、在很多情况下都适用的无衬线字体,我建议你看看droid sans mono

答案4

是的,您可以尝试获取“Arial Monospaced for SAP”字体。它有 Normal 和 Bold 两种类型。

此字体属于客户端 GUI(https://en.wikipedia.org/wiki/SAP_Graphical_User_Interface)是德国SAP AG公司出品的企业资源计划软件SAP R/3的简称。

获取 1.2 版字体的普通和粗体类型。文件名为:arimon__.ttf 和 arimonbd.ttf

相关内容