Önceki yazıda LaTeX kullanmanın avantajlarından ve zorluklarından bahsetmiştim, MS Word gibi WYSIWYG programlar ile karşılaştırıp tavsiyelerimi yazmıştım. Bu yazıda Pandoc yazılımı üzerine konuşacağız. Pandoc’un da yardımıyla LaTeX’in avantajlarını alıp zorluklarını biraz geri de bırakabileceğiz. Pandoc’a geçmeden önce biraz altyapı oluşturmak adına önce Markdown’dan bahsetsem iyi olacak. Başlayalım…
Markdown
“Markdown nedir?” derseniz, “Dünyanın en kolay markup dilidir.” diyebilirim.
“Markup dili nedir?” derseniz, LaTeX, markdown ya da HTML bunların hepsi markup dili.
Bir yazı yazıyoruz ve bu yazının biçemini bu dil çerçevesinde belirliyoruz.
Mesela, kalın yazı için, markdown **kalın**
, html <b>kalın</b>
LaTeX \textbf {kalın}
gibi…
HTML web sayfaları için bir zorunluluk, LaTeX akademide yaygın, Markdown genel olarak not alma işi için ve geliştiricler arasında yaygın. Örnek vermek gerekirse, ben uzun zamandır markdown kullanarak not alıyorum. Bu siteye blog postlarını markdown olarak yazıyorum, sonra bir uygulama (static site generator) HTML sayfalarına dönüştürüyor. Github da README dosyaları için markdown kullanılıyor veya Reddit de markdown ile yorum ve post yazma seçeneği var. Slack, Jira, Whatsapp bile direkt markdown desteklemese bile bazı özelliklerini ya da benzer özellikleri bir şekilde implemente etmiş durumda. Mesela bold ya da italik yazılar için alt çizgi, yıldız kullanmak gibi temel özellikler. Çünkü kolay.
Markdown bilmiyorsanız, internette bi' sürü cheat sheet vardır. Gerçekten 5 dakikada öğrenebilirsiniz. Biliyorsanız bile yine de şu linke bakmak isteyebilirsiniz. Daha fazla uzatıp sıkmadan devam ediyorum…
LaTeX’e Ne Oldu?
Başlıktan da anlaşılacağı gibi, biz direkt LaTeX yazmayacağız. Çünkü hem öğrenmesi zor hem de biliyorsak bile, her komutu tek tek yazmak lazım. Doğal olarak, üzerinde çalıştığımız döküman içerikle karışmış bir şekilde komutlar içeriyor ve epey fazla miktarda komut içeriyor. Bunun yanında Markdown çok daha yalın bir seçenek.
Pandoc
Gelelim, konu başlığı olan uygulamaya. Pandoc, universal document converter olarak tanımlıyor kendisini. Markdown’dan LaTeX’e, LaTeX’den .docx’e, .ipynb’den .html’e, .pdf’e, kısaca formattan formata dönüştürüyor dökümanları. Tüm amacı bu.
Peki ama bizim için neden önemli bu Pandoc? Aslında çok önemli değil. Pandoc öğrenilmesi gereken bir dil gibi değil. Sadece yazı formatlarını birbirine dönüştürebilen bir uygulama.
Bir sonraki yazıda anlatacağım, R paketi, bookdown, Pandoc’u kullanıyor. Birçoğumuzun Pandoc ile direkt olarak etkileşimi olmayacak. Yine de eğer kendi LaTeX şablonumuzu yazacaksak, Pandoc’un çalışma mantığını bilmek işimize yarayabilir.
LaTeX kullanarak PDF üretebiliyorduk, şimdi markdown kullanarak PDF oluşturabileceğiz. Önce, Pandoc, markdown dosyasını .tex
formatına dönüştürecek. Sonrası zaten aynı, tex engine’nin işi.
Pandoc Templates
Pandoc, markdown dosyalarını LaTeX’e dönüştürürken bir şablon kullanıyor, a.k.a LaTeX template.
Bu şablonda Pandoc değişkenleri kullanıyoruz.
Örneğin, $body$
, dökümandaki yazıya karşılık geliyor.
Bunun dışında kendimiz de custom değişkenler tanımlayabilir, kendi şablonumuzu oluşturabiliriz. Kendi tezim için oluşturduğum şablonu ayrıca paylaşacağım. Şimdilik birkaç faydalı link bırakıyorum.
Pandoc Nasıl Yüklenir?
Eğer bilgisayarınızda RStudio yüklü ise Pandoc da zaten yüklüdür, çünkü rmarkdown (markup formatı değil paket olan rmarkdown) pandoc kullanıyor. Değilse, RStudio yükleyebilirsiniz ya da Pandoc‘u ayrıca yükleyebilirsiniz.