> 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/fi/syvalliset-artikkelit/50-the-two-modes-of-tex-engines-ini-mode-and-production-mode.md).

# TeX-moottoreiden kaksi tilaa: INI-tila ja tuotantotila

Kaikilla TeX-moottoreilla on kaksi toimintatapaa: “INI”-tila ja “production”-tila — jälkimmäinen on vain oletus- (vakio-) tila, jota käytetään ladotun materiaalin tuottamiseen. INI-tila on melko erilainen, ja sinun täytyy käyttää komentorivivalitsinta asettaaksesi TeX-moottorin INI-tilaan. Näet, miten se tehdään antamalla `--help` komentorivillä. Esimerkiksi LuaTeXin kanssa, jos annat

`luatex --help`

näet monia tämän moottorin tukemia komentorivivalitsimia:

```
Käyttö: luatex --lua=TIEDOSTO [VALITSIN]... [TEXNIMI[.tex]] [KOMENNOT]
   tai: luatex --lua=TIEDOSTO [VALITSIN]... \ENSIMMÄINEN-RIVI
   tai: luatex --lua=TIEDOSTO [VALITSIN]... &FMT ARGUMENTIT
  Aja LuaTeX:ää TEXNIMI:n päällä, yleensä luoden TEXNIMI.pdf-tiedoston.
  Kaikki jäljellä olevat KOMENNOT käsitellään luatex-syötteenä sen jälkeen, kun TEXNIMI on luettu.

  Vaihtoehtoisesti, jos ensimmäinen ei-valitsinargumentti alkaa kenoviivalla,
  luatex tulkitsee kaikki ei-valitsinargumentit syöttöriviksi.

  Vaihtoehtoisesti, jos ensimmäinen ei-valitsinargumentti alkaa &-merkillä,
  seuraava sana otetaan luettavaksi FMT:ksi, ohittaen kaiken muun. Kaikki
  jäljellä olevat argumentit käsitellään kuten edellä.

  Jos argumentteja tai valitsimia ei ole määritetty, pyydä syötettä.

  Seuraavat tavalliset valitsimet ymmärretään:

   --credits                     näytä tekijät ja poistu
   --debug-format                ota formaatin virheenjäljitys käyttöön
   --draftmode                   kytke luonnostila päälle (ei tuota PDF-ulos­tulostetta)
   --[no-]file-line-error        poista/käytä viestiä tyyliin tiedosto:rivi:virhe
   --[no-]file-line-error-style  --[no-]file-line-error -valitsimen vaihtoehtoinen nimi
   --fmt=FORMAT                  lataa formaattitiedosto FORMAT
   --halt-on-error               lopeta käsittely ensimmäiseen virheeseen
   --help                        näytä ohje ja poistu
   --ini                         olla iniluatex-tilassa, formaattien dumppausta varten
   --interaction=STRING          aseta vuorovaikutustila (STRING=batchmode/nonstopmode/scrollmode/errorstopmode)
   --jobname=STRING              aseta työn nimeksi STRING
   --kpathsea-debug=NUMBER       aseta polunetsinnän virheenjäljitysliput NUMBER:n bittejä vastaavasti
   --lua=TIEDOSTO                    lataa ja suorita lua-aloitusskripti
   --[no-]mktex=FMT              poista/käytä mktexFMT:n generointi (FMT=tex/tfm)
   --nosocket                    poista lua-socket-kirjasto käytöstä
   --output-comment=STRING       käytä STRING:iä DVI-tiedoston kommenttina päivämäärän sijaan (ei vaikutusta PDF:ään)
   --output-directory=DIR        käytä olemassa olevaa DIR:ää hakemistona, johon tiedostot kirjoitetaan
   --output-format=FORMAT        käytä FORMATia työn tulosteena; FORMAT on 'dvi' tai 'pdf'
   --progname=STRING             aseta ohjelman nimeksi STRING
   --recorder                    ota tiedostonimien tallennin käyttöön
   --safer                       poista helposti hyödynnettävät lua-komennot käytöstä
   --[no-]shell-escape           poista/käytä järjestelmäkomennot käytöstä/käyttöön
   --shell-restricted            rajoita järjestelmäkomennot texmf.cnf:ssä annettuun komentoluetteloon
   --synctex=NUMBER              ota synctex käyttöön (katso man synctex)
   --utc                         alusta aika UTC:hen
   --version                     näytä versio ja poistu

Vaihtoehtoisia toimintamalleja voidaan saada erityisillä kytkimillä

  --luaonly                      aja lua-tiedosto ja poistu
  --luaconly                     käännä lua-tiedosto tavukoodiksi ja poistu
  --luahashchars                 bitit, joita nykyinen Lua-tulkki käyttää merkkijonojen hajautukseen

Katso lisätietoja käynnistysprosessista viiteoppaasta.

Lähetä vikailmoitukset osoitteeseen dev-luatex@ntg.nl.
```

