JavaFX对所有控件使用等宽字体

亚当

我在Red Hat Enterprise Linux Workstation 6.6(圣地亚哥)上使用JavaFX 1.8u40。当我运行标准JavaFX应用程序时,即使没有其他CSS,所有标签,菜单等也都使用等宽字体显示。

我使用的系统只有以下TTF字体可用

/usr/share/fonts/liberation
/usr/share/fonts/liberation/LiberationSerif-Regular.ttf
/usr/share/fonts/liberation/LiberationMono-BoldItalic.ttf
/usr/share/fonts/liberation/fonts.dir
/usr/share/fonts/liberation/LiberationMono-Italic.ttf
/usr/share/fonts/liberation/LiberationSans-Bold.ttf
/usr/share/fonts/liberation/LiberationSerif-Bold.ttf
/usr/share/fonts/liberation/LiberationMono-Regular.ttf
/usr/share/fonts/liberation/LiberationSans-BoldItalic.ttf
/usr/share/fonts/liberation/LiberationSerif-Italic.ttf
/usr/share/fonts/liberation/LiberationSerif-BoldItalic.ttf
/usr/share/fonts/liberation/fonts.scale
/usr/share/fonts/liberation/LiberationSans-Regular.ttf
/usr/share/fonts/liberation/LiberationSans-Italic.ttf
/usr/share/fonts/liberation/LiberationMono-Bold.ttf

我已经使用OpenJFX字体指南对此进行-Dprism.debugfonts调试输出如下。

Loading FontFactory com.sun.javafx.font.freetype.FTFactory
Subpixel: enabled
Freetype2 Loaded (version 2.3.11)
LCD support Enabled
Time spent accessing fontconfig=4ms.
FC font sans:regular:roman maps to Liberation Mono in file /usr/share/fonts/liberation/LiberationMono-Regular.ttf
 0) Family=Liberation Mono, Style=Regular, Fullname=Liberation Mono, File=/usr/share/fonts/liberation/LiberationMono-Regular.ttf
 1) Family=Liberation Sans, Style=Regular, Fullname=Liberation Sans, File=/usr/share/fonts/liberation/LiberationSans-Regular.ttf
 2) Family=Liberation Serif, Style=Regular, Fullname=Liberation Serif, File=/usr/share/fonts/liberation/LiberationSerif-Regular.ttf
FC font sans:bold:roman maps to Liberation Mono Bold in file /usr/share/fonts/liberation/LiberationMono-Bold.ttf
 0) Family=Liberation Mono, Style=Bold, Fullname=Liberation Mono Bold, File=/usr/share/fonts/liberation/LiberationMono-Bold.ttf
 1) Family=Liberation Sans, Style=Bold, Fullname=Liberation Sans Bold, File=/usr/share/fonts/liberation/LiberationSans-Bold.ttf
 2) Family=Liberation Serif, Style=Regular, Fullname=Liberation Serif, File=/usr/share/fonts/liberation/LiberationSerif-Regular.ttf
FC font sans:regular:italic maps to Liberation Mono Italic in file /usr/share/fonts/liberation/LiberationMono-Italic.ttf
 0) Family=Liberation Mono, Style=Italic, Fullname=Liberation Mono Italic, File=/usr/share/fonts/liberation/LiberationMono-Italic.ttf
 1) Family=Liberation Sans, Style=Italic, Fullname=Liberation Sans Italic, File=/usr/share/fonts/liberation/LiberationSans-Italic.ttf
 2) Family=Liberation Serif, Style=Italic, Fullname=Liberation Serif Italic, File=/usr/share/fonts/liberation/LiberationSerif-Italic.ttf
