Libre Office 字体间距(字距)问题

在每个操作系统上,无论我安装LibreOffice时,它似乎总是存在字符间距不正确的问题。
以下是一些例子: Ugly kerning 第一个单词是同一文档和同一字体中的完全相同的单词,然而,它看起来不同。(围绕字母e和n)
第二个单词在字母p和a之间有一个奇怪的间隙。
在最后一个单词中,A和d几乎重叠。
所有这些都是普通字体。没有什么花哨的。有办法修复这个问题吗?
附注:已经启用了“格式>字符>位置>对偶字距”。

我也注意到了。 - You'reAGitForNotUsingGit
直到你提出这个问题,我才注意到这一点。我发现如果你将单词的首字母大写,间隔也会发生变化。希望这个问题能得到足够的关注,所以我点了赞。+1 - Terrance
我不认为你会得到答案,因为你在这里提供的详情非常少。是什么字体?是哪个版本的LibreOffice?是哪个操作系统?所有这些可能都会有所贡献,但我首先从字体开始。例如,在Ubuntu 16.04中的LO 5.3.0.3中,我没有看到任何类似于这样的情况使用Liberation Sans字体。 - Moilleadóir
1请注意,当将文档导出为PDF或打印文档以“发布”时,似乎不会出现此问题。 - Bruni
在Libreoffice 7.0中有同样的问题。 - momo2047
6个回答

字距问题很可能是由于LibreOffice 5.3引入的问题导致的。

虽然LO 5.3确实{{link2:引入了一个针对复杂字形定位(GPOS)和连字替换等功能的特性,但是这个新的字体渲染引擎(或者它所附属的技术)在传统字距方面也有些问题。

因为这个问题是在5.3发布后不久提出的,所以新的引擎似乎是最有可能的嫌疑人。(尽管正如上面的评论者指出的,我们不知道具体的LO版本。)

因此,旧的解决方法是回退到LO 5.2.x。然而,最近发布了LO 7.4,终于解决了一些这些字距问题(6年后)。(嗯,7.4目前看起来还不错,但是我对它能否保持修复状态或对所有情况都有效并没有期望,毕竟它是自由软件。)

如果您由于硬件、操作系统或应用程序设置(可能关闭了字距调整、字体平滑或其他设置)而出现字距问题,这些问题通常与反走样和子像素定位功能(如ClearType)等相关。如果打印或缩放后情况变好,那很可能不是LO的问题。

你是否有关于我应该检查什么其他问题的信息,如果字距问题在缩小视图时明显比放大视图更严重?我在Gnome Wayland上遇到了这个问题,但是当放大时,事物似乎更易读,尽管不完美。(但是将其导出为PDF并在PDF阅读器中打开可以使字体大小较小的内容变得可读,所以我不确定) - Ekleog
@Ekleog - 抱歉,但是我在Linux方面的了解远不及Windows。快速的网络搜索显示了一些关于字体配置提示设置、Infinality和Gnome Tweak Tool的内容。我猜测Infinality可能不适用于Wayland,但是调整工具可能仍然适用:https://www.maketecheasier.com/improve-font-rendering-linux/ 。PDF阅读器通常有自己的渲染引擎,所以在那里看起来更好是很正常的(而且,是的,如果LO有问题,PDF也会显示不好)。 - juanitogan

你的问题可能可以通过将这些设置添加到~/.config/fontconfig/fonts.conf来解决:

<match target="font">
 <edit name="rgba" mode="assign">
  <const>rgb</const>
 </edit>
</match>
<match target="font">
 <edit name="hinting" mode="assign">
  <bool>true</bool>
 </edit>
</match>
<match target="font">
 <edit name="hintstyle" mode="assign">
  <const>hintslight</const>
 </edit>
</match>
<match target="font">
 <edit name="antialias" mode="assign">
  <bool>true</bool>
 </edit>
</match>

这段代码的作用如下:
  • 启用亚像素抗锯齿,可以改善许多字体的外观(这是Windows上ClearType使用的相同系统)
  • 将字体提示设置为轻微(通常是全局默认设置,但LibreOffice似乎无法识别)
  • 打开普通抗锯齿(与亚像素抗锯齿一起使用)
字体提示会使字母与您的显示器像素网格对齐,可能会导致字距问题。通过将其设置为轻微,可以保留字符间的空间。
这些问题通常只会出现在Windows字体或设计为度量等效的字体(例如默认的LibreOffice字体)中,因为它们并没有考虑对齐到像素网格的问题。

不适用于Libreoffice 7.0。 - momo2047

也许尝试在工具>属性菜单下禁用"硬件加速"选项,然后进入LibreOffice>视图
这个方法曾经帮助我解决过类似的字母显示问题。

奇怪的字母间距是由于LibreOffice 5.3中已经解决的错误引起的。
在撰写本文时,版本5.3.0 可以通过PPA获取。在终端中输入以下内容以确保安装了最新版本:
sudo add-apt-repository ppa:libreoffice/ppa
sudo apt-get update
sudo apt-get install libreoffice

3我使用的是Libre Office 5.3.0.3版本,但这个问题仍然存在。尝试慢慢调整应用程序窗口的大小,你会发现随着调整,字母周围的间距也会改变。 - Rtsne42
1@Danchm01 尝试关闭对字距的调整。GPOS字距是新的字距算法,启用对字距可能会强制使用旧的算法。 - Tyson
1刚刚从Writer 5.1升级到了5.3版本。字距调整变得更糟糕了。 - mpen

在我的情况下,整个文本都有轻微重叠的字符,之前的解决方案都对我无效。 唯一的解决办法是将字体比例因子设置为100以外的值,例如99%或101%,在格式->字符->缩放宽度中。

去工具 - 选项 - (选项将弹出) 选择Libreoffice - 视图。 然后勾选硬件加速,抗锯齿,显示字体预览和屏幕字体抗锯齿的框。 如果之后有任何内存问题,请取消勾选显示字体预览。