Näistä monista valitsimista kaksi on tässä olennaisia:

```
--ini              olla iniluatex-tilassa, formaattien dumppausta varten
--fmt=FORMAT       lataa formaattitiedosto FORMAT
```

Tässä LuaTeX viittaa INI-tilaansa nimellä `iniluatex`. Mitä tämä siis `iniluatex` (INI-tila) oikeastaan tarkoittaa? Pieni vihje on yllä näytetty toinen komentorivivalitsin:

```
--fmt=FORMAT       lataa formaattitiedosto FORMAT
```

### INI-tila? Formaattitiedostot? Olen ymmälläni...

Makropaketit, kuten LaTeX, ovat suuria kokoelmia monimutkaisia makroja: kaikkien muodostavien tiedostojen raakatekstin lataamisessa ja käsittelyssä on tietty aikaja laskentakustannus; esimerkiksi:

* kymmenientuhansien yksittäisten tekstimerkkien lukeminen ja skannaaminen;
* satojen makrojen/komentojen jäsentäminen, käsittely ja tallentaminen;
* fonttien ja tavutustietojen sisäisten taulukoiden alustaminen.

Kaiken tämän täytyy tapahtua, ja tulokset on tallennettava muistiin, ennen kuin TeX-moottori on oikeasti valmis käsittelemään käyttäjän TeX-dokumenttia, joka käyttää esimerkiksi Plain TeX- tai LaTeX-makrokokoelmien tarjoamia makroja. Voit ajatella tätä TeX-moottorin käynnistysprosessina: olennaisia valmisteluja ennen kuin se on valmis käsittelemään dokumenttisi.

Ehkä aikansa teknologiaa heijastaen TeX-moottorit tarjoavat oikotien makrokokoelmilla täytettyjen tekstitiedostojen käsittelyyn: valmiiksi käsiteltyjen binaari-(*formaatti*)-tiedostojen lataamisen.

Kun TeX-moottori asetetaan INI-tilaan, sen tehtävänä ei ole ladonta vaan sen sijaan:

1. ladata ja alustaa kaikki sen primitiivikomennot sekä määrittää aivan minimi catcodeista (ja muista koodeista), jotta TeX-moottori voi aloittaa jatkokäsittelyn.
2. kun (1) on tehty, se lataa ja käsittelee käyttäjän tarjoaman makrokokoelman, johon viitataan “formaattina” (esim. Plain TeX tai LaTeX-makrokokoelma).
3. sen jälkeen kun se on onnistuneesti suorittanut vaiheet (1) ja (2), TeX tekee muistiinsa ladatusta ja käsitellystä kaikesta “binäärisen aivodumppauksen” ja kirjoittaa sen binääri- *formaatti* tiedostoon (esim. `lualatex.fmt`).

Formaattitiedosto on binääritiedosto, joka tallentaa esityksen TeX:n “mielentilasta” sen jälkeen, kun lukuisat sisäiset tietotaulut (primitivien mukaan lukien) on alustettu ja kaikki käyttäjän toimittamassa makrokokoelmassa olevat makrokomennot on käsitelty. TeX-moottorit tekevät tämän, koska on nopeampaa ladata “esikäännetty” binääritiedosto kuin käsitellä raakamakrot uudelleen joka kerta, kun haluat käyttää TeX-moottoria esimerkiksi Knuthin Plain TeXillä tai LaTeX-makropaketilla — tai oikeastaan millä tahansa makropaketilla, joka on suunniteltu “formaattina”.

Kun käsittelet dokumenttia, joka on tarkoitus latoa LaTeXilla, esimerkiksi TeX-moottori ei lue uudelleen (käsittele uudelleen) kaikkia LaTeXin ydinmakroja, vaan sen sijaan se lukee sisään binääritiedoston, jonka nimi on esimerkiksi `lualatex.fmt`. Formaattitiedostojen sisäiset yksityiskohdat ovat kullekin TeX-moottorille ja kullekin versiolle käytetystä makropaketista, jolla on luotu `.fmt` -tiedosto. Jos esimerkiksi päivität LaTeX-jakelusi (eli itse LaTeXin ytimen, et lisäosia), saatat joutua luomaan uuden `.fmt` -tiedoston myös.

### Esimerkki

LaTeXin lähdekoodijakelussa löydät tiedostoja, joiden `.ini` -laajennus, esimerkiksi lualatex.ini, joita käytetään luomaan `.fmt` -tiedostoja — nämä `.ini` tiedostot sisältävät tyypillisesti moottorikohtaista alustus­koodia ja jatkavat sitten ydin-LaTeX-makrotiedostojen syöttämistä. Jos esimerkiksi ajat LuaTeX:iä seuraavalla komentorivillä:

