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

# De to modusene til TeX-motorer: INI-modus og produksjonsmodus

Alle TeX-motorer har to «moduser» for drift: en «INI»-modus og en «produksjonsmodus»—den siste er bare standardmodusen som brukes til produksjon av satt materiale. INI-modus er ganske annerledes, og du må bruke et kommandolinjealternativ for å sette en TeX-motor i INI-modus. Du kan se hvordan du gjør det ved å kjøre `--help` på kommandolinjen. For eksempel, med LuaTeX, hvis du gjør

`luatex --help`

vil du se mange kommandolinjealternativer som støttes av den motoren:

```
Bruk: luatex --lua=FILE [ALTERNATIV]... [TEXNAME[.tex]] [KOMMANDOER]
   eller: luatex --lua=FILE [ALTERNATIV]... \FØRSTE-LINJE
   eller: luatex --lua=FILE [ALTERNATIV]... &FMT ARGUMENTER
  Kjør LuaTeX på TEXNAME, og opprett vanligvis TEXNAME.pdf.
  Eventuelle gjenværende KOMMANDOER behandles som luatex-inndata, etter at TEXNAME er lest.

  Alternativt, hvis det første argumentet som ikke er et alternativ begynner med en skråstrek,
  tolker luatex alle argumenter som ikke er alternativer som en inndatalinje.

  Alternativt, hvis det første argumentet som ikke er et alternativ begynner med en &,
  tas det neste ordet som FMT som skal leses, og overstyrer alt annet. Eventuelle
  gjenværende argumenter behandles som ovenfor.

  Hvis ingen argumenter eller alternativer er angitt, blir du bedt om inndata.

  Følgende vanlige alternativer forstås:

   --credits                     vis kreditter og avslutt
   --debug-format                aktiver feilsøking av format
   --draftmode                   slå på utkastmodus (produserer ingen PDF-utdata)
   --[no-]file-line-error        deaktiver/aktiver meldinger i stil med fil:linje:feil
   --[no-]file-line-error-style  alias for --[no-]file-line-error
   --fmt=FORMAT                  last inn formatfilen FORMAT
   --halt-on-error               stopp behandlingen ved den første feilen
   --help                        vis hjelp og avslutt
   --ini                         vær iniluatex, for å dumpe formater
   --interaction=STRING          sett interaksjonsmodus (STRING=batchmode/nonstopmode/scrollmode/errorstopmode)
   --jobname=STRING              sett jobbnavnet til STRING
   --kpathsea-debug=NUMBER       sett feilsøkingsflagg for sti-søking i henhold til bitene i NUMBER
   --lua=FILE                    last inn og kjør et lua-initialiseringsskript
   --[no-]mktex=FMT              deaktiver/aktiver generering av mktexFMT (FMT=tex/tfm)
   --nosocket                    deaktiver lua socket-biblioteket
   --output-comment=STRING       bruk STRING som kommentar i DVI-filen i stedet for dato (ingen effekt for PDF)
   --output-directory=DIR        bruk eksisterende DIR som katalogen det skal skrives filer i
   --output-format=FORMAT        bruk FORMAT for jobbens utdata; FORMAT er 'dvi' eller 'pdf'
   --progname=STRING             sett programnavnet til STRING
   --recorder                    aktiver filnavnregistrering
   --safer                       deaktiver lett utnyttbare lua-kommandoer
   --[no-]shell-escape           deaktiver/aktiver systemkommandoer
   --shell-restricted            begrens systemkommandoer til en liste over kommandoer gitt i texmf.cnf
   --synctex=NUMBER              aktiver synctex (se man synctex)
   --utc                         initialiser tiden til UTC
   --version                     vis versjon og avslutt

Alternative atferdsmodeller kan oppnås med spesielle brytere

  --luaonly                      kjør en lua-fil, og avslutt deretter
  --luaconly                     byte-kompiler en lua-fil, og avslutt deretter
  --luahashchars                 bitene som brukes av den nåværende Lua-tolkeren for streng-hashing

Se referansemanualen for mer informasjon om oppstartsprosessen.

Send feilrapporter på e-post til dev-luatex@ntg.nl.
```

