プログラミング用フォント Ricty

Ricty は Linux 環境での研究・開発に適したフリーなプログラミング用 TrueType フォントです。

概要

Ricty screenshot of GNU Emacs on Ubuntu Ricty screenshot of GVim on Ubuntu

Ricty (リクティ) は Linux 環境での研究・開発に適したフリーなプログラミング用 TrueType フォントです。Emacs や Vim を用いた C、C++、FORTRAN、Python、Perl、Ruby、AWK、sed、シェルスクリプト、LaTeX などのコーディングにおける使用を想定しています。以下の 2 つの等幅フォントの合成、および、プログラミング用フォントとしてのいくつかのチューニングを行う生成スクリプトの配布を行なっています。

Inconsolata

Top 10 Programming Fonts」や「プログラミング時に最適なフォント『Inconsolata』」などで高い評価を受けているサンセリフ体等幅欧文フォント

Migu 1M

M+ 1MIPA ゴシックの合成フォント (旧称 M+1VM+IPAG circle/M+2VM+IPAG circle) であり、「Windows でプログラミングに最適なフォントを探す」などで高い評価を受けているゴシック体等幅和文フォント

Inconsolata 作者の Raph Levien 氏、Migu 1M 作者の itouhiro 氏、M+ 1M 作者の coz 氏、IPA ゴシックのベースとされている TB ゴシック作者の林隆男氏、私のイニシャルから “Ricty” と命名しました。

特徴

ライセンス

生成スクリプト

Ricty の生成スクリプトを配布しています。また、姉妹フォント Ricty Diminished は TrueType フォントを配布しています。

Beta Version

GitHub HEAD

Current Version

Version 3.2.3 (4 May 2014)

GitHub tag 3.2.3

  • ASCII グリフのボールド体の太さの変更 (以前の太さにするときは -b)

Old Versions

Version 3.2.2 (9 June 2013)

GitHub tag 3.2.2

  • 全角括弧を半角括弧と差別化

Version 3.2.1 (6 Nov. 2012)

GitHub tag 3.2.1

  • M+ FONTS LICENSE 記述の除去 (Migu 1M の更新に追従)
  • いくつかの環境で等幅でなくなる問題に対処
  • em ダッシュ処理の修正

Version 3.2.0 (16 Apr. 2012)

GitHub tag 3.2.0

  • 行間の調整
  • コマンドラインオプションの追加

Version 3.1.3 (24 Nov. 2011)

GitHub tag 3.1.3

  • Ricty Discord のコマンドラインオプション
  • コマンドラインオプションの追加

Version 3.1.2 (3 Oct. 2011)

GitHub tag 3.1.2

  • Migu 20111002 に同期 (後方互換を担保せず)
  • コマンドラインオプションの追加

Version 3.1.1 (8 July 2011)

GitHub tag 3.1.1

  • コマンドラインオプションの追加

Version 3.1.0 (19 June 2011)

GitHub tag 3.1.0

  • Mac OS X で Regular と Bold が異なる高さで表示される問題に対処

Version 3.0.2 (2 June 2011)

GitHub tag 3.0.2

  • 生成スクリプトへの auto オプションの追加

Version 3.0.1 (20 May 2011)

GitHub tag 3.0.1

Version 3.0.0 (17 May 2011)

GitHub tag 3.0.0

  • 生成スクリプトの配布開始
  • TrueType フォントの配布中止

Version 2.1.0 (7 May 2011)

  • Ricty Discord 版パッチスクリプトの配布開始
  • 全角のコロン、ピリオドの半角に対する差別化
  • em ダッシュの破断線化

Version 2.0.2 (4 May 2011)

  • Inconsolata 由来の Ambiguous 文字の全角化

Version 2.0.1 (26 Apr. 2011)

Version 2.0.0 (23 Apr. 2011)

  • Inconsolata Version 001.010
  • Migu 1M Version 20110418 (M+ TESTFLIGHT 038, IPA ゴシック Ver. 033.02)
  • ボールド体の提供開始 (Inconsolata 部分は機械的に生成されたボールド体)
  • 和文文字の縮小
  • 全角のコンマ、ピリオドの半角に対する差別化

Version 1.1.0 (19 Apr. 2011)

  • Inconsolata Version 001.010
  • Migu 1M Version 20110418 (M+ TESTFLIGHT 038, IPA ゴシック Ver. 033.02)
  • Migu 1M Version 20110418 への追従
  • 行間の切り詰め
  • em ダッシュの破断線化を中止 (Migu 1M Version 20110418 にて導入された Ambiguous 文字の全角化により)