`luatex --ini lualatex.ini`

LuaTeX kirjoittaa tiedoston nimeltä `lualatex.fmt`

Kirjoitushetkellä, `lualatex.ini` sisältää seuraavan koodin:

```
% tex-ini-files 2016-04-15: lualatex.ini
% Alun perin kirjoittanut vuonna 2008 Karl Berry. Public domain.

\input luatexconfig.tex

\begingroup
  \catcode`\{=1 %
  \catcode`\}=2 %
  % Aseta työn nimen lainaus ennen latex.ltx:ää
  % Web2c pdfTeX/XeTeX lisää lainausmerkit työn nimille, jotka sisältävät välilyöntejä, mutta LuaTeX ei
  % tee tätä moottoritason toiminnassa. Käytöstä voidaan muuttaa
  % callbackilla. Alun perin tämä koodi ladattiin lualatexquotejobname.tex-tiedoston kautta,
  % mutta se vaati kiertotien latex.ltx:n ympärille: toimintatapaa on muutettu
  % niin, että callback-reittiä voidaan käyttää suoraan.
  \global\everyjob{\directlua{require("lualatexquotejobname.lua")}}
\endgroup

\input latex.ltx
```

`lualatex.ini` aloittaa syöttämällä tiedoston nimeltä `luatexconfig.tex` joka tekee LuaTeX-kohtaista alustusta — kuten voit odottaa `.ini` (alustustiedostolta)! Viimeisellä rivillä se syöttää `latex.ltx` mikä saa LuaTeXin lukemaan ja käsittelemään ydin-LaTeX-makrot.

Kun LuaTeX on käsitellyt loppuun `lualatex.ini` se kirjoittaa binääri- *formaattitiedoston* nimeltä `lualatex.fmt`. Kun LaTeX-koodi on käännetty binääriseen formaattiin, LuaTeX (tai mikä tahansa muu TeX-moottori) voi hyvin nopeasti lukea `.fmt` tiedoston käynnistääkseen ja alustakseen sisäiset taulunsa LaTeXin makromääritelmille, fonteille ja niin edelleen — sen ei tarvitse käydä läpi pitkää prosessia, jossa luetaan ja käsitellään LaTeX-makropaketin sisältämät tuhannet merkit.

Voit nyt käskeä LuaTeX:iä latomaan LaTeX-dokumenttisi `yourfile.tex` (käyttäen `lualatex` formaattitiedostoa) antamalla komennon:

```
luatex --fmt=lualatex yourfile.tex
```

`.fmt` tiedostot ovat yleensä tietylle moottorille ominaisia: esim. LuaTeXin `.fmt` tiedostot eivät yleensä ole siirrettäviä käytettäväksi toisen TeX-moottorin kanssa: esim. pdfTeXin tai XeTeXin. Lisäksi, jos LuaTeX-suoritettava tiedosto päivitetään uusilla ominaisuuksilla, on hyvin mahdollista, että `.fmt` vanhemmalla LuaTeX-versiolla valmistettu tiedosto ei toimisi uuden moottorin kanssa: sinun pitäisi rakentaa (kääntää) `.fmt` tiedostossa.

uudelleen. `.fmt` Jos yrität käyttää yhteensopimatonta

```
Vakava formaattitiedostovirhe; olen neuvoton
```

Samoin, jos LaTeXin ydinmakrot päivitetään, saatat joutua myös rakentamaan `lualatex.fmt` -tiedoston myös.

`.fmt` tiedostot voidaan valmistaa mistä tahansa sopivasta makropaketista — ei vain LaTeXista; esimerkiksi Knuthin alkuperäiset ja paljon yksinkertaisemmat “Plain” TeX -makrot voidaan myös käsitellä luomaan `.fmt` tiedosto. Voisit, jos sinulla olisi aikaa, kirjoittaa oman makrokokoelmasi ja tuottaa sille formaattitiedoston — huomaa, että jossakin makropaketissasi sinun täytyisi kutsua primitiivikomentoa `\dump` joka käskee TeX-moottoria tekemään “binäärisen aivodumppauksensa” ja kirjoittamaan `.fmt` tiedostossa.

Useimpien käyttäjien ei kuitenkaan koskaan tarvitse murehtia TeX-moottorien “INI”-tilasta tai `.fmt` formaattitiedostojen luomisprosessista: Overleaf ja TeX Live -jakelu suojaavat sinua näiltä yksityiskohdilta — ellei sinun tarvitse hakea niitä esiin.


---

# 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/fi/syvalliset-artikkelit/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.
