Jak dodać polskie znaki do dowolnej czcionki

webnote-title.png

Ile razy zdarzyła Ci się taka sytuacja: Znajdujesz tego idealnego, jedynego fonta który pięknie pasuje do twojego projektu a tu zamiast Ą wyskakują Ci jakieś krzaczki? Niestety wiele zagranicznych fontów nie posiada polskich znaków diakrytycznych, a wybór spolszczonych jest niewielki. Dzisiaj pokażę CI jak dodać nieistniejące znaki do czcionki.

Instalujemy niezbędne oprogramowanie

Aby dodać polskie znaki diakrytyczne potrzebny nam jest edytor czcionek, do wyboru jest wiele, darmowych i płatnych. Ja osobiście polecam FontForge. Jest to program OpenSource napisany dla systemu operacyjnego Linux. Nie należy się tym przejmować ponieważ deweloper przewidział możliwość instalacji na platformie Windows.

Aby program ruszył w Windows potrzebujemy zainstalować emulator środowiska Linuksa, program Cygwin. Pobieramy go z strony  http://cygwin.com/ i rozpoczynamy proces instalacji.  Program zapyta nas o ścieżkę programu, rodzaj instalacji, serwer pobierania i w końcu o wybór paczek do zainstalowania. Prędkość instalacji zależy głównie od wybranego serwera i naszego łącza. Ja polecam niemiecki i irlandzkie serwery FTP. Aby FontForge działał poprawnie należy zainstalować:

  • podstawowe pliki programu
  • system X Windows
  • binutils
  • lbng et libxm12
  • X11
  • X-startup-scriptsm
  • XFree86-lib-compat
  • xorg-x11-base
  • xorg-x11-bin
  • xorg-x11-dlls
  • xorg-x11-lndir
  • xorg-x11-etc
  • xorg-x11-f100
  • xorg-x11-libs-data

Niezaawansowani użytkownicy albo osoby które nie mają czasu i ochoty bawić się w dobieranie paczek mogą zwyczajnie zaznaczyć opcje instalacji wszystkiego, potrwa to trochę dłużej i zajmuje około 6GB miejsca na dysku.

Następnie należy pobrać paczki instalacyjne programu FontForge z strony http://fontforge.sourceforge.net/. Pobieramy pliki przeznaczone dla Cygwina czyli: fontforge_cygwin-20090914.tar.bz2. Paczkę tą należy pobrać do katalogu programu Cygwin. Domyślnie jest to: C:\cygwin\home\<username> (<username> to twoja nazwa użytkownika).

Teraz należy uruchomić Cygwina (w menu START i na pulpicie pod nazwą CygwinBashShell, ścieżka na dysku C: \cygwin\Cygwin.bat). Pojawi nam się okno konsoli. Wklepujemy w niej kolejno (z pominięciem znaku $):

$ tar xjf fontforge_cygwin-*.tar.bz2
$ cd fontforge
$ ./doinstall

Cygwin kolejno rozpakowuje FontForge, wchodzi do jego katalogu a następnie go instaluje (te operację wykonujemy tylko raz).

Aby zainicjować program trzeba za każdym razem uruchomić serwer XWin, (w menu START i na pulpicie pod nazwą XWin Server, ścieżka na dysku C:\cygwin\bin\ run.exe). Gdyby konsola nie chciała się od razu uruchomić konieczne jest wcześniejsze zainicjowanie procesu RXVT, (w menu START i na pulpicie pod nazwą rxvt-x, ścieżka na dysku C:\cygwin\bin\ rxvt.exe, nie powoduje to jednak pojawienia się nowego okna tylko nowy proces systemowy ). W konsoli wklepujemy polecenie:

$twm & fontforge –new 

co uruchomi nam FontForge. Pamiętać należy że aby korzystać z programu serwer zawsze musi być uruchomiony.

Rozpoczynamy pracę z FontForge