Blant disse mange alternativene er to relevante her:

```
--ini              vær iniluatex, for å dumpe formater
--fmt=FORMAT       last inn formatfilen FORMAT
```

Her viser LuaTeX til INI-modusen sin ved navnet `iniluatex`. Så hva betyr egentlig dette `iniluatex` (INI-modus)? Et lite hint er det andre kommandolinjealternativet vist ovenfor:

```
--fmt=FORMAT       last inn formatfilen FORMAT
```

### INI-modus? Formatfiler? Jeg er forvirret...

Makropakker, slik som LaTeX, er store samlinger av komplekse makroer: innlasting og behandling av råteksten i alle de bestanddelene filene har, innebærer faktisk en viss tids- og beregningskostnad; for eksempel:

* lesing og skanning av titusenvis av individuelle tegn med tekst;
* tolking, behandling og lagring av hundrevis av makroer/kommandoer;
* initialisering av interne tabeller for fonter og bindestrekdata.

Alt dette må skje, og resultatene lagres i minnet, før TeX-motoren faktisk er klar til å behandle et TeX-dokument fra brukeren som bruker makroene som tilbys av for eksempel Plain TeX- eller LaTeX-makrosamlingene. Du kan tenke på dette som TeX-motorens oppstartsprosess: nødvendige forberedelser før den er klar til å behandle dokumentet ditt.

Kanskje som et uttrykk for teknologien på den tiden tilbyr TeX-motorer en snarvei til å behandle tekstfiler fulle av makrosamlinger: å laste inn forhåndsbehandlede binære (*format*)-filer.

Når en TeX-motor settes i INI-modus, er oppgaven ikke å utføre satsing, men i stedet å:

1. laste inn og initialisere alle de primitive kommandoene sine, samt sette opp det aller minste av catkoder (og andre koder) slik at TeX-motoren kan starte videre behandling.
2. når (1) er gjort, vil den deretter laste inn og behandle en makrosamling levert av brukeren, omtalt som et «format» (f.eks. Plain TeX eller LaTeX-makrosamlingen).
3. etter at den har fullført (1) og (2) med hell, vil TeX utføre en «binær hjernedumping» av alt som er lastet inn og behandlet i minnet, og skrive det ut til en binær *format* fil (f.eks. `lualatex.fmt`).

En formatfil er en binær fil som lagrer en representasjon av TeXs «tilstand» etter å ha initialisert en rekke interne datatabeller (inkludert de primitive kommandoene) og behandlet alle makrokommandoene som finnes i makrosamlingen levert av brukeren. TeX-motorer gjør dette fordi det er raskere å laste inn en «forhåndskompilert» binær fil enn å behandle makroene på nytt hver gang du vil kjøre en TeX-motor ved å bruke for eksempel Knuths Plain TeX eller LaTeX-makropakken—eller faktisk hvilken som helst makropakke som er laget som et «format».

Når du behandler et dokument som skal satses med LaTeX, for eksempel, leser ikke TeX-motoren inn (behandler på nytt) alle LaTeXs kjerjemakroer, men i stedet leser den inn en binær fil kalt for eksempel `lualatex.fmt`. De indre detaljene i formatfiler er spesifikke for hver TeX-motor og hver versjon av makropakken som brukes til å generere en `.fmt` -fil. Hvis du for eksempel oppgraderer LaTeX-distribusjonen din (dvs. kjernen i selve LaTeX, ikke tilleggspakker), kan det hende du også må generere en ny `.fmt` fil.

### Eksempel

Inne i LaTeX-kildekodedistribusjonen finner du filer med en `.ini` -utvidelse, for eksempel lualatex.ini, som brukes til å generere `.fmt` filer—disse `.ini` filene inneholder vanligvis initialiseringskode spesifikk for motoren og går deretter videre til å lese inn de sentrale LaTeX-makrofilene. Hvis du for eksempel kjører LuaTeX med følgende kommandolinje:

