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

# MLTeX EncTeX- og SyncTeX TeX-utvidelser

## Noen bakgrunnsdetaljer om TeX-utvidelser

TeX har en lang utviklingshistorie—nå over 4 tiår! I løpet av den tiden har nye «versjoner» av TeX blitt utviklet—som e-TeX, pdfTeX, XeTeX, LuaTeX og så videre. I tillegg til helt nye motorer, med en hel pakke ekstra funksjoner, har det vært ulike *utvidelser* som vanligvis fokuserer på å implementere en bestemt funksjon for å forbedre Knuths opprinnelige programvare.

Med fremkomsten av moderne TeX-motorer, som XeTeX og LuaTeX, har behovet for, og bruken av, noen eldre TeX-utvidelser avtatt, ettersom de nyere TeX-motorene tilbyr kraftig tilleggsfunksjonalitet—som innebygd støtte for UTF-8-kodet tekst. Hensikten med denne siden er å gi noen notater om utvidelser, inkludert MLTeX og EncTeX, som du kanskje fortsatt ser referert til i en [TeX-motorens kommandolinjealternativer](/latex/no/flere-emner/44-tex-engine-command-line-options-for-pdftex-xetex-and-luatex.md). MLTeX og EncTeX utvikles ikke lenger, men én svært nyttig utvidelse, SyncTeX, videreutvikles aktivt og støttes av Overleaf.

## MLTeX

*Flerspråklig TeX*, eller MLTeX, ble utviklet i årene 1992–5 som en modifikasjon av TeX for å tillate orddeling av ord med aksenttegn ved bruk av vanlige Computer Modern (CM)-fonter.

### Aktivering (innkobling) av MLTeX

MLTeX er utviklet for å fungere som en del av en såkalt `.fmt` (formatfil) som i praksis er en forhåndskompilert binærversjon av et sett TeX-makroer. For å lage formatfiler setter du en TeX-motor i dens såkalte `INI` modus, behandler makrosamlingen og bruker deretter `\dump` kommandoen til å skrive ut `.fmt` filen. Se [denne artikkelen](/latex/no/dybdeartikler/50-the-two-modes-of-tex-engines-ini-mode-and-production-mode.md) for en diskusjon av INI-modus.

For å aktivere MLTeX, *for de motorene som støtter det*, som pdfTeX, ville du skrive

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

der `pdfetex.ini` er en fil som følger med TeX Live-distribusjonen.

**Hvorfor stjernen (`*`)?** Stjernen setter pdfTeX i såkalt «utvidet modus», som aktiverer støtte for e-TeX-primitivene. Hvis du utelater den og skriver `pdftex -ini -mltex pdfetex.ini` vil du få en feil:

```
Dette er pdfTeX, versjon 3.14159265-2.6-1.40.19 (INITEX)
 \write18 aktivert.
MLTeX v2.2 aktivert
(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 feil: denne filen kan bare behandles i utvidet modus;
  glemte du kanskje stjernen?
```

**Merk**: I stedet for å bruke en stjerne for å aktivere «utvidet modus» kan du bruke `-etex` alternativet på kommandolinjen i stedet:

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

**Merk**: Ved å bruke `-mltex` alternativet på kommandolinjen med en `.fmt` fil som ble *ikke generert* med MLTeX aktivert, vil *inneholder* fungere: MLTeX må «aktiveres» via en passende formatfil.

Når du bruker `-mltex` alternativet under `.fmt` filoppretting, skrives en boolsk variabel med verdien «true» inn i `.fmt` filen som forteller TeX-motoren at MLTeX-utvidelsene har blitt aktivert og skal gjøres tilgjengelige for brukeren. Hvis du ikke eksplisitt setter `-mltex` alternativet, vil den tilsvarende variabelen være «false». Hvis verdien av den variabelen oppdages som «false» (når den `.fmt` filen lastes inn på nytt under en TeX-kjøring) vil forsøk på å bruke MLTeX-utvidelsene resultere i en `Udefinert kommando...` feil—fordi MLTeX-primitivene ikke vil ha blitt registrert (lastet inn) og derfor ikke gjenkjennes.

