> 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/da/flere-emner/39-mltex-enctex-and-synctex-tex-extensions.md).

# MLTeX EncTeX- og SyncTeX-udvidelser til TeX

## Nogle baggrundsoplysninger om TeX-udvidelser

TeX har en lang udviklingshistorie—nu over 4 årtier! I den tid er nye “versioner” af TeX blevet udviklet—såsom e-TeX, pdfTeX, XeTeX, LuaTeX og så videre. Ud over helt nye motorer med en hel række ekstra funktioner har der været forskellige *udvidelser* som typisk fokuserer på at implementere en bestemt funktion for at udbygge Knuths oprindelige software.

Med fremkomsten af moderne TeX-motorer såsom XeTeX og LuaTeX er behovet for og brugen af nogle ældre TeX-udvidelser aftaget, da de nyere TeX-motorer bringer kraftfuld yderligere funktionalitet—såsom indbygget understøttelse af UTF-8-kodet tekst. Formålet med denne side er at give et par noter om udvidelser, herunder MLTeX og EncTeX, som du måske stadig ser henvist til i en [TeX-motorens kommandolinjeindstillinger](/latex/da/flere-emner/44-tex-engine-command-line-options-for-pdftex-xetex-and-luatex.md). MLTeX og EncTeX udvikles begge ikke længere, men én meget nyttig udvidelse, SyncTeX, videreudvikles aktivt og understøttes af Overleaf.

## MLTeX

*Flersproget TeX*, eller MLTeX, blev udviklet i årene 1992–5 som en modificering af TeX for at tillade orddeling af ord med accenttegn ved brug af almindelige Computer Modern (CM)-fonte.

### Aktivering (aktivering) af MLTeX

MLTeX er designet til at fungere som en del af en såkaldt `.fmt` (formatfil), som i praksis er en prækompileret binær version af et sæt TeX-makroer. For at oprette formatfiler sætter man en TeX-motor i dens såkaldte `INI` tilstand, behandler makrosamlingen og derefter giver `\dump` kommandoen for at skrive `.fmt` filen ud. Se [denne artikel](/latex/da/dybtgaende-artikler/50-the-two-modes-of-tex-engines-ini-mode-and-production-mode.md) for en gennemgang af INI-tilstande.

For at aktivere MLTeX, *for de motorer, der understøtter det*, såsom pdfTeX, ville du skrive

```
pdftex -ini -mltex *pdfetex.ini
```

hvor `pdfetex.ini` er en fil, der findes i TeX Live-distributionen.

**Hvorfor asterisken (`*`)?** Asterisken sætter pdfTeX i såkaldt “udvidet tilstand”, som aktiverer understøttelse af e-TeX-primitiverne. Hvis du udelader den og skriver `pdftex -ini -mltex pdfetex.ini` vil du få en fejl:

```
This is pdfTeX, Version 3.14159265-2.6-1.40.19 (INITEX)
 \\write18 enabled.
MLTeX v2.2 enabled
(c:/texmf-dist/tex/plain/config/pdfetex.ini
(c:/texmf-dist/tex/generic/tex-ini-files/pdftexconfig.tex)
(c:/texmf-dist/tex/plain/etex/etex.src

! e-TeX  fatal error: this file can be processed only in extended mode;
  did you perhaps forget the asterisk?
```

**Bemærk**: I stedet for at bruge en asterisk til at aktivere “udvidet tilstand” kan du bruge `-etex` kommandolinjeindstillingen i stedet:

```
pdftex -ini -etex -mltex pdfetex.ini
```

**Bemærk**: Ved brug af `-mltex` indstillingen på kommandolinjen med en `.fmt` fil, der blev *ikke genereret* med MLTeX aktiveret vil *ikke* virke: MLTeX skal “aktiveres” via en passende formatfil.

Når du bruger `-mltex` indstillingen under `.fmt` filoprettelse skrives en boolesk variabel med værdien “true” ind i `.fmt` fil, der fortæller TeX-motoren, at MLTeX-udvidelserne er blevet aktiveret og skal stilles til rådighed for brugeren. Hvis du ikke eksplicit sætter `-mltex` indstillingen, vil den tilsvarende variabel være “false”. Hvis variablens værdi registreres som “false” (når den `.fmt` fil indlæses igen under en TeX-kørsel), vil forsøg på at bruge MLTeX-udvidelserne resultere i en `Udefineret kommando...` fejl—fordi MLTeX-primitiverne ikke vil være blevet registreret (indlæst) og derfor ikke genkendes.