`luatex --ini lualatex.ini`

vil LuaTeX skrive ut en fil kalt `lualatex.fmt`

På tidspunktet denne teksten ble skrevet, `lualatex.ini` inneholder følgende kode:

```
% tex-ini-files 2016-04-15: lualatex.ini
% Opprinnelig skrevet i 2008 av Karl Berry. Offentlig domene.

\input luatexconfig.tex

\begingroup
  \catcode`\{=1 %
  \catcode`\}=2 %
  % Sett opp sitering av jobbnavn før latex.ltx
  % Web2c pdfTeX/XeTeX setter anførselstegn rundt jobbnavn som inneholder mellomrom, men LuaTeX gjør
  % ikke dette på motor-nivå. Atferden kan endres ved å bruke
  % en callback. Opprinnelig ble denne koden lastet inn via lualatexquotejobname.tex
  % men det krevde et hack rundt latex.ltx: atferden har blitt endret
  % slik at callback-ruten kan brukes direkte.
  \global\everyjob{\directlua{require("lualatexquotejobname.lua")}}
\endgroup

\input latex.ltx
```

`lualatex.ini` starter med å lese inn en fil kalt `luatexconfig.tex` som gjør noe LuaTeX-spesifikk initialisering—slik du kanskje forventer av en `.ini` (initialiserings)fil! På siste linje leser den inn `latex.ltx` som får LuaTeX til å lese og behandle de sentrale LaTeX-makroene.

Etter at LuaTeX er ferdig med å behandle `lualatex.ini` den binære *formatfilen* kalt `lualatex.fmt`. Når LaTeX-koden er kompilert til et binært format, kan LuaTeX (eller hvilken som helst annen TeX-motor) svært raskt lese `.fmt` filen for å starte opp og initialisere sine interne tabeller med LaTeXs makrodefinisjoner, fonter og så videre—den trenger ikke å gjennomgå den langvarige prosessen med å lese og behandle de mange tusen tegnene som finnes i LaTeX-makropakken.

Du kan nå instruere LuaTeX til å sette dokumentet ditt med LaTeX `dokumentet ditt.tex` (ved å bruke `lualatex` formatfilen) ved å kjøre kommandoen:

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

`.fmt` filer er vanligvis spesifikke for en bestemt motor: f.eks. LuaTeXs `.fmt` filer er vanligvis ikke flyttbare for bruk med en annen TeX-motor: f.eks. pdfTeX eller XeTeX. Videre, hvis LuaTeX-programfilen oppdateres med nye funksjoner, er det fullt mulig at en `.fmt` fil laget med en eldre versjon av LuaTeX ikke vil fungere med den nye motoren: du må bygge opp igjen (kompilere på nytt) `.fmt` filen.

Hvis du prøver å bruke en inkompatibel `.fmt` fil, vil en TeX-motor ikke klare å laste den inn og svare med feilen:

```
Kritisk feil i formatfil; jeg er satt ut av spill
```

På samme måte, hvis kjernemakroene i LaTeX oppdateres, kan det hende du også må bygge opp igjen `lualatex.fmt` fil.

`.fmt` filer kan klargjøres fra enhver egnet makropakke—ikke bare LaTeX; for eksempel kan Knuths opprinnelige, og langt enklere, «Plain» TeX-makroer også behandles for å generere en `.fmt` fil. Du kunne, hvis du hadde tid, skrive din egen makrosamling og produsere en formatfil for den pakken—merk at du et sted i makropakken din måtte kalle den primitive kommandoen `\dump` som forteller TeX-motoren å gjøre sin «binære hjernedumping» og skrive ut `.fmt` filen.

Men det store flertallet av brukere trenger aldri å bekymre seg for «INI»-modusen til TeX-motorer, eller prosessen med å generere `.fmt` filer: Overleaf og TeX Live-distribusjonen skjermer deg for disse detaljene—med mindre du trenger å lete etter dem.


---

# 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/no/dybdeartikler/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.
