> 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/it/altri-argomenti/39-mltex-enctex-and-synctex-tex-extensions.md).

# Estensioni TeX MLTeX, EncTeX e SyncTeX

## Alcuni dettagli di contesto sulle estensioni di TeX

TeX ha una lunga storia di sviluppo—ormai oltre 4 decenni! Durante quel periodo sono state sviluppate nuove “versioni” di TeX—come e-TeX, pdfTeX, XeTeX, LuaTeX e così via. Oltre a motori completamente nuovi, con tutta una serie di funzionalità extra, ci sono state varie *estensioni* che in genere si concentrano sull’implementazione di una funzione specifica per migliorare il software originale di Knuth.

Con l’avvento dei moderni motori TeX, come XeTeX e LuaTeX, la necessità e l’uso di alcune estensioni legacy di TeX sono venuti meno, poiché i motori TeX più recenti offrono potenti funzionalità aggiuntive—come il supporto integrato per il testo codificato in UTF-8. Lo scopo di questa pagina è fornire alcune note sulle estensioni, incluse MLTeX ed EncTeX, che potresti ancora vedere citate in un [opzioni da riga di comando del motore TeX](/latex/it/altri-argomenti/44-tex-engine-command-line-options-for-pdftex-xetex-and-luatex.md). MLTeX ed EncTeX non sono più sviluppati, ma una estensione molto utile, SyncTeX, continua a essere sviluppata attivamente ed è supportata da Overleaf.

## MLTeX

*TeX multilingue*, o MLTeX, è stato sviluppato negli anni 1992–1995 come modifica di TeX per consentire la sillabazione di parole con lettere accentate utilizzando i normali font Computer Modern (CM).

### Attivazione (abilitazione) di MLTeX

MLTeX è progettato per funzionare come parte di un cosiddetto `.fmt` (file di formato), che in effetti è una versione binaria precompilata di un insieme di macro TeX. Per creare file di formato si mette un motore TeX nella sua cosiddetta `INI` modalità, si elabora la raccolta di macro e poi si impartisce il `\\dump` comando per scrivere il `.fmt` file. Vedi [questo articolo](/latex/it/articoli-approfonditi/50-the-two-modes-of-tex-engines-ini-mode-and-production-mode.md) per una discussione delle modalità INI.

Per abilitare MLTeX, *per i motori che lo supportano*, come pdfTeX, si scriverebbe

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

dove `pdfetex.ini` è un file contenuto nella distribuzione TeX Live.

**Perché l’asterisco (`*`)?** L’asterisco mette pdfTeX nella cosiddetta “modalità estesa”, che abilita il supporto dei primitivi e-TeX. Se lo ometti e digiti `pdftex -ini -mltex pdfetex.ini` riceverai un errore:

```
This is pdfTeX, Version 3.14159265-2.6-1.40.19 (INITEX)
 \write18 enabled.
MLTeX v2.2 abilitato
(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

! errore fatale di e-TeX: questo file può essere elaborato solo in modalità estesa;
  hai forse dimenticato l’asterisco?
```

**Nota**: Invece di usare un asterisco per abilitare la “modalità estesa” puoi usare la `-etex` opzione da riga di comando:

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

**Nota**: Usando l’ `-mltex` opzione sulla riga di comando con un `.fmt` file che è stato *non generato* con MLTeX abilitato non funzionerà: *non* funzionare: MLTeX deve essere “attivato” tramite un file di formato appropriato.

Quando usi l’ `-mltex` opzione durante `.fmt` la creazione del file, viene scritta nel `.fmt` file una variabile booleana con valore “true” che indica al motore TeX che le estensioni MLTeX sono state attivate e devono essere rese disponibili all’utente. Se non imposti esplicitamente l’ `-mltex` opzione, allora la variabile corrispondente sarà “false”. Se il valore di quella variabile viene rilevato come “false” (quando quel `.fmt` file viene ricaricato durante un’esecuzione di TeX), allora il tentativo di usare le estensioni MLTeX produrrà un `Comando non definito...` errore—perché i primitivi MLTeX non saranno stati registrati (caricati) e quindi non saranno riconosciuti.

