> For the complete documentation index, see [llms.txt](https://ayakaleaf-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://ayakaleaf-pro.ayaka.space/latex/tr/derinlemesine-makaleler/50-the-two-modes-of-tex-engines-ini-mode-and-production-mode.md).

# TeX motorlarının iki modu: INI modu ve üretim modu

Tüm TeX motorlarının iki "modu" vardır: bir "INI" modu ve bir "üretim" modu — ikincisi, dizgi materyali üretmek için kullanılan varsayılan (standart) moddur. INI modu oldukça farklıdır ve bir TeX motorunu INI moduna almak için bir komut satırı seçeneği kullanmanız gerekir. Bunu nasıl yapacağınızı şunu çalıştırarak görebilirsiniz `--help` komut satırında. Örneğin, LuaTeX ile

`luatex --help`

yaptığınızda, bu motor tarafından desteklenen birçok komut satırı seçeneğini görürsünüz:

```
Kullanım: luatex --lua=FILE [OPTION]... [TEXNAME[.tex]] [COMMANDS]
   veya: luatex --lua=FILE [OPTION]... \FIRST-LINE
   veya: luatex --lua=FILE [OPTION]... &FMT ARGS
  TEXNAME üzerinde LuaTeX’i çalıştırır, genellikle TEXNAME.pdf oluşturur.
  Kalan COMMANDS, TEXNAME okunduktan sonra luatex girdisi olarak işlenir.

  Alternatif olarak, ilk seçenek olmayan bağımsız değişken bir ters eğik çizgi ile başlıyorsa,
  luatex tüm seçenek olmayan bağımsız değişkenleri bir giriş satırı olarak yorumlar.

  Alternatif olarak, ilk seçenek olmayan bağımsız değişken bir & ile başlıyorsa,
  sonraki sözcük, diğer her şeyin üzerine yazılarak okunacak FMT olarak alınır. Herhangi bir
  kalan bağımsız değişken yukarıdaki gibi işlenir.

  Hiç bağımsız değişken veya seçenek belirtilmemişse, giriş için istem gösterilir.

  Aşağıdaki normal seçenekler anlaşılır:

   --credits                     katkıları göster ve çık
   --debug-format                biçim hata ayıklamayı etkinleştir
   --draftmode                   taslak modunu aç (çıkış PDF’i üretmez)
   --[no-]file-line-error        dosya:satır:hata biçimli iletileri devre dışı bırak/etkinleştir
   --[no-]file-line-error-style  --[no-]file-line-error için takma adlar
   --fmt=FORMAT                  FORMAT biçim dosyasını yükle
   --halt-on-error               ilk hatada işlemeyi durdur
   --help                        yardımı göster ve çık
   --ini                         format dökmek için iniluatex ol
   --interaction=STRING          etkileşim modunu ayarla (STRING=batchmode/nonstopmode/scrollmode/errorstopmode)
   --jobname=STRING              iş adını STRING olarak ayarla
   --kpathsea-debug=NUMBER       NUMBER bitlerine göre yol arama hata ayıklama bayraklarını ayarla
   --lua=FILE                    bir lua başlatma betiği yükle ve çalıştır
   --[no-]mktex=FMT              mktexFMT oluşturmayı devre dışı bırak/etkinleştir (FMT=tex/tfm)
   --nosocket                    lua socket kitaplığını devre dışı bırak
   --output-comment=STRING       tarih yerine DVI dosya yorumu için STRING kullan (PDF için etkisi yok)
   --output-directory=DIR        dosyaların yazılacağı dizin olarak mevcut DIR’i kullan
   --output-format=FORMAT        iş çıktısı için FORMAT kullan; FORMAT 'dvi' veya 'pdf'dir
   --progname=STRING             program adını STRING olarak ayarla
   --recorder                    dosya adı kaydedicisini etkinleştir
   --safer                       kolayca kötüye kullanılabilecek lua komutlarını devre dışı bırak
   --[no-]shell-escape           sistem komutlarını devre dışı bırak/etkinleştir
   --shell-restricted            sistem komutlarını texmf.cnf içinde verilen komut listesiyle sınırlandır
   --synctex=NUMBER              synctex’i etkinleştir (bkz. man synctex)
   --utc                         zamanı UTC’ye başlat
   --version                     sürümü göster ve çık

Özel anahtarlar kullanılarak alternatif davranış modelleri elde edilebilir

  --luaonly                      bir lua dosyası çalıştır, sonra çık
  --luaconly                     bir lua dosyasını bayt koduna derle, sonra çık
  --luahashchars                 geçerli Lua yorumlayıcısının dizge karma (hash) işlemi için kullandığı bitler

Başlangıç süreci hakkında daha fazla bilgi için başvuru kılavuzuna bakın.

Hata raporlarını dev-luatex@ntg.nl adresine e-posta ile gönderin.
```

Bu çok sayıdaki seçenek arasında burada ilgili olan iki tane vardır:

```
--ini              format dökmek için iniluatex ol
--fmt=FORMAT       FORMAT biçim dosyasını yükle
```

Burada LuaTeX, INI moduna `iniluatex` adıyla atıfta bulunur. Peki bu `iniluatex` (INI modu) gerçekte ne anlama geliyor? Yukarıda gösterilen ikinci komut satırı seçeneği küçük bir ipucu verir:

```
--fmt=FORMAT       FORMAT biçim dosyasını yükle
```

### INI modu mu? Biçim dosyaları mı? Kafam karıştı...

LaTeX gibi makro paketleri, karmaşık makroların büyük koleksiyonlarıdır: tüm bileşen dosyaların ham metnini yüklemek ve işlemek belirli bir zaman ve hesaplama ek yükü doğurur; örneğin:

* on binlerce tekil metin karakterini okumak ve taramak;
* yüzlerce makroyu/komutu ayrıştırmak, işlemek ve saklamak;
* yazı tipleri ve tireleme verileri için iç tabloları başlatmak.

Bunların hepsinin gerçekleşmesi ve sonuçların bellekte saklanması gerekir; ancak bundan sonra TeX motoru, örneğin Plain TeX veya LaTeX makro koleksiyonları tarafından sağlanan makroları kullanan bir kullanıcının TeX belgesini işlemeye hazır olur. Bunu, bir TeX motorunun önyükleme süreci olarak düşünebilirsiniz: belgenizi işlemeye hazır olmadan önce yapılan gerekli hazırlıklar.

Belki de kendi çağının teknolojisini yansıtarak TeX motorları, makro koleksiyonlarıyla dolu metin dosyalarını işlemeye bir kısayol sunar: önceden işlenmiş ikili (*biçim*) dosyalarını yüklemek.

INI moduna alındığında bir TeX motorunun görevi dizgi yapmak değildir; bunun yerine şunları yapmaktır:

1. tüm ilkel komutlarını yükleyip başlatmak ve TeX motorunun daha ileri işlemleri başlatabilmesi için catcode’ların (ve diğer kodların) asgarisini ayarlamak.
2. (1) tamamlandıktan sonra, ardından kullanıcı tarafından sağlanan ve "format" olarak adlandırılan bir makro koleksiyonunu (örneğin Plain TeX veya LaTeX makro koleksiyonu) yükleyip işler.
3. (1) ve (2) başarıyla tamamlandıktan sonra TeX, belleğine yüklenmiş ve işlenmiş olan her şeyin bir "ikili beyin dökümü"nü yapar ve bunu bir ikili *biçim* dosyaya (örneğin, `lualatex.fmt`).

Bir format dosyası, TeX’in sayısız iç veri tablosunu (ilkeller dâhil) başlatıp kullanıcı tarafından sağlanan makro koleksiyonunda bulunan tüm makro komutlarını işledikten sonraki "zihinsel durumunu" temsil eden bir ikili dosyadır. TeX motorları bunu yapar çünkü bir TeX motorunu, örneğin Knuth’un Plain TeX’ini veya LaTeX makro paketini — ya da gerçekten bir "format" olarak tasarlanmış herhangi bir makro paketini — kullanarak her seferinde çalıştırmak istediğinizde ham makroları yeniden işlemek yerine "önceden derlenmiş" bir ikili dosyayı yüklemek daha hızlıdır.

Örneğin LaTeX tarafından dizgilenmek üzere bir belge işlediğinizde TeX motoru, LaTeX’in tüm çekirdek makrolarını yeniden okumaz (yeniden işlemez); bunun yerine, örneğin, adlı bir ikili dosyayı okur `lualatex.fmt`. Format dosyalarının iç ayrıntıları her TeX motoruna ve bir `.fmt` dosyasını üretmek için kullanılan makro paketinin her sürümüne özeldir. Örneğin, LaTeX dağıtımınızı (yani eklenti paketleri değil, LaTeX’in çekirdeğini) yükseltirseniz yeni bir `.fmt` dosya da oluşturmanız gerekebilir.

### Örnek

LaTeX kaynak kodu dağıtımında, `.ini` uzantısına sahip dosyalar bulacaksınız; örneğin lualatex.ini, bunlar `.fmt` dosyalarını oluşturmak için kullanılır — bunlar `.ini` dosyalar genellikle motora özgü başlatma kodu içerir ve ardından temel LaTeX makro dosyalarını içe alır. Örneğin, LuaTeX’i aşağıdaki komut satırıyla çalıştırırsanız:

`luatex --ini lualatex.ini`

LuaTeX aşağıdaki adı taşıyan bir dosya yazacaktır `lualatex.fmt`

Bu metnin yazıldığı tarihte, `lualatex.ini` şu kodu içerir:

```
% tex-ini-files 2016-04-15: lualatex.ini
% Başlangıçta Karl Berry tarafından 2008’de yazıldı. Kamu malıdır.

\input luatexconfig.tex

\begingroup
  \catcode`\{=1 %
  \catcode`\}=2 %
  % latex.ltx öncesinde iş adı tırnaklamasını ayarla
  % Web2c pdfTeX/XeTeX, boşluk içeren iş adlarını tırnak içine alır, ancak LuaTeX motor düzeyinde bunu yapmaz. Davranış bir geri çağırma ile değiştirilebilir.
  % Başlangıçta bu kod lualatexquotejobname.tex aracılığıyla yükleniyordu
  % ancak bunun için latex.ltx etrafında bir hile gerekiyordu: davranış, geri çağırma yolunun doğrudan kullanılmasına izin verecek şekilde değiştirilmiştir.
  \global\everyjob{\directlua{require("lualatexquotejobname.lua")}}
  \input latex.ltx
  \global\everyjob{\directlua{require("lualatexquotejobname.lua")}}
\endgroup

\input latex.ltx
```

`lualatex.ini` adlı bir dosyayı içe alarak başlar `luatexconfig.tex` ki bu, beklendiği gibi bir `.ini` (başlatma) dosyasından LuaTeX’e özgü bazı başlatma işlemleri yapar! Son satırda `latex.ltx` dosyasını içe alır; bu da LuaTeX’in temel LaTeX makrolarını okumasına ve işlemesine neden olur.

LuaTeX işlemi tamamladıktan sonra `lualatex.ini` ikili *format dosyasını* adlı `lualatex.fmt`. LaTeX kodu ikili bir biçime derlendikten sonra LuaTeX (veya başka herhangi bir TeX motoru) LaTeX’in makro tanımlarının, yazı tiplerinin vb. iç tablolarını başlatmak için `.fmt` dosyasını çok hızlı bir şekilde okuyabilir — LaTeX makro paketinde bulunan çok sayıda karakteri okumak ve işlemek gibi uzun bir süreçten geçmek zorunda kalmaz.

Artık LuaTeX’e LaTeX belgenizi dizdirmesini söyleyebilirsiniz `yourfile.tex` (format dosyasını kullanarak) şu komutu vererek: `lualatex` luatex --fmt=lualatex yourfile.tex

```
dosyaları genellikle belirli bir motora özeldir: örneğin LuaTeX’in
```

`.fmt` dosyaları, genellikle farklı bir TeX motoruyla kullanım için taşınabilir değildir: örneğin pdfTeX veya XeTeX. Ayrıca, LuaTeX yürütülebilir dosyası yeni özelliklerle güncellenirse, daha eski bir LuaTeX sürümüyle hazırlanmış bir `.fmt` dosyanın yeni motorla çalışmaması oldukça mümkündür: `.fmt` dosyasını yeniden oluşturmanız (yeniden derlemeniz) gerekir. `.fmt` dosyasında.

Uyumsuz bir `.fmt` dosyayı kullanmaya çalışırsanız, bir TeX motoru onu yükleyemez ve şu hatayı verir:

```
Ölümcül format dosyası hatası; çaresiz kaldım
```

Benzer şekilde, temel LaTeX makroları güncellenirse, `lualatex.fmt` dosya da oluşturmanız gerekebilir.

`.fmt` dosyalarını da yeniden oluşturmanız gerekebilir; dosyalar herhangi bir uygun makro paketinden hazırlanabilir — yalnızca LaTeX’ten değil; örneğin Knuth’un özgün ve çok daha basit "Plain" TeX makroları da işlenerek bir `.fmt` dosyası üretilebilir. Zamanınız olsaydı, kendi makro koleksiyonunuzu yazabilir ve o paket için bir format dosyası üretebilirdiniz — makro paketinizin bir yerinde ilkel komut `\dump` çağrısını yapmanız gerektiğini unutmayın; bu, TeX motoruna "ikili beyin dökümü" yapmasını ve `.fmt` dosyasında.

Ancak kullanıcıların büyük çoğunluğunun TeX motorlarının "INI" modu veya `.fmt` dosyaları oluşturma süreci hakkında endişelenmesi gerekmez: Overleaf ve TeX Live dağıtımı, onları bu ayrıntılardan korur — tabii onları aramanız gerekmedikçe.


---

# 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://ayakaleaf-pro.ayaka.space/latex/tr/derinlemesine-makaleler/50-the-two-modes-of-tex-engines-ini-mode-and-production-mode.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.