Etter å ha kjørt `pdftex -ini -mltex *pdfetex.ini` på kommandolinjen vil du se noe lignende følgende tekst, som viser at MLTeX v2.2 er aktivert:

```
Dette er pdfTeX, versjon 3.14159265-2.6-1.40.19 (INITEX)
\write18 aktivert.
går inn i utvidet modus
MLTeX v2.2 aktivert
....
....
....
Begynner å skrive ut til filen pdfetex.fmt
....
Ingen sider produsert.
Transkript skrevet til pdfetex.log.
```

Dette resulterer i en `.fmt` fil kalt `pdfetex.fmt` som lar deg bruke MLTeX-kommandoene:

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

der `<yourfile.tex>` kan bruke de MLTeX-spesifikke primitiver

MLTeX ble opprinnelig distribuert som en separat endringsfil, [mltex.ch](http://tug.ctan.org/systems/generic/mltex/mltex.ch), som kunne flettes med Knuths masterkildekode ([`tex.web`](https://ctan.org/tex-archive/systems/knuth/dist/tex?lang=en)) for å avlede en ny versjon av TeX, kalt MLTeX, som inneholdt en rekke nye primitiver. I dag er MLTeX-koden fra `mltex.ch` er innlemmet i den viktigste `tex.ch` endringsfilen som brukes til å bygge nesten alle TeX-motorer.

### MLTeX-primitiver

Følgende notater er hovedsakelig utarbeidet og gjengitt fra filen `web2c.info` som finnes i [TeX Live](https://tug.org/texlive/) distribusjonen.

* **`\charsubdef`**: Tegnerstatningsdefinisjoner. Deklarerer hvordan man konstruerer et aksentert tegn-glyf (ikke nødvendigvis eksisterende i den gjeldende fonten) ved hjelp av to tegnglyfer (som finnes).

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

  Hver av COMPOSITE, ACCENT og BASE er fontglyfnumre, uttrykt i den vanlige TeX-syntaksen: \`\e symbolsk, '145 for oktal, "65 for heksadesimal, 101 for desimal. Dermed definerer det om en tegn-glyfkode, enten skrevet som ett enkelt tegn eller ved bruk av `\char` primitiven, vil bli mappet til en fontglyf eller til en `\accent` glyfkonstruksjon.

  For eksempel, hvis du antar glyfkode 138 (desimal) for en e med cirkumfleks og du bruker Computer Modern-fontene, som har cirkumfleks-akcenten i posisjon 18 og liten ‘e’ i den vanlige ASCII-posisjonen 101 desimal, ville du bruke `\charsubdef` slik:

  ```
  \charsubdef 138 = 18 101
  ```
* **`\charsubdefmax`**: Setter den største verdien i `\charsubdef` listen. For eksempel:

  ```
  \charsubdefmax=-1 % deaktiver alle erstatninger
  \charsubdefmax=256 % aktiver alle erstatninger
  ```
* **`\tracingcharsubdef`**: Sporing av erstatninger. For å hjelpe med å diagnostisere problemer med `\charsubdef`, tilbyr MLTeX en primitiv parameter, `\tracingcharsubdef`. Hvis den er positiv, vil hver bruk av `\charsubdef` bli rapportert. Dette kan hjelpe med å spore når et tegn blir redefinert.

## EncTeX

EncTeX ble utviklet i årene 1997–2004 som en TeX-utvidelse som tilbyr fleksibel input/output-omkoding gjennom tillegg av nye primitiver—for eksempel en måte å oversette inndata på vei inn i TeX. Det tillater for eksempel oversettelse av flerbytesekvenser, som UTF-8-koding, for bruk i standard 8-bits TeX-motorer.

### Aktivering (innkobling) av EncTeX

Som med MLTeX er EncTeX også utviklet for å fungere som del av en såkalt `.fmt` (formatfil)—se [MLTeX](#mltex), ovenfor, for en forklaring av formatfiler/INI-modus.

For å aktivere EncTeX, *for de motorene som støtter det*, som pdfTeX, ville du lage en EncTeX-aktivert formatfil ved å skrive

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

der `pdfetex.ini` er en fil som følger med TeX Live-distribusjonen.

**Hvorfor stjernen (`*`)?** Stjernen setter pdfTeX i såkalt «utvidet modus», som aktiverer støtte for e-TeX-primitivene. Hvis du utelater den og skriver `pdftex -ini -mltex pdfetex.ini` vil du få en feil:

```
Dette er pdfTeX, versjon 3.14159265-2.6-1.40.19 (INITEX)
 \write18 aktivert.
MLTeX v2.2 aktivert
(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 feil: denne filen kan bare behandles i utvidet modus;
  glemte du kanskje stjernen?
```

**Merk**: I stedet for å bruke en stjerne for å aktivere «utvidet modus» kan du bruke `-etex` alternativet på kommandolinjen i stedet:

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

Den `-enc` kommandolinjealternativet får pdfTeX-motoren til å aktivere EncTeX ved å skrive noen data inn i den resulterende `pdfetex.fmt` formatfilen.

**Merk**: Ved å bruke `-enc` alternativet på kommandolinjen med en `.fmt` fil som ble *ikke generert* med EncTeX aktivert vil *inneholder* fungere: EncTeX må «aktiveres» via en passende generert formatfil.

### EncTeX-primitiver

EncTeX legger til 10 nye primitive kommandoer til en TeX-motor:

* 3 primitiver i den første utgaven (1997):
* `\xordcode`
* `\xchrcode`
* `\xprncode`
* 7 ekstra primitiver (for UTF-8-støtte) i 2003:
* `\mubyte`
* `\endmubyte`
* `\mubytein`
* `\mubyteout`
* `\mubytelog`
* `\specialout`
* `\noconvert`

Bruken og oppførselen til disse primitiven er godt dokumentert i [EncTeX-referansemanualen](http://mirrors.ctan.org/systems/enctex/encdoc-e.pdf), skrevet av EncTeXs forfatter, Petr Olšák. For å unngå unødvendig duplisering her, henvises interesserte lesere til det dokumentet.

### Mer informasjon om EncTeX

* [Andre versjon av EncTeX: UTF-8-støtte](http://mirrors.ctan.org/systems/enctex/eurotex2003-enctex.pdf): en artikkel av EncTexs forfatter, Petr Olšák.
* [EncTeX-referansemanualen](http://mirrors.ctan.org/systems/enctex/encdoc-e.pdf) (på engelsk).

### Aktivering (innkobling) av både MLTeX og EncTeX

For å aktivere både MLTeX og EncTeX ville du generere en passende formatfil ved å bruke en kommandolinje som

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

der `pdfetex.ini` er en fil som følger med TeX Live-distribusjonen.

**Hvorfor stjernen (`*`)?** Stjernen setter pdfTeX i såkalt «utvidet modus», som aktiverer støtte for e-TeX-primitivene. Hvis du utelater den og skriver `pdftex -ini -enc -mltex pdfetex.ini` vil du få en feil:

```
Dette er pdfTeX, versjon 3.14159265-2.6-1.40.19 (INITEX)
 \write18 aktivert.
MLTeX v2.2 aktivert
(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 feil: denne filen kan bare behandles i utvidet modus;
  glemte du kanskje stjernen?
```

**Merk**: I stedet for å bruke en stjerne for å aktivere «utvidet modus» kan du bruke `-etex` alternativet på kommandolinjen i stedet:

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

Etter å ha kjørt kommandolinjen ovenfor vil du se en melding, som følgende, som informerer deg om at både MLTeX og EncTeX er aktivert:

```
Dette er pdfTeX, versjon 3.14159265-2.6-1.40.19 (INITEX)
 \write18 aktivert.
går inn i utvidet modus
MLTeX v2.2 aktivert
 encTeX v. Jun. 2004, reencoding enabled.
....
....
....
Begynner å skrive ut til filen pdfetex.fmt
....
Ingen sider produsert.
Transkript skrevet til pdfetex.log.
```

og `pdfetex.fmt` formatfil, som aktiverer både MLTeX og EncTeX, ville bli produsert.

## SyncTeX

SyncTeX-utvidelsen har vært tilgjengelig siden 2008 og videreutvikles fortsatt aktivt av sin skaper, Jérôme Laurens. Den er mye brukt, blant annet av Overleaf, og støttes av alle TeX-motorer som brukes i dag.

### Hva gjør SyncTeX?

Når du viser et dokument satt med TeX, kanskje for korrekturlesing/kontroll før innsending til en utgiver, kan du oppdage en feil og trenge å rette den i TeX-kildekoden. Men det kan være vanskelig å finne riktig sted i TeX-filen, særlig hvis det er et omfattende dokument. Likeledes kan du ønske å gå andre veien: hoppe fra en posisjon i en TeX-kildefil direkte til siden i den endelige PDF-en. I begge tilfeller er det behov for å *synkronisere* en bestemt plassering i en TeX-fil og dens tilsvarende plassering i en visning av de satte resultatene: og det er det SyncTeX tilbyr—en måte å automatisk koble plasseringer i TeX-filer med sideposisjonene i satte dokumenter.

Hvis SyncTeX er aktivert, skriver den ut en spesiell fil med filendelsen `.synctex.gz` (gz-komprimert) eller `.synctex` (ukomprimert) avhengig av [kommandolinjealternativene som gis til SyncTeX](#synoptions). SyncTeX-aktiverte tekstredigerere og (oftest) PDF-visere kan bruke disse filene til å utføre nødvendig synkronisering mellom inndata (TeX-kode) og utdata (visningen av den satte PDF-en). Tydeligvis kan ikke dette bare «skje» uten at brukerens tekstredigerer og PDF-dokumentviser har passende funksjonalitet som muliggjør kommunikasjon av plasseringer i tekstfil/PDF-viser—basert på data som finnes i `.synctex.gz` (eller `.synctex`) filen skrevet ut av SyncTeX.

I tillegg til funksjonalitet i TeX-motoren—for å generere `.synctex.gz` filer—gir SyncTeX også en egen [parser](https://github.com/jlaurens/synctex/) som leser `.synctex.gz` (eller `.synctex`) filer for å trekke ut relevant side-/linjeplasseringsinformasjon. Programmer bruker den parseren for å gi støtte for SyncTeX.

### Aktivering (innkobling) av SyncTeX

SyncTeX-aktiverte TeX-motorer har to måter å aktivere/deaktivere SyncTeX på:

* et kommandolinjealternativ: `-synctex=NUMBER`
* en kommando i `.tex` filen: den `\synctex` primitive

### Bruk av SyncTeX på kommandolinjen

Du kan bruke `-synctex=NUMBER` alternativet når du kjører en TeX-motor som støtter SyncTeX, for eksempel pdfTeX.

#### Eksempler

* Aktiver SyncTeX: utdata `.synctex.gz` (gz-komprimert fil):

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

Produserer `myfile.synctex.gz`

* Aktiver SyncTeX: utdata `.synctex` (ukomprimert fil):

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

Produserer `myfile.synctex`

* Deaktiver SyncTeX:

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

Ingen SyncTeX-utdata produseres.

### SyncTeXs eneste primitiv

SyncTeX tilbyr én primitiv, `\synctex`, som brukere kan legge til i sine `.tex` fil:

* Aktiver SyncTeX: `\synctex=1`
* Deaktiver SyncTeX: `\synctex=0`

### Mer informasjon om SyncTeX

* [En TUGBoat-artikkel av Jérôme Laurens](http://www.tug.org/TUGboat/tb29-3/tb93laurens.pdf), SyncTeXs forfatter.
* Den [GitHub-lageret](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/no/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.
