如何从 .zip 文件一次安装多种字体?

如何从 .zip 文件一次安装多种字体?

好吧,我确实搜索了 AskUbuntu,发现有些人在问如何一次性安装多个字体?我知道这个过程。我必须复制粘贴 .font 隐藏文件夹中的所有字体、.ttf/.otf 文件,然后通过此命令重建字体现金……

fc-cache -rv

这太清楚了。我只想知道这一点……

我下载了 10 多个 .zip 字体文件。当我解压 .zip 文件夹时,我看到每个文件夹中都有几个文件。一个自述文件、一个 .ttf/.otf 文件,在某些情况下还有一些字体变体。例如 bold.ttf、ultra_bold.ttf、semi_bold.ttf、black.ttf 等。我不确定这些附加文件是什么,但我猜这些主要是核心字体的变体。然而我的问题是...

我是否需要手动提取所有 .zip 文件,然后仅复制 .ttf/.otf 文件,然后手动将它们粘贴到 .font 文件夹中?或者我可以使用终端命令,它将代表我完成所有操作。这里everything我的意思是...

  1. 提取 .zip 文件
  2. 仅复制 .ttf/.otf 文件
  3. 仅将 .ttf/.otf 文件粘贴到 .font 文件夹中
  4. 最后在 Ubuntu 中安装 .ttf/.otf 文件

抱歉问了一个很宽泛的问题。但为了避免被否决,我必须确保我没有问任何之前被问过的问题。提前感谢你们的所有帮助。

答案1

这是终端中的一行命令。使用Ctr+ Alt+打开终端T并运行以下命令。将其替换<your_font_zips>为您放置 zip 字体文件的文件夹名称。

cd <your_font_zips>
# next command extracts all TTF and OTF files into your `.fonts` folder.
unzip "*.zip" "*.ttf" "*.otf" -d ${HOME}/.fonts
# next command rebuilds font cache
sudo fc-cache -f -v

如果您想再次删除字体,只需删除文件.fonts夹中的 TTF 文件并重建字体缓存。

有关字体和 Ubuntu 的更多信息这里


是的,您需要所有 TTF 文件。

TTF 和/或 OTF

我引用:

OTF 更有可能成为“更好”的字体,因为它支持更高级的排版功能(小型大写字母、替代字母、连字等实际上都在字体内部,而不是在繁琐的独立专家设置字体中)。它还可以包含样条曲线(TTF 样式)或贝塞尔曲线(PostScript Type 1 样式),因此希望您获得的是字体最初设计的形状,而不是可能质量较差的转换。

来源

答案2

已接受答案的附录:

跑步fc-cache -f -v 没有 sudo

如果您使用sudo,如接受的答案所示,fc-cache将只处理根的字体文件夹,而忽略用户的字体文件夹。

答案3

虽然不是一行代码,但这里有一个更强大的脚本,可以在 Linux 和 OSX 上运行。在这里,我们下载 codefonts 并安装它,而不会覆盖现有文件。

#!/bin/bash
#fail if any errors
set -e
set -o xtrace

temp_dir=~/Downloads/codefonts
wget -P ${temp_dir} https://github.com/chrissimpkins/codeface/releases/download/font-collection/codeface-fonts.zip

if test "$(uname)" = "Darwin" ; then
  # MacOS
  fonts_dir="$HOME/Library/Fonts"
else
  # Linux
  fonts_dir="$HOME/.local/share/fonts"
  mkdir -p $fonts_dir
fi

# -n option avoids overwriting
set +e
unzip -n ${temp_dir}/codeface-fonts.zip "fonts/*.ttf" "fonts/*.otf" "*fonts/.pcf.gz" -d ${temp_dir}
set -e
cp -rnv ${temp_dir}/fonts ${fonts_dir}

if test "$(uname)" = "Darwin" ; then
  # Copy SF Mono for MacOS
  cp /Applications/Utilities/Terminal.app/Contents/Resources/Fonts/*.otf "$fonts_dir/"
fi

# Reset font cache on Linux
if which fc-cache >/dev/null 2>&1 ; then
    echo "Resetting font cache, this may take a moment..."
    fc-cache -f "$fonts_dir"
fi

echo "codefonts installed to $fonts_dir"

相关内容