FC font sans:bold:italic maps to Liberation Sans Bold Italic in file /usr/share/fonts/liberation/LiberationSans-BoldItalic.ttf
 0) Family=Liberation Sans, Style=Bold Italic, Fullname=Liberation Sans Bold Italic, File=/usr/share/fonts/liberation/LiberationSans-BoldItalic.ttf
 1) Family=Liberation Mono, Style=Bold Italic, Fullname=Liberation Mono Bold Italic, File=/usr/share/fonts/liberation/LiberationMono-BoldItalic.ttf
 2) Family=Liberation Serif, Style=Italic, Fullname=Liberation Serif Italic, File=/usr/share/fonts/liberation/LiberationSerif-Italic.ttf
FC font serif:regular:roman maps to Liberation Mono in file /usr/share/fonts/liberation/LiberationMono-Regular.ttf
 0) Family=Liberation Mono, Style=Regular, Fullname=Liberation Mono, File=/usr/share/fonts/liberation/LiberationMono-Regular.ttf
 1) Family=Liberation Sans, Style=Regular, Fullname=Liberation Sans, File=/usr/share/fonts/liberation/LiberationSans-Regular.ttf
 2) Family=Liberation Serif, Style=Regular, Fullname=Liberation Serif, File=/usr/share/fonts/liberation/LiberationSerif-Regular.ttf
FC font serif:bold:roman maps to Liberation Mono Bold in file /usr/share/fonts/liberation/LiberationMono-Bold.ttf
 0) Family=Liberation Mono, Style=Bold, Fullname=Liberation Mono Bold, File=/usr/share/fonts/liberation/LiberationMono-Bold.ttf
 1) Family=Liberation Sans, Style=Bold, Fullname=Liberation Sans Bold, File=/usr/share/fonts/liberation/LiberationSans-Bold.ttf
 2) Family=Liberation Serif, Style=Regular, Fullname=Liberation Serif, File=/usr/share/fonts/liberation/LiberationSerif-Regular.ttf
FC font serif:regular:italic maps to Liberation Mono Italic in file /usr/share/fonts/liberation/LiberationMono-Italic.ttf
 0) Family=Liberation Mono, Style=Italic, Fullname=Liberation Mono Italic, File=/usr/share/fonts/liberation/LiberationMono-Italic.ttf
 1) Family=Liberation Sans, Style=Italic, Fullname=Liberation Sans Italic, File=/usr/share/fonts/liberation/LiberationSans-Italic.ttf
 2) Family=Liberation Serif, Style=Italic, Fullname=Liberation Serif Italic, File=/usr/share/fonts/liberation/LiberationSerif-Italic.ttf
FC font serif:bold:italic maps to Liberation Sans Bold Italic in file /usr/share/fonts/liberation/LiberationSans-BoldItalic.ttf
 0) Family=Liberation Sans, Style=Bold Italic, Fullname=Liberation Sans Bold Italic, File=/usr/share/fonts/liberation/LiberationSans-BoldItalic.ttf
 1) Family=Liberation Mono, Style=Bold Italic, Fullname=Liberation Mono Bold Italic, File=/usr/share/fonts/liberation/LiberationMono-BoldItalic.ttf
 2) Family=Liberation Serif, Style=Italic, Fullname=Liberation Serif Italic, File=/usr/share/fonts/liberation/LiberationSerif-Italic.ttf
FC font monospace:regular:roman maps to Liberation Mono in file /usr/share/fonts/liberation/LiberationMono-Regular.ttf
 0) Family=Liberation Mono, Style=Regular, Fullname=Liberation Mono, File=/usr/share/fonts/liberation/LiberationMono-Regular.ttf
 1) Family=Liberation Sans, Style=Regular, Fullname=Liberation Sans, File=/usr/share/fonts/liberation/LiberationSans-Regular.ttf
 2) Family=Liberation Serif, Style=Regular, Fullname=Liberation Serif, File=/usr/share/fonts/liberation/LiberationSerif-Regular.ttf
