30 Aralık 2014 Salı

KökTörükçe Fontlarım

Her hakkı saklıdır.
Soŋ Güncelleme: 13/7/2025



1988 yılından bu yana KökTörük abacasıyla ilgileniyorum. Hep elle yazdığım KökTörükçeyi bilgisayarda da yazma isteğiyle, 1996, 2004, 2007, 2015, 2016, 2017, 2019, 2021 ve 2025 yıllarında olmak üzere dokuz ayrı KökTörükçe font yaptım. Daha soŋraları da defalarca bu fontları daha iyi ve kolay kullanılabilecek şekilde güncelledim. KökTörükçe severlere ücretsiz sunuyorum.

(Eski yöŋtem, donanımsal klavyeden harfler girilebilir ama harfler soldan sağa ilerler)

(Yeŋi yöŋtem, sanal klavyeden harfler girilebilir ve harfler sağdan sola ilerler)
  1. 1996 fontu: Radloff'uŋ fontundan esinlenerek 1996 yılında yaptım; sanki kesik uçlu kalemle yazılmış hissini vėrdim. Bu fontu bilgisayarda tasarlamak tam bir ayımı almıştı. YAPILMIŞ İLK KÖKTÖRÜKÇE FONTTUR. Geçen yaklaşık 30 yıl içerisinde bu font internette bayağı yayılmış, ve şu aŋ başkaları tarafından sıkça kullanıldığını, resmler, duvar kağıdları, döğmeler, takılar, tişörtler, kupalar vs... yapıldığını görüyorum.
  2. 2004 fontu: Rahat okunabilecek kalın Arial fontuna beŋzetmeğe çalıştım. Bu fontuŋ da bilgisayarda tasarımı 2004 yılında bir ayımı almıştı. Devamında 2022’lere kadar üzerinde düzeltmeler yaptım. Fonttaki üsükler, Köl Tigin ve Bilge Kagan yazıtlarındaki üsükleriŋ kıvrımlarını ve yüksekliklerini tamamen taşırlar.
  3. 2007 fontu: Hatt san'atıyla eskiden beri meşgul olduğum Çince ve Japonca'da kullanılan fırça hattına (Kai-Şu) beŋzetmeğe çalıştım. 2007 yılında tasarlamıştım. Çizimlerimi fonta çevirmede Ali Uluç yardımcı oldu.
  4. 2015 fontu: "Kesik Çentik Hattı" adıyla 2015 yılında tasarladığım ama bilgisayara 2020 yılında aktardığım bir font. Detaylı bilgi: https://kok-turk.blogspot.com/2016/08/gokturkce-hatt-calsmam-2008.html. Çizimlerimi fonta çevirmede Osman Alkan yardımcı oldu.
  5. 2016 fontu: "Koşan Yazı Hattı" adıyla 2016 yılında tasarladığım ama bilgisayara 2020 yılında aktardığım bir font. KökTörükçe'niŋ el yazısı diyebiliriz. Hızlı yazılır ve üsük içerisinde kalem kalkmaz. Detaylı bilgi: https://kok-turk.blogspot.com/2016/08/gokturkce-el-yazm-2016.html . Çizimlerimi fonta çevirmede Osman Alkan yardımcı oldu.
  6. 2017 fontu: "Ağır Fırça Hattı". Tasarım öyküsü 24 yılımı (1993 - 2017), bilgisayara aktarılması 8 ayımı alan bir font. Çince ve Japonca'da kullanılan fırça attına (Kai-Şu) beŋzetmeğe çalıştım. 2007'ye göre daha estetiktir. Detaylı bilgi: https://kok-turk.blogspot.com/2015/07/gokturkce-hatt-calsmas.html .
  7. 2019 fontu: 2004 yılında yaptığım fontuŋ ince halidir. Fonttaki üsükler, Köl Tigin ve Bilge Kagan yazıtlarındaki üsükleriŋ kıvrımlarını ve yüksekliklerini tamamen taşırlar.
  8. 2021 fontu: "Yumuşak Çentik Hattı", Kesik Çentik Hattınıŋ çentiğiniŋ sağdan yumuşatılmış hâli. Detaylı bilgi: https://www.kok-turk.blogspot.com/2016/08/gokturkce-hatt-calsmam-2008.html . Çizimlerimi fonta çevirmede Osman Alkan yardımcı oldu.
  9. 2025 fontu: 2019 yılında yaptığım fontuŋ ince halidir. Fonttaki üsükler, Köl Tigin ve Bilge Kagan yazıtlarındaki üsükleriŋ kıvrımlarını ve yüksekliklerini tamamen taşırlar.
