20 Kasım 2010

LaTeX ile Türkçe Dokümanlar Hazırlamak

LaTeX ile birlikte bazı paketler kullanıldığında Türkçe dokümanları kolayca hazırlayabilirsiniz. Bu paketler, inputenc, fontenc ve babel paketleridir. Bu paketlerin hangi seçeneklerle birlikte kullanılacağı aşağıda gösterilmiştir.
\documentclass{article}
  \usepackage[turkish]{babel}
  \usepackage[latin5]{inputenc}
  \usepackage[T1]{fontenc}
\begin{document}
  Şemsi paşa pasajında sesi büzüşesiceler.
\end{document}


babel paketi LaTeX in heceleme, yazım kuralları gibi birçok ayarının belirtilen dile göre yapılmasını sağlar. Bu paket turkish seçeneği ile birlikte kullanıldığında içindekiler, şekiller, tablolar gibi dizinlerin başlıkları ve kaynaklar, indeks vb. başlıklar Türkçeleştirilir. Ayrıca, Türkçe yazım kurallarına uygun olarak bazı özel karakterlerden önce veya sonra ilave boşluklar da LaTeX tarafından kendiliğinden eklenir.

inputenc paketi, .tex kaynak dosyasında Türkçe karakterlerin kullanılmasına olanak verir. Kullandığınız işletim sistemine göre,  latin5 seçeneğini ya da utf8 seçeneğini kullanabilirsiniz.

fontenc paketi ise çıktının ne şekilde oluşturulacağını LaTeX e bildirir. Türkçe de dahil olmak üzere çoğu Avrupa ülkesinde kullanılan noktalı harfler T1 karakter seti içerisinde yer alır.

Eğer Türkçe karakterleri inputenc paketi olmaksızın kullanmak istiyorsanız bu karakterlerin aşağıda verilen karşılıklarını kullanabilirsiniz.
 ç {\c{c}}  Ç {\c{C}}
 ı {\i}     İ {\.I}
 ğ {\u{g}}  Ğ {\u{G}}
 ö {\"{o}}  Ö {\"{O}}
 ş {\c{s}}  Ş {\c{S}}
 ü {\"{u}}  Ü {\"{U}}


Eğer babel paketi ile elde edilen Türkçe karşılıkları beğenmezseniz kendi ifadelerinizi \renewcommand komutu yardımıyla aşağıdaki gibi kullanabilirsiniz.

  \renewcommand{\tablename}{Tablo}
  \renewcommand{\figurename}{Şekil}
  \renewcommand{\indexname}{Dizin}
  \renewcommand{\listfigurename}{Şekiller}
  \renewcommand{\listtablename}{Tablolar}
  \renewcommand{\contentsname}{İçindekiler}


babel paketi işleri oldukça kolaylaştırmasına karşın çoğu zaman da istenmeyen hataların ortaya çıkmasına neden olur. Örneğin, graphicx paketinin

\includegraphics[height=0.5\textwidth,angle=-90]{sekil.eps}

komutunu kullanarak bir resim dosyasını dokümanımıza eklediğimizi düşünelim. Normalde herhangi bir hata üretmeyecek bu komut babel paketi kullanıldığında hata üretecektir. Bunun nedeni babel paketi ile = işaretinin değiştirilip, bu işarete boşluk karakterinin de eklenmesidir. Bunun üstesinden gelebilmek için ise \begin{document} komutundan hemen sonra ya da hata verecek komuttan hemen önce \shorthandoff{=} komutu kullanılmalıdır. Daha sonra \shorthandon{=} komutu ile tekrar = işareti eski şekline geri döndürülebilir.

Son olarak kullandığınız yazılımın da ayarlarının Türkçeye uygun şekilde yapılması gerekir. Örneğin MiKTeX için ayarlar bölümünde Türkçe seçeneğinin seçili olduğundan emin olunuz.



Ne yazık ki tüm bu ayarlara rağmen LaTeX bazı kelimeleri doğru heceleyemeyebilir. Bu durumda kelimeleri elle (ör\-ne\-ğin böy\-le) ya da  \hyphenation komutunu kullanarak (\hyphenation{ör-ne-ğin böy-le}) hecelemekten başka çare yoktur.

8 yorum:

  1. Tesekkur ederim `\usepackage[T1]{fontenc}` satirina ihtiyacim varmis hecelemenin dogru calismasi icin.

    YanıtlaSil
  2. latexte tez yazıyorum takıldığım bazı yerler var yandımcı olursan menmun olurum.
    1-sayfa numaralandırmasını sayfanın üstüne ortalı bir şekilde nasıl yazarım.
    2-teorem ispatlarında kanıt otomatik olarak geliyor onu paragraf girintisiz nasıl yazarım.
    3-içindekiler kısmını paragraf girintisiz nasıl yazarım.

    YanıtlaSil
  3. \noindent yazip devam edersen paragraf giritisi olmaz

    YanıtlaSil
  4. Hocam merhabalar,
    Kaynakça'da et.al. yerine diğerlerinin çıkması nasıl sağlanabilir?
    Bu arada bu çalışmanız için çok teşekkürler

    YanıtlaSil
  5. merhaba,
    \noindent{\bf Kaynaklar:}
    burada kaynakları yazmak istiyorum ama
    \begin{thebibliography}{99}
    bunu kullandığımda kendi başlığını atıyor. Acaba bibitem-leri yazarken "references" başlığını atmadan "kaynaklar" dan sonra sıralayabilmek için ne yapmalıyım.

    YanıtlaSil
  6. Sorunlu durumlarda bazen utfx şeklinde kullanmak daha işe yarayabiliyor.
    \usepackage[utf8x]{inputenc} % Allow the usage of umlauts and other non-ASCII characters
    Tüm kardeşlere başarılar,
    Siteyi yayınlayan değerli Emrah Akyar'a teşekkürler.
    Bedri Doğan Emir

    YanıtlaSil
  7. merhabalar,
    Ben \section{} kısmını'kesim 1,kesim 2 ... ' gidecek şekilde yazmak istiyorum.Bunu nasıl yapabilirim?

    YanıtlaSil
  8. Türkçe ile ilgili herşeye değinmişsiniz. Teşekkürler. Türkçe imla denetimi için şöyle bir katkı yaptım: https://latexyazim.blogspot.com.tr/2017/11/latex-ile-turkce-imla-denetimi.html

    YanıtlaSil