FC font monospace:bold:roman maps to Liberation Mono Bold in file /usr/share/fonts/liberation/LiberationMono-Bold.ttf
 0) Family=Liberation Mono, Style=Bold, Fullname=Liberation Mono Bold, File=/usr/share/fonts/liberation/LiberationMono-Bold.ttf
 1) Family=Liberation Sans, Style=Bold, Fullname=Liberation Sans Bold, File=/usr/share/fonts/liberation/LiberationSans-Bold.ttf
 2) Family=Liberation Serif, Style=Regular, Fullname=Liberation Serif, File=/usr/share/fonts/liberation/LiberationSerif-Regular.ttf
FC font monospace:regular:italic maps to Liberation Mono Italic in file /usr/share/fonts/liberation/LiberationMono-Italic.ttf
 0) Family=Liberation Mono, Style=Italic, Fullname=Liberation Mono Italic, File=/usr/share/fonts/liberation/LiberationMono-Italic.ttf
 1) Family=Liberation Sans, Style=Italic, Fullname=Liberation Sans Italic, File=/usr/share/fonts/liberation/LiberationSans-Italic.ttf
 2) Family=Liberation Serif, Style=Italic, Fullname=Liberation Serif Italic, File=/usr/share/fonts/liberation/LiberationSerif-Italic.ttf
FC font monospace:bold:italic maps to Liberation Sans Bold Italic in file /usr/share/fonts/liberation/LiberationSans-BoldItalic.ttf
 0) Family=Liberation Sans, Style=Bold Italic, Fullname=Liberation Sans Bold Italic, File=/usr/share/fonts/liberation/LiberationSans-BoldItalic.ttf
 1) Family=Liberation Mono, Style=Bold Italic, Fullname=Liberation Mono Bold Italic, File=/usr/share/fonts/liberation/LiberationMono-BoldItalic.ttf
 2) Family=Liberation Serif, Style=Italic, Fullname=Liberation Serif Italic, File=/usr/share/fonts/liberation/LiberationSerif-Italic.ttf
FC name=sans style=0 uses Liberation Mono in file: /usr/share/fonts/liberation/LiberationMono-Regular.ttf

我发现使用-Dprism.useFontConfig = false会导致JavaFX默认内置于Lucida字体中,但是我需要在/ usr / share / fonts中使用Liberation文件

问题

  • 我应该如何解释pyramid.debugfonts输出?0、1、2行是什么意思?我在网上找不到任何文档。
  • 为什么JavaFX用等宽字体实现逻辑无字号?
  • 如何使JavaFX使用Liberation Sans而不是mono?理想情况下,无需修改JDK安装...
  • 这是JavaFX问题还是fontconfig问题?

更新

亚当

问题似乎出在/etc/fonts/conf.d/中的fontconfig规则中,而不是JavaFX中。我还没办法解决这个问题,但是使用fc-match会产生相同的结果

fc-match sans:regular:roman 
"LiberationMono-Regular.ttf": "Liberation Mono" "Regular"

我在另一个论坛上发现了类似的问题:字体问题,用于serif和sans-serif系列的等宽字体,但没有解决方案。

添加字体配置文件,例如/etc/fonts/conf.d/88-liberation-hack.conf将解决该问题

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>

<alias>
  <family>sans-serif</family>
  <prefer><family>Liberation Sans</family></prefer>
</alias>

<alias>
  <family>serif</family>
  <prefer><family>Liberation Serif</family></prefer>
</alias>


<alias>
  <family>monospace</family>
  <prefer><family>Liberation Mono</family></prefer>
</alias>

</fontconfig>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

列出所有fontconfig已知的等宽字体的命令

来自分类Dev

“字体家族:等宽,等宽”

来自分类Dev

如何设置Microsoft Word,以将“反引号”中封装的所有文本更改为等宽字体?

来自分类Dev

带有等宽字体列的html表

来自分类Dev

gnuplot:具有等宽字体的超文本?

来自分类Dev

如何使用UISLIDER控制iOS应用程序的所有UI控件的字体大小?

来自分类Dev

如何在WatchKit中使用等宽字体

来自分类Dev

始终对Chrome输入字段使用等宽字体

