LibreOffice
引自 LibreOffice 官网:
LibreOffice 是一款功能强大且免费的开源办公软件,默认使用开放文档格式 (OpenDocument Format , ODF), 并支持 Microsoft Office (365) 的专有格式。它包含了 Writer, Calc, Impress, Draw, Base 以及 Math 等组件,可用于处理文本文档、电子表格、演示文稿、绘图以及公式编辑。[1]
安装
- libreoffice-still包 是一个维护分支。 安装稳定版本的简体中文版本:
# pacman -S libreoffice-still libreoffice-still-zh-cn
- libreoffice-fresh包 是一个功能分支,包含新的程序增强功能,适合尝鲜的用户或高级用户。 安装最新版本的简体中文版本:
# pacman -S libreoffice-fresh libreoffice-fresh-zh-cn
LibreOffice 被默认安装有英文用户界面,如果要使用你需要的语言,需要安装对应的语言包。比如简体中文的语言包是 libreoffice-fresh-zh-cn包,繁体中文的语言包是 libreoffice-fresh-zh-tw包。
在启动或重启 LibreOffice 后,用户界面的语言应当自动与系统语言相同;如果不是这样,那有两种可能,要么装错了语言包,要么是手动设置的问题,参见 help.libreoffice.org 来了解更多信息。
- 在过去,必须安装至少一种语言包;而现在,会检测系统的默认设置,并将其作为区域设置使用。
- 注意英式英文语言包(libreoffice-fresh-en-gb包)不要误装为乌克兰语(libreoffice-fresh-uk包)或布列塔尼语(libreoffice-fresh-br包)。
- 对于 SDK,安装 libreoffice-fresh-sdk包。
请查看一下 pacman 显示的可选依赖。如果在使用 LibreOffice Base 时嵌入了 HSQLDB,你必须安装 Java 运行时环境。你可能需要 hsqldb2-javaAUR 来启用 LibreOffice Base 中的 一些模块。
主题
LibreOffice 包括 GTK 和 Qt 主题集合支持。参见文章统一 Qt 和 GTK 应用程序的外观。
LibreOffice 会基于您的桌面环境尝试自动检测最合适的 VCL 接口。要强制使用指定 VCL 接口,例如对于 gtk4,设置环境变量 SAL_USE_VCLPLUGIN=gtk4。请在/etc/profile.d/libreoffice-fresh.sh 或 /etc/profile.d/libreoffice-still.sh 中查看更多用户界面选项, 所有变量已被列出,可通过取消注释来启用。
登出(log out)并重新登录后这些更改将会生效。
qt6,快速滚动页面时可能会出现性能下降的情况。通过 export SAL_USE_VCLPLUGIN=gtk3 设置 gtk3 的环境变量,似乎就能让系统更加稳定。 管理扩展
有下面的插件可用:
- libreoffice-extension-texmaths包,它可以创建 LaTeX 数学公式,并作为 PNG 或 SVG 图像插入到 Writer, Impress 和 Draw 中。[2]
- libreoffice-extension-writer2latex包,它可以将 Writer 文档转换为 LaTeX 文件。[3]
要获取更多插件, 可以查看 AUR、内置的 LibreOffice 扩展插件管理器或访问 libreplanet.
字体
文档基金会 wiki 提到在 Windows 和 macOS 上的 LibreOffice 默认打包的各种字体,而在 Arch 上,安装以下包可获得这些字体:
- ttf-caladea包
- ttf-carlito包
- ttf-dejavu包
- ttf-gentium-basicAUR
- ttf-liberation包
- ttf-linux-libertine-g包
- noto-fonts包
- adobe-source-code-pro-fonts包
- adobe-source-sans-fonts包
- adobe-source-serif-fonts包
参见字体#字体包.
语言辅助工具
拼写检查
为了开启拼写检查,首先你需要安装
- hunspell 引擎
- 对应语言的 hunspell 词典,比如说英语的 hunspell-en_us包。
其次,在 LibreOffice 中勾选 工具 > 选项 > 语言和区域 > 写作辅助 > Hunspell 拼写检查 复选框,重启 LibreOffice 生效。
- 芬兰语
与其他语言不同,芬兰语的拼写检查和语法检查基于 Voikko。对于 LibreOffice,应安装 voikko-libreofficeAUR。
- 希腊语
项目 Orthos 以 Libreoffice 扩展的形式提供了更完整的希腊语拼写检查。软件包 libreoffice-extension-orthos-greek-dictionaryAUR 提供了纯希腊语拼写词典,而 libreoffice-extension-orthos-greek-english-dictionaryAUR 则提供了希腊语和美式英语词典。
双语言支持
要启用双语言支持,勾选工具 > 选项 > 语言和区域 > 通用 > 复杂文本排版复选框,并选择合适的语言。可以通过 “右 Ctrl + 右 Shift ”和 “左 Ctrl + 左 Shift ”进行强制语言对齐。有一个已知问题,会在段落样式改变时改变文本方向。
断词换行规则
为了开启换行规则,你需要安装 hyphen包 和与语言对应 hyphen 规则(比如英语的 hyphen-en包,德语的 hyphen-de包 等等)。
词库
对于词库选项, 你需要 libmythes包 和一个 mythes 语言词库 (比如英语的 mythes-en包 , 德语的 mythes-de包 等等))。
- 希腊语
对于希腊语,您可以尝试使用 libreoffice-extension-orthos-greek-thesaurusAUR 替代 mythes-elAUR ,前者包含更多单词。
语法检查
语法检查有多种工具可供选择。最常用的是 languagetool包。使用方法会因 LibreOffice 版本的不同而不同。
自版本 7.4 以后,LibreOffice 开始本地支持 LanguageTool,无需安装扩展:
- 点击工具 > 选项... > 语言和区域 > LanguageTool 服务器。
- 勾选启用LanguageTool 复选框。
- 使用的 URL 取决于您是拥有远程账号(免费或高级),还是使用本地服务器:
- 如果您使用远程免费账号,请使用
https://api.languagetool.org/v2。其余两个文本框留空。 - 如果您使用远程高级账号,请使用
https://api.languagetoolplus.com/v2作为 “基本 URL”,填写您的电子邮件地址,并输入 API 密钥。 - 如果已安装 本地 LanguageTool 服务器,请使用
http://localhost:8081/v2作为 “基本 URL”。用户名 “和 ”API 密钥 "留空。
- 如果您使用远程免费账号,请使用
- 点击确定,并打开一个未打开文档。
- 勾选复选框工具 > 自动拼写检查。
WritingTool 提供了拼写和语法上的写作帮助(由 LanguageTool 驱动)、
离线帮助
软件包 libreoffice-still包 和 libreoffice-fresh包 提供 en-US 的离线帮助文件。不同语言的离线帮助文件由相应的 libreoffice 语言包提供(例如,libreoffice-fresh-zh-cn包 提供简体中文的帮助文件)。
提示和技巧
更改工具栏图标和图标大小以适应高分辨率屏幕
高分辨率情况下,工具栏的图标会出现模糊和说明文字过小的情况,在默认暗色图标下尤为明显。
解决方案:在工具>选项>外观 中,更改图标,并且把 大小 选项从 自动 调整为 大 或者 特大 。
加速启动
-
关闭启动 LOGO: 如果你希望开启 libreoffice 时启动 logo 不再出现, 可以打开
/etc/libreoffice/sofficerc, 找到Logo=那一行并且设置Logo=0。或者使用--nologoCLI 选项。
- 禁用 Java 运行时: 如果你不使用依赖 Java 的功能,可以考虑禁用 Java 运行时。选择工具 > 选项 > LibreOffice > 高级并取消勾选使用 Java 运行时环境。
- 关闭自动拼写检查: 在工具 > 选项 > 语言和区域 > 写作辅助并取消勾选输入时检查拼写和输入时检查语法。
宏的安装
如果打算使用宏,你必须启用 Java 运行时 。
对于 Arch Linux 而言,LibreOffice 宏的默认路径与大多数 Linux 发行版不同,该路径位于~/.config/libreoffice/4/user/Scripts/
使用 Base 作为数据库前端
Base 可以作为 PostgreSQL 之类的数据库前端。即使它不能编辑表,但能很好的查看表的属性和字段,还可以隐藏属性,以便更好地概览相关数据。它还可以过滤数据,选择多个字段进行删除,并轻松编辑每个属性值。
它还可以帮助用户通过图形界面构造 SQL 查询。
使用 LibreOffice 或 OpenOffice 进行自动文档转换
使用 LibreOffice 的 --headless 命令行选项可以立即完成文档转换。例如,将当前目录所有的 .odt 文档转换为 .pdf 文件,你可以输入:
$ libreoffice --headless --convert-to pdf ./*.odt
你也可以
$ libreoffice --cat ./*.odt
但这两者都不能打开受密码保护的文档。在使用旧的窗口管理器时,也需要进行相应的调整。[4]
另一种不依赖 OpenOffice 的命令行工具是 unoconvert,而它需要搭配 unoserver 使用(可从 python-unoserverAUR 获得)。unoconvert 是一个使用 LibreOffice 进行自动转换和样式工具,它依靠 unoserver 来与 LibreOffice 进行连接。这个包另外也包含 unocompare 和 unoping 这两个工具,截至 LibreOffice 26(大约是在 2026 年 2 月),这些工具取代了先前的 unoconv包 命令[5]。unoconv 和 unoconvert 不同之处有:输出显示的区别[6]、unoconv 会依赖 OpenOffice 而 unoconvert 不会,更多细节参见与 unoconv 的比较。上述工具的使用都不需要图形界面,并且它们可以打开受密码保护的文档。
提示音
某些用户操作,例如文档未保存时关闭 LibreOffice 会弹出“是否保存文档?”的提示窗口并播放提示音。可以通过更改 GTK 配置选项gtk-enable-event-sounds来启用或禁用提示音。参见 GTK#示例。
疑难解答
通常情况用 LibreOffice 的安全模式追踪问题:
$ libreoffice --safe-mode
字体替换
如果文档中存在系统缺失的字体,LibreOffice 会使用另一种的字体来渲染文档,这被称为“字体替换”。
LibreOffice 使用 fontconfig 来解析字体。
为了找出缺少字体的替换字体,你可以执行:
$ fc-match "某字体名称"
如果输出的结果中出现像 某字体名称.otf 这样的内容,代表该字体被正确安装了;如果结果中没有出现,代表没有被安装,从而会被在文档中替换为其他字体。
注意发生字体替换时,LibreOffice 不会表示任何错误或消息,而只是在工具栏中将字体名称显示成斜体来告知发生了字体替换。
LibreOffice 可以覆盖 fontconfig 所指定的字体替换设置。若要覆盖这种 fontconfig 替换,可按以下步骤操作。
从下拉菜单中选 工具 > 选项 > LibreOffice > 字体。勾选“应用替换表”选项。在字体名称输入框中输入所需字体的名称,然后在“替换为”选项中选择想要的字体。完成后点击确认按钮。接着在下面的选项框中选择“始终”和“仅屏幕显示”选项,最后点击“确定”。
抗锯齿
执行
$ echo "Xft.lcdfilter: lcddefault" | xrdb -merge
如需使其永久生效,请添加 Xft.lcdfilter: lcddefault 到你的 ~/.Xresources 文件,并且确保执行 xrdb -merge ~/.Xresources (来源). 更多信息请查看 X 资源。
如果这样不起作用的话,你也可以尝试添加 Xft.lcdfilter: lcddefault 到你的 ~/.Xdefaults 文件。如果文件不存在请创建一个。
使用 NFSv3 共享时突然停止运行
如果在你试图打开或者保存一个位于 NFSv3 共享的文档的时候 LibreOffice 停止运行,试着在 /usr/lib/libreoffice/program/soffice 中添加以下几行,以 # 开头:
# file locking now enabled by default SAL_ENABLE_FILE_LOCKING=1 export SAL_ENABLE_FILE_LOCKING
为了避免覆盖更新你可以将 /usr/lib/libreoffice/program/soffice 复制到 /usr/local/bin. 原始链接在这里.
对Java framework错误的修正
当你试图运行Libreoffice时可能会出现以下错误。
[Java framework] Error in function createSettingsDocument (elements.cxx). javaldx failed!
如果是这样的话, 将你的权限赋像这样给 ~/.config/ :
# chown -vR username:users ~/.config
LibreOffice 无法检测到你的证书
参见官方文档。
在编辑模式下运行 .pps 文件(没有幻灯片)
针对此问题的唯一解决办法就是将 .pps 文件的后缀改为 .ppt.
你可以使用下面脚本打开 .pps 文件,它的使用场合是:在不保存的情况下打开 .pps 文件。
#!/bin/sh
f=$(mktemp --suffix .ppt)
cp "$1" "${f}" && libreoffice "${f}" && rm -f "${f}"
参考书目的问题
如果 Writer 在打开工具 > 文献数据库 时崩掉, 且出现了以下提示语句:
com::sun::star::loader::CannotActivateFactoryException
请安装 libreoffice-base包[损坏的链接:package not found] ,这是对于一个已知bug的解决办法,请参照解决.
多媒体支持
如果插入的视频只显示为灰框,请先确保你安装了必须的 GStreamer plugins。
在 Xfwm4 下内容未按照窗口改变自身大小
如果在 Xfce (或者仅仅使用 Xfwm4) 时你在 LibreOffice 窗口下的内容并未随着窗口变化而改变大小,就类似在这个帖子里描述的: [7]。请安装 libreoffice-still-gnome包[损坏的链接:package not found] 来解决这个问题。
gvfs 映射
如果你需要在 gvfs 映射下打开/保存文档,你需要安装 libreoffice-still-gnome包[损坏的链接:package not found] .
Writer 和 Draw 中的默认纸张大小
如果空白 Writer 和 Draw 文档中的默认纸张大小在您的区域设置中一直不正确,请尝试安装 libpaper包 作为可选依赖项,并通过更新 /etc/papersize(对于系统级更改)或创建 ~/.config/papersize(对于用户级更改)并写入您偏好的纸张大小。参见 paper(1) 和 paper --no-size --all。
在非 en_US 系统区域设置下,自动图文集预期默认行为无效
如果系统区域设置不是 en_US,但预期的默认自动图文集行为不存在(例如,在 Writer 文档中输入 fn 后按 F3 键不会自动插入编号函数),则需要将默认的 en_US 自动图文集模板添加到您的自动图文集路径中。操作方法:转到 工具 > 自动图文集...,然后点击 路径...,并将以下路径添加到列表中:/usr/lib/libreoffice/share/autotext/en-US。此时自动图文集应能按默认预期正常工作。
LibreOffice 冻结或崩溃
通过设置环境变量 SAL_DISABLE_OPENCL=1 和/或 SAL_DISABLEGL=1 来禁用 OpenCL 和/或 OpenGL。LibreOffice 安全模式也提供了同时禁用这两者的选项。
如果 LibreOffice 冻结或启动失败并显示“应用程序错误”消息,但在禁用 OpenCL 后正常工作,请尝试安装 OpenCL 运行时。
Wayland 和 HiDPI
要解决在 HiDPI 屏幕上 Wayland 下 UI 元素缩放的问题,请尝试指定 VCL 接口(例如 gtk3 或 qt6)。参见 #主题。
具有不同缩放比例的多屏幕会受到 一个导致所有屏幕无法正确缩放的错误 的影响。作为临时解决方案,可以在 Xwayland 模式下启动 LibreOffice(例如 WAYLAND_DISPLAY= libreoffice)。
kio-fuse 和 webdav
为确保 LibreOffice 始终回退到 kio-fuse包 来处理远程文件(而不是使用其内部的 webdav 实现和密码存储),请从所有 libreoffice*.desktop 文件中的 X-KDE-Protocols 键里移除 ,webdav,webdavs。
KDE Plasma/GNOME + Wayland 带或不带分数缩放导致滚动时严重卡顿
KDE Plasma 6 和 5 的用户以及一些在 GNOME 下测试的用户报告了在滚动文档时出现严重卡顿的问题,详见 [8]。通过 X11 运行 LibreOffice 可以 解决该问题(有 报告 指出,在 GNOME 下使用 GTK3 后端时该问题未解决)。可以通过设置环境变量单独实现:在 KDE Plasma(QT)下使用 QT_QPA_PLATFORM=xcb libreoffice,或在 GNOME(GTK)下使用 GDK_BACKEND=x11 libreoffice。有多种应用修复的方法:
- 可以通过在
~/.local/share/application/中放置同名副本并调整Exec=行来覆盖/usr/share/application/中的每个libreoffice-*.desktop桌面项。 - 可以在
/usr/local/bin/中放置一个可执行脚本以应用系统级修复。例如:
/usr/local/bin/libreoffice
#!/bin/sh ## 重要:请根据您的桌面环境取消注释下面一行,否则 LibreOffice 将无法工作! #exec env QT_QPA_PLATFORM=xcb /usr/bin/libreoffice "$@" #exec env GDK_BACKEND=x11 /usr/bin/libreoffice "$@"
- 用户可以切换回 X11 以缓解该问题。