Strano errore TeX – makeindex.

  • Creatore
    Topic
  • #84384
    Up
    0
    Down
    ::


    Sto compilando un documento con XeTeX e makeindex. I comandi sono:

    `
    xetex adoc.tex
    makeindex -s dnd.ist -o adoc.dnd adoc.ddx
    makeindex -s und.ist -o adoc.und adoc.udx
    makeindex -s chn.ist -o adoc.chn adoc.chk
    xetex adoc.tex
    `

    Tutto va bene fino a quando non aggiungo in coda al documento un comando del tipo [tt]\chapter{Un ulteriore capitolo.}[/tt]. Non riporto la definizione di [tt]\chapter[/tt] perchè è usato molte volte nel documento che, ripeto, si compila bene fino a quando non ne aggiungo uno.

    Dunque l’errore restituito è
    `
    –> Writing index file adoc.chk (./adoc.toc [1])
    Runaway argument?
    ! File ended while scanning use of \t.

    \par
    `

    Nel file [tt]adoc.toc[/tt] non esiste alcun comando [tt]\t[/tt], ma semmai [tt]\tocline[/tt].

    Proseguo gli esperimenti e vedo che, modificando il comando [tt]\chapter{Un ulteriore capitolo.}[/tt] in [tt]\section{Una ulteriore lunga sezione.}[/tt] ottengo l’errore
    `
    –> Writing index file adoc.chk (./adoc.toc [1])
    Runaway argument?
    {\hskip 0.0pt\tenss Una ulteriore lunga sezione.
    ! File ended while scanning use of \tocline.

    \par
    `

    Notare il terzo rigo. Fa riferimento al penultimo comando presente in [tt]adoc.toc: \tocline{\hskip 0.0pt\tenss Una ulteriore lunga sezione.}{64}[/tt].

    Nuovo esperimento: il comando diventa [tt]\section{Una ulteriore l sezione.}[/tt] (ho eliminato alcune lettere); l’errore diventa
    `
    –> Writing index file adoc.chk (./adoc.toc [1])
    Runaway argument?
    {64
    ! File ended while scanning use of \tocline.

    \par
    `

    Notare il terzo rigo: eliminando 4 lettere dal comando TeX ha continuato a leggere quattro lettere in più dal file [tt]adoc.toc[/tt]: è come se si fosse raggiunto un qualche limite di memoria, per cui TeX interrompe la lettura di un file ad un certo non arbitrario punto.

    Ultimo esperimento. Il comando diventa [tt]\section{Una ulteriore sezione.}[/tt] (eliminati altri due caratteri). 80 pagine di documento vengono compilati senza un lamento.

    E’ possibile venire a capo di questo comportamento?.

    Grazie, ciao e buona pasqua.

