search
LoginSignup
9
Help us understand the problem. What are the problem?

posted at

updated at

Ricty DiminishedとNerd Fontsを合成する方法(Mac)

はじめに

Vimのステータスラインに Font Awesome などのアイコンフォントを表示したいのですが、一般的なフォントにはアイコンフォントが埋め込まれていないため、表示できません。

フォントに Nerd Fonts が提供しているパッチを当てることで表示できるようになるとのことなので、その方法を紹介します。

注意

フォントはライセンスや利用規約をよく読んだ上で正しく使用しましょう。
よくわからない場合、個人でのみ使用するのがいいと思います。

環境

  • OS:macOS Monterey 12.4
  • Python:3.10.6
  • FontForge:20220308
  • Ricty Diminished:4.1.1
  • Nerd Fonts:2.1.0

合成方法

今回はRicty Diminishedにパッチを当てますが、他のフォントでも当てられると思います。

パッチ適用済フォントの確認

代表的なフォントにはすでにパッチが当たったものが用意されているため、もし自分が使いたいフォントがあれば、そこからダウンロードするだけでOKです。

Ricty Diminished+Nerd Fontsは用意されていないので、 Option 8. を参考に自分でパッチを当てます。

Nerd Fontsリポジトリのクローン

Nerd Fontsのリポジトリをクローンし、関連フォントとパッチをダウンロードします。

$ git clone --depth 1 https://github.com/ryanoasis/nerd-fonts.git

Nerd Fontsのリポジトリは 10GB以上あるため、通信環境によっては非常に時間がかかります

Ricty Diminishedのダウンロード

以下のページからRicty Diminishedのフォントをダウンロードします。

FontForgeのインストール

FontForgeとは、OSSのフォント作成ツールです。

Homebrewからインストールします。

$ brew install fontforge

フォントの合成

Nerd Fontsのリポジトリ内にあるfont-patcherを使い、フォントを合成します。
使い方は以下に記載されています。

Ricty Diminishedの各フォントを font-patcher と同じフォルダ(nerd-fontsのルート)にコピーします。
ターミナルでそのフォルダに移動し、以下を実行します。

$ cd nerd-fonts/

# python3 ./font-patcher {オプション} {パッチを当てるフォントファイル}
$ python3 ./font-patcher --complete RictyDiminished-Regular.ttf
$ python3 ./font-patcher --complete RictyDiminished-Bold.ttf
$ python3 ./font-patcher --complete RictyDiminished-Oblique.ttf
$ python3 ./font-patcher --complete RictyDiminished-BoldOblique.ttf

私の環境はPython 2がインストールされていないため、明示的にPython 3を使うようにしています。

主なオプションは以下の通りです。

オプション 説明
--windows Windowsではフォント名が32文字以上だと使えず、それを除外してWindowsでも使えるようにする
--complete 利用可能な全グリフを追加する
全オプション
$ python3 ./font-patcher -h
usage: font-patcher [-h] [-v] [-s] [-l] [-q] [-w] [-c] [--careful] [--removeligs] [--postprocess [POSTPROCESS]] [--configfile [CONFIGFILE]] [--custom [CUSTOM]] [-ext [EXTENSION]]
                    [-out [OUTPUTDIR]] [--glyphdir [GLYPHDIR]] [--progressbars | --no-progressbars] [--fontawesome] [--fontawesomeextension] [--fontlinux] [--octicons] [--codicons]
                    [--powersymbols] [--pomicons] [--powerline] [--powerlineextra] [--material] [--weather]
                    font

Nerd Fonts Font Patcher: patches a given font with programming and development related glyphs

* Website: https://www.nerdfonts.com
* Version: 2.1.0
* Development Website: https://github.com/ryanoasis/nerd-fonts
* Changelog: https://github.com/ryanoasis/nerd-fonts/blob/master/changelog.md

positional arguments:
  font                  The path to the font to patch (e.g., Inconsolata.otf)

options:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit
  -s, --mono, --use-single-width-glyphs
                        Whether to generate the glyphs as single-width not double-width (default is double-width)
  -l, --adjust-line-height
                        Whether to adjust line heights (attempt to center powerline separators more evenly)
  -q, --quiet, --shutup
                        Do not generate verbose output
  -w, --windows         Limit the internal font name to 31 characters (for Windows compatibility)
  -c, --complete        Add all available Glyphs
  --careful             Do not overwrite existing glyphs if detected
  --removeligs, --removeligatures
                        Removes ligatures specificed in JSON configuration file
  --postprocess [POSTPROCESS]
                        Specify a Script for Post Processing
  --configfile [CONFIGFILE]
                        Specify a file path for JSON configuration file (see sample: src/config.sample.json)
  --custom [CUSTOM]     Specify a custom symbol font. All new glyphs will be copied, with no scaling applied.
  -ext [EXTENSION], --extension [EXTENSION]
                        Change font file type to create (e.g., ttf, otf)
  -out [OUTPUTDIR], --outputdir [OUTPUTDIR]
                        The directory to output the patched font file to
  --glyphdir [GLYPHDIR]
                        Path to glyphs to be used for patching
  --progressbars        Show percentage completion progress bars per Glyph Set
  --no-progressbars     Don't show percentage completion progress bars per Glyph Set

Symbol Fonts:
  --fontawesome         Add Font Awesome Glyphs (http://fontawesome.io/)
  --fontawesomeextension
                        Add Font Awesome Extension Glyphs (https://andrelzgava.github.io/font-awesome-extension/)
  --fontlinux, --fontlogos
                        Add Font Linux and other open source Glyphs (https://github.com/Lukas-W/font-logos)
  --octicons            Add Octicons Glyphs (https://octicons.github.com)
  --codicons            Add Codicons Glyphs (https://github.com/microsoft/vscode-codicons)
  --powersymbols        Add IEC Power Symbols (https://unicodepowersymbol.com/)
  --pomicons            Add Pomicon Glyphs (https://github.com/gabrielelana/pomicons)
  --powerline           Add Powerline Glyphs
  --powerlineextra      Add Powerline Glyphs (https://github.com/ryanoasis/powerline-extra-symbols)
  --material, --materialdesignicons, --mdi
                        Add Material Design Icons (https://github.com/templarian/MaterialDesign)
  --weather, --weathericons
                        Add Weather Icons (https://github.com/erikflowers/weather-icons)

合成したフォントの確認

以下の4ファイルが生成されていたらOKです。

ファイル名 サイズ
Ricty Diminished Regular Nerd Font Complete.ttf 2,636,172 byte
Ricty Diminished Bold Nerd Font Complete.ttf 2,660,432 byte
Ricty Diminished Oblique Nerd Font Complete.ttf 2,747,596 byte
Ricty Diminished Bold Oblique Nerd Font Complete.ttf 2,772,604 byte

合成したフォントのインストール

Macの場合、 ~/Library/Fonts フォルダに移動するだけでOKです。

$ mv Ricty\ Diminished\ Regular\ Nerd\ Font\ Complete.ttf ~/Library/Fonts/
$ mv Ricty\ Diminished\ Bold\ Nerd\ Font\ Complete.ttf ~/Library/Fonts/
$ mv Ricty\ Diminished\ Oblique\ Nerd\ Font\ Complete.ttf ~/Library/Fonts/
$ mv Ricty\ Diminished\ Bold\ Oblique\ Nerd\ Font\ Complete.ttf ~/Library/Fonts/

設定

iTerm2

iTerm2 > Preferences... > Profiles > [Text]タブ > Font >
「RictyDiminished Nerd Font」を選択する
スクリーンショット 2022-08-13 18.01.31.png

ブランチのアイコンなどが表示されていたらOKです。
スクリーンショット 2022-08-13 17.59.58.png

Hyper

.hyper.jsfontFamilyRictyDiminished Nerd Font を追加します。

.hyper.js
- fontFamily: 'Menlo, "DejaVu Sans Mono", Consolas, "Lucida Console", monospace',
+ fontFamily: '"RictyDiminished Nerd Font", Menlo, "DejaVu Sans Mono", Consolas, "Lucida Console", monospace',

MacVim

.gvimrc に以下を記述します。
私はサイズを18にしていますが、こちらはお好みで設定してください。

.gvimrc
if has('mac')
  set guifont=RictyDiminished\ Nerd\ Font:h18 " 半角
  set guifontwide=RictyDiminished\ Nerd\ Font:h18 " 全角
endif

参考リンク

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
9
Help us understand the problem. What are the problem?