"Tuğrul Çavdar 2007" Fontunuŋ İlk Tasarımı (1993):
Soŋ Tasarım (2007)

"Tuğrul Çavdar 2015" Fontunuŋ Tasarımı:

"Tuğrul Çavdar 2016" Fontunuŋ Tasarımı:

"Tuğrul Çavdar 2017" Fontunuŋ Tasarımı:


"Tuğrul Çavdar 2021" Fontunuŋ İlk Tasarımı (1993):
Soŋ Tasarım (2007)


Bilge Kagan Yazıtı


Сергей Ефимович Малов'dan (1951)
 
 
 
 
 
Сергей Ефимович Малов, Памятники древнетюркской письменности Монголии и Киргизии. М. Л., 1959.
Sergey Yefimoviç Malov, Moğolistan ve Kırgızistan'da Eski Türk Yazıtları, Moskova-Leningrad, 1959.

Eski Uygur Ürüŋ Başı ve Yazısı

Her hakkı saklıdır.

KökTürükleri 745'de yıkan Uygurlar 840'lara kadar KökTürük yazısını kullanmağa devam étmişlerdi. Daha soŋra, yatay yazılan Soğd yazısını alıp değiştirerek 850'lerde dikey şekilde kullanmağa başladılar. Araştırmalarımda gördüğüm Uygur ürüŋ baş tablolarında üsügler (harfler) o dönemiŋ hattı kullanılarak hazırlandığından aŋlaşılmakta zordu. O üsügleri matbaa harfleriyle hazırladım.  Araştırmalarımda bulabildiğim çoğu tablolar Uygur üsügleriniŋ İngilizce transliterasyonunu vėrdiği için Türkçe ses karşılıklarını bulmakta başlarda zorlandım. Moŋgolistan'da ve Turfan bölgesinde yıllarını geçirmiş, eski metinleri okumuş deŋeyimli akademisyen Mehmed Levend Kaya'nıŋ da yardımıyla Türkçe ses karşılıklarını içeren aşağıdaki tabloyu hazırlayabildim.

Uygur Ürün Baş Üsük Sıralaması / Mehmed Levend Kaya
a/e, ı/i, o/u, ö/ü 
na/ne, nı/ni, no/nu, nö/nü
ŋa/ŋe, ŋı/ŋi, ŋo/ŋu, ŋö/ŋü
ka, kı, ko/ku 
ke, ki, kö/kü 
ga, gı, go/gu 
ge, gi, gö/gü 
ba/be, bı/bi, bo/bu, bö/bü 
pa/pe, pı/pi, po/pu, pö/pü 
sa/se, sı/si, so/su, sö/sü 
şa/şe, şı/şi, şo/şu, şö/şü 
ta/te, tı/ti, to/tu, tö/tü 
da/de, dı/di, do/du, dö/dü 
la/le, lı/li, lo/lu, lö/lü 
ma/me, mı/mi, mo/mu, mö/mü 
ça/çe, çı/çi, ço/çu, çö/çü 
ca/ce, cı/ci, co/cu, cö/cü
za/ze, zı/zi, zo/zu, zö/zü 
ya/ye, yı/yi, yo/yu, yö/yü 
ra/re, rı/ri, ro/ru, rö/rü
wa/we, wı/wi, wo/wu, wö/wü
Bundan soŋra kapalı heceler başlıyor. Onlara örnek olarak a/e sesi alınırsa 
an/en, aŋ/eŋ, ak, ek, ag, eg, ab/eb, ap/ep, as/es, aş/eş, at/et, ad/ed, al/el, am/em, aç/eç, ac/ec, ay/ey, ar/er 
Bu soŋ dizge yukarıdaki tüm heceler için türetilir. Örnek olarak mö/mü sesi alınırsa
mön/mün, möŋ/müŋ, mök/mük, mög/müg, möb/müb, möp/müp, mös/müs, möş/müş, möt/müt, möd/müd, möl/mül, möm/müm, möç/müç, möc/müc, möy/müy, mör/mür gibi.

