Je recherche une solution de travail pour le rendu des caractères CPL sur OSX dans iTerm2 et Chrome. Il y a beaucoup de documentation autour de laquelle j'ai essayé d'utiliser plusieurs méthodes, aucune ne semble fonctionner correctement jusqu'à présent (bien que les polices pré-corrigées avec le livre de polices fonctionnent partiellement ). Détails inclus ci-dessous.
- Existe-t-il une méthode de travail pour obtenir le rendu correct des glyphes CPL dans iTerm2 sur OSX 10.9.3?
- Les glyphes Powerline doivent-ils s'afficher correctement dans les pages Web? Une idée pourquoi ils ne le sont pas et comment je peux y remédier?
Comment fonctionne le rendu de ces caractères (au niveau système / application)? Cela diffère-t-il d'une application à l'autre? Dans Chrome, si la police actuelle ne contient pas de liaisons pour les glyphes, Chrome tentera-t-il de trouver les liaisons dans une autre police présente sur le système et de les utiliser? Existe-t-il un moyen de fournir des liaisons pour ces caractères unicode au niveau du système afin qu'ils s'affichent à l'aide de cette police, quelle que soit la police utilisée?
Caractères de zone privée Unicode
Si je comprends le fonctionnement des polices corrigées compatibles Powerline, elles lient les graphiques évolutifs à des valeurs spécifiques dans la zone d'utilisation privée 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
Pour tester les glyphes dans un terminal, j'ai lu que cela devrait fonctionner:
echo -e "\ue0a0\ue0a1\ue0a2\ue0b0\ue0b1\ue0b2\ue0b3"
Cependant, cela ne fonctionne pas pour moi (OSX 10.9.3, iTerm2, zsh) même avec une police corrigée Powerline installée et iTerm2 configuré pour utiliser l'une de ces polices.
J'ai essayé plusieurs méthodes pour installer les polices corrigées:
FontBook et polices pré-corrigées
J'ai téléchargé les polices de Localtog / powerline-fonts et les ai installées en utilisant FontBook. Sur les mêmes pages, certains glyphes s'affichent, mais pas d'autres. Sur d'autres pages, aucun des glyphes ne rend:
(source: staticflickr.com )
(source: staticflickr.com )
Dans iTerm2 (cela se produit avec toutes les polices Powerline que j'ai testées), certains caractères s'affichent, mais pas tous:
(source: staticflickr.com )
Dans macvim (terminal) avec vim-airlines installé, certains caractères s'affichent, mais certains s'affichent incorrectement:
(source: staticflickr.com )
Fontconfig
J'ai désinstallé toutes les polices corrigées Powerline, installé fontconfig avec homebrew, installé la police Powerline et reconstruit le cache des polices:
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
La police a été détectée et fontconfig a dit qu'elle était installée, mais elle n'apparaissait pas dans FontBook et je n'ai pas pu la sélectionner dans iTerm2.
Après avoir exécuté cela, j'ai supprimé les polices, réanimé fc-cache et désinstallé fontconfig.
J'utilise actuellement les polices préinstallées installées dans fontbook, qui fonctionnent partiellement, mais j'espère que quelqu'un pourra m'aider à mieux comprendre le problème afin que je puisse trouver une solution de travail.
Mise à jour
Cette méthode semble faire tout fonctionner dans iTerm2, bien que je ne sois toujours pas sûr des problèmes de rendu de chrome / système.
FontForge
Installez fontforge avec des liaisons python:
brew install fontforge --with-python
Installez 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
Téléchargez, corrigez et installez la police:
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
Use a different font for non-ASCII text.
fait toute la différence pour moi.