Jeśli chodzi o sam program to charakteryzuje go bardzo prosta szata graficzna. Po uruchomieniu widzimy ekran powitalny oraz okno z nową czcionką. Za pomocą File->Open możemy otworzyć dowolny plik czcionki. Tu uwaga, wszystkie aplikacje uruchomione za pomocą konsoli Cygwin mają dostęp jedynie do tych elementów które znajdują się w katalogu C:/Cywin/ na dysku. Czcionki do edycji trzeba w nim  umieścić, najbezpieczniej jest korzystać z katalogu Home (domyślnie C:/cygwin/home) gdyż jest on do tego przeznaczony.

Wczytujemy czcionkę jaką chcemy edytować:

Otwieramy czcionkę - FontForge

Widzimy okno z czcionką

Widok czcionki - FontForge

Miejsca zaznaczone na niebiesko to definiowane litery. Jak widać czcionka jest niepełna. Każdy symbol posiada własną unikalną nazwę oraz numer zależny od kodowania. Ja proponuje operować na Unicode. W nim elementy otrzymują numer w zapisie szesnastkowym. Polskie znaki w tablicy Unicode znajdują się na miejscach:

Litera

Ą

ą

Ć

ć

Ę

ę

Ł

ł

Ń

Kod

104

105

106

107

118

119

141

142

143

Litera

ń

Ó

ó

Ś

ś

Ź

ź

Ż

ż

Kod

144

D3

F3

15A

15B

179

17A

17B

17C

Najprościej stworzyć nowe znaki dodając do skopiowanej litery przecinek, kropkę czy apostrof.

Zacznijmy od Ą. Wchodzimy w literę A klikając na nią dwukrotnie.

Edycja czcionki - FontForge

Zaznaczmy znak klikając na Edit->Select->Select All i kopiujemy Edit->Copy. Zamykamy i wchodzimy w miejsce tabeli odpowiadające literce Ą, czyli 104. Wklejamy literę Edit->Paste. Kolejnym krokiem jest otwarcie znaku przecinka i skopiowanie go a następnie przeklejenie do literki Ą. Ustawiamy go w pożądanym miejscu, a następnie usuwamy niepotrzebne elementy.

Edycja czcionki - FontForge

Litery są automatycznie uaktualniane w tablicy, nie wymagają zapisywania. Pozwala to na bieżąco obserwować zmiany na miniaturce Ą. Ostatnim krokiem jest połączenie elementów  w jedną obwiednie. Pozwala nam na to wbudowana opcja scalania, Element->Overlap->Remove Overlap. Zaznaczamy elementy i dokonujemy połączenia. W podobny sposób dorzucamy pozostałe „ogonki”. Czasem program ma problemy z automatycznym połączeniem znaków, wtedy należy zrobić to ręcznie. Czcionki są zapisane w formacie wektorowym, a FontForge ma wiele narzędzi do ich edycji. Po dołożeniu wszystkich literek uzyskujemy taką tablice:

Tablica z dodanymi polskimi znakami

Teraz powstałą czcionkę należy zapisać, najlepszy do tego jest format TrueType. Wybieramy File->Generate Fonts… i zapisujemy naszą czcionkę. Teraz wystarczy tylko wgrać ją do systemu.

Zapis czcionki - FontForge

Oto Efekty:

Dodane polskie znaki do czcionki

Należy pamiętać że aby posiadać w systemie czcionkę przed i po modyfikacji należy zmienić nazwę nie tylko pliku podczas zapisu, ale i parametrów opisujących ją w FontForge (Element->Font Info).

Podsumowanie

Jak widać proces dodawania polskich znaków, nie jest trudny, a przygotowanie wszystkich zajęło mi około godziny czasu. Należy pamiętać o przeczytaniu licencji, na której udostępniona jest czcionka, którą chcemy modyfikować, gdyż jej edycja może być zabroniona.

Jeżeli jesteście zainteresowani podobnymi artykułami, opisującymi na przykład działanie programu FontForge i inne jego zastosowania, dajcie znać w komentarzach.

DyskusjaKomentarze: 6

  • kuba 06 styczeń 2011 23:10
    Witam

    Temat ciekawy. Niestety dla mnie kłopotliwy.

    Problem:
    1. Mam po polsku program i Element->Overlap->Remove Overlap po przetłumaczeniu nie mogę znaleźć. Jak brzmi po polsku odpowiednik Overlap?
    2.Nie ma Element->Font Info. Czy chodzi o właściwości fontu? Jeśli tak to jakie parametry?
    Otworzyłem plik font.ttf i nie mogę go zapisać. Czy dodaje nowe literki czy nie wyskakują błędy w postaci braku ekstremów. Wyskakują mimo, że np: nic nie modyfikowałem.
    3. Jak należy poprawnie generować fonty?
    4. Dlaczego ttf a nie woff ?
    5. U mnie nie ma numeracji liter np: 104. Jak ją nastawić ?

    Dodałem te ogonki itp ale co z tego skoro zapisany przeze mnie plik nie działa w przeglądarce.

    Temat fajny. Proszę o rozwiniecie.
  • Tomasz Kowalczyk 14 styczeń 2011 17:28
    Popieram, bardzo fajny temat i przydałoby się rozwinięcie. Szczególnie, jak w ten sposób dorobić inne potrzebne znaki - copyright, trademark, nawiasy, apostrofy, itp.
  • Maciek 27 kwiecień 2011 00:13
    Bardzo fajny temat... Fajny programik... tyle że nie do końca działa. Sama edycja i dodawanie ogonków... bez problemu. Ale po zapisie nic nie działa. Kupa ostrzeżeń w czasie zapisu i w rezultacie bezużyteczny plik. Z niecierpliwością czekam na dalsze objaśnienia.
  • Krzysztof Bachula
    Autor webnote
    04 maj 2011 15:27
    Ciesze się, że artykuł się podoba. Muszę namówić Kamilę na kolejne artykuły z tej kategorii.

    @Maciek: Z problemami z zapisu się nie spotkaliśmy, wszystko poszło gładko i bez żadnych ostrzeżeń. Jak będziesz miał chwilkę, to wrzuć treść tych ostrzeżeń, to zobaczymy czy uda się błąd powtórzyć lub coś poradzić.
  • szymmszy 04 luty 2012 20:38
    Witam,
    Walczę od kilku dni z zagnieżdżeniem czcionki "Bebas Neue" pod Internet Explorera z polskimi znakami. Myślałem, że błąd jest w kodzie ale niestety tak nie jest.
    Czcionkę "BebasNeue.ttf" z polskimi znakami przerabiałem konwerterami dostępnymi na kilku stronach - bez efektu.
    Efekt podmiany czcionki zadziałał w momencie gdy użyłem pliku z innego źródła (waży mniej, nie 54KB a 16KB) , dokładnie stąd (http://www.3-d-art.ch/lib/fonts/sans-serif/bebas-neue/)
    Czy problem wynika ze złej konwersji czy poprostu reguluje to zaszyta wewnątrz pliku czcionki licencja?
  • szymmszy 04 luty 2012 20:45
    Tak, raczej problem z konwerterami.
    Paczka z http://www.cufonfonts.com/pl/font/35/bebas-neue działa bezproblemowo!
    ... dwa dni kombinowania ja pierdykam :) uff

Dodaj komentarz Komentarze są moderowane, a przy linkach używane jest rel="nofollow". Prosimy o nie reklamowanie i nie spamowanie w komentarzach.
Linki tworzone za pomocą tagu [url] np: [url=www.xyz.pl]xyz[/url]
Źródła za pomoc tagu [code] z wskazaniem języka np. [code=php] echo [/code]

Copyright © 2012 Webnote

Projekt i wykonanie: Xelos

Dodaj link