Jak korzystać z Fixedsys w Gnome Terminal lub wszędzie tam, gdzie wymagane są czcionki o stałej szerokości

10

Myślę, że czcionka Fixedsys jest jedną z najbardziej czytelnych czcionek o stałej szerokości do programowania. Ma zerową antyaliasing, z pionowymi liniami o szerokości głównie 2 pikseli. W moich oczach (dosłownie) niemal idealny dla aktualnych wysokości kropek monitora. Oto próbka:

Próbka Fixedsys

Po latach korzystania z Windowsa w domu (z powodów rodzinnych) i serwerów Linux w pracy, do których dostęp uzyskiwany jest przez Cygwin w systemie Windows (z powodów polityki firmy), z Fixedsys jako powłoką i czcionką IDE, w końcu zdecydowałem się na przejście na Ubuntu w domu.

Zaćmienie i gedit nie stanowią problemu, akceptują poprawioną wersję czcionki Fixedsys Excelsior TTF, którą można znaleźć tutaj w komentarzu nr 16 (nazwa pliku: FSEX301-L2.ttf). Ale Gnome Terminal akceptuje tylko czcionki o stałej szerokości.

Chociaż Fixedsys Excelsior jest zasadniczo monospaced, zawiera większe glify (głównie dla języków wschodnich), a także niektóre ligatury. Ponieważ najwyraźniej WSZYSTKIE znaki muszą mieć tę samą szerokość, aby czcionka została rozpoznana jako monospaced, nie można wybrać Fixedsys Excelsior we wszystkich kontekstach, w których wymagane są czcionki o stałej szerokości, w tym gnome-terminal.

Jaki jest więc najłatwiejszy / najczystszy sposób użycia klonu Fixedsys w kontekstach, które akceptują tylko czcionki o stałej szerokości?

Walter Tross
źródło
BTW, aby użyć Fixedsys Excelsior w NetBeans, musisz dodać -J-Dswing.aatext=falsedo netbeans_default_options w /etc/netbeans.conf. W przeciwnym razie NetBeans sprawi, że będzie „kolorowe” i rozmyte - dotyczy to także Windows
Walter Tross
Zaktualizuj mój poprzedni komentarz: Netbeans 7.4 w systemie Windows wymaga -J-Dawt.useSystemAAFontSettings=onpozbycia się wygładzania.
Walter Tross
Na MacBooku Pro muszę pracować z obrazem próbnym nie jest ostry. Wygląda na to, że czcionka Fixedsys ma szare piksele. AFAICT dzieje się tak z powodu tak zwanego wyświetlacza „siatkówki”, wyświetlacza o wysokiej rozdzielczości, który powoduje, że obrazy w HTML są skalowane dwa razy (tak, woleli łamać HTML i mieć zamazane obrazy ...). To samo skalowanie dotyczy samej czcionki, psując ją. Z drugiej strony wyświetlacze o wysokiej rozdzielczości znacznie poprawiają czytelność wszystkich czcionek, eliminując potrzebę korzystania z Fixedsys.
Walter Tross,

Odpowiedzi:

7

To jest rozwiązanie, które znalazłem. Dokładnie przetestowałem go kilka razy i od ponad 2 lat używam wynikowej czcionki w wielu miejscach, ale ostrzegam: niektóre części procedury mogą być od nieoptymalnej do zwykłej błędnej.

Zanim zapytasz „dlaczego nie udostępnisz wynikowej czcionki”, odpowiedź brzmi: „ponieważ nie jestem pewien, czy mogę to zrobić”. Prawa autorskie do czcionek to skomplikowana sprawa.


Pobierz poprawioną czcionkę Fixedsys Excelsior (plik FSEX301-L2.ttf, na komentarz nr 16)

Zainstaluj FontForge (np. Z Centrum oprogramowania Ubuntu)

Kliknij FSEX301-L2.ttfplik prawym przyciskiem myszy i otwórz go za pomocą FontForge. W oknie Ładuj czcionki bitmapowe, które się pojawi, kliknij Nie .

Kliknij Plik → Wykonaj skrypt ... , a następnie skopiuj i wklej następujące elementy w wyświetlonym oknie:

SelectAll()
foreach
   if (GlyphInfo("Width") != 80)
      DetachAndRemoveGlyphs()
   else
      b = GlyphInfo("BBox")
      if (b[0] < 0 || b[1] < -30 || b[2] > 80 || b[3] > 130)
         DetachAndRemoveGlyphs()
      endif
   endif
endloop
SelectNone()

Następnie wybierz FF i kliknij OK (zajmie to chwilę, będziesz musiał poczekać, aż zniknie okno Wykonaj skrypt )

Kliknij Element → Informacje o czcionce ... W nazwach PS zmień nazwę czcionki , nazwisko i imię dla ludzi , np. Dodając Mono(spacje są dozwolone tylko w drugim i trzecim ciągu).

