OSX 10.9.3のPowerline Patched Fonts-iTerm2およびChrome


18

iTerm2とChromeのOSXで電力線文字をレンダリングするための実用的なソリューションを探しています。いくつかの方法を使おうと試みた多くのドキュメントがありますが、これまでのところ正しく機能するものはないようです(ただし、事前にパッチを当てたフォントブックのフォントは部分的に機能します)。詳細は以下に含まれます。

  1. OSX 10.9.3のiTerm2で電力線グリフを正しくレンダリングするための実用的な方法はありますか?
  2. 電力線グリフをWebページで正しくレンダリングする必要がありますか?なぜそうではないのか、どうすれば修正できるのでしょうか?

これらのキャラクターのレンダリングは(システム/アプリケーションレベルで)どのように機能しますか?アプリケーションごとに異なりますか?クロムでは、現在のフォントにグリフのバインディングが含まれていない場合、クロムはシステムに存在する別のフォントのバインディングを見つけて使用しようとしますか?システムレベルでこのユニコード文字にバインディングを提供して、使用されているフォントに関係なくそのフォントを使用してレンダリングする方法はありますか?

Unicodeプライベートエリア文字

電力線互換のパッチが適用されたフォントの動作を理解している場合、スケーラブルなグラフィックスをunicodeのプライベート使用領域の特定の値にバインドします。

U+E0A0     Version control branch
U+E0A1     LN (line) symbol
U+E0A2     Closed padlock
U+E0B0     Rightwards black arrowhead
U+E0B1     Rightwards arrowhead
U+E0B2     Leftwards black arrowhead
U+E0B3     Leftwards arrowhead

ターミナルでグリフをテストするために、これが機能することを読みました。

echo -e "\ue0a0\ue0a1\ue0a2\ue0b0\ue0b1\ue0b2\ue0b3"

ただし、電力線パッチされたフォントがインストールされていて、iTerm2がこれらのフォントのいずれかを使用するように構成されている場合でも、OSX 10.9.3、iTerm2、zshでは機能しません。

パッチを適用したフォントをインストールする方法をいくつか試しました。

FontBookおよび事前パッチされたフォント

Localtog / powerline- fontsからフォントをダウンロードし、FontBookを使用してインストールしました。同じページで、一部のグリフはレンダリングされますが、他のグリフはレンダリングされません。他のページでは、どのグリフもレンダリングされません。

Agnosterテーマ
(ソース:staticflickr.com

電力線のドキュメント
(ソース:staticflickr.com

iTerm2では(これは私がテストしたすべての電力線フォントで発生します)、一部の文字は表示されますが、他の文字は表示されません:

iTerm2およびzsh
(ソース:staticflickr.com

vim-airlineがインストールされているmacvim(ターミナル)では、一部の文字がレンダリングされますが、一部は正しくレンダリングされません。

vim-airline
(ソース:staticflickr.com

Fontconfig

すべての電力線パッチされたフォントをアンインストールし、homebrewでfontconfigをインストールし、電力線フォントをインストールし、フォントキャッシュを再構築しました。

wget -P ~/.fonts/ https://github.com/Lokaltog/powerline/raw/develop/font/PowerlineSymbols.otf
wget -P ~/.config/fontconfig/conf.d/ https://github.com/Lokaltog/powerline/raw/develop/font/10-powerline-symbols.conf
fc-cache -vf ~/.fonts

フォントが検出され、fontconfigがインストールされたと言いましたが、FontBookには表示されず、iTerm2で選択できませんでした。

これを実行した後、フォントを削除し、fc-cacheを再実行し、fontconfigをアンインストールしました。

私は現在、フォントブックにインストールされた事前パッチ済みフォントを使用していますが、これは部分的に機能しますが、誰かが問題を少しでもよく理解できるようにして、有効な解決策を見つけられることを願っています。

更新

この方法により、iTerm2ですべてが機能するように見えますが、クロム/システムレンダリングの問題についてはまだ不明です。

FontForge

Pythonバインディングを使用してFontForgeをインストールします。

brew install fontforge --with-python

powerline-fontpatcherをインストールします。

mkdir -p ~/.local/src
git clone https://github.com/Lokaltog/powerline-fontpatcher.git ~/.local/src/powerline-fontpatcher
cd ~/.local/src/powerline-fontpatcher && python setup.py install && cd
export powerline_symbols=~/.local/src/powerline-fontpatcher/fonts/powerline-symbols.sfd

フォントのダウンロード、パッチ、インストール:

wget http://sourceforge.net/projects/sourcecodepro.adobe/files/SourceCodePro_FontsOnly-1.017.zip
unzip SourceCodePro_FontsOnly-1.017.zip

find SourceCodePro_FontsOnly-1.017/TTF -name \*.ttf -exec powerline-fontpatcher --source-font=$powerline_symbols --no-rename {} \;
mv *.ttf /Library/Fonts

回答:


12

Input Monoフォントをインストールするだけで、電力線が完全にサポートされます。

以下が機能するには、Input Monoフォントがバージョン1.1である必要があります。に移動してフォントのバージョンを確認Font Book → View → Show Font Infoし、バージョン番号を確認できます。

Terminal.appを使用すると、すぐに動作します。フォントを選択するだけで準備完了です。

iTerm2では、いくつかのことを変更する必要があります。

  • [設定]→[プロファイル]→[テキスト]に移動し、[非ASCIIテキストに別のフォントを使用する]のチェックを外します。
  • すぐ上をクリックしてChange Font、[モノラル入力] を選択します。さらにCharacter Spacing → Vertical、110%に変更する必要があります。TerminalとiTerm2は異なる方法で文字間隔をレンダリングしているようです。

チェックを外すとUse a different font for non-ASCII text.、すべてが変わりました。
カモミールケース

2

更新していない可能性がありますbash。OS Xの船bash < 4、そうすることはできませんprintfまたはecho -eUnicodeのコード。

で更新bashする手順homebrew

  1. brew install bash
  2. bashhomebrewによってインストールされたのプレフィックスを見つけてください。/usr/local/Cellar/bash/4.3.30/私のbashバイナリはでした/usr/local/Cellar/bash/4.3.30/bin/bash
  3. sudo (vim|nano|emacs|etc) /etc/shells
  4. 上記のbashパスを取得し、それをリストの最後に追加します(または/usr/bin、本当に勇気があるなら、を置き換えます)。
  5. chsh
  6. パスShell:に合わせて行を変更しますbash
  7. 用語を再起動します。

そして、あなたは修正されるべきです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.