Version 1.0.0 (18 Apr. 2011)

  • Inconsolata Version 001.010
  • Migu 1M Version 20110207 (M+ TESTFLIGHT 036, IPA ゴシック Ver. 033.02)
  • 全角スペースの可視化
  • en ダッシュ、em ダッシュの破断線化

生成方法

FontForge のインストール

Debian/Ubuntu

# apt-get install fontforge

Fedora/CentOS

# yum install fontforge

OpenSUSE

# zypper install fontforge

その他の Linux

FontForge 公式サイトより入手してください。

Inconsolata のインストール

Inconsolata 公式サイトより OpenType file を入手し、インストールしてください。

Migu 1M のインストール

M+ と IPA の合成フォント」より入手し、インストールしてください (MigMix ではありません)。

Ricty の生成

以上 2 種類のフォントをインストールした後で

% ./ricty_generator.sh auto

もしくは、

% ./ricty_generator.sh Inconsolata.otf migu-1m-regular.ttf migu-1m-bold.ttf

生成には 2–5 分程の時間がかかります。

Ricty のインストール

% cp -f Ricty*.ttf ~/.fonts/
% fc-cache -vf

(おまけ) ricty_generator.sh のコマンドラインオプション

-h

ヘルプを表示する。

-V

バージョン番号を表示する。

-f /path/to/fontforge

fontforge コマンドのパスを指定する。

-v

fontforge の警告メッセージを表示する。

-l

生成の過程で生じる中間ファイルを削除せずに残す。

-n string

フォントファミリ名を「Ricty」ではなく「Ricty ○○○」として生成する。

-w

行間を広くする。

-W

行間をかなり広くする。

-b

ASCII グリフのボールド体をより細くする。

-B

ASCII グリフのレギュラー体をより太くする。

-Z unicode

他のグリフのコピーすることで全角スペースを可視化する (たとえば -Z 2318 とすると、全角スペースが ⌘ になる)。

-z

全角スペースを可視化しない。

-a

Inconsolata のグリフを優先し、Ambiguous 文字を全角化しない。

-s

Migu 1M のグリフを縮小しない (-w オプションとの併用を推奨)。

派生フォント Ricty Discord

Ricty では、調和・統一感の維持のため、プログラミング用フォントのコアである Inconsolata 由来の ASCII 文字に手を入れないようにしています。Discord (不協和音) 版は、統一感を乱す覚悟で ASCII 文字に手を入れた Ricty の派生フォントです。通常、Ricty Discord は Ricty 生成の際に自動的に生成されますが、パッチスクリプトを直接実行することによっても生成できます。このとき、オプションを指定することで個々の変更点を無効化することができます。

% fontforge -script ricty_discord_patch.pe [options] Ricty-Regular.ttf Ricty-Bold.ttf

ricty_discord_patch.pe のコマンドラインオプション

-quotedbl

「"」を拡大しない。

-quotesingle または -quote

「'」を拡大しない。

-asterisk

「*」を少し下方に移動しない。

-plus

「+」を少し下方に移動しない。

-comma

「,」を拡大しない。

-hyphen

「-」を少し下方に移動しない。

-period

「.」を拡大しない。

-0 または -zero

「0」をドットゼロにせず、スラッシュゼロのままにする。

-7 または -seven

「7」にクロスバーを付けない。

-colon

「:」を拡大しない。

-semicolon

「;」を拡大しない。

-less-greater または -angles

「<」および「>」を少し下方に移動しない。

-equal

「=」を少し下方に移動しない。

-D

「D」を Eth にしない (「D」にクロスバーを付けない)。

-Z

「Z」にクロスバーを付けない。

-asciicircum または -circum

「^」を拡大しない。

-grave

「`」を拡大しない。

-l

「l」の左下のセリフを切り落とさない。

-r

「r」をセリフ体 (Inconsolata の不使用グリフ) にしない。

-z

「z」にクロスバーを付けない。

-bar

「|」を破断線 (Inconsolata のグリフ) にしない。

-asciitilde または -tilde

「~」を上方に移動しない。

エディタの設定

Emacs

(set-face-attribute 'default nil
                    :family "Ricty Discord"
                    :height 120)
(set-fontset-font (frame-parameter nil 'font)
                  'japanese-jisx0208
                  (cons "Ricty Discord" "iso10646-1"))
(set-fontset-font (frame-parameter nil 'font)
                  'japanese-jisx0212
                  (cons "Ricty Discord" "iso10646-1"))
(set-fontset-font (frame-parameter nil 'font)
                  'katakana-jisx0201
                  (cons "Ricty Discord" "iso10646-1"))

GVim

set guifont=Ricty\ Discord\ 12
set guifontwide=Ricty\ Discord\ 12

もしくは

set guifont=Ricty\ Discord:h12
set guifontwide=Ricty\ Discord:h12

既知の問題