E-bergimizi her ay düzenli takip etmekle kalmayıp, olumlu eleştirileriyle yanımızda olduklarını gösteren tüm okuyucularımıza yeni sayımızı sunuyoruz. Bu ay, bergide uzun süredir yazıyor olmama rağmen, daha önce hiç yazmadığım "Dersler" bölümünde, sizlerle LaTeX adlı hattatlık sanatını paylaşacağız :)
LaTeX Nedir?
Birçok makalenin, kitabın, raporun, sınavın, hatta ödevin; ne kadar düzenli ve özenli göründüklerini daha önce de fark etmişsinizdir. Gerek kenarlık, paragraf, satır ayarlamalarıyla sayfa yapısı bakımından, gerekse özel simgelerin boyutları ve hizalamaları ile yazı tipi ve kalitesi bakımından olsun, bazı dökümanlar göze çok daha hoş gelir. Normal ofis programları kullanımı ile ulaşılamayacak bazı "süs"leri vardır :) İşte bu dökümantasyon yaratımı ile ilgili sistem LaTeX'tir. "Latek" olarak okunur. LaTeX sistemi, TeX dizgicilik motorunu kullanan bir makro pakettir. Yani TeX adlı dizgicilik programını temel alan komutlar bütünüdür. TeX, kitaplarının basımındaki memnun olmadığı dizgiciliği değiştirmek amacıyla, 1977 yılında Donald Knuth tarafından yazılmaya başlanmıştır. LaTeX ise, TeX formatlayıcısını baz alarak Leslie Lamport tarafından yazılmıştır. Dökümantasyon düzenlemede kullanıldığını söylemiştim, LaTeX ve TeX'in ayrımını daha iyi yapabilmek için, LaTeX'i kitap tasarımcısına, TeX'i de dizgiciye benzetebiliriz. Ama tasarım yapmak teknoloji çağında olmamıza rağmen bir programın kapasitesinin üzerinde olduğundan, LaTeX'in kullanıcıya, yani bir çeşit programlanmaya ihtiyacı var. Her programlanabilen sistem gibi, LaTeX de kullanıcıdan aldığı komutlar ile ne yapacağını anlıyor. Yalnız bu komutların bildiğimiz ofis programlarından farkı, görsel bir ortamda çalışmıyor olmanız. Yazılan komutlar derlendikten ve işlendikten sonra yazdığınızın sonuçlarını görüyorsunuz.
Haydi Başlayalım
LaTeX komutlarına geçmeden önce, işinizi kolaylaştırması için bir LaTeX editörü kullanmanızı tavsiye ediyorum. Kile, Winefish ve Led sık kullanılan LaTeX editörlerinden. LaTeX'in girdisi aslında bildiğimiz ASCII metin de olsa, editörler derleme kısmını biraz daha kolaylaştıracaktır. Editör kullanmak istemiyorsanız da, uzantısını ".tex" olarak belirlediğiniz normal bir metin belgesine yazdıklarınız LaTeX için bir emirdir :) Komut satırına "latex" yazdığınızda açılan LaTeX2e veya pdfeTeX gibi çeviricilere dosya adını verdiğinizde, ".tex" uzantılı dosyanızın görselleştirilmiş haline karşılık gelen ".div" uzantılı dosya yaratılmış olacaktır; komutları doğru yazdığınız sürece. İşte bu noktada, hatalarınızı çok daha kolayca fark edebileceğiniz bir ortam oluşturuyor LaTeX editörleri.
Editörümüzü de açtıysak, artık başlamaya hazırız.
İlk önce bir belge oluşturalım. Bunun için belgenin içindekilerden önce, belgenin tipi ve formatı önemli. Bu yüzden her LaTeX çevirici (işleyici) LaTeX dosyasının alttaki komutla başlamasını ister:
\documentclass[a4paper,12pt,titlepage]{article}
Parantezlerin hangilerinin ne işe yaradığını daha sonra göreceğiz; fakat bu belgenin doğuşunu sağlayan komut için bunları bir inceleyelim. Köşeli parantezlerin içinde documentclass komutunun seçenekleri, kıvırcık parantezin içinde ise yaratılan dökümanın türü vardır. Örnekte makale (article) olan bu tür; rapor (report), kitap (book), gelişmiş makale (proc), minimal (en yalın hali) ve slides (yansı) olabilir. Seçeneklerde ise, basım kağıdının boyutu, yazı fontunun boyutu ve başlığın ayrı bir sayfada olması gibi özellikleri belirtilmiştir. Bunlara daha birçok özellik eklenebilir.
Belgenin formatından sonra, dosyaya eklenme sırası gelen diğer bir komut \userpackages'dır. Bu komut, LaTeX'te her zaman ekli olmayan, özel font paketleri, dil desteği paketleri, grafik paketleri gibi bazı paketleri eklemeye yarar. Aşağıdaki komutlarda, matematiksel formülleri yazmayı kolaylaştıran amsmath paketi ve resim eklemeyi sağlayan graphicx paketi eklenmiştir. Örnekte belirtilmemiş olsa da, aynı \documentclass'ın formatında, bu komutlar da seçenek alabilmektedir.
\usepackage{graphicx}
\usepackage{amsmath}
Ön hazırlığımızı bitirip, görsel bir döküman elde etmemize çok az kaldı. Örneğimizi makale olarak seçtiğimiz ve başlık sayfamız da olduğu için, bu sayfayı hazırlamamız gerek önce. Evet, dökümanın gövdesine girmeden başlık sayfasını oluşturmak önemli bir nokta. Bunun için:
\author{Ilke Demir}
\title{LaTeX Uzerine Bir Deneme\\E-bergi\\ODTU Bilgisayar Toplulugu}
\date{01.12.2008}
şeklinde yazdığımız komutlar birşeyler ifade ediyordur sanırım :) \author{} yazar, \title{} başlık ve \date{} tarih komutları. Yalnız orada göze batan bir şey var sanki, çift ters bölüler () neden orada? Çünkü LaTeX'te satır atlamak için entera basmıyoruz, \newline komutu ile aynı görevde olan "" işareti koyuyoruz. LaTeX tüm boşlukları tek boşluk olarak görecek şekilde yapılmış. "Boşluk koymam" => "Boşluk koymam" şeklinde işleniyor. Ayrıca \newline komutunun yeni satıra geçmesi gibi, \newpage ise yeni bir sayfaya geçiyor.
Artık dökümanımızı yaratabiliriz. Döküman üzerindeki bilgileri girmemiz, dökümana başlayabilmemiz ile mümkün. Bunun için:
\begin{document}
\maketitle
\end{document}
komutlarını kullanıyoruz. \begin{x} ve onu tamamlayan \end{x} komutları LaTeX'te en çok kullanılan komutlar; çünkü dökümanda başka bir ortamı (x ortamına) temsil ediyor, sınırlıyor. Mesela şu an formatlama bölümünden, belgenin özüne geçtik. Başka bir ortam örneği verirsek, \begin{quote} biri birşeyler demiş \end{quote} şeklinde belirtilen ortam, "biri birşeyler demiş" cümlesini, esas metinden bağımsız olarak, alıntı formatında göstermemizi sağlar. Çeşitli ortamları daha sonra tanıtacağız. document ortamına özgü olan ise, metnin gövdesini sınırladığı için, \end{document}'dan sonra ne yazarsak yazalım, LaTeX dönüştürücülerinin bunu görmemesi. Yani bundan sonra tüm yazdıklarımızın bu ortam sınırları içerisinde dahil olacağını belirterek belgeyi noktalıyoruz. Aradaki \maketitle komutu ise, seçeneği ve türü olmayan bir komut, bilgilerini dökümana başlamadan önce bildirdiğimiz kapak sayfasını hazırlıyor.
Kapağımız Hazır :)
Başta söylediğim gibi özel bir LaTeX editörü kullanıyorsak "build" veya "oluştur" butonunu kullanarak, düz metin halinde yazıyorsak da "kapak.tex" dosyamızı, konsolda
ilke@penguen ~ $ latex kapak.tex
yazarak LaTeX2e derleyicisinin çalışmasını sağlayıp; dosyamızı, yani komutlarımızı görselleştiriyoruz. Editör kullanıyorsak oluşan dosya zaten bir dvi görüntüleyicide açılacaktır. Kullandığınız programın dvi2pdf özelliği varsa bu dvi dosyasını pdfe çevirip öyle de görüntüleyebilirsiniz. Terminalde iseniz de, LaTeX2e kapak.dvi adında (tex dosyanızla aynı isimde) bir dosya oluşturduğu için, bunu
ilke@penguen ~ $ xdvi kapak.div
ile görüntüleyebilirsiniz. Solda görüldüğü gibi, birçok kitaba taş çıkaran bir kapağımız oldu! Ufak bir not düşelim, makale dökümanımızda \documentclass komutuna "titlepage" özelliğini vermeseydik, bundan sonra yazacaklarımız direk başlığın altında çıkacaktı, ancak şimdi yeni bi sayfada çıkıyor. Kitap ve rapor gibi döküman sınıflarının ise böyle bir özelliğe ihitiyacı yok; çünkü bu sınıfların varsayılan hali bu şekilde. Farkındaysanız ne yazıları hizalamakla, ne fontlarla, ne de herhangi bir formatlamayla uğraşmadık, verdiğimiz birkaç zaruri komut dışında. İşte LaTeX'i bu kadar kullanışlı ve yaygın yapan da bu kolaylıkları. Konularda ilerledikçe bunların daha çok farkına varacağız.
Bu aylık LaTeX hakkında kısa bir önbilgi ve kapak hazırlama pratiği ile başladığımız LaTeX dersleri dizimizin ikincisinde; dökümanların bölümlendirilmesi, içerik hazırlanması ve çeşitli ortam kullanımları ile devam edeceğiz. 2009'da da bomba gibi bir sayıyla buluşmak üzere.. =)