W tym samym oknie Informacje o czcionce wybierz OS / 2 .
In Misc. w zakładce zmień rodzinę PFM na Monospace .
Na karcie Metryki ustaw Przesunięcie opadania wygięcia i Przesunięcie opadania głowicy zarówno na 0 (*) .
Na karcie Panose zmień Proporcję na Monospaced .

W tym samym oknie Informacje o czcionce wybierz Wyszukiwanie .
Na karcie GSUB i GPOS zaznacz kolejno każdą linię i kliknij Usuń .

W tym samym oknie Informacje o czcionce kliknij przycisk OK , a następnie w polu Zmień unikatowy identyfikator? w wyświetlonym oknie kliknij Zmień .

Jeśli chcesz, możesz dostosować jedną lub więcej wątpliwych funkcji Fixedsys. Np. Znak zero jest przesunięty o jeden piksel w prawo. Aby przesunąć go z powrotem na środek, kliknij go dwukrotnie, a następnie kliknij Metryki → Ustaw LBearing ... , ustaw LBearing na 10i kliknij OK . Możesz także zmienić kształt znaków, ale zawsze utrzymuj punkty kontrolne na wielokrotności 10, a szerokość na 80.

Kliknij Element → Dostępne uderzenia bitmapy ... , a następnie w oknie, które się pojawi, ustaw Rozmiary pikseli na 16i kliknij OK .

Kliknij Plik → Generuj czcionki ... , w razie potrzeby wybierz inny katalog i / lub inną nazwę pliku, upewnij się, że format wyjściowy to TrueType , i kliknij Zapisz . W wyświetlonym niestandardowym oknie Em-Size kliknij Tak . W oknie Wykryte błędy, które się pojawi, kliknij Zapisz (nie martw się).

Wyjdź z FontForge ( Plik → Zakończ ). W wyświetlonym oknie Zmieniona czcionka kliknij opcję Nie zapisuj .


Przenieś wygenerowany plik do .fontspodkatalogu katalogu domowego (utwórz go, jeśli nie istnieje).

Otwórz terminal Gnome. Kliknij Edytuj → Profile ... W profilu (sugeruję utworzenie nowego) zmień czcionkę na Fixedsys Excelsior 3.01-L2 Mono(lub jakkolwiek nazwałeś mono wersję Fixedsys Excelsior), o rozmiarze 12(który jest jedynym „prawdziwym” rozmiarem Fixedsys) . Jeśli chcesz, możesz także wyłączyć pogrubienie tekstu. Sugeruję czarny tekst na białym tle, ale to kwestia gustu.

Pogrubiony wariant tej czcionki odpowiada powtórzeniu znaku przesuniętego o jeden piksel w prawo (różni się od tego FSEX301-L2.ttf, w którym wydaje się wygładzony). Nie jest to zbyt czytelne - ale czy naprawdę potrzebujesz odważności? Ja nie. Problem występuje tylko w tych kontekstach, w których pogrubienie nie może być wyłączone (nawet, np. Przez edycję podświetlania składni), szczególnie w tych przypadkach, w których odstępy między znakami są również zwiększane o jeden piksel, przerywając wyrównanie (nie jest tak w przypadku gnome -terminal). Nie znalazłem rozwiązania tego ostatniego uciążliwego problemu. Sugestie są mile widziane.


(*): niepotrzebne od wydania FontForge 2012-07-31 (w 14.04 LTS - Trusty Tahr)

Walter Tross
źródło
Wszystkim, którzy zapisali i / lub zastosowali ten przepis: pamiętaj, że w międzyczasie mógł on się nieznacznie zmienić, aby rozwiązać niektóre małe problemy, i że może się jeszcze zmienić w przyszłości. Możesz rzucić okiem na historię edycji.
Walter Tross,
FYI, działa również dobrze w systemie Windows. Również z „Fixedsys Excelsior 2.0” (który moim zdaniem jest znacznie lepszy dla terminali, ponieważ postacie są nieco niższe niż w FSEX3). Świetna czcionka dla PuTTY! (oryginalny FSEX i dowolna czcionka, która jest uważana za niemonospace, powoduje, że PuTTY jest naprawdę wolny, gdy ekran bardzo często się odświeża)
ThiefMaster
PhpStorm 7.1 14.04 nie rozpoznaje czcionki, którą opisuję w odpowiedzi jako czcionki o stałej szerokości, nie wiem dlaczego :-( Na szczęście, jeśli odznaczysz opcję „pokaż tylko czcionki o stałej szerokości”, nadal możesz ją zdobyć. Z jakiegoś powodu rozmiar musi wynosić 15 lub 16 (wyglądają tak samo) zamiast 12. PhpStorm wydaje mi się trochę wadliwy ...
Walter Tross
3

Świetne rozwiązanie Waltera Trossa, ale jeśli nie chcesz wykonywać całej pracy, oto link do pobrania:

FixedsysExcelsiorIIIb-L2_Mono.ttf

Borjowski
źródło
1
Dzięki Rafael, „dlaczego” znajduje się w drugim akapicie mojej odpowiedzi
Walter Tross,
Operacje! Przepraszam ... Brak uwagi ... Naprawiono teraz.
Borjovsky