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

# MLTeX-, EncTeX- ja SyncTeX-TeX-laajennukset

## Joitakin taustatietoja TeX-laajennuksista

TeXillä on pitkä kehityshistoria—nyt jo yli 4 vuosikymmentä! Tänä aikana TeXin uusia ”versioita” on kehitetty—kuten e-TeX, pdfTeX, XeTeX, LuaTeX ja niin edelleen. Täysin uusien moottoreiden lisäksi, joissa on kokonainen joukko lisäominaisuuksia, on ollut useita *laajennuksia* jotka tyypillisesti keskittyvät tietyn ominaisuuden toteuttamiseen Knuthin alkuperäisen ohjelmiston laajentamiseksi.

Nykyaikaisten TeX-moottoreiden, kuten XeTeXin ja LuaTeXin, myötä joidenkin vanhojen TeX-laajennusten tarve ja käyttö ovat hiipuneet, sillä uudemmat TeX-moottorit tuovat mukanaan tehokasta lisätoiminnallisuutta—kuten sisäänrakennetun tuen UTF-8-koodatulle tekstille. Tämän sivun tarkoituksena on antaa muutamia huomioita laajennuksista, mukaan lukien MLTeX ja EncTeX, joihin saatat silti törmätä [TeX-moottorin komentorivivalinnoissa](/latex/fi/lisaa-aiheita/44-tex-engine-command-line-options-for-pdftex-xetex-and-luatex.md). MLTeXiä ja EncTeXiä ei enää kehitetä, mutta yksi erittäin hyödyllinen laajennus, SyncTeX, kehitetään edelleen aktiivisesti ja sitä tukee Overleaf.

## MLTeX

*Monikielinen TeX*, eli MLTeX, kehitettiin vuosina 1992–5 TeXin muunnoksena, jonka avulla voidaan tavallisia Computer Modern (CM) -fontteja käyttäen tavuttaa sanoja, joissa on aksenttimerkillisiä kirjaimia.

### MLTeXin aktivointi (käyttöönotto)

MLTeX on suunniteltu toimimaan osana niin sanottua `.fmt` (formaattitiedostoa), joka on käytännössä valmiiksi käännetty binaariversio joukosta TeX-makroja. Luodaksesi formaattitiedostoja asetat TeX-moottorin niin sanottuun `INI` -tilaan, käsittelet makrokokoelman ja annat sitten `\dump` komennon kirjoittaa ulos `.fmt` tiedosto. Katso [tämä artikkeli](/latex/fi/syvalliset-artikkelit/50-the-two-modes-of-tex-engines-ini-mode-and-production-mode.md) keskustelua INI-tiloista.

Ottaaksesi MLTeXin käyttöön, *niissä moottoreissa, jotka tukevat sitä*, kuten pdfTeXissä, kirjoittaisit

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

jossa `pdfetex.ini` on tiedosto, joka sisältyy TeX Live -jakeluun.

**Miksi tähtimerkki (`*`)?** Tähtimerkki asettaa pdfTeXin niin sanottuun ”laajennettuun tilaan”, joka ottaa käyttöön e-TeX-primitiivien tuen. Jos jätät sen pois ja kirjoitat `pdftex -ini -mltex pdfetex.ini` saat virheilmoituksen:

```
Tämä on pdfTeX, versio 3.14159265-2.6-1.40.19 (INITEX)
 \write18 käytössä.
MLTeX v2.2 käytössä
(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:n kohtalokas virhe: tätä tiedostoa voidaan käsitellä vain laajennetussa tilassa;
  Unohditko ehkä tähtimerkin?
```

**Huomaa**: Tähtimerkin käyttämisen sijaan ”laajennetun tilan” ottamiseen käyttöön voit käyttää `-etex` sen sijaan komentorivivalitsinta:

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

**Huomaa**: Käyttämällä `-mltex` valitsinta komentorivillä yhdessä `.fmt` tiedoston, joka oli *ei luotu* MLTeX käytössä, toimii *sisällä* : MLTeX on ”aktivoitava” asianmukaisen formaattitiedoston kautta.

Kun käytät `-mltex` valitsinta aikana `.fmt` tiedoston luonnissa, kirjoitetaan arvoltaan ”true” oleva totuusarvomuuttuja `.fmt` tiedostoon, joka kertoo TeX-moottorille, että MLTeX-laajennukset on aktivoitu ja ne on tehtävä käyttäjän saataville. Jos et aseta `-mltex` valitsinta nimenomaisesti, vastaavan muuttujan arvo on ”false”. Jos kyseisen muuttujan arvoksi havaitaan ”false” (kun kyseinen `.fmt` tiedosto ladataan uudelleen TeX-ajon aikana), MLTeX-laajennusten käyttäminen johtaa `Määrittelemätön komento...` -virheeseen—koska MLTeX-primitiivejä ei ole rekisteröity (ladattu) eikä niitä siksi tunnisteta.