Efter at have kørt `pdftex -ini -mltex *pdfetex.ini` på kommandolinjen vil du se noget lignende følgende tekst, som viser, at MLTeX v2.2 er aktiveret:

```
This is pdfTeX, Version 3.14159265-2.6-1.40.19 (INITEX)
\\write18 enabled.
entering extended mode
MLTeX v2.2 enabled
....
....
....
Beginning to dump on file pdfetex.fmt
....
No pages of output.
Transcript written on pdfetex.log.
```

Dette resulterer i en `.fmt` fil kaldet `pdfetex.fmt` som gør det muligt for dig at bruge MLTeX-kommandoerne:

```
pdftex -fmt=pdfetex <yourfile.tex>
```

hvor `<yourfile.tex>` kan gøre brug af de MLTeX-specifikke primitiver

MLTeX blev oprindeligt distribueret som en separat ændringsfil, [mltex.ch](http://tug.ctan.org/systems/generic/mltex/mltex.ch), som kunne flettes sammen med Knuths hovedkildekode ([`tex.web`](https://ctan.org/tex-archive/systems/knuth/dist/tex?lang=en)) for at udlede en ny version af TeX, kaldet MLTeX, som indeholdt en række nye primitiver. I dag er MLTeX-koden fra `mltex.ch` indgår i den primære `tex.ch` ændringsfil, som bruges til at bygge næsten alle TeX-motorer.

### MLTeX-primitiver

Følgende noter er for det meste udarbejdet og gengivet fra filen `web2c.info` der findes i [TeX Live](https://tug.org/texlive/) distributionen.

* **`\charsubdef`**: Definitioner af tegnsubstitution. Angiver, hvordan man konstruerer en accentueret glyph (ikke nødvendigvis eksisterende i den aktuelle font) ved hjælp af to glypher (som faktisk findes).

  ```
  \\charsubdef COMPOSITE [=] ACCENT BASE
  ```

  Hver af COMPOSITE, ACCENT og BASE er font-glyph-numre, udtrykt i den sædvanlige TeX-syntaks: \`\\\e symbolsk, '145 for oktalt, "65 for hex, 101 for decimal. Således definerer det, om en glyphkode for et tegn, enten indtastet som et enkelt tegn eller ved brug af den `\char` primitiv, vil blive mappet til en font-glyph eller til en `\accent` glyph-konstruktion.

  For eksempel, hvis du antager glyphkode 138 (decimal) for et e-cirkumfleks og bruger Computer Modern-fontene, som har cirkumfleks-accenten i position 18 og lille ‘e’ i den sædvanlige ASCII-position 101 decimal, ville du bruge `\charsubdef` som følger:

  ```
  \\charsubdef 138 = 18 101
  ```
* **`\charsubdefmax`**: Sætter den største værdi i `\charsubdef` listen. For eksempel:

  ```
  \\charsubdefmax=-1 % disable all substitutions
  \\charsubdefmax=256 % enable all substitutions
  ```
* **`\tracingcharsubdef`**: Sporning af substitutioner. For at hjælpe med at diagnosticere problemer med `\charsubdef`, MLTeX leverer en primitiv parameter, `\tracingcharsubdef`. Hvis den er positiv, vil hver brug af `\charsubdef` blive rapporteret. Dette kan hjælpe med at finde ud af, hvornår et tegn er blevet omdefineret.

## EncTeX

EncTeX blev udviklet i årene 1997–2004 som en TeX-udvidelse, der giver fleksibel input/output-rekodning gennem tilføjelsen af nye primitiver—for eksempel en måde at oversætte input på vej ind i TeX. Det gør det for eksempel muligt at oversætte flerbyte-sekvenser, såsom UTF-8-kodning, til brug i standard 8-bit TeX-motorer.

### Aktivering (aktivering) af EncTeX

Som med MLTeX er EncTeX også designet til at fungere som en del af en såkaldt `.fmt` (formatfil)—se [MLTeX](#mltex), ovenfor, for en forklaring af formatfiler/INI-tilstand.

For at aktivere EncTeX, *for de motorer, der understøtter det*, såsom pdfTeX, ville du oprette en EncTeX-aktiveret formatfil ved at skrive

```
pdftex -ini -enc *pdfetex.ini
```

hvor `pdfetex.ini` er en fil, der findes i TeX Live-distributionen.

**Hvorfor asterisken (`*`)?** Asterisken sætter pdfTeX i såkaldt “udvidet tilstand”, som aktiverer understøttelse af e-TeX-primitiverne. Hvis du udelader den og skriver `pdftex -ini -mltex pdfetex.ini` vil du få en fejl:

```
This is pdfTeX, Version 3.14159265-2.6-1.40.19 (INITEX)
 \\write18 enabled.
MLTeX v2.2 enabled
(c:/texmf-dist/tex/plain/config/pdfetex.ini
(c:/texmf-dist/tex/generic/tex-ini-files/pdftexconfig.tex)
(c:/texmf-dist/tex/plain/etex/etex.src

! e-TeX  fatal error: this file can be processed only in extended mode;
  did you perhaps forget the asterisk?
```

**Bemærk**: I stedet for at bruge en asterisk til at aktivere “udvidet tilstand” kan du bruge `-etex` kommandolinjeindstillingen i stedet:

```
pdftex -ini -etex -mltex pdfetex.ini
```

Den `-enc` kommandolinjeindstillingen får pdfTeX-motoren til at aktivere EncTeX ved at skrive nogle data ind i den resulterende `pdfetex.fmt` formatfil.

**Bemærk**: Ved brug af `-enc` indstillingen på kommandolinjen med en `.fmt` fil, der blev *ikke genereret* med EncTeX aktiveret vil *ikke* virke: EncTeX skal “aktiveres” via en passende genereret formatfil.

### EncTeX-primitiver

EncTeX tilføjer 10 nye primitive kommandoer til en TeX-motor:

* 3 primitiver i den oprindelige udgivelse (1997):
* `\xordcode`
* `\xchrcode`
* `\xprncode`
* 7 yderligere primitiver (til understøttelse af UTF-8) i 2003:
* `\mubyte`
* `\endmubyte`
* `\mubytein`
* `\mubyteout`
* `\mubytelog`
* `\specialout`
* `\noconvert`

Brugen og opførselen af disse primitiver er veldokumenteret i [EncTeX reference manual](http://mirrors.ctan.org/systems/enctex/encdoc-e.pdf), skrevet af EncTeX's forfatter, Petr Olšák. For at undgå unødvendig gentagelse her henvises interesserede læsere til det dokument.

### Yderligere information om EncTeX

* [Anden version af EncTeX: understøttelse af UTF-8](http://mirrors.ctan.org/systems/enctex/eurotex2003-enctex.pdf): en artikel af EncTeX's forfatter, Petr Olšák.
* [EncTeX reference manual](http://mirrors.ctan.org/systems/enctex/encdoc-e.pdf) (på engelsk).

### Aktivering (aktivering) af både MLTeX og EncTeX

For at aktivere både MLTeX og EncTeX ville du generere en passende formatfil ved hjælp af en kommandolinje som

```
pdftex -ini -enc -mltex *pdfetex.ini
```

hvor `pdfetex.ini` er en fil, der findes i TeX Live-distributionen.

**Hvorfor asterisken (`*`)?** Asterisken sætter pdfTeX i såkaldt “udvidet tilstand”, som aktiverer understøttelse af e-TeX-primitiverne. Hvis du udelader den og skriver `pdftex -ini -enc -mltex pdfetex.ini` vil du få en fejl:

```
This is pdfTeX, Version 3.14159265-2.6-1.40.19 (INITEX)
 \\write18 enabled.
MLTeX v2.2 enabled
(c:/texmf-dist/tex/plain/config/pdfetex.ini
(c:/texmf-dist/tex/generic/tex-ini-files/pdftexconfig.tex)
(c:/texmf-dist/tex/plain/etex/etex.src

! e-TeX  fatal error: this file can be processed only in extended mode;
  did you perhaps forget the asterisk?
```

**Bemærk**: I stedet for at bruge en asterisk til at aktivere “udvidet tilstand” kan du bruge `-etex` kommandolinjeindstillingen i stedet:

```
pdftex -ini -etex -enc -mltex pdfetex.ini
```

Efter at have kørt ovenstående kommandolinje ville du se en besked, såsom den følgende, som informerer dig om, at både MLTeX og EncTeX er aktiveret:

```
This is pdfTeX, Version 3.14159265-2.6-1.40.19 (INITEX)
 \\write18 enabled.
entering extended mode
MLTeX v2.2 enabled
 encTeX v. Jun. 2004, reencoding enabled.
....
....
....
Beginning to dump on file pdfetex.fmt
....
No pages of output.
Transcript written on pdfetex.log.
```

og `pdfetex.fmt` formatfilen, som aktiverer både MLTeX og EncTeX, ville blive oprettet.

## SyncTeX

SyncTeX-udvidelsen har været tilgængelig siden 2008 og videreudvikles fortsat aktivt af dens skaber, Jérôme Laurens. Den er bredt anvendt, også af Overleaf, og understøttes af alle TeX-motorer i brug i dag.

### Hvad gør SyncTeX?

Når du ser et dokument sat med TeX, måske til korrektur/gennemgang før indsendelse til et forlag, kan du opdage en fejl og have brug for at rette den i TeX-kildekoden. Det kan dog være vanskeligt at finde det rigtige sted i TeX-filen, især hvis det er et omfattende dokument. På samme måde kan du måske ønske at gå den anden vej: springe fra en position i en TeX-kildefil direkte til sidens placering i den endelige satsede PDF. I begge tilfælde er der behov for at *synkronisere* en bestemt placering i en TeX-fil og dens tilsvarende placering i visningen af dens satsede resultater: og det er, hvad SyncTeX leverer—en måde automatisk at forbinde placeringer i TeX-filer med sidernes positioner i satsede dokumenter.

Hvis SyncTeX er aktiveret, skriver det en særlig fil med endelsen `.synctex.gz` (gz-komprimeret) eller `.synctex` (ukomprimeret) afhængigt af de [kommandolinjeindstillinger, der gives til SyncTeX](#synoptions). Teksteditorer med SyncTeX-understøttelse og (for det meste) PDF-fremvisere kan bruge disse filer til at udføre den nødvendige synkronisering mellem input (TeX-kode) og output (visning af den satsede PDF). Det kan naturligvis ikke bare “ske” uden at brugerens teksteditor og PDF-dokumentfremviser har passende funktionalitet, som muliggør kommunikation af placeringer i tekstfil/PDF-fremviser—baseret på data indeholdt i den `.synctex.gz` (eller `.synctex`) fil, der skrives ud af SyncTeX.

Ud over funktionaliteten i TeX-motoren—til at generere `.synctex.gz` filer—leverer SyncTeX også en særlig [parser](https://github.com/jlaurens/synctex/) som læser `.synctex.gz` (eller `.synctex`) filer for at udtrække de relevante side-/linjeplaceringsoplysninger. Programmer bruger den parser til at give understøttelse for SyncTeX.

### Aktivering (aktivering) af SyncTeX

TeX-motorer med SyncTeX-understøttelse har to måder at aktivere/deaktivere SyncTeX på:

* en kommandolinjeindstilling: `-synctex=NUMBER`
* en kommando i `.tex` filen: den `\synctex` primitiv

### Brug af SyncTeX på kommandolinjen

Du kan bruge `-synctex=NUMBER` indstillingen, når du kører en TeX-motor, der understøtter SyncTeX, såsom pdfTeX.

#### Eksempler

* Aktivér SyncTeX: output `.synctex.gz` (gz-komprimeret fil):

```
pdftex -synctex=1 myfile.tex
```

Producerer `myfile.synctex.gz`

* Aktivér SyncTeX: output `.synctex` (ukomprimeret fil):

```
pdftex -synctex=-1 myfile.tex
```

Producerer `myfile.synctex`

* Deaktivér SyncTeX:

```
pdftex -synctex=0 myfile.tex
```

Der produceres ingen SyncTeX-output.

### SyncTeX's eneste primitiv

SyncTeX leverer én primitiv, `\synctex`, som brugere kan tilføje til deres `.tex` fil:

* Aktivér SyncTeX: `\\synctex=1`
* Deaktivér SyncTeX: `\\synctex=0`

### Yderligere information om SyncTeX

* [En TUGBoat-artikel af Jérôme Laurens](http://www.tug.org/TUGboat/tb29-3/tb93laurens.pdf), SyncTeX's forfatter.
* Den [GitHub-depot](https://github.com/jlaurens/synctex) for SyncTeX-parseren.


---

# 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/da/flere-emner/39-mltex-enctex-and-synctex-tex-extensions.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.
