在 Linux (Ubuntu) 环境下使用 WPS Office,最常见的问题莫过于“缺失系统字体”提示以及“中文字体加粗后重叠乱码”。本文将基于Ubuntu24.04总结一套完整的修复方案(其他发行版按理也可以使用)。
一、 解决公式符号字体缺失
现象: 打开 WPS 时提示缺失 Symbol、Wingdings、MT Extra 等字体,导致数学公式无法正常显示。
解决方法:
-
安装微软核心字体库:
sudo apt update sudo apt install ttf-mscorefonts-installer -
手动补充 WPS 专用符号字体:
将 C:\Windows\Fonts 下的 symbol.ttf、wingding.ttf 等文件拷贝至 /usr/share/fonts/wps-office 目录下,并确保文件名小写。
-
手动补充微软中文字体字体:
将 C:\Windows\Fonts 下的 sim开头的ttf、ttc文件拷贝至 /usr/share/fonts/wps-office 目录下,并确保文件名小写。
-
刷新系统缓存
sudo mkfontscale
sudo mkfontdir
sudo fc-cache -fvs
- 查看wps是否正确加载中文字体
此时wps中应该就会有 simsun(宋体)、simhei(黑体)等中文字体了
但是如何将其名字替换为“宋体”而非“simsun”,读者没有找到好方法
二、 加粗问题:加粗字体重叠与“一坨”乱码
核心原因: 这是一个由 freetype 库版本引发的已知 Bug。当系统 libfreetype 版本高于 2.13.1 时,WPS 无法正确渲染加粗字体。
解决方案:
- 下载旧版库文件: 寻找
libfreetype.so.6.18.3(版本 2.12.x 或 2.13.0)。
然后打开,make && sudo make install
install 时默认会安装到 /usr/local 目录下
我们需要将其转移到其他位置,否则后续系统会默认使用这个旧版本freetype库
sudo mkdir -p /opt/wps-freetype
sudo mv /usr/local/lib/libfreetype* /opt/wps-freetype/
- 修改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同样模仿着更改
- 刷新wps字体缓存
关闭所有 WPS 进程,然后在终端输入:
rm -rf ~/.config/Kingsoft/Office/fontcache
或者重启系统,此时wps粗体显示便可以恢复正常了
四、 防止配置失效:锁定软件版本
由于系统更新或 Software 商店自动升级会覆盖手动修复的 .so 文件,建议锁定 WPS 版本。
执行锁定命令:
- APT/DEB 版本:
sudo apt-mark hold wps-office - Snap 版本:
sudo snap refresh --hold wps-office
参考帖子
原理小贴士: 为什么安装了字体还是会乱码?因为 WPS 内部链接的是系统级的
libfreetype库。从 2.13.1 版本开始,该库调整了对 OpenType 字体字重(Weight)的计算方式,导致 WPS 这种较老架构的应用无法正确匹配 Bold 属性,从而引发了渲染层面的重叠。我们通过LD_LIBRARY_PATH或手动建立软连接的方式,让 WPS “吃”掉旧版库文件,从而恢复正常的渲染逻辑。