Kun olet suorittanut `pdftex -ini -mltex *pdfetex.ini` komentorivillä, näet jotakin seuraavan tekstin kaltaista, joka osoittaa, että MLTeX v2.2 on käytössä:

```
Tämä on pdfTeX, versio 3.14159265-2.6-1.40.19 (INITEX)
\write18 käytössä.
siirrytään laajennettuun tilaan
MLTeX v2.2 käytössä
....
....
....
Aloitetaan kirjoitus tiedostoon pdfetex.fmt
....
Ei tulostuneita sivuja.
Loki kirjoitettu tiedostoon pdfetex.log.
```

Tämä tuottaa `.fmt` tiedoston nimeltä `pdfetex.fmt` joka mahdollistaa MLTeX-komentojen käytön:

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

jossa `<yourfile.tex>` voi hyödyntää MLTeX-kohtaisia primitiivejä

MLTeX jaettiin alun perin erillisenä muokkaustiedostona, [mltex.ch](http://tug.ctan.org/systems/generic/mltex/mltex.ch), joka voitiin yhdistää Knuthin päälähdekoodiin ([`tex.web`](https://ctan.org/tex-archive/systems/knuth/dist/tex?lang=en)) saadakseen uuden TeX-version, nimeltä MLTeX, joka sisälsi useita uusia primitiivejä. Nykyään MLTeX-koodi tiedostosta `mltex.ch` on sisällytetty pää `tex.ch` muokkaustiedostoon, jota käytetään lähes kaikkien TeX-moottoreiden rakentamiseen.

### MLTeX-primitiivit

Seuraavat huomiot on pääosin valmisteltu ja jäljennetty tiedostosta `web2c.info` joka sisältyy [TeX Live](https://tug.org/texlive/) jakeluun.

* **`\charsubdef`**: Merkin korvausmäärittelyt. Määrittää, kuinka muodostetaan aksentillinen merkkiglyyfi (ei välttämättä nykyisessä fontissa oleva) käyttämällä kahta merkkiglyyfiä (jotka ovat olemassa).

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

  COMPOSITE, ACCENT ja BASE ovat fontin glyfinumeroita, jotka ilmaistaan tavallisessa TeX-syntaksissa: \`\e symbolisesti, '145 oktaalille, "65 heksadesimaalille, 101 desimaalille. Näin se määrittää, käännetäänkö merkkiglyfikoodi, joko yksittäisenä merkkinä kirjoitettuna tai käyttämällä `\char` primitiiviä, fonttiglyyfiin vai `\accent` glyyfin rakentamiseen.

  Esimerkiksi, jos oletat e-kreivin glyfikoodiksi 138 (desimaalina) ja käytät Computer Modern -fontteja, joissa kreivimerkki on sijainnissa 18 ja pieni e tavallisessa ASCII-sijainnissa 101 desimaalina, käyttäisit `\charsubdef` seuraavasti:

  ```
  \charsubdef 138 = 18 101
  ```
* **`\charsubdefmax`**: Asettaa suurimman arvon `\charsubdef` luettelossa. Esimerkiksi:

  ```
  \charsubdefmax=-1 % poista kaikki korvaukset käytöstä
  \charsubdefmax=256 % ota kaikki korvaukset käyttöön
  ```
* **`\tracingcharsubdef`**: Korvausten jäljitys. Auttamaan ongelmien diagnosoinnissa `\charsubdef`, MLTeX tarjoaa primitiiviparametrin, `\tracingcharsubdef`\charsubdefmax `\charsubdef` . Jos arvo on positiivinen, jokainen \charsubdefmax:n käyttö raportoidaan. Tämä voi auttaa jäljittämään, milloin merkki määritellään uudelleen.

## EncTeX

EncTeX kehitettiin vuosina 1997–2004 TeX-laajennukseksi, joka tarjoaa joustavan syötteen/tulosteen uudelleenkoodauksen lisäämällä uusia primitiivejä—esimerkiksi keinon muuntaa syöte TeXiin tullessaan. Se mahdollistaa esimerkiksi monibittisten sekvenssien, kuten UTF-8-koodauksen, muuntamisen käytettäväksi tavallisissa 8-bittisissä TeX-moottoreissa.

### EncTeXin aktivointi (käyttöönotto)

Kuten MLTeX, EncTeX on myös suunniteltu toimimaan osana niin sanottua `.fmt` (formaattitiedostoa) – katso [MLTeX](#mltex), yllä, jos haluat selityksen formaattitiedostoista/INI-tilasta.

Ottaaksesi EncTeXin käyttöön, *niissä moottoreissa, jotka tukevat sitä*, kuten pdfTeXin, loisit EncTeX-käytössä olevan formaattitiedoston kirjoittamalla

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

jossa `pdfetex.ini` on tiedosto, joka sisältyy TeX Live -jakeluun.

**Miksi tähtimerkki (`*`)?** Tähtimerkki asettaa pdfTeXin niin sanottuun ”laajennettuun tilaan”, joka ottaa käyttöön e-TeX-primitiivien tuen. Jos jätät sen pois ja kirjoitat `pdftex -ini -mltex pdfetex.ini` saat virheilmoituksen:

```
Tämä on pdfTeX, versio 3.14159265-2.6-1.40.19 (INITEX)
 \write18 käytössä.
MLTeX v2.2 käytössä
(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:n kohtalokas virhe: tätä tiedostoa voidaan käsitellä vain laajennetussa tilassa;
  Unohditko ehkä tähtimerkin?
```

**Huomaa**: Tähtimerkin käyttämisen sijaan ”laajennetun tilan” ottamiseen käyttöön voit käyttää `-etex` sen sijaan komentorivivalitsinta:

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

Se `-enc` komentorivivalitsin saa pdfTeX-moottorin ottamaan EncTeXin käyttöön kirjoittamalla joitakin tietoja tuloksena syntyvään `pdfetex.fmt` formaattitiedostoon.

**Huomaa**: Käyttämällä `-enc` valitsinta komentorivillä yhdessä `.fmt` tiedoston, joka oli *ei luotu* EncTeX käytössä, toimii *sisällä* toimi: EncTeX on ”aktivoitava” asianmukaisesti luodun formaattitiedoston kautta.

### EncTeX-primitiivit

EncTeX lisää TeX-moottoriin 10 uutta primitiivikomentoa:

* 3 primitiiviä alkuperäisessä julkaisussa (1997):
* `\xordcode`
* `\xchrcode`
* `\xprncode`
* 7 lisäprimitiiviä (UTF-8-tukea varten) vuonna 2003:
* `\mubyte`
* `\endmubyte`
* `\mubytein`
* `\mubyteout`
* `\mubytelog`
* `\specialout`
* `\noconvert`

Näiden primitiivien käyttö ja toiminta on hyvin dokumentoitu [EncTeX-viitemanuaalissa](http://mirrors.ctan.org/systems/enctex/encdoc-e.pdf), jonka on kirjoittanut EncTeXin tekijä Petr Olšák. Turhan toiston välttämiseksi kiinnostuneet lukijat ohjataan siihen asiakirjaan.

### Lisätietoja EncTeXistä

* [EncTeXin toinen versio: UTF-8-tuki](http://mirrors.ctan.org/systems/enctex/eurotex2003-enctex.pdf): EncTeXin tekijän Petr Olšákin artikkeli.
* [EncTeX-viitemanuaalissa](http://mirrors.ctan.org/systems/enctex/encdoc-e.pdf) (englanniksi).

### Sekä MLTeXin että EncTeXin aktivointi (käyttöönotto)

Ottaaksesi sekä MLTeXin että EncTeXin käyttöön, luot sopivan formaattitiedoston käyttämällä komentoriviä kuten

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

jossa `pdfetex.ini` on tiedosto, joka sisältyy TeX Live -jakeluun.

**Miksi tähtimerkki (`*`)?** Tähtimerkki asettaa pdfTeXin niin sanottuun ”laajennettuun tilaan”, joka ottaa käyttöön e-TeX-primitiivien tuen. Jos jätät sen pois ja kirjoitat `pdftex -ini -enc -mltex pdfetex.ini` saat virheilmoituksen:

```
Tämä on pdfTeX, versio 3.14159265-2.6-1.40.19 (INITEX)
 \write18 käytössä.
MLTeX v2.2 käytössä
(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:n kohtalokas virhe: tätä tiedostoa voidaan käsitellä vain laajennetussa tilassa;
  Unohditko ehkä tähtimerkin?
```

**Huomaa**: Tähtimerkin käyttämisen sijaan ”laajennetun tilan” ottamiseen käyttöön voit käyttää `-etex` sen sijaan komentorivivalitsinta:

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

Kun olet suorittanut yllä olevan komentorivin, näet esimerkiksi seuraavan viestin, joka kertoo, että sekä MLTeX että EncTeX ovat käytössä:

```
Tämä on pdfTeX, versio 3.14159265-2.6-1.40.19 (INITEX)
 \write18 käytössä.
siirrytään laajennettuun tilaan
MLTeX v2.2 käytössä
 encTeX v. Jun. 2004, uudelleenkoodaus käytössä.
....
....
....
Aloitetaan kirjoitus tiedostoon pdfetex.fmt
....
Ei tulostuneita sivuja.
Loki kirjoitettu tiedostoon pdfetex.log.
```

ja `pdfetex.fmt` formaattitiedosto, joka ottaa käyttöön sekä MLTeXin että EncTeXin, tuotettaisiin.

## SyncTeX

SyncTeX-laajennus on ollut saatavilla vuodesta 2008, ja sen tekijä Jérôme Laurens kehittää sitä edelleen aktiivisesti. Sitä käytetään laajasti, myös Overleafissa, ja sitä tukevat kaikki nykyään käytössä olevat TeX-moottorit.

### Mitä SyncTeX tekee?

Kun katsot TeXillä ladottua asiakirjaa, ehkä oikolukua/tarkistusta varten ennen lähettämistä kustantajalle, saatat huomata virheen ja joutua korjaamaan sen TeX-lähdekoodissa. Oikean paikan löytäminen TeX-tiedostosta voi kuitenkin olla hankalaa, erityisesti jos kyseessä on laaja asiakirja. Vastaavasti saatat haluta edetä myös toiseen suuntaan: hypätä TeX-lähdetiedoston kohdasta suoraan lopullisen ladotun PDF:n sivukohtaan. Molemmissa tapauksissa on tarpeen *synkronoida* tietty sijainti TeX-tiedostossa ja sitä vastaava sijainti ladotun tuloksen näytössä: ja juuri sen SyncTeX tarjoaa—tavan yhdistää automaattisesti TeX-tiedostojen sijainteja ladottujen asiakirjojen sivusijainteihin.

Jos SyncTeX on käytössä, se kirjoittaa erityisen tiedoston, jonka päätteenä on `.synctex.gz` (gz-pakattu) tai `.synctex` (pakkaamaton) riippuen [SyncTeXille annetuista komentorivivalinnoista](#synoptions). SyncTeX-yhteensopivat tekstieditorit ja (useimmiten) PDF-katseluohjelmat voivat käyttää näitä tiedostoja suorittaakseen tarvittavan synkronoinnin syötteen (TeX-koodi) ja tulosteen (ladotun PDF:n näyttö) välillä. Selvää on, ettei tämä voi vain ”tapahtua” ilman, että käyttäjän tekstieditorissa ja PDF-katseluohjelmassa on asianmukainen toiminnallisuus, joka mahdollistaa tekstitiedoston ja PDF-katseluohjelman sijaintien välisen viestinnän—perustuen tietoihin, jotka sisältyvät `.synctex.gz` (tai `.synctex`) tiedostoon, jonka SyncTeX kirjoittaa.

TeX-moottorin sisäisen toiminnallisuuden lisäksi—tuottaakseen `.synctex.gz` tiedostoja—SyncTeX tarjoaa myös erityisen [jäsennin](https://github.com/jlaurens/synctex/) joka lukee `.synctex.gz` (tai `.synctex`) tiedostoja poimiakseen olennaiset sivu-/rivin sijaintitiedot. Sovellukset käyttävät tuota jäsennintä tukeakseen SyncTeXiä.

### SyncTeXin aktivointi (käyttöönotto)

SyncTeX-yhteensopivissa TeX-moottoreissa SyncTeXin voi ottaa käyttöön tai poistaa käytöstä kahdella tavalla:

* komentorivivalitsimella: `-synctex=NUMBER`
* komento `.tex` tiedostossa: `\synctex` primitiivi

### SyncTeXin käyttäminen komentorivillä

Voit käyttää `-synctex=NUMBER` valitsinta, kun suoritat SyncTeXiä tukevan TeX-moottorin, kuten pdfTeXin.

#### Esimerkkejä

* Ota SyncTeX käyttöön: tuloste `.synctex.gz` (gz-pakattu tiedosto):

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

Tuottaa `myfile.synctex.gz`

* Ota SyncTeX käyttöön: tuloste `.synctex` (pakkaamaton tiedosto):

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

Tuottaa `myfile.synctex`

* Poista SyncTeX käytöstä:

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

SyncTeX-tulostetta ei tuoteta.

### SyncTeXin ainoa primitiivi

SyncTeX tarjoaa yhden primitiivin, `\synctex`, jonka käyttäjät voivat lisätä omiin `.tex` tiedosto:

* Ota SyncTeX käyttöön: `\synctex=1`
* Poista SyncTeX käytöstä: `\synctex=0`

### Lisätietoja SyncTeXistä

* [Jérôme Laurensin TUGBoat-artikkeli](http://www.tug.org/TUGboat/tb29-3/tb93laurens.pdf), SyncTeXin tekijä.
* Se [GitHub-arkisto](https://github.com/jlaurens/synctex) SyncTeX-jäsentimestä.


---

# 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/lisaa-aiheita/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.
