すでにメンテナンスが終了した Ricty だが、愛着がある人向けに記事を書いてみる。
Ricty および Ricty Diminished は、2010 年代前半には欧文・和文合成プログラミング用フォントとして先駆的でしたが、現在は前時代的な存在となっています。不具合もいくつか確認されています。良質なプログラミング用フォントが数多く登場していますので、それらの利用をおすすめします。
https://qiita.com/sounisi5011/items/62e4da71458ca7ce73c7
Ricty Diminished とは
プログラミング用のフォントのこと。以下、詳細。
Ricty Diminished (リクティ・ディミニッシュト) は Ricty の姉妹フォントであり、 Linux 環境での研究・開発を想定したプログラミング用フォントです。
テキストエディタやターミナルエミュレータ、プログラミング言語やマークアップ言語に対する使用に適しています。
Inconsolata と Circle M+ 1m の合成、および、プログラミング用フォントとしてのいくつかのチューニングを行ったフリーな TrueType フォントを配布しています。
http://www.rs.tus.ac.jp/yyusa/ricty_diminished.html
ちなみに Ricty Diminished Discord というものもあるが、こちらは Ricty Diminished と比較すると「0(ゼロ)」の見た目が違うだけである。
Ricty Diminished のメリット
以下より引用。
https://www.konosumi.net/entry/2018/03/07/011920
- 半角文字と全角文字の横幅の比が 1:2 に調整されている
- 全角スペースが可視化されます。
- 文字が見やすく可読性が高い
Ricty Diminished のデメリット
- JIS 第二水準の漢字が含まれていない(本家の Ricty には含まれている)
インストール方法
ソースコードからインストールする方法
以前は、以下からダウンロードを行っていたが、https://github.com/mzyy94/RictyDiminished-for-Powerline
https://github.com/edihbrandon/RictyDiminished
Ricty Diminished には「(`)バッククォート」の表示がおかしくなるという有名な問題が存在し、すでにメンテナンスは終了している。
そのため、以下のようなダウンロード方法が適切であるようだ。
Rictyフォントは生成スクリプトのみが配布されています。よって、生成スクリプトを自分の手で修正し、不具合を直した修正版Rictyフォントを生成してインストールすることはできます。例えばHomebrewでRictyフォントをインストールするためのCask
https://qiita.com/sounisi5011/items/62e4da71458ca7ce73c7sanemat/homebrew-font
では、backquote-fix
オプションを無効化しない限りバッククォートに対するこのような修正処理が自動で行われます。
Ricty Diminishedフォントの場合も、配布されているフォントファイルを修正してインストールすれば問題なく使用できます。バッククォートのみ修正したものであれば、渡辺基暉氏がRickyDiminished-Regular-fixedという形で公開済みです。
とのことで上述のバグを修正していただいているファイルがあるので、ここからダウンロードをすると良いかと思われる。
https://github.com/XxGodmoonxX/config-files/tree/409c45bcf20d1e993999df3bc7c9339cb070d01c/fonts
Homebrew からインストールする方法
Ricty と Ricty Diminished は各パッケージマネージャーに自動的にインストールする方法がある。
たとえば Homebrew にはそのための Cask が存在する。
# Ricty Diminished
$ brew tap caskroom/fonts
$ brew cask install font-ricty-diminished
# Ricty
brew tap sanemat/font
brew install ricty
cp -f /usr/local/opt/ricty/share/fonts/Ricty*.ttf ~/Library/Fonts/
fc-cache -vf
バグを修正しない場合の脆弱性について
以下のような脆弱性が考えられる。
例えば上述のバッククォートの不具合を用いると、バッククォートの数をごまかせてしまいます。2字以上重なったバッククォートをさも1字かのように見せたり、グレイヴ・アクセント付きのラテン文字と誤認させることができます。これを悪用すれば、ユーザーの環境のRictyフォントに依存した表示環境(例:Qiitaのコードブロック)からコピペさせることで、SQLインジェクションが可能になってしまうと考えます。インストールされているフォントなので、もしエディタでもRictyフォントを使っていた場合は、最後まで気づけないでしょう。
https://qiita.com/sounisi5011/items/62e4da71458ca7ce73c7
※もちろん、そのようなコードを確かめもせずコピペして使うのが悪いというのは正論です。バッククォートの数をごまかしてもSQLインジェクション用のコードはそのまま含まれているので、よく読めば察しがつくはずです。また、コードの色分けでも気付けるでしょう。しかし、何も知らない初心者が記事にあるままコピペしたり、納期に追われる開発者がよく読まないまま色分けも見落として使用したり、といった可能性は十分に考えられます。
VSCode での設定方法
command + 「,」キーから「設定」が開くので、このなかの Font Family の設定に「”Ricty Diminished”」を追加する。
ターミナルでも「設定」から簡単に Ricty を設定できるので、前時代的なプログラマーになりたければ設定するとよい。