Dopo aver eseguito `pdftex -ini -mltex *pdfetex.ini` sulla riga di comando, vedrai qualcosa di simile al seguente testo, che mostra che MLTeX v2.2 è abilitato:

```
This is pdfTeX, Version 3.14159265-2.6-1.40.19 (INITEX)
\write18 enabled.
ingresso in modalità estesa
MLTeX v2.2 abilitato
....
....
....
Inizio del dump nel file pdfetex.fmt
....
Nessuna pagina di output.
Trascrizione scritta su pdfetex.log.
```

Questo produce un `.fmt` file chiamato `pdfetex.fmt` che ti consente di usare i comandi MLTeX:

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

dove `<yourfile.tex>` può fare uso dei primitivi specifici di MLTeX

MLTeX era originariamente distribuito come file di modifica separato, [mltex.ch](http://tug.ctan.org/systems/generic/mltex/mltex.ch), che poteva essere unito al codice sorgente principale di Knuth ([`tex.web`](https://ctan.org/tex-archive/systems/knuth/dist/tex?lang=en)) per derivare una nuova versione di TeX, chiamata MLTeX, che conteneva una serie di nuovi primitivi. Oggi, il codice MLTeX da `mltex.ch` è confluito nel principale `tex.ch` file di modifica usato per compilare quasi tutti i motori TeX.

### Primitivi di MLTeX

Le seguenti note sono per lo più preparate e riprodotte dal file `web2c.info` contenuto nel [TeX Live](https://tug.org/texlive/) distribuzione.

* **`\charsubdef`**: Definizioni di sostituzione dei caratteri. Dichiara come costruire un glifo di carattere accentato (non necessariamente presente nel font corrente) usando due glifi di carattere (che invece esistono).

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

  Ciascuno di COMPOSITE, ACCENT e BASE è un numero di glifo del font, espresso nella sintassi TeX abituale: \`\e simbolicamente, '145 per l’ottale, "65 per l’esadecimale, 101 per il decimale. Quindi definisce se un codice di glifo di carattere, digitato come carattere singolo oppure usando il `\char` primitivo, verrà mappato su un glifo di font o su una `\accent` costruzione di glifo.

  Per esempio, se assumi il codice di glifo 138 (decimale) per una e-circonflessa e stai usando i font Computer Modern, che hanno l’accento circonflesso nella posizione 18 e la ‘e’ minuscola nella consueta posizione ASCII 101 decimale, useresti `\charsubdef` come segue:

  ```
  \charsubdef 138 = 18 101
  ```
* **`\charsubdefmax`**: Imposta il valore massimo nell’ `\charsubdef` elenco. Per esempio:

  ```
  \charsubdefmax=-1 % disable all substitutions
  \charsubdefmax=256 % enable all substitutions
  ```
* **`\tracingcharsubdef`**: Tracciamento delle sostituzioni. Per aiutare a diagnosticare problemi con `\charsubdef`, MLTeX fornisce un parametro primitivo, `\tracingcharsubdef`. Se è positivo, ogni uso di `\charsubdef` sarà segnalato. Questo può aiutare a individuare quando un carattere viene ridefinito.

## EncTeX

EncTeX è stato sviluppato negli anni 1997–2004 come estensione di TeX che fornisce una ricodifica flessibile di input/output tramite l’aggiunta di nuovi primitivi—per esempio, un mezzo per tradurre l’input durante il suo ingresso in TeX. Permette, per esempio, la traduzione di sequenze multibyte, come la codifica UTF-8, per l’uso in motori TeX standard a 8 bit.

### Attivazione (abilitazione) di EncTeX

Come per MLTeX, EncTeX è anch’esso progettato per funzionare come parte di un cosiddetto `.fmt` (file di formato)–vedi [MLTeX](#mltex), sopra, per una spiegazione dei file di formato/modalità INI.

Per abilitare EncTeX, *per i motori che lo supportano*, come pdfTeX, creeresti un file di formato abilitato per EncTeX scrivendo

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

dove `pdfetex.ini` è un file contenuto nella distribuzione TeX Live.

**Perché l’asterisco (`*`)?** L’asterisco mette pdfTeX nella cosiddetta “modalità estesa”, che abilita il supporto dei primitivi e-TeX. Se lo ometti e digiti `pdftex -ini -mltex pdfetex.ini` riceverai un errore:

```
This is pdfTeX, Version 3.14159265-2.6-1.40.19 (INITEX)
 \write18 enabled.
MLTeX v2.2 abilitato
(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

! errore fatale di e-TeX: questo file può essere elaborato solo in modalità estesa;
  hai forse dimenticato l’asterisco?
```

**Nota**: Invece di usare un asterisco per abilitare la “modalità estesa” puoi usare la `-etex` opzione da riga di comando:

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

Il `-enc` l’opzione da riga di comando fa sì che il motore pdfTeX abiliti EncTeX scrivendo alcuni dati nel corrispondente `pdfetex.fmt` file di formato.

**Nota**: Usando l’ `-enc` opzione sulla riga di comando con un `.fmt` file che è stato *non generato* con EncTeX abilitato non funzionerà: *non* funzionare: EncTeX deve essere “attivato” tramite un file di formato generato in modo appropriato.

### Primitivi di EncTeX

EncTeX aggiunge 10 nuovi comandi primitivi a un motore TeX:

* 3 primitivi nella versione iniziale (1997):
* `\xordcode`
* `\xchrcode`
* `\xprncode`
* 7 primitivi aggiuntivi (per il supporto UTF-8) nel 2003:
* `\mubyte`
* `\endmubyte`
* `\mubytein`
* `\mubyteout`
* `\mubytelog`
* `\specialout`
* `\noconvert`

L’uso e il comportamento di questi primitivi sono ben documentati nel [manuale di riferimento di EncTeX](http://mirrors.ctan.org/systems/enctex/encdoc-e.pdf), scritto dall’autore di EncTeX, Petr Olšák. Per evitare una duplicazione non necessaria qui, i lettori interessati sono rimandati a quel documento.

### Ulteriori informazioni su EncTeX

* [Seconda versione di EncTeX: supporto UTF-8](http://mirrors.ctan.org/systems/enctex/eurotex2003-enctex.pdf): un articolo dell’autore di EncTeX, Petr Olšák.
* [manuale di riferimento di EncTeX](http://mirrors.ctan.org/systems/enctex/encdoc-e.pdf) (in inglese).

### Attivazione (abilitazione) sia di MLTeX sia di EncTeX

Per abilitare sia MLTeX sia EncTeX, genereresti un file di formato adatto usando una riga di comando come

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

dove `pdfetex.ini` è un file contenuto nella distribuzione TeX Live.

**Perché l’asterisco (`*`)?** L’asterisco mette pdfTeX nella cosiddetta “modalità estesa”, che abilita il supporto dei primitivi e-TeX. Se lo ometti e digiti `pdftex -ini -enc -mltex pdfetex.ini` riceverai un errore:

```
This is pdfTeX, Version 3.14159265-2.6-1.40.19 (INITEX)
 \write18 enabled.
MLTeX v2.2 abilitato
(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

! errore fatale di e-TeX: questo file può essere elaborato solo in modalità estesa;
  hai forse dimenticato l’asterisco?
```

**Nota**: Invece di usare un asterisco per abilitare la “modalità estesa” puoi usare la `-etex` opzione da riga di comando:

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

Dopo aver eseguito la riga di comando sopra vedresti un messaggio, simile al seguente, per informarti che MLTeX ed EncTeX sono entrambi abilitati:

```
This is pdfTeX, Version 3.14159265-2.6-1.40.19 (INITEX)
 \write18 enabled.
ingresso in modalità estesa
MLTeX v2.2 abilitato
 encTeX v. Jun. 2004, ricodifica abilitata.
....
....
....
Inizio del dump nel file pdfetex.fmt
....
Nessuna pagina di output.
Trascrizione scritta su pdfetex.log.
```

e il `pdfetex.fmt` file di formato, che abilita sia MLTeX sia EncTeX, verrebbe prodotto.

## SyncTeX

L’estensione SyncTeX è disponibile dal 2008 e continua a essere sviluppata attivamente dal suo creatore, Jérôme Laurens. È ampiamente utilizzata, anche da Overleaf, ed è supportata da tutti i motori TeX in uso oggi.

### Cosa fa SyncTeX?

Quando visualizzi un documento composto con TeX, magari per una rilettura/verifica prima dell’invio a un editore, potresti notare un errore e doverlo correggere nel codice sorgente TeX. Tuttavia, trovare la posizione giusta nel file TeX può essere complicato, specialmente se si tratta di un documento corposo. Allo stesso modo, potresti voler andare nella direzione opposta: saltare da una posizione in un file sorgente TeX direttamente alla posizione della pagina nel PDF finale composto. In entrambi i casi, c’è bisogno di *sincronizzare* una particolare posizione in un file TeX e la sua corrispondente posizione all’interno di una visualizzazione dei risultati composti: ed è questo che fornisce SyncTeX—un modo per collegare automaticamente le posizioni nei file TeX con le posizioni di pagina nei documenti composti.

Se SyncTeX è abilitato, scrive un file speciale con estensione `.synctex.gz` (compresso con gz) oppure `.synctex` (non compresso) a seconda delle [opzioni da riga di comando fornite a SyncTeX](#synoptions). Gli editor di testo abilitati per SyncTeX e, per lo più, i visualizzatori PDF possono usare quei file per eseguire la sincronizzazione necessaria tra input (codice TeX) e output (visualizzazione del PDF composto). Chiaramente, questo non può semplicemente “accadere” senza che l’editor di testo e il visualizzatore PDF dell’utente dispongano della funzionalità appropriata che consenta la comunicazione delle posizioni tra file di testo e visualizzatore PDF—basata sui dati contenuti nel `.synctex.gz` (o `.synctex`file) scritto da SyncTeX.

Oltre alla funzionalità all’interno del motore TeX—per generare `.synctex.gz` file—SyncTeX fornisce anche un parser speciale [parser](https://github.com/jlaurens/synctex/) che legge `.synctex.gz` (o `.synctex`file) per estrarre le informazioni rilevanti sulla posizione pagina/riga. Le applicazioni usano quel parser per fornire supporto a SyncTeX.

### Attivazione (abilitazione) di SyncTeX

I motori TeX abilitati per SyncTeX hanno due modi per attivare/disattivare SyncTeX:

* un’opzione da riga di comando: `-synctex=NUMBER`
* un comando nel `.tex` file: il `\synctex` primitivi

### Uso di SyncTeX dalla riga di comando

Puoi usare il `-synctex=NUMBER` opzione quando esegui un motore TeX che supporta SyncTeX, come pdfTeX.

#### Esempi

* Abilita SyncTeX: output `.synctex.gz` (file compresso con gz):

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

Produce `myfile.synctex.gz`

* Abilita SyncTeX: output `.synctex` (file non compresso):

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

Produce `myfile.synctex`

* Disabilita SyncTeX:

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

Non viene prodotto alcun output di SyncTeX.

### L’unico primitivo di SyncTeX

SyncTeX fornisce un primitivo, `\synctex`, che gli utenti possono aggiungere ai loro `.tex` file personalizzato:

* Abilita SyncTeX: `\synctex=1`
* Disabilita SyncTeX: `\synctex=0`

### Ulteriori informazioni su SyncTeX

* [Un articolo su TUGBoat di Jérôme Laurens](http://www.tug.org/TUGboat/tb29-3/tb93laurens.pdf), autore di SyncTeX.
* Il [repository GitHub](https://github.com/jlaurens/synctex) del parser di SyncTeX.


---

# 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/it/altri-argomenti/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.
