zipzár betűtípus :)

Játszottam újfent a FontForge-dzsal (de hülyén néz ki így leírva). Láttam ugyanis minap egy olyan betűtípust, ami úgy nézett ki, mint egy cipzár. Viszont csak az alsó cipzárfogakban volt betű, és ez azért megengedhetetlen, ha egyszer meg lehet oldani másképp is.
Megszületett hát ez a munka:
My zipper font

A betűket csak úgy kábé gyorsan lefirkantottam, ez némi mentség lehet egyes betűk alakjára (S, &, meg a többi ami nagyon görbe…:D), valamint arra nézve, hogy miért nem kapcsolódnak néha rendesen (a képen nem látszik), és miért nehezen olvasható. Mint eddigi fontjaim általában, ez is nagy méretben látszik egyáltalán.
Később bővülhet az európai karakterkészlettel, egyelőre az ASCII karaktertábla van meg.

Az OpenType támogatás gyakran elég hiányos volta miatt elég korlátozott a felhasználhatósági köre, de amikről tudom, hogy megy bennük:
Abiword, Inkscape, Gimp (itt a Hinting kikapcsolása sokat segít)

A stuff letölthető itt, de még bővülhet-szépülhet.

Hozzászólások

Nem lenne kedved valami leirast csinalni arrol, hogy ez hogyan keszult? Meg nem csinaltam sajat fontot, de erdekelne. Vagy ha van hasznalhato (angol/magyar nyelvu) leirasod, az is jo. (guglit tudom hasznalni, de az nem irja ki, hogy melyik howto-t irta lamerpistike es melyiket nem.. a temaban meg nem vagyok annyira otthon, hogy magamtol rajojjek)

--
"You will have to look a long way before you find a bunch of scum-suckers more greedy, humourless and deserving of death than the suits in the music business." - Terry Pratchett

Mint tomaza is írta, fő forrásom a Fontforge tutorial :)
Amit ehhez használtam:
– a teli részeket óramutató járásával megegyezően rajzoljuk körbe, az üreseket fordítva. Persze meg lehet fordítani egy menüponttal bármelyik görbe menetét. Amíg ezt valahol megtaláltam, nagyon sokat keresgéltem.
– Spiro görbék nagyon hasznosak, könnyen lehet velük szép görbéket rajzolni, de elég kiszámíthatatlanok. Azokkal rajzoltam a betűket. Egész pontosan: a Back layeren megrajzoltam a görbét, aztán a Frontra átmásoltam, és az "Expand Stroke" menüponttal megnöveltem 30 szélesre. Utána kijelöltem, Remove Overlap, hasonlók.
– A cipzárfogakat normál Bézier módban készítettem, mert minden egyes csomóponthoz külön korrigálhatod utólag a koordinátákat (ctrl+i), ami gyakran hasznos. Spironál is lehet, de az mint fentebb írtam, picit kiszámíthatatlan számomra. Egy külön karakteren lepróbáltam, hogy fest két darab egymás mellett.

Ezek alapján elkészíthetőek a karakterek. Mindegyiket kétszer készítettem el, az alső fogon lévő betűt a karakter normál helyén, a felső részen lévőt pedig a Private Use Areában. Ezt amennyire tudom, minden tipográfus saját belátása szerint használja (bár nem vagyok biztos benne), úgyhogy én így használtam (fix: rosszul tudtam, mindegy). Az otf (meg gondolom a ttf) formátum lehetőséget nyújt arra, hogy unencoded karakterslotokat adjunk hozzá, ezt most nem használtam.
Az ott definált karaktereket átneveztem (ctrl+shift+alt+i), az "A" nevű karakter megfelelője "A.sub" lett. Egy betű egy adott stílusvariációját így szokás jelölni a betűtípuson belül. Mint például a kiskapitálist, dőltet, hasonlót.
Szerencsére ezen karakterek megrajzolása gyakorlatilag annyiból állt, hogy kimásoltam a karaktert a kész alsó fogból, beszúrtam, és elvégeztem rajta a szükséges transzformációkat (ctrl+\). Ha okosan helyeztem volna el a fogakat, erre se lett volna szükség, de olykor lusta vagyok gondolkodni.

