当我在 Libreoffice 中输入 Garamond 作为字体时,我得到了一个不错的字体,但这个字体在已安装的字体中没有列出。实际上,由于 Garamond 是付费字体,因此屏幕上显示的是后备字体。我想知道如何确定 Ubuntu/Libreoffice 使用哪种字体作为后备字体。我还想找到此字体的 .ttf 文件
顺便问一下,我想知道哪些字体能够原生支持拉丁扩展字符的所有 Unicode。
使用的系统:
- Ubuntu 18.04
- Libreoffice 6.0.7.3
下图中,你可以看到 Garamond 被识别,并显示在第一个段落中。但它实际上是一种后备字体。
备注 - 我已经尝试过
这个问题已被问过多次,但所有的答案都很笼统,并没有提供令人满意的答案。
- archlinux 维基——“Garamond No.8”不是我看到的那个。
- Libre Writer 识别“Garamond”字体……- 我已按照建议测试了 EB-Garamont 和 FreeSerif,但它仍然不是我想要的字体。我不想在“工具”>“选项”>“字体”上设置后备字体。
- OpenOffice(不是 LibreOffice)字体后备我尝试了所写的内容,但没有成功。
- 我实际上必须直接在 Linux 上查看 .ttf 文件。我尝试使用
fc-list
,fc-list | grep "garamond"
并直接探索目录和配置文件(例如 )cat fonts.alias | grep "mo"
,cd /usr/share/fonts
但都没有成功。这是可以理解的,因为我实际上并不是在寻找真正的 garamond.ttf 文件,而是在寻找它的后备字体。 - 我一直在寻找备用字体配置文件。我找不到文件
VCL.xcu
(适用于 OpenOffice,而不是 LibreOffice)。它fonts.alias
没有提供我正在寻找的信息。 - 如何在 Ubuntu 上定位字体很有帮助,但是
fonts.conf
文件没有提供我想要的信息。 - Libre Office 显示 Garamond,但字体管理器不显示一个非常相似的问题,但两个答案与我的问题无关。
编辑1
以下是@Rinzwind 提出的建议:
❮ onyr ★ kenzae❯ ❮ aedoras❯❯ unzip -p garamond_pure.odt styles.xml | xmllint --format - | grep "font-face style:name" | sort -u
I/O error : Permission denied
I/O error : Permission denied
<style:font-face style:name="Garamond" svg:font-family="Garamond" style:font-family-generic="roman"/>
<style:font-face style:name="Liberation Sans" svg:font-family="'Liberation Sans'" style:font-family-generic="swiss" style:font-pitch="variable"/>
<style:font-face style:name="Liberation Serif" svg:font-family="'Liberation Serif'" style:font-family-generic="roman" style:font-pitch="variable"/>
<style:font-face style:name="Lohit Devanagari1" svg:font-family="'Lohit Devanagari'"/>
<style:font-face style:name="Lohit Devanagari" svg:font-family="'Lohit Devanagari'" style:font-family-generic="system" style:font-pitch="variable"/>
<style:font-face style:name="Noto Sans CJK SC" svg:font-family="'Noto Sans CJK SC'" style:font-family-generic="system" style:font-pitch="variable"/>
它返回 .odt 文档中使用的字体列表。但是我想要的字体仍然是“Garamond”,即使我想要的是它的后备字体。我将尝试答案的另一部分。
对于第二种方法:
定义您语言的字体默认表需要修改源代码中的文件 officecfg/registry/data/org/openoffice/VCL.xcu。在已安装的产品中找不到单独的 VCL.xcu 文件。其内容已合并到 /share/registry/main.xcd(其中是 LibreOffice 的安装目录)。
我不知道该如何处理 officecfg。我找不到安装 LibreOffice 的 /registry 目录。我该怎么办?
❮ onyr ★ kenzae❯ ❮ share❯❯ ls -alt
total 12
drwxr-xr-x 6 root root 4096 sept. 28 2019 ..
drwxr-xr-x 2 root root 4096 sept. 28 2019 config
drwxr-xr-x 3 root root 4096 juil. 25 2018 .
答案1
您可以使用fc-match
获取后备字体的名称。在终端中运行该命令,输入要使用的字体的名称。如果字体不存在,它将返回后备字体的名称。例如:
$ fc-match Garamond
NotoSerif-osf.ttf: "Noto Serif" "Regular"
答案2
关于您的文件具体如下:
您的文档是一个可以解压缩的 ZIP 文件,并且使用的字体为styles.xml
。
unzip -p {file} styles.xml | xmllint --format - | grep "font-face style:name" | sort -u
将列出使用的字体。对于直接格式化,您也可以使用content.xml
而不是styles.xml
。
关于通用方法...
Libreoffice 也使用VCL.xcu
。来自他们的维基:
定义区域设置的默认字体
LibreOffice 允许定义每个语言环境默认使用的字体。例如,我们可以在这里定义当您使用自己的语言或脚本时 LibreOffice Writer 将使用哪种字体作为默认字体,或者您的本地化版本的 LibreOffice 用户界面将使用哪种字体。
定义您语言的字体默认表需要修改源代码中的文件。在已安装的产品中找不到
officecfg/registry/data/org/openoffice/VCL.xcu
单个文件。其内容已合并到(LibreOffice 安装目录)。VCL.xcu
<LibODir>/share/registry/main.xcd
<LibODir>
VCL.xcu
被分成几个块(称为节点),每个语言一个。语言节点的第一行包含该语言的标准 ISO 代码。这里您必须考虑两种不同的情况。...
<node oor:name="FontSubstitutions">
建立字体之间关系的字体后备表在文件的中定义officecfg/registry/data/org/openoffice/VCL.xcu
。