填坑指南:WPS Linux 版字体加粗变“一坨”?教你通过 libfreetype 完美降级修复

95 阅读3分钟

在 Linux (Ubuntu) 环境下使用 WPS Office,最常见的问题莫过于“缺失系统字体”提示以及“中文字体加粗后重叠乱码”。本文将基于Ubuntu24.04总结一套完整的修复方案(其他发行版按理也可以使用)。

一、 解决公式符号字体缺失

现象: 打开 WPS 时提示缺失 SymbolWingdingsMT Extra 等字体,导致数学公式无法正常显示。

解决方法:

  1. 安装微软核心字体库:

    sudo apt update
    sudo apt install ttf-mscorefonts-installer
    
  2. 手动补充 WPS 专用符号字体:

    将 C:\Windows\Fonts 下的 symbol.ttf、wingding.ttf 等文件拷贝至 /usr/share/fonts/wps-office 目录下,并确保文件名小写。

  3. 手动补充微软中文字体字体:

    将 C:\Windows\Fonts 下的 sim开头的ttf、ttc文件拷贝至 /usr/share/fonts/wps-office 目录下,并确保文件名小写。

  4. 刷新系统缓存

sudo mkfontscale
sudo mkfontdir
sudo fc-cache -fvs
  1. 查看wps是否正确加载中文字体

此时wps中应该就会有 simsun(宋体)、simhei(黑体)等中文字体了

但是如何将其名字替换为“宋体”而非“simsun”,读者没有找到好方法


二、 加粗问题:加粗字体重叠与“一坨”乱码

核心原因: 这是一个由 freetype 库版本引发的已知 Bug。当系统 libfreetype 版本高于 2.13.1 时,WPS 无法正确渲染加粗字体。

image.png

解决方案:

  1. 下载旧版库文件: 寻找 libfreetype.so.6.18.3(版本 2.12.x 或 2.13.0)。

freetype官方下载网址

image.png

然后打开,make && sudo make install

install 时默认会安装到 /usr/local 目录下

我们需要将其转移到其他位置,否则后续系统会默认使用这个旧版本freetype库

sudo mkdir -p /opt/wps-freetype
sudo mv /usr/local/lib/libfreetype* /opt/wps-freetype/
  1. 修改wps系列的 .desktop

修改 /usr/share/applications/wps-office-wps.desktop 中的Exec 行, 更改为 Exec=env LD_LIBRARY_PATH=/opt/wps-freetype /usr/bin/wps %U 即可(重要的是LD_LIBRARY_PATH=/opt/wps-freetype

其余wps系列的.desktop同样模仿着更改

  1. 刷新wps字体缓存

关闭所有 WPS 进程,然后在终端输入:

rm -rf ~/.config/Kingsoft/Office/fontcache

或者重启系统,此时wps粗体显示便可以恢复正常了

image.png


四、 防止配置失效:锁定软件版本

由于系统更新或 Software 商店自动升级会覆盖手动修复的 .so 文件,建议锁定 WPS 版本。

执行锁定命令:

  • APT/DEB 版本: sudo apt-mark hold wps-office
  • Snap 版本: sudo snap refresh --hold wps-office

参考帖子

WPS for Linux字体加粗问题

原理小贴士: 为什么安装了字体还是会乱码?因为 WPS 内部链接的是系统级的 libfreetype 库。从 2.13.1 版本开始,该库调整了对 OpenType 字体字重(Weight)的计算方式,导致 WPS 这种较老架构的应用无法正确匹配 Bold 属性,从而引发了渲染层面的重叠。我们通过 LD_LIBRARY_PATH 或手动建立软连接的方式,让 WPS “吃”掉旧版库文件,从而恢复正常的渲染逻辑。