来自分类Dev

使用默认等宽字体在终端窗口中对齐Unicode文本

来自分类Dev

Java SWT-StyledText如何使用等宽字体显示文本

来自分类Dev

如何使用等宽字体计算每行的字符数

来自分类Dev

使用〜/ .fonts.conf更改等宽字体的粗细

来自分类Dev

如何有效地让“ ParentFont = False”子控件使用与父控件相同的字体名称?

来自分类Dev

为什么在要求纯等宽字体时Java使用斜字体?

来自分类Dev

VSCode 等宽字体不是等宽字体,如何解决?

来自分类Dev

最接近tahoma的等宽字体

来自分类Dev

iText,减少等宽字体的间距

来自分类Dev

GNOME Classic等宽字体是什么字体?

来自分类Dev

强制所有WPF绑定控件使用GetBindingExpression()。UpdateTarget()更新

来自分类Dev

使用Jquery在div中存在的所有控件的Onclick事件?

来自分类Dev

查找Photoshop文件中使用的所有字体

来自分类Dev

如何为所有使用 WSL 的用户安装字体?

来自分类Dev

Github风味Markdown中没有语法突出显示的等宽字体

来自分类Dev

终端中的Devanagari脚本是否有一种好的等宽字体?

来自分类Dev

开启cleartype时,是否存在具有粗体突出的等宽字体?

来自分类Dev

使用Linq遍历所有控件只会得到第一个控件

来自分类Dev

如何在Gnome终端或需要等宽字体的任何地方使用Fixedsys

来自分类Dev

等宽字体以使用空格对齐文本使它看起来很奇怪

来自分类Dev

使用CSS根据每个字符的宽度设置等宽字体大小

Related 相关文章

  1. 1

    列出所有fontconfig已知的等宽字体的命令

  2. 2

    “字体家族:等宽,等宽”

  3. 3

    如何设置Microsoft Word,以将“反引号”中封装的所有文本更改为等宽字体?

  4. 4

    带有等宽字体列的html表

  5. 5

    gnuplot:具有等宽字体的超文本?

  6. 6

    如何使用UISLIDER控制iOS应用程序的所有UI控件的字体大小?

  7. 7

    如何在WatchKit中使用等宽字体

  8. 8

    始终对Chrome输入字段使用等宽字体

  9. 9

    使用默认等宽字体在终端窗口中对齐Unicode文本

  10. 10

    Java SWT-StyledText如何使用等宽字体显示文本

  11. 11

    如何使用等宽字体计算每行的字符数

  12. 12

    使用〜/ .fonts.conf更改等宽字体的粗细

  13. 13

    如何有效地让“ ParentFont = False”子控件使用与父控件相同的字体名称?

  14. 14

    为什么在要求纯等宽字体时Java使用斜字体?

  15. 15

    VSCode 等宽字体不是等宽字体,如何解决?

  16. 16

    最接近tahoma的等宽字体

  17. 17

    iText,减少等宽字体的间距

  18. 18

    GNOME Classic等宽字体是什么字体?

  19. 19

    强制所有WPF绑定控件使用GetBindingExpression()。UpdateTarget()更新

  20. 20

    使用Jquery在div中存在的所有控件的Onclick事件?

  21. 21

    查找Photoshop文件中使用的所有字体

  22. 22

    如何为所有使用 WSL 的用户安装字体?

  23. 23

    Github风味Markdown中没有语法突出显示的等宽字体

  24. 24

    终端中的Devanagari脚本是否有一种好的等宽字体?

  25. 25

    开启cleartype时,是否存在具有粗体突出的等宽字体?

  26. 26

    使用Linq遍历所有控件只会得到第一个控件

  27. 27

    如何在Gnome终端或需要等宽字体的任何地方使用Fixedsys

  28. 28

    等宽字体以使用空格对齐文本使它看起来很奇怪

  29. 29

    使用CSS根据每个字符的宽度设置等宽字体大小

热门标签

归档