published on 19.02.2022

Ö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.

bookdown_workflow.png

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.

You are reading the 2nd of 3 episodes in Writing-Thesis.
Published on 19.02.2022 by Mert Bakır with commit 03f9638.
writing-thesis
#latex #markdown
Next episode:
Bookdown ile Teknik Yazıya Giriş
published on 17.04.2022
edited on 15.07.2022

Önceki bölümde, markdown formatını LaTeX formatına dönüştürmek için kullanılan Pandoc yazılımından bahsetmiştik. Şimdi konuyu bir adım daha ileri taşıyıp ve bookdown’a geçiyoruz. Bookdown; Rmarkdown kullanarak teknik dökümanlar, kitaplar yazabilmemizi sağlayan, Yihui Xie tarafından yazılmış …

published on 10.07.2022

Previously, I’ve published a blog post about deploying static content on heroku with basic authentication. The main purpose was to get basic auth for a freely hosted static website. In that post, we hosted the source code on GitLab and configured a CI/CD pipeline to render the static content …

published on 28.05.2022

Each git commit has a field called Author which consists ‘user.name’ and ‘user.email’. We usually set these variables once, after installing git, with git config --global so that each repo gets the variables from the global definition. We can also set them locally for a …

published on 25.05.2022

In this post, I’ll first walk through hosting static content with basic authentication. Then, we’ll look into deploying to Heroku using GitLab Pipelines, more specifically deploying a certain sub-directory within the project instead of pushing the whole project. Also, I’ll share …

published on 10.04.2022

I’ve been using WSL-2 on Windows for over a year. It’s very useful because some Python packages are just a headache to install on Windows. Also, docker. It’s just better on Linux. Yet, WSL-2 can also be problematic. I remember trying a dual-boot setup when things just went way too …

published on 03.03.2022

In this post, I’ll share how to install geopandas and some other gis related packages on Windows. If you are on Mac or Linux you can probably just pip install those without any issue. I usually had to do a google search every time I wanted to install these packages on Windows environment. Of …