Visualizzazione 9 filoni di risposte
  • Autore
    Risposte
    • #84385
      Up
      0
      Down
      ::

      Sam Qasbah” post=83701Sto compilando un documento con XeTeX e makeindex.

      […]

      E’ possibile venire a capo di questo comportamento?

      No, senza un esempio minimo.

      Ciao
      Enrico

    • #84386
      Up
      0
      Down
      ::

      egreg9″ post=83704

      Sto compilando un documento con XeTeX e makeindex.

      […]

      E’ possibile venire a capo di questo comportamento?

      No, senza un esempio minimo.

      Ciao
      Enrico

      Stavolta è complicato dare un esempio minimo. Il problema si presenta a partire dalla 81ma pagina di documento e non prima.

      Grazie lo stesso, ciao.

    • #84387
      Up
      0
      Down
      ::

      Sam Qasbah” post=83709Stavolta è complicato dare un esempio minimo. Il problema si presenta a partire dalla 81ma pagina di documento e non prima.

      L’usuale sospetto in questi casi è un comando fragile non protetto. Qual è il titolo del capitolo che fa fallire la compilazione?

      Ciao
      Enrico

    • #84388
      Up
      0
      Down
      ::

      egreg9″ post=83711

      Stavolta è complicato dare un esempio minimo. Il problema si presenta a partire dalla 81ma pagina di documento e non prima.

      L’usuale sospetto in questi casi è un comando fragile non protetto. Qual è il titolo del capitolo che fa fallire la compilazione?

      Ciao
      Enrico

      E’ vero, ma in questo caso credo che si tratti di un problema di gestione di risorse. Come ho detto nel primo post il problema si presenta se il parametro dell’ultimo comando [tt]\section[/tt] supera i 22 caratteri; fino a 22 caratteri compila. Oltre i 22 caratteri interrompe la lettura del file [tt].toc[/tt], e la interrompe tanto prima quanto più è lungo il suddetto parametro.

      Mi rendo conto che il mio primo post è lungo e palloso, e me ne scuso. Ma avendo già letto qui e altrove del problema dei comandi fragili, e credendo invece di avere isolato un problema di tipo diverso, ritenevo che la mia ricerca potesse tornare utile ad individuare una soluzione.

      Comunque grazie per ogni contributo.

    • #84389
      Up
      0
      Down
      ::

      Sam Qasbah” post=83712E’ vero, ma in questo caso credo che si tratti di un problema di gestione di risorse. Come ho detto nel primo post il problema si presenta se il parametro dell’ultimo comando [tt]\section[/tt] supera i 22 caratteri; fino a 22 caratteri compila. Oltre i 22 caratteri interrompe la lettura del file [tt].toc[/tt], e la interrompe tanto prima quanto più è lungo il suddetto parametro.

      Mi rendo conto che il mio primo post è lungo e palloso, e me ne scuso. Ma avendo già letto qui e altrove del problema dei comandi fragili, e credendo invece di avere isolato un problema di tipo diverso, ritenevo che la mia ricerca potesse tornare utile ad individuare una soluzione.

      Comunque grazie per ogni contributo.

      Dubito che sia un problema di numero di caratteri. TeX Live pone [tt]buf_size=200000[/tt].

      Ciao
      Enrico

    • #84390
      Up
      0
      Down
      ::


      Temo che sia del tutto inutile chiedere la stessa cosa su TeX.StackExchange. Puoi per favore dire quale ruolo ha MakeIndex in tutto questo?

      Ciao
      Enrico

    • #84391
      Up
      0
      Down
      ::


      Forse è inutile, ma non inopportuno 😉 .

      A seguito della sequenza di comandi

      `
      xetex adoc.tex
      makeindex -s dnd.ist -o adoc.dnd adoc.ddx
      makeindex -s und.ist -o adoc.und adoc.udx
      makeindex -s chn.ist -o adoc.chn adoc.chk
      xetex adoc.tex
      `

      lanciati con un file bash ottengo i seguenti messaggi su terminale (ridotti alle parti essenziali)

      `
      This is XeTeX, Version 3.1415926-2.4-0.9998 (TeX Live 2012)
      restricted \write18 enabled.
      entering extended mode
      (./adoc.tex (./tweb.sty
      — I cannot find file adoc.ref )

      –> Writing index file adoc.udx

      –> Writing index file adoc.ddx

      –> Writing index file adoc.chk

      — I cannot find file adoc.toc [1] [Introduzione.]

      … [Una marea di overfull]

      — I cannot find file adoc.und

      — I cannot find file adoc.dnd

      — I cannot find file adoc.chn [78] )
      (see the transcript file for additional information)
      Output written on adoc.pdf (78 pages).
      Transcript written on adoc.log.
      This is makeindex, version 2.15 [TeX Live 2012] (kpathsea + Thai support).
      Scanning style file ./dnd.ist…..done (5 attributes redefined, 0 ignored).
      Scanning input file adoc.ddx………done (5201 entries accepted, 0 rejected).
      Sorting entries……………………………………………done (71782 comparisons).
      Generating output file adoc.dnd……..done (1705 lines written, 2509 warnings).
      Output written in adoc.dnd.
      Transcript written in adoc.ilg.
      This is makeindex, version 2.15 [TeX Live 2012] (kpathsea + Thai support).
      Scanning style file ./und.ist…..done (5 attributes redefined, 0 ignored).
      Scanning input file adoc.udx….done (649 entries accepted, 0 rejected).
      Sorting entries……..done (6607 comparisons).
      Generating output file adoc.und….done (628 lines written, 67 warnings).
      Output written in adoc.und.
      Transcript written in adoc.ilg.
      This is makeindex, version 2.15 [TeX Live 2012] (kpathsea + Thai support).
      Scanning style file ./chn.ist….done (4 attributes redefined, 0 ignored).
      Scanning input file adoc.chk….done (299 entries accepted, 0 rejected).
      Sorting entries…..done (2623 comparisons).
      Generating output file adoc.chn….done (123 lines written, 0 warnings).
      Output written in adoc.chn.
      Transcript written in adoc.ilg.
      This is XeTeX, Version 3.1415926-2.4-0.9998 (TeX Live 2012)
      restricted \write18 enabled.
      entering extended mode
      (./adoc.tex (./tweb.sty (./adoc.ref)

      <-- Reading file adoc.ref ) --> Writing index file adoc.udx

      –> Writing index file adoc.ddx

      –> Writing index file adoc.chk (./adoc.toc [1]
      ! Undefined control sequence.
      l.75 \r

      ?
      `

      A questo punto TeX interrompe la lettura del file [tt]adoc.toc[/tt], neanche finisce di leggere l’intero nome della macro (la linea 75 è [tt]\restorecat\@[/tt]), e ritenendo che il nome della macro sia la sola prima lettera [tt]\r[/tt] restituisce un [tt]! Undefined control sequence.[/tt].

      Ovviamente se tolgo una lettera dal parametro di [tt]\section[/tt] le ultime linee del messaggio diventano
      `
      ! Undefined control sequence.
      l.75 \re
      `

      se ne tolgo altre quattro le linee diventano
      `
      ! Undefined control sequence.
      l.75 \restor
      `

      e così via.

      Ripeto: la mia impressione è che il problema derivi non da COSA costituisca il parametro di [tt]\section[/tt] ma piuttosto dal numero di caratteri.

      Grazie per la tua pazienza.

    • #84392
      Up
      0
      Down
      ::

      Sam Qasbah” post=83719Grazie per la tua pazienza.

      No, la pazienza è finita. O arriva un esempio in cui magari chiarisci che cosa stai facendo o domani mattina elimino il filone: è del tutto inutile tirare a indovinare.

      Ciao
      Enrico

    • #84393
      Up
      0
      Down
      ::

      egreg9″ post=83724

      Grazie per la tua pazienza.

      No, la pazienza è finita. O arriva un esempio in cui magari chiarisci che cosa stai facendo o domani mattina elimino il filone: è del tutto inutile tirare a indovinare.

      Ciao
      Enrico

      Mi dispiace averti irritato.

      Un esempio è difficile farlo, però posso mandarti in privato i files su cui sto lavorando, con una descrizione della procedura per riprodurre l’errore. Se sei d’accordo indicami l’indirizzo.

      Ciao.

    • #84394
      Up
      0
      Down
      ::

      Sam Qasbah” post=83725Mi dispiace averti irritato.

      Un esempio è difficile farlo, però posso mandarti in privato i files su cui sto lavorando, con una descrizione della procedura per riprodurre l’errore. Se sei d’accordo indicami l’indirizzo.

      Hai certamente una serie di macro complicate che richiedono probabilmente una lunga analisi. Dubito di essere interessato.

      Ma evidentemente hai problemi di definizioni del tuo indice generale. Sinceramente non capisco perché tu voglia addentrarti in roba tipo [tt]\sanitize[/tt], quando al giorno d’oggi hai [tt]\unexpanded[/tt] e [tt]\detokenize[/tt].

      Ciao
      ENrico

Visualizzazione 9 filoni di risposte
  • Devi essere connesso per rispondere a questo topic.

Go to top