Itt jött a trükkös rész. Kész voltak a karaktereink, most oldjuk meg, hogy váltakozva jelenik meg az alsó illetve a felső cipzárfog.
Az OpenTypeban vannak úgynevezett Lookupok. Ezek közül van olyan, ami több karakterből csinál egyet (pl. fi -> fi), másik egy karaktert cserél le egy másikra (esetünkben A-t cseréli le A.sub-ra vagy kiskapitálisra), megint másik bizonyos szabályok esetén alkalmaz egy másik csereszabályt, de egy egyéb hasonló van.

Nálam két ilyen lookup tábla van ami csinál is valamit :). Az egyik egy "Single Substitution", ami mint fent említettem, például A-t cserél le A.subra. Ezt feltöltöttem az összes lehetséges valami -> valami.sub szabállyal. Ezt megcsinálja automatikusan.
A másik tábla a szintén fentebb emlegetett kontextuális alternatíva tábla, rendes nevén "Contextual Chaining Substitution". Itt fontos, hogy a "feature" táblázatban a "calt" mellett legyen egy RQD is (Required Feature, ha a menüből választod), mert a kontextuális szabályok alapértelmezetten nem érvényesek a latinbetűs írásokra fejlettebb programok (XeTeX például) lehetőséget nyújtanak viszont a bekapcsolásukra. De nem mindegyik program fejlett ugyebár :)

A trükkös része körülbelül ennyi a dolognak, értelemszerűleg nem tudtam leírni az egészet, de talán pár kulcsszót adtam, amit a Tutorialban keresgélhetsz :) Ha valahol elakadsz, szívesen segítek, de be kell valljam, én sem értem a program által kiírt dolgok 80%-át, és a program tudásának 90%-át nem is használom ki.

Tudom, hogy elég összeszedetlen voltam, de a dolgok elég nagy részét használat közben sajátítja el az ember. Én év eleje óta használom, és 7-8 betűtípusba kezdtem bele. Néhányat be is fejeztem valamennyire.
A weboldalamon már nyitottam egy tipográfiával foglalkozó részt, oda talán kerülnek tutorialok. De egyelőre gyakorlatilag semmi sincs rajta, még a már kész munkáim se.

—-—-—
int getRandomNumber() {
	return 4;//szabályos kockadobással választva.
}		//garantáltan véletlenszerű. xkcd

Még nem próbáltam ki, ezért félve kérdezem: Ékezetes karakterek lesznek benne? Elég kevés az olyan jó minőségű, használható font, amely az ékezeteket is támogatja.

-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."

Lehetnek, ha csinálok belőle valami rendes munkát, amitől szerintem még elég távol áll :)
Elvileg kitöltöttem a teljes Latin-1 táblázatot a cipzárfogakkal, amikbe belerajzolhatom aztán a cuccost, szóval valamikor úgy gondoltam, hogy akár az is szóba jöhet – Latin-1-ben benne vannak nagyjából az összes európai nyelv betűi.

—-—-—
int getRandomNumber() {
	return 4;//szabályos kockadobással választva.
}		//garantáltan véletlenszerű. xkcd

Hopp igen. Latin Extended A. Az is benne lesz a tervek szerint :) A beletervezett karaktereket begépelve elvileg megjelenik üresen a karakterháttér.

Meg persze bővíthető, de az alapelgondolás az volt, hogy a gyakoribb ékezetes betűk legyenek benne.

Update: a betűképek készen vannak, már csak a felső állású verzióikat kell elkészíteni. Ez elég gépies.

—-—-—
int getRandomNumber() {
	return 4;//szabályos kockadobással választva.
}		//garantáltan véletlenszerű. xkcd