备注 - 我已经尝试过

备注 - 我已经尝试过

当我在 Libreoffice 中输入 Garamond 作为字体时,我得到了一个不错的字体,但这个字体在已安装的字体中没有列出。实际上,由于 Garamond 是付费字体,因此屏幕上显示的是后备字体。我想知道如何确定 Ubuntu/Libreoffice 使用哪种字体作为后备字体。我还想找到此字体的 .ttf 文件

顺便问一下,我想知道哪些字体能够原生支持拉丁扩展字符的所有 Unicode。

使用的系统:

  • Ubuntu 18.04
  • Libreoffice 6.0.7.3

下图中,你可以看到 Garamond 被识别,并显示在第一个段落中。但它实际上是一种后备字体。

garamond 问题 字体比较 LibreOffice

备注 - 我已经尝试过

这个问题已被问过多次,但所有的答案都很笼统,并没有提供令人满意的答案。

  • archlinux 维基——“Garamond No.8”不是我看到的那个。
  • Libre Writer 识别“Garamond”字体……- 我已按照建议测试了 EB-Garamont 和 FreeSerif,但它仍然不是我想要的字体。我不想在“工具”>“选项”>“字体”上设置后备字体。
  • OpenOffice(不是 LibreOffice)字体后备我尝试了所写的内容,但没有成功。
  • 我实际上必须直接在 Linux 上查看 .ttf 文件。我尝试使用fc-listfc-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

相关内容