Lista czcionek zawierających wybrany znak

13

W systemie Mac OS X Przeglądarka znaków (odpowiednik mapy znaków w systemie Ubuntu) ma funkcję, w której patrząc na określony znak, może wyświetlić listę wszystkich czcionek zawierających ten znak. Czy w Ubuntu jest coś równoważnego?

Przypadek użycia jest taki, że na przykład mogę kliknąć znak kannada i zobaczyć wszystkie czcionki, które obejmują ten znak (i ​​prawdopodobnie resztę zakresu języka kannada).


Edycja : Dla pomysłu na to, co mam na myśli, oto zrzut ekranu Przeglądarki znaków na Mac OS X 10.6. „Zawierający wybraną postać” znajduje się w dolnej części ekranu. Wydaje mi się, że ta część interfejsu była lepsza w wersji 10.5 lub 10.4.

wprowadź opis zdjęcia tutaj

ShreevatsaR
źródło
1
Poproś o prośbę o dodanie funkcji mapy znaków.
Oxwivi
3
@Toki: Znalezienie projektu odpowiedzialnego za mapę postaci zajęło mi wieki! W każdym razie nazywa się to gucharmap, używa Bugzilli, a ta funkcja została już zapytana - w 2007 roku . Reporter nawet wniósł łatkę. Na liście jest jeszcze wiele innych podobnych błędów / żądań . Wydaje się, że nie osiągnięto żadnego postępu.
ShreevatsaR
Widzę, że to naprawdę jest do bani i jest to również domyślna aplikacja Ubuntu ... I na przyszłość możesz łatwo znaleźć nazwy pakietów za pomocą Synaptic, a nawet Software Center, wchodząc w szczegóły.
Oxwivi
1
Złożyłem
Powiązane: unix.stackexchange.com/questions/162305/…
Nathaniel M. Beaver

Odpowiedzi:

7

W Fontmatrix możesz porównać cechy czcionki - W informacjach o czcionce - Porównaj.

Porównanie czcionek Fontmatrix

PS. Myślę, że ta funkcja Przeglądarki znaków w systemie Mac OS X byłaby wspaniałą prośbą do zespołu projektantów fontmatrix.


W rzeczywistości interfejs Fontmatrix ma coś jeszcze lepszego: możesz wybrać kartę Podgląd i wprowadzić ciąg znaków (zawierający znaki, które powinna mieć czcionka) i zobaczyć, jak wyświetla się każda czcionka. Możesz więc przewijać listę czcionek i jednocześnie wyświetlać zasięg czcionek wszystkich interesujących znaków, zamiast tylko jednego znaku na raz. Pomaga to wizualnie wybrać czcionki zawierające wybrane znaki.

Na poniższym zrzucie ekranu widać, że „BABEL Unicode Bold” (wybrane) zawiera wszystkie znaki z wyjątkiem ṝ, a „Arial Regular” (tam, gdzie znajduje się mysz) zawiera tylko kilka znaków.

Zrzut ekranu podglądu Fontmatrix

palbakulich
źródło
@ShreevatsaR - dziękuję za +1, byłaby to świetna funkcja dla fontmatrix, złożyłem tutaj
funkcję
Hej, masz coś przeciwko, jeśli scalę mój zrzut ekranu i opis (patrz moja inna odpowiedź) w to?
ShreevatsaR
@ShreevatsaR - czy to możliwe? Nie jestem jednak pewien, czy powinienem
doceniać
W porządku, to ty zasugerowałeś Fontmatrix. :-) A celem jest uzyskanie dobrej odpowiedzi dla wszystkich przyszłych poszukiwaczy z tym samym pytaniem, więc zaliczenie jest drugorzędne ... Zredagowałem odpowiedź, aby opracować. (Ktoś inny musiał zatwierdzić zmianę i uprzejmie to zrobił.) Jeszcze raz dziękuję!
ShreevatsaR
1
Ta funkcja wydaje się zniknąć z najnowszej wersji Fontmatrix, a przynajmniej nie mogę jej już znaleźć. Nie widzę już nawet menu „Przeglądaj”.
ShreevatsaR
1

Ponieważ pierwotnie zadałem to pytanie w 2011 r., Informacje stały się trudniejsze do znalezienia zarówno na Ubuntu (gdzie wcześniej zalecana FontMatrix już nie ma tej funkcji), jak i na macOS.

Jeśli dba się o język ogólnie, a nie o konkretny znak, należy na przykład użyć fc-listz :lang:

~% fc-list :lang=kn-in
/usr/share/fonts/truetype/noto/NotoSansKannadaUI-Regular.ttf: Noto Sans Kannada UI:style=Regular
/usr/share/fonts/truetype/noto/NotoSansKannada-Bold.ttf: Noto Sans Kannada:style=Bold
/usr/share/fonts/truetype/noto/NotoSansKannadaUI-Bold.ttf: Noto Sans Kannada UI:style=Bold
/usr/share/fonts/truetype/noto/NotoSerifKannada-Regular.ttf: Noto Serif Kannada:style=Regular
/usr/share/fonts/truetype/Navilu/Navilu.ttf: Navilu:style=Normal
/usr/share/fonts/truetype/noto/NotoSansKannada-Regular.ttf: Noto Sans Kannada:style=Regular
/usr/share/fonts/truetype/lohit-kannada/Lohit-Kannada.ttf: Lohit Kannada:style=Regular
/usr/share/fonts/truetype/Gubbi/Gubbi.ttf: Gubbi:style=Normal
/usr/share/fonts/truetype/noto/NotoSerifKannada-Bold.ttf: Noto Serif Kannada:style=Bold

W przypadku konkretnych postaci zadałem podobne pytanie w „Ask Different”; kopiując tutaj skrypt Pythona, którego użyłem (działa w obu systemach operacyjnych).

  1. Zainstalować albo python-fontconfigczy ten python3-fontconfigpakiet (lub oba), w zależności od tego, czy wolisz używać Pythona 2 lub 3 Python.

  2. Zapisz następujący kod w pliku o nazwie (powiedzmy) find_fonts.py:

#!/usr/bin/env python

def find_fonts(c):
    """Finds fonts containing  the (Unicode) character c."""
    import fontconfig
    fonts = fontconfig.query()
    for path in sorted(fonts):
        font = fontconfig.FcFont(path)
        if font.has_char(c):
            yield path

if __name__ == '__main__':
    import sys
    search = sys.argv[1]
    char = search.decode('utf-8') if isinstance(search, bytes) else search
    for path in find_fonts(char):
        print(path)
  1. Uruchom skrypt ze znakiem python find_fonts.py ಠlub python3 find_fonts.py ಠzastępując go postacią, na której ci zależy.

Przykładowe dane wyjściowe:

$ python3 find_fonts.py ಠ
/usr/share/fonts/truetype/Gubbi/Gubbi.ttf
/usr/share/fonts/truetype/Navilu/Navilu.ttf
/usr/share/fonts/truetype/lohit-kannada/Lohit-Kannada.ttf
/usr/share/fonts/truetype/noto/NotoSansKannada-Bold.ttf
/usr/share/fonts/truetype/noto/NotoSansKannada-Regular.ttf
/usr/share/fonts/truetype/noto/NotoSansKannadaUI-Bold.ttf
/usr/share/fonts/truetype/noto/NotoSansKannadaUI-Regular.ttf
/usr/share/fonts/truetype/noto/NotoSerifKannada-Bold.ttf
/usr/share/fonts/truetype/noto/NotoSerifKannada-Regular.ttf
ShreevatsaR
źródło