> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/tr/daha-fazla-konu/01-a-six-part-series-how-do-tex-macros-actually-work.md).

# Altı bölümlük seri: TeX makroları gerçekte nasıl çalışır?

## Bu seri hakkında

Bu makale serisinin iddialı bir hedefi var: adım adım açıklamak, *nasıl* LaTeX komutları gibi TeX makrolarının gerçekte nasıl çalıştığını—TeX motoru yazılımının içinde gerçekleşen süreçleri inceleyerek—açıklamak. TeX’in işleme davranışının hikâyesini anlatmaya çalışır:

* girdi karakterlerini okumak ve kategori kodlarını kullanmak;
* karakter ve komut tokenlerinin üretilmesi—ve TeX’in kullandığı formüller;
* TeX’in TeX komutlarını nasıl tanımladığını ve ardından işlediğini;
* makro tanımlarını ve makro argümanlarını token listeleri olarak saklamanın iç ayrıntıları—dahili TeX verilerinden üretilen grafikler kullanılarak;
* ve makro genişletmenin ne olduğunu inceleyerek sonlanır *aslında* ne anlama geldiğini—bir TeX motorunun içindeki gerçek verileri kullanarak.

Ancak TeX motorları böylesine karmaşık yazılım programları olduğundan her şeyi kapsayacağımızı umamayız; ama TeX’in makro işleme yeteneklerinin en önemli, temel özelliklerini ele almaya çalıştık.

#### Gezinme çubuğu

Serideki başka bir makaleye hızla geçebilmeniz için her makalenin metninden önce ve sonra aşağıdaki gezinme çubuğu bulunur:

[Bölüm 1](https://www.overleaf.com/learn/latex/Understanding_TeX_macros:_Part_1?preview=true) [Bölüm 2](https://www.overleaf.com/learn/latex/Understanding_TeX_macros:_Part_2?preview=true) [Bölüm 3](https://www.overleaf.com/learn/latex/Understanding_TeX_macros:_Part_3?preview=true) [Bölüm 4](https://www.overleaf.com/learn/latex/Understanding_TeX_macros:_Part_4?preview=true) [Bölüm 5](https://www.overleaf.com/learn/latex/Understanding_TeX_macros:_Part_5?preview=true) [Bölüm 6](https://www.overleaf.com/learn/latex/Understanding_TeX_macros:_Part_6?preview=true)

### Bölüm 1: Kategori kodları

Bu makale, TeX’in kategori kodları kavramının arkasındaki mantığı inceler: bunların ne olduğu ve TeX’in bunları girdisini dizgileme için içerik ve yürütülecek komutlar olarak süzmek için nasıl kullandığı.

### Bölüm 2: TeX’in “gözleri”yle girdiyi okumak

Bir dizi grafik aracılığıyla, TeX’in girdisini okumak (taramak) için “gözleri” olduğu yönündeki zamanla sınanmış benzetmeyi kullanıyoruz. TeX’in karakter tokenleri oluşturmak için kategori kodlarını kullanımına ve TeX’in kategori kodu 0 (“kaçış karakteri”) kullanarak komutları nasıl tanıyıp işlediğine örnekler inceliyoruz.

### Bölüm 3: Girdi metninden komutlara

Bu makale, TeX’in girdide tespit edilen komutları nasıl tanıdığını ve işlediğini derinlemesine ele alır. TeX’in komutlar hakkında bilgiyi nasıl sakladığını ve geri getirdiğini inceliyoruz: komut kodları, komut değiştiricileri ve TeX’in girdiden okunan öğeler hakkında bilgi saklamak için kullandığı birkaç iç değişkeni gözden geçiriyoruz. Makalenin bir kısmı oldukça düşük seviyeli materyaldir ve ilk okumada atlanabilir.

### Bölüm 4: Bir makronun yapısı

Makroların yapısını tanımlamak için aşağıdaki “çerçeveyi” tanıtıyor ve kullanıyoruz:

```
<TeX macro primitive><macro name><parameter text>{<replacement text>}
```

Daha sonra, bir makronun rolünü ve amacını göstermek için çeşitli örnekleri inceliyoruz `<parametre metni>` bir “token şablonu” olarak; bu, tokenlerin ... olarak işlev görmesiyle oluşturulabilir *ayırıcılar*.

### Bölüm 5: Token listeleri ve TeX’in dahili makro saklama yapısı

Bu makale, TeX’in makro tanımlarını saklamak için token listelerini nasıl kullandığını ayrıntılı olarak inceler. TeX’in özel olarak değiştirilmiş bir sürümüyle üretilen kapsamlı diyagramlar kullanarak, TeX’in bir kullanıcının makro argümanlarını tanımlamak ve işlemek için kullandığı özelleşmiş tokenleri inceliyoruz.

### Bölüm 6: Makro genişletme ve işleme

6\. Bölümde, makro genişletmenin tam anlamını ve TeX’in makro argümanlarını bir makronun içine vermeden önce tokenleştirmesinin sonuçlarını açıklamak ve incelemek için ayrıntılı grafikler kullanıyoruz.

## Kısa bir not: “TeX” kullanımı, LaTeX değil

Makalede tartışıldığı gibi [Bir İsimde Ne Var: TeX'in Çok Sayıdaki Çeşidine Rehber](/latex/tr/derinlemesine-makaleler/55-what-s-in-a-name-a-guide-to-the-many-flavours-of-tex.md) TeX, LaTeX ve türevlerine atıfta bulunmak/açıklamak için çok çeşitli terimler kullanılır. Bu nedenle, bu seri bağlamında “TeX” kullanımımızın/anlamımızın ne olduğunu kısaca açıklığa kavuşturmak değerli olacaktır.

“TeX”, bir miktar kafa karıştırıcı biçimde, hem bir yürütülebilir programın adı hem de bir dizgi dilinin adıdır. İkisini ayırt etmek için, terim *TeX motoru* yürütülebilir bir TeX programı ile dizgi dilini birbirinden ayırmak için kullanılır. Bu seri içinde kullanılan belirli veri, bilgi ve ayrıntıların bir kısmı, Knuth’un özgün TeX yazılımının kaynak kodunun ayrıntılı incelenmesinden türetilmiştir; ancak burada açıklanan ilkeler tüm TeX motorları için ortaktır. Bu yüzden, tartışmamız boyunca “TeX” kullanımı, Knuth’un özgün TeX’i, pdfTeX, XeTeX veya LuaTeX gibi yürütülebilir TeX motorlarından birini ifade ediyor olarak anlaşılmalıdır.

Makaleler içinde, makro örneklerimizi tanımlamak için TeX’in ilkel komutunu `\def` kullanıyoruz; bu komut, büyük olasılıkla çoğu Overleaf kullanıcısına daha tanıdık gelen LaTeX komutu `\newcommand` değildir. Bunun bunun için çok iyi bir nedeni var: amacımız TeX’in makro davranışının altında yatan temel ilkeleri anlamaktır; ama bunu yapmak için TeX yazılımına yerleşik çekirdek komutları (ilkelleri) kullanmamız gerekir. LaTeX komutları, örneğin `\newcommand`, kendileri de makrodur: belirli programlanmış davranışı olan ve nihayetinde daha düşük seviyeli TeX ilkel komut katmanlarından oluşturulan komutlar. TeX’in temel davranışını daha iyi anlamak için LaTeX makrolarını değil, TeX ilkellerini kullanmak zorundayız.

## Örnekler ve grafikler

Yalnızca TeX’in çeşitli özelliklerini, uç durumlarını ve davranışlarını göstermek üzere tasarlanmış bir örnek makro setine güvenmek yerine, TeX’in makro işleyişinin neden böyle çalıştığını görmek için TeX’in içine bakmak amacıyla geniş bir grafik yelpazesi de kullanıyoruz. *nasıl* ve *neden* Grafiklerin birçoğu (token listesi/düğüm diyagramları), Knuth’un özgün TeX’inin özel olarak değiştirilmiş bir sürümü kullanılarak hazırlanmıştır.

Overleaf, Knuth’un TeX’ini, TeX’in makro işleme sürecine “kanca atan” ve normalde kullanıcıların erişemediği verileri ve veri yapılarını inceleyen, C ile yazılmış ek kodlarla uyarladı. Bir makro çağrıldığında, değiştirilmiş TeX motoru, kullanılarak işlenebilecek bir biçimde veri içeren ek çıktı dosyaları oluşturur [Graphviz](https://www.graphviz.org/), açık kaynaklı bir grafik görselleştirme programı. Nihai sonuç, TeX’in bir makro tanımını tam olarak nasıl sakladığını ve makro çağrıldığında kullanıcı tarafından sağlanan herhangi bir argümanın grafiksel temsilini gösteren grafiklerdir (düğüm listesi diyagramları).

Zorunluluktan dolayı, bu serinin hedefleri çok çeşitli konuların tartışılmasını gerektirir; bunların birçoğu oldukça düşük seviyelidir ve başlangıçta belgelerinizi dizgileme görevinden çok uzak görünebilir. Umut ediyoruz ki, daha derinlemesine inceledikten sonra, sonunda size çok zaman kazandıracak ve belki de hayal kırıklığı düzeylerini de azaltacak daha iyi bir anlayış temeliyle çıkacaksınız. Ayrıca bu seriye eşlik eden özel olarak üretilmiş grafiklerin, TeX makrolarını daha iyi anlamaya çalışan okurlar için eşsiz derecede değerli bir içgörü sunmasını ve destek olmasını da umuyoruz.

## Overleaf’in TeX’in özelleştirilmiş sürümü

Video, Overleaf’in Graphiviz düğüm diyagramları üretmek üzere uyarlanmış değiştirilmiş TeX sürümünün kısa bir gösterimini verir (`.gv`  dosyaları)—bu değişiklikler TeX’in davranışının başka hiçbir yönünü etkilemez.  `.gv` dosyaları, makro tanımlarını ve makro argümanlarını saklamak için kullanılan TeX token listelerinin temsillerini içerir. Graphviz görselleştirmesi SVG olarak dışa aktarılır ve ardından [Inkscape](https://inkscape.org/)  içine içeri aktarılır; böylece grafik makaleye dahil edilmeden önce daha fazla açıklama eklenir.

{% embed url="<https://videos.ctfassets.net/nrgyaltdicpt/40EAwKxZnNwgxwe9SpAwNY/5bce5de21509f3324bc50527ec6815e7/texdemo.mp4>" %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/tr/daha-fazla-konu/01-a-six-part-series-how-do-tex-macros-actually-work.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