Örnek Uygur Yazıları:

Tunyukuk Robot Kolu

Her hakkı saklıdır.

Yüksek lisans tezimde robot kolu yapmıştım (1994-1997). Çalışmanıŋ mekanik, elektronik ve yazılım ayağı vardı. O zamanlar nesneye yöŋelik programlama dilleri yoktu. MS-DOS altında çalışan ilkel derleyicilerde kod yazıyorduk. Mekanik ve elektronik yapısını tasarlayıp gerçekledikten soŋra, robotuŋ bilgisayardaki arayüzünde tüm ikonları, bevelleri, panelleri, gölgelendirmeleri  kendim tasarlamıştım. Arayüzde KökTörükçe de kullanmak istedim ve herbir KökTörük üsüğünü piksel piksel bir başlık (header) dosyasında tasarladım ve robot kolunuŋ kumanda arayüzünde kullandım. Üsükleriŋ tasarımı iki haftamı almıştı. Artık Turbo C'de KökTörükçe yazabiliyordum (1995). Tüm koduŋ sadece KökTörük üsüklerinden sorumlu kısmı KOKTURK.H başlık dosyasınıŋ içeriğini resmiŋ altında vėriyorum.


KOKTURK.H (1995)
/* This header file was prepared by Ulduz Tu§rul €AVDAR to use the Alphabet of K”ktrk in C or C++ applications.  May 2, 1996

     CHARACTER TABLE
  ---------------------------------------------------------------------
  a =   a,e      i =   ,i      o =   o,u      F =   ”,      Y =  (a)y
  y =  (e)y      B =  (a)b      b =  (e)b      c =   ‡,c      f = i‡,ic
  D =  (a)d      d =  (e)d      G =  (a)g      g =  (e)g      k =  (e)k
  q = ”k,k      K =  (a)k      w =    k      W = ok,uk      L =  (a)l
  l =  (e)l      x = lt,ld      m =     m      N =  (a)n      n =  (e)n
  ¤ =    ng      X =    ny      Q = n‡,nc      h = nd,nt      p =     p
  R =  (a)r      r =  (e)r      S =  (a)s      s =  (e)s      v =     Ÿ
  T =  (a)t      t =  (e)t      z =     z      V =     :
  1 =     1      2 =     2      3 =     3      4 =     4      5 =     5
  6 =     6      7 =     7      8 =     8      9 =     9      0 =     0
  ! =     !      + =     +      / =     /      = =     =      - =     -
  . =     .      % =     %      { =     }      } =     {      * =     *
  ( =     )      ) =     (      : =     :      @ =     @      ? =(inv)?
  ; =(inv);      , =(inv),      \"=     "

*/

int x,y,b;

void kharf(char code)
  {
  switch (code)
    {
    case 'a':line(x,y+3,x-3,y);                    //  a,e
     line(x-3,y,x-3,y+10);
     line(x-3,y+10,x-6,y+7);
     x-=9;
     break;
    case 'i':line(x,y+3,x-3,y);                    //  ,i
     line(x-3,y,x-3,y+10);
     x-=6;
     break;
    case 'o':line(x-5,y,x,y+5);                    //  o,u
     line(x,y+5,x-5,y+10);
     x-=8;
     break;
    case 'F':line(x,y,x,y+5);                      //  ”,
     line(x,y+5,x-5,y);
     line(x-5,y,x-5,y+10);
     x-=8;
     break;
    case 'Y':line(x-5,y,x-5,y+10);                 //  (a)y
     arc(x-5,y+5,270,90,5);
     x-=8;
     break;
    case 'y':circle(x-3,y+3,3);                    //  (e)y
     arc(x-5,y+5,270,0,5);
     x-=8;
     break;
    case 'B':arc(x-3,y+7,135,90,3);                //  (a)b
     arc(x,y+1,160,230,4);
     x-=9;
     break;
    case 'b':line(x-6,y+10,x,y+3);                 //  (e)b
     line(x,y+3,x-3,y);
     line(x-3,y,x-6,y+3);
     line(x-6,y+3,x,y+10);
     x-=9;
     break;
    case 'c':line(x,y+10,x-3,y+6);                 //  ‡,c
     line(x-3,y+6,x-6,y+10);
     line(x-3,y+6,x-3,y);
     x-=9;
     break;
    case 'f':line(x-3,y+10,x-3,y);                 //  i‡,ic
     line(x-3,y+5,x,y);
     line(x-3,y+5,x-6,y);
     x-=9;
     break;
    case 'D':line(x-3,y,x,y+3);                    //  (a)d
     line(x,y+3,x-2,y+5);
     line(x-2,y+5,x,y+7);
     line(x,y+7,x-3,y+10);
     line(x-6,y,x-3,y+3);
     line(x-3,y+3,x-5,y+5);
     line(x-5,y+5,x-3,y+7);
     line(x-3,y+7,x-6,y+10);
     x-=9;
     break;
    case 'd':line(x,y,x-6,y+10);                   //  (e)d
     line(x-6,y,x,y+10);
     x-=9;
     break;
    case 'G':line(x-3,y+6,x-3,y+10);               //  (a)g
     arc(x,y+2,90,270,2);
     arc(x-6,y+2,270,90,2);
     x-=9;
     break;
    case 'g':line(x-4,y,x-6,y+6);                  //  (e)g
     line(x-4,y,x,y+3);
     line(x-4,y+4,x,y+7);
     arc(x-1,y+5,180,270,5);
     x-=9;
     break;
    case 'k':line(x-4,y,x,y+2);                    //  (e)k
     line(x,y+2,x,y+10);
     line(x-4,y+3,x,y+5);
     x-=7;
     break;
    case 'q':line(x-5,y,x-5,y+10);                 //  ”k,k
     line(x-5,y,x,y);
     line(x,y,x-1,y+3);
     line(x-5,y+6,x,y+6);
//      line(x,y+6,x,y+10);
     arc(x+2,y+8,135,240,3);
     x-=8;
     break;
    case 'K':line(x,y,x,y+10);                     //  (a)k
     line(x,y+6,x-4,y+4);
     arc(x-14,y+5,330,0,10);
     x-=8;
     break;
    case 'w':line(x,y,x,y+10);                     //  k
     line(x,y,x-5,y+5);
     line(x-5,y+5,x,y+10);
     x-=8;
     break;
    case 'W':line(x-3,y,x-3,y+10);                 //  ok,uk
     line(x-3,y+10,x,y+6);
     line(x-3,y+10,x-6,y+6);
     x-=9;
     break;
    case 'L':line(x,y,x,y+10);                     //  (a)l
     line(x,y+10,x-4,y+6);
     x-=7;
     break;
    case 'l':line(x,y,x-3,y+5);                    //  (e)l
     line(x-3,y+5,x-6,y);
     line(x-3,y+5,x-3,y+10);
     x-=9;
     break;
    case 'x':line(x,y,x,y+10);                     //  lt,ld
     line(x-8,y,x-8,y+10);
     line(x,y,x-4,y+5);
     line(x-4,y+5,x-8,y);
     x-=11;
     break;
    case 'm':line(x-5,y,x,y+5);                    //  m
     line(x,y+5,x-5,y+10);
     line(x-8,y+3,x-3,y+8);
     line(x-8,y+7,x-3,y+2);
     x-=11;
     break;
    case 'N':arc(x-5,y+5,290,80,5);                //  (a)n
     x-=8;
     break;
    case 'n':line(x,y,x,y+6);                      //  (e)n
     line(x,y+6,x-4,y+3);
     line(x-4,y,x-4,y+10);
     line(x-4,y+7,x-8,y+4);
     line(x-8,y+4,x-8,y+10);
     x-=11;
     break;
    case '¤':line(x,y,x,y+10);                     //  ¤
     line(x,y+6,x-4,y+2);
     x-=7;
     break;
    case 'X':arc(x-3,y+3,270,90,3);                //  ny
     arc(x-3,y+7,270,90,3);
     x-=6;
     break;
    case 'Q':line(x-3,y,x,y+3);                    //  n‡,nc
     line(x,y+3,x-2,y+5);
     line(x-2,y+5,x,y+7);
     line(x,y+7,x-3,y+10);
     x-=6;
     break;
    case 'h':arc(x-5,y+5,125,55,5);                //  nd,nt
     putpixel(x-3,y+4,getcolor());
     putpixel(x-7,y+4,getcolor());
     putpixel(x-5,y+6,getcolor());
     x-=13;
     break;
    case 'p':line(x,y,x,y+10);                     //  p
     line(x,y,x-3,y+3);
     x-=6;
     break;
    case 'R':line(x,y,x,y+10);                     //  (a)r
     line(x,y+4,x-5,y+6);
     arc(x-12,y+2,330,10,8);
     x-=8;
     break;
    case 'r':line(x,y+3,x-2,y);                    //  (e)r
     line(x-2,y,x-4,y+3);
     line(x-4,y+3,x-6,y);
     line(x-6,y,x-8,y+3);
     line(x-4,y+3,x-4,y+10);
     x-=11;
     break;
    case 'S':arc(x,y+2,90,250,2);                  //  (a)s
     arc(x-3,y+7,270,60,3);
     arc(x,y+1,160,270,5);
     x-=8;
     break;
    case 's':line(x,y,x,y+10);                     //  (e)s
     x-=3;
     break;
    case 'v':line(x,y+4,x-6,y+4);                  //  Ÿ
     line(x-3,y+4,x-1,y);
     line(x-5,y,x-3,y+4);
     line(x-3,y+4,x-3,y+10);
     x-=9;
     break;
    case 'T':line(x-3,y,x,y+3);                    //  (a)t
     line(x-3,y,x-6,y+3);
     line(x-3,y,x-3,y+4);
     line(x-3,y+4,x,y+7);
     line(x-3,y+4,x-6,y+7);
     line(x-6,y+7,x-3,y+10);
     line(x,y+7,x-3,y+10);
     x-=9;
     break;
    case 't':line(x-5,y,x-5,y+10);                 //  (e)t
     line(x-5,y+6,x-1,y+4);
     arc(x+9,y+5,180,210,10);
     x-=8;
     break;
    case 'z':line(x-4,y,x-4,y+10);                 //  z
     line(x,y,x,y+5);
     line(x,y+5,x-8,y+5);
     line(x-8,y+5,x-8,y+10);
     x-=11;
     break;
    case 'V':putpixel(x-1,y+2,getcolor());         //  word separator
     putpixel(x-1,y+8,getcolor());
     x-=5;
     break;
    case '!':line(x-3,y,x-3,y+7);                  //  interjection
     putpixel(x-3,y+10,getcolor());
     line(x-2,y,x-2,y+7);
     putpixel(x-2,y+10,getcolor());
     x-=12;
     break;
    case '+':line(x-1,y+5,x-7,y+5);                //  plus
     line(x-4,y+2,x-4,y+8);
     x-=11;
     break;
    case '/':line(x-1,y,x-6,y+10);                 //  slash
     x-=11;
     break;
    case '=':line(x-1,y+4,x-6,y+4);                //  sign of equality
     line(x-1,y+6,x-6,y+6);
     x-=10;
     break;
    case '-':line(x-1,y+5,x-7,y+5);                //  minus
     x-=11;
     break;
    case '"':line(x-1,y,x-1,y+3);                  //  double quotation mark
     line(x-3,y,x-3,y+3);
     x-=7;
     break;
    case '?':arc(x-2,y+3,30,250,3);                //  inverse question mark
     arc(x-3,y+3,30,250,3);
     line(x-3,y+6,x-3,y+7);
     line(x-2,y+6,x-2,y+7);
     putpixel(x-3,y+10,getcolor());
     putpixel(x-2,y+10,getcolor());
     x-=12;
     break;
    case ';':outtextxy(x,y-5,":");                 //  inverse semicolon
     line(x-3,y+3,x-2,y+1);
     x-=12;
     break;
    case ',':line(x-3,y+6,x-2,y+6);                //  inverse comma
     line(x-3,y+5,x-2,y+3);
     x-=12;
     break;
    case '0':outtextxy(x-2,y-5,"0");               //  zero
     x-=9;
     break;
    case '1':outtextxy(x-2,y-5,"1");               //  one
     x-=9;
     break;
    case '2':outtextxy(x-2,y-5,"2");               //  two
     x-=9;
     break;
    case '3':outtextxy(x-2,y-5,"3");               //  three
     x-=9;
     break;
    case '4':outtextxy(x-2,y-5,"4");               //  four
     x-=9;
     break;
    case '5':outtextxy(x-2,y-5,"5");               //  five
     x-=9;
     break;
    case '6':outtextxy(x-2,y-5,"6");               //  six
     x-=9;
     break;
    case '7':outtextxy(x-2,y-5,"7");               //  seven
     x-=9;
     break;
    case '8':outtextxy(x-2,y-5,"8");               //  eight
     x-=9;
     break;
    case '9':outtextxy(x-2,y-5,"9");               //  nine
     x-=9;
     break;
    case '.':outtextxy(x-3,y-5,".");               //  full stop
     x-=12;
     break;
    case '%':outtextxy(x-6,y-5,"%");               //  per cent
     x-=15;
     break;
    case '}':outtextxy(x-7,y-5,"{");               //  close curly bracket
     x-=13;
     break;
    case ')':outtextxy(x-5,y-5,"(");               //  close parenthesis
     x-=11;
     break;
    case '(':outtextxy(x-6,y-5,")");               //  open parenthesis
     x-=11;
     break;
    case '{':outtextxy(x-8,y-5,"}");               //  open curly bracket
     x-=13;
     break;
    case '*':outtextxy(x-7,y-5,"*");               //  star
     x-=11;
     break;
    case ':':outtextxy(x,y-5,":");                 //  colon
     x-=12;
     break;
    case ' ':outtextxy(x-9,y-5," ");               //  space
     x-=12;
     break;
    case '@':outtextxy(x-2,y-5,"@");               //  at
     x-=9;
     break;
    }
  }

void ulduz(char text[80],int xx,int yy,int color)
  {
  struct textsettingstype textinfo;

  gettextsettings(&textinfo);
  setcolor(color);
  settextstyle(2,0,6);
  settextjustify(1,2);
  x=xx;
  y=yy;
  b=0;
  do
    {
    kharf(text[b]);
    b++;
    }
  while (b<strlen(text));
  settextstyle(textinfo.font,textinfo.direction,textinfo.charsize);
  settextjustify(textinfo.horiz,textinfo.vert);
  }

Tunyukuk Yazıtı

Bilge Kagan, Köl Tigin aŋıtınıŋ içeriğini Köl Tigin'iŋ vefatından soŋra yazmış ve Köl Tigin'iŋ yeğeni Yollıg Tigin'e taşa kazdırarak Köl Tigin aŋıtını 1 Ağustos 732'de diktirmiştir. Soŋra Bilge Kagan kendi aŋıtınıŋ içeriğini yazmış; kendisiniŋ 51 yaşındayken (25 Kasım 734'te) zehirlenmesinden soŋra Yollıg Tigin, yazısını yine taşa kazımış, Bilge Kagan aŋıtı haline getirmiş ve 22 Haziran 735'de dikmiştir.3.75 x 1.22 x 1.32 m ebadındadır. Her iki yazıt da Orhun ırmağı ve Koşo Çaydam civarındadır ve aralarında yaklaşık bir km mesafe vardır.
Tonyukuk aŋıtı ise bu aŋıtlardan öŋce 725 yılında dikilmiştir. Bilge Kagan'ıŋ kayınpederi olan Tonyukuk 60 yaşlarında (Bilge Kagan'ıŋ saltanatınıŋ başlangıcına denk gelir) kendi aŋıtınıŋ dikileceği Yukarı Tola vadisinde inzivaya çekilerek hatıralarını yazmıştır. 725 yılında vefatından öŋce bu hatıralar daha soŋra taşa kazınarak abideye dönüştürülmüştür.

Birinci Taş
Batı yüzü:

Doğu yüzü:

Güney yüzü:

Kuzey yüzü: