标签: fontconfig

Ubuntu 中的字体抗锯齿效果不佳

我正在从 Fedora 8 切换到 Ubuntu 9.04,但我似乎无法让它获得良好的字体抗锯齿功能。Ubuntu 的 fontconfig 似乎试图将字符保持在整数像素宽度中。当 1 个像素太薄而 2 个像素太厚时,这会使文本更难阅读。

检查下面的图像。在 Fedora 中,当启用 fontconfig 抗锯齿时,字体的粗细与字体大小成正比。下面,8、9 和 10pt 尺寸的厚度不同。另一方面,在 Ubuntu 中,即使启用了抗锯齿功能,所有 8、9 和 10pt 大小也有 1 个像素厚度。这使得阅读大量文本变得困难。

比较 Fedora 8 和 Ubuntu 9.04 字体抗锯齿。

我正在使用相同的主目录,并且我已经检查过两个系统中的 X 资源是否相同:

~% xrdb -query | grep Xft
Xft.antialias:  1
Xft.dpi:        96
Xft.hinting:    1
Xft.hintstyle:  hintfull
Xft.rgba:       none
Run Code Online (Sandbox Code Playgroud)

GNOME 设置:

~% gconftool-2 -a /desktop/gnome/font_rendering
 antialiasing = grayscale
 hinting = full
 dpi = 96
 rgba_order = rgb
Run Code Online (Sandbox Code Playgroud)

所以,问题是:我应该在新盒子 (Ubuntu) 中更改什么才能像在旧盒子 (Fedora) 中一样获得抗锯齿功能?

linux fonts fontconfig anti-aliasing ubuntu

39
推荐指数
2
解决办法
3万
查看次数

使用 ~/.fonts.conf 替换字体

我正在尝试使用 ~/.fonts.conf 用 Droid Sans 替换 Helvetica,这是文件的内容:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <match target="pattern">
    <test qual="any" name="family"><string>Helvetica</string></test>
    <edit name="family" mode="assign"><string>Droid Sans</string></edit>
  </match>
</fontconfig>
Run Code Online (Sandbox Code Playgroud)

但无论如何,似乎什么都没有发生。我尝试运行 fc-cache,我已经签入/etc/fonts/conf.d并发现50-user.conf它似乎明确调用了用户特定的配置。

我错过了什么?

谢谢

编辑:经过调查,我发现/etc/fonts/conf.d覆盖用户配置中的其他规则,因此链接user.conf到00-user.conf帮助。仍然只是部分成功,因为我可以指定应该替换哪些字体,但是我选择的替换被忽略:换句话说,我可以使Helvetica无效并且系统回退到下一个字体(即在浏览器中,它采用样式表中指定的下一个字体,如果不存在则显示标准的无衬线字体)。

linux fonts debian fontconfig

20
推荐指数
1
解决办法
1万
查看次数

OSX 10.9.3 上的电力线修补字体 - iTerm2 和 Chrome

我正在寻找一种在 iTerm2 和 Chrome 中在 OSX 上渲染电力线字符的有效解决方案。有很多文档围绕着我尝试使用了几种方法,但到目前为止似乎没有一个可以正常工作(尽管带有 fontbook 的预修补字体部分有效)。详情如下。

  1. 是否有一种工作方法可以让电力线字形在 OSX 10.9.3 上的 iTerm2 中正确呈现?
  2. 电力线字形是否应该在网页中正确呈现?知道为什么它们不是,我该如何解决?

这些字符的渲染如何工作(在系统/应用程序级别)?它是否因应用程序而异?在 chrome 中,如果当前字体不包含字形的绑定,chrome 是否会尝试在系统上存在的另一种字体中查找绑定并使用它们?有什么方法可以在系统级别为这个 unicode 字符提供绑定,以便它们使用该字体进行渲染,而不管使用的是哪种字体?

Unicode 专用区域字符

如果我了解电力线兼容修补字体的工作方式,它们会将可缩放图形绑定到 unicode 专用区域中的特定值:

U+E0A0  ?   Version control branch
U+E0A1  ?   LN (line) symbol
U+E0A2  ?   Closed padlock
U+E0B0  ?   Rightwards black arrowhead
U+E0B1  ?   Rightwards arrowhead
U+E0B2  ?   Leftwards black arrowhead
U+E0B3  ?   Leftwards arrowhead
Run Code Online (Sandbox Code Playgroud)

为了在终端中测试字形,我读到这应该有效:

echo -e "\ue0a0\ue0a1\ue0a2\ue0b0\ue0b1\ue0b2\ue0b3"
Run Code Online (Sandbox Code Playgroud)

但是,即使安装了电源线修补字体并且 iTerm2 配置为使用其中一种字体,它也不适用于我(OSX 10.9.3、iTerm2、zsh)。

我尝试了几种安装修补字体的方法:

FontBook 和预修补字体

我从Localtog/powerline-fonts下载字体并使用 FontBook 安装它们。在相同的页面上,一些字形呈现,而另一些则不呈现。在其他页面上,没有任何字形呈现:

不可知论者主题
(来源: …

google-chrome fontconfig powerline-networking iterm2

20
推荐指数
2
解决办法
2万
查看次数

如何调整Thunderbird中消息列表和文件夹列表的字体大小?

在 Windows 10 中,我使用 Thunderbird 78.11.0(32 位)作为电子邮件客户端。

今天,消息列表和文件夹列表的字体突然变得很小。(其他应用程序没有变化)。

如何调整 Thunderbird 中消息列表和文件夹列表的字体大小?

thunderbird fontconfig

17
推荐指数
3
解决办法
2万
查看次数

奇怪的 Windows 字体渲染问题(带视频演示)

观看视频演示:vimeo.com/155636855

我已经解决这个问题太久了——现在我希望得到一些外部帮助。

* 这与 VM 技术无关——请参阅帖子末尾的补充说明 *

附加的图像包含写字板文件的并排图像,其中文本代表字母表中的所有字母,包括小写和大写。左侧的图像取自在 Windows 10 主机(“主机”操作系统)上运行的 Windows 10 虚拟机(“来宾”操作系统);右边的图像是从 Windows 主机上截取的:

在此处输入图片说明

放大图像并仔细查看每个字母边缘的差异:左侧比右侧平滑得多 - 如果您想快速得出结论,CLEARTYPE 不是问题(请参阅下面的要点),至少不是从“开”与“关”的角度来看(换句话说,可能涉及与 ClearType 相关的注册表设置,但与 ClearType 相关的 Windows UI 上没有任何内容导致这种情况,因为两台机器都针对 ClearType 和ClearType 在主机和来宾计算机上均启用)。

事实:


两个操作系统都使用相同的 Myriad 字体 TrueType (TTF) 字体文件

两个操作系统都设置为相同的屏幕分辨率。

我以为这是 Windows 视频驱动程序问题,但我有最新的 nVidia 驱动程序,而且我在主机和来宾上都运行带有 DirectX 12 的相对高端的 GeForce GTX 560 卡。

两个写字板文件都使用相同的字体、字体大小、字体样式和缩放比例 (100%)。

两个 Windows 10 操作系统都使用 Windows 更新进行了全面更新。

ClearType 在 Windows 主机和虚拟机中均处于活动状态(开启)。我尝试了 ClearType 的各种组合(在主机上关闭它并在来宾上关闭它,以及所有其他组合)并且与来宾相比,主机上显示的粗糙边缘工件没有变化。

我不知道来宾和主机之间有任何 DPI 差异。其他字体,例如 Windows 包含的 Arial 字体,仅在主机上显示类似的粗糙问题——我只是选择了 Myriad Pro 来说明问题。

两种字体的颜色均为 100% BLACK (#000)。

此问题出现在所有可以呈现 TrueType …

dpi fontconfig anti-aliasing cleartype windows-10

9
推荐指数
1
解决办法
1775
查看次数

Rxvt Unicode 不显示 U+E0B0,即使我的字体包含它

Unicode / 字体配置令人头疼。我已经安装了tmux-powerline并根据建议修补了我的 Inconsolata 字体。这里的目标是在状态栏中显示可爱的楔形箭头小东西,比如U+E0B0。

对于我的生活,我无法让 URxvt 显示它们。只显示一个盒子。

修补后的字体存储在~/.local/share/fonts. 我确信我的字体缓存是最新的。fc-cache -fv报告它成功缓存了该文件夹并fc-list包含一行Inconsolata for Powerline.

URxvt 正在使用正确的字体。URxvt*font: xft:Inconsolata for Powerline是URxvt*font我的.Xdefaults. 我在 URxvt 手册页中没有看到任何其他看起来相关的设置,尽管那里有很多我不明白的地方。

修补后的字体肯定包含这些代码点的字形。sfddiff在原始和修补字体上报告它们包含在修补中但从原始字体中丢失。

根据 Arch Wiki,Urxvt 会忽略任何fonts.conf解决方案等。我还可以检查什么来定位问题?你在谷歌上找到的最好的字体/unicode教程是什么,因为我完全被卡住了。

fonts fontconfig urxvt

7
推荐指数
1
解决办法
2836
查看次数

Windows 上的 mplayer fontconfig 烦恼

每次我重新启动计算机时,我在 Windows 上使用的mplayer 构建都会重新加载字体缓存。我发现原因是我在重新启动时清除了临时目录并将字体缓存保留在那里。

我在想:如何让mplayer你不总是刷新字体缓存?

(这需要很多时间,当发生这种情况时,我通常会“措手不及”。通常只能使用 1 或 2 种字体,我经常将其视为“加害于侮辱”。)

我之前尝试过的其他构建用于重新加载每个新工作目录中的完整字体缓存,因为它们将缓存放置在该本地目录中。由于 Windows 二进制文件的最新版本的来源多年来以某种方式变化,因此很高兴知道 mplayer 实际尝试做什么。

  1. 如何让 fontconfig 在别处搜索字体(缓存)?
  2. mplayer 究竟是如何搜索字体的?(它总是依赖 fonts.conf 吗?)
  3. 是否可以从命令行禁用 fontconfig?mplayer 会做什么呢?
  4. 即使字体确实发生变化,我也可以禁用字体缓存的更新吗?(即“永远只使用已知字体”)

注意:在过去,mplayer 曾经有一个单一的、内置的、默认字体。发生了什么?

我发现一个选项<cachedir>中fonts/fonts.conf,相对于mplayer.exe,我可以用它来解决1。(我把它最新的手动当一个新的版本到来,我经常忘了这样做。和剩余的问题仍仍然存在。另外,它在哪里搜索 fonts/fonts.conf 文件?)

windows fontconfig mplayer

7
推荐指数
1
解决办法
3778
查看次数

为什么 Firefox 不使用 Consolas 字体而 fc-match consolas 显示它?

访问使用 Consolas 等宽字体(例如 [1],[3] 中的最小示例)的页面会呈现 Nimbus Mono。

我根据 arch wiki[1] 安装了 Microsoft 字体,使用 ttf-ms-win8 包和同一台机器上安装的 Windows 8.1 中的字体文件。Chromium 正确使用了 Consolas,而 Firefox 没有改变。

使用 fc-match,我得到以下结果:

fc-match consolas
  consola.ttf: "Consolas" "Regular"
fc-match Courier
  n022003l.pfb: "Nimbus Mono" "Regular"
fc-match 'Consolas,"Liberation Mono",Menlo,Courier,monospace'
  consola.ttf: "Consolas" "Regular"
Run Code Online (Sandbox Code Playgroud)

第三个示例是来自站点 css 的 font-family 行。我认为 Firefox 不只是将它传递给 fc-match,但由于没有阅读代码,我没有想法。

问题是:为什么 Firefox 在指定时不使用 consolas 字体?


软件版本:

  • 铬 48.0.2564.103
  • 火狐 44.0
  • 字体配置 2.11.1-2
  • 拱形测试

笔记

  • [4] 是一个类似的问题,但 consolas 是一种 truetype 字体,因此引用的 firefox 不支持位图字体的事实与此无关。

参考

  1. https://github.com/necolas/idiomatic-css
  2. https://wiki.archlinux.org/index.php/Microsoft_fonts
  3. http://absolute.fail/consolas_problem.html
  4. Firefox 30 无法识别字体

firefox fonts fontconfig arch-linux

6
推荐指数
1
解决办法
669
查看次数

运行 Octave 时 OSX 上的 Fontconfig 警告

运行某些八度音程文件时,我收到以下警告/错误。我已经homebrew按照此处的指南安装了八度音程。似乎我必须从配置中删除该行,但找不到它的存储位置。

Fontconfig warning: line 146: blank doesn't take any effect anymore. please remove it from your fonts.conf
Run Code Online (Sandbox Code Playgroud)

fontconfig

6
推荐指数
2
解决办法
3080
查看次数

如何检查字体文件中的所有可用字符?

我有一些支持 UTF-8 字符的 truetype 字体。我可以使用“fc-list”来查找特定字体。如何检查某些字体中的所有可用字符?比如“AR PL New Sung ExtB”支持多少个字符。

linux fontconfig truetype-fonts

5
推荐指数
1
解决办法
4771
查看次数

在 konsole 中停止连字

升级到 Fedora 29 后,konsole 开始对我的等宽字体(当前为 Inconsolata)使用连字,例如当它决定组合“fi”时,这非常糟糕。我对 fontconfig 进行了如下调整,但无济于事:

$ cat ~/.config/fontconfig/fonts.conf
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <description>Disable ligatures for monospaced fonts to avoid ff, fi, ffi, etc. becoming only one character wide</description>
  <match target="font">
    <test name="family" compare="contains" ignore-blanks="true">
      <string>Inconsolata</string>
    </test>
    <edit name="fontfeatures" mode="append">
      <string>liga off</string>
      <string>dlig off</string>
    </edit>
  </match>
</fontconfig>
Run Code Online (Sandbox Code Playgroud)

我可以通过切换字体来解决这个问题,但这种行为毫无帮助。如何正确防止 konsole 对我的字体使用任何类型的连字?

fedora fonts kde fontconfig konsole

5
推荐指数
0
解决办法
1381
查看次数

带有“@”符号的字体名称;它们有何不同?

在任何应用程序中(在我的 Win 7 电脑上),当我尝试选择字体时,会弹出通用对话框。在那里,我看到一些字体名称以 @ 开头。而大多数其他人则没有。

为什么使用@ 符号?这些字体有区别吗?如何?

字体对话框

fonts windows-7 fontconfig

3
推荐指数
1
解决办法
1547
查看次数

如何让cygwin fontconfig包继承Windows字体?

我正在使用 ffmpeg ( 1 , 2 )的 cygwin64 版本将字幕刻录到视频文件中,如下所示:

$ ffmpeg -i file.mp4 -vf subtitles=file.srt file.ts
ffmpeg version 1.2.3 Copyright (c) 2000-2013 the FFmpeg developers
  built on Sep 18 2013 01:11:22 with gcc 4.8.1 (GCC)
  configuration: --prefix=/usr --libdir=/usr/lib --shlibdir=/usr/bin --incdir=/usr/include --mandir=/usr/share/man --disable-static --enable-shared --enable-gpl --enable-version3 --enable-postproc --enable-swscale --enable-avfilter --enable-pthreads --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-libass --enable-libbluray --enable-libcdio --enable-libcelt --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopencv --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libtwolame --disable-libutvideo --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis …
Run Code Online (Sandbox Code Playgroud)

video fonts cygwin fontconfig ffmpeg

1
推荐指数
1
解决办法
1694
查看次数