imakeidx e TeXworks

  • Creatore
    Topic
  • #115642
    MatteoF
    Partecipante
      Up
      0
      Down
      ::


      Buongiorno a tutti,
      per la prima volta devo compilare un documento con un indice analitico. Il mio problema è che [tt]imakeidx[/tt] non funziona correttamente con l’editor TeXworks dal momento che non “lancia” automaticamente makeindex per la compilazione del file .ind.

      Di seguito un emc:
      `
      % !TEX encoding = UTF-8 Unicode
      % !TEX TS-program = lualatex

      \documentclass[a4paper]{book}
      \usepackage{imakeidx}

      \makeindex

      \begin{document}
      aaaa\index{aaaa}

      bbbb\index{bbbb}

      cccc\index{cccc}

      \newpage
      dddd\index{dddd}

      eeee\index{eeee}

      \newpage
      bbbb\index{bbbb}

      \printindex
      \end{document}
      `

      La console di TeXworks rileva questo errore:
      `
      (./guit.aux) [1{/usr/local/texlive/2019/texmf-var/fonts/map/pdftex/updmap/pdfte
      x.map}] [2] [3] [4]sh: makeindex: command not found

      No file guit.ind.
      `

      Premetto che lavoro su un Mac e che il problema si presenta sia compilando con pdflatex che con lualatex. Inoltre ho appena aggiornato a TeXLive2019, ma ho verificato e il problema si presenta anche utilizzando TeXLive2018.
      Tutto fila liscio se compilo con un altro editor (ho provato, ad esempio con TeXShop) o direttamente da linea di comando.

      Di seguito le impostazioni di TeXworks (che ho provato anche a modificare, inutilmente)

      [attachment=2239]Screenshot1.png[/attachment]

      [attachment=2240]Screenshot2.png[/attachment]
      Spero qualcuno mi possa aiutare.
      Matteo

      AGGIORNAMENTO
      Il problema si presenta solamente con l’ultima versione di TeXworks, aggiornata qualche settimana fa: TeXworks 0.6.3. Per scrupolo ho provato a riscaricare la versione precedente e tutto funziona correttamente.

      Confido che qualcuno possa segnalare la cosa allo sviluppatore del programma.

      Attachments:
      You must be logged in to view attached files.
    Visualizzazione 9 filoni di risposte
    • Autore
      Risposte
      • #115643
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Ho la versione 0.6.3 di TeXworks

          Ho compilato un file con indice analitico e nel file logo trovo
          `
          runsystem(makeindex -s guidatematica.ist FileArchiviabili.idx)…executed.

          (./FileArchiviabili.ind [46`

          Però con la installazione di TL2019 ho dovuto verificare le impostazioni con Preferences perché non mi vedeva l’eseguibile. Nella che hai fotografato nel file schermata 2.png che hai mostrato, ckicca su pdflatex e poi clicca su Edit. nella finestrella di sopra dovrebbe apparire il percorso completo all’eseguibile di pdflatex [tt]/usr/local/texlive/2019/bin/x86_64-darwin/pdflatex[/tt] se non c’è, scrivilo tu o usa gli strumenti del Mac per farglielo trovare. Nella mia versione fra le opzioni che appiono nella finestralla sotto l’indirizzo ho messo [tt]-shell-escape[/tt] che non dovrebbe essere necessario, perché makeindex dovrebbe essere nella lista dei programmi protected, quindi eseguibili anche senza questa opzione controlla anche nel file di configurazione dell’installazione 2019 che makeindex compaia anche in quella lista, altrimenti seguendo le istruzioni che compaiono nel file di configurazione creati un file di configurazione personale da inserire in una cartella texmf personale o n=in texmf-local) che contenga solo quello stralcio di configurazione con l’elenco dei programmi protetti.
          Devo dire che con TeXShop non ho incontrato nessun problema con pdflatex, quindi sul mio Mac evidentemente il mio file di configurazione è corretto.

          Nella documentazione di texlive (texdoc texlive) nella pagina 38 si legge:

          A related change is that execution of a very few external commands from TEX, via the \write18 feature, is now enabled by default. These commands are repstopdf, makeindex, kpsewhich, bibtex, and bibtex8; the list is defined in texmf.cnf. Environments which must disallow all such external com- mands can deselect this option in the installer (see section 3.2.4), or override the value after installation by running tlmgr conf texmf shell_escape 0.

          (il testo rosso è mio per evidenziare il file che contiene queste impostazioni)

          Ah, ricordo perché ho indicato [tt]-shell-escape[/tt] fra le opzioni: serve per eseguire arara; non uso spesso arara, ma quando lo uso non voglio storie; d’accordo: è pericoloso avere impostato permanentemente [tt]shell-escape[/tt] specialmente per il programma di compilazione di default; infatti per TeXShop ho definito tre altri engins: pdflatex-SE, XeLaTeX-SE e LuaLaTeX-SE da usare solo saltuariamente, sia per usare arara sia per usare gregorio (anche quest’ultimo dovrebbe essere safe, ma non lo era fino a un paio di anni fa, poi ho ocnservato questa impostazione nella mia installazione locale (~/Library/TeXShop) così non ci penso più.

          Per TeXworks non ho problemi perché lo uso solo molto saltuariamente: preferisco di gran lunga TeXShop; gusti personali…

        • #115644
          MatteoF
          Partecipante
            Up
            0
            Down
            ::


            Grazie Claudio per le tue osservazioni.

            Ho provato a inserire i percorsi degli eseguibili a mano (sia di pdflatex/lualatex che di makeindex). Ho anche aggiunto l’opzione [tt]-shell-escape[/tt] (ammetto che avevo già provato ad abilitare lo Shell Escape, pur sapendo che teoricamente non serviva).
            Purtroppo è tutto inutile.
            [attachment=2241]Screenshot3.png[/attachment]
            Ho infine verificato il contenuto del file texmf.cnf: come si può vedere makeindex è presente nell’elenco dei programmi “sicuri”.
            `
            % The programs listed here are as safe as any we know: they either do
            % not write any output files, respect openout_any, or have hard-coded
            % restrictions similar to or higher than openout_any=p. They also have
            % no features to invoke arbitrary other programs, and no known
            % exploitable bugs. All to the best of our knowledge. They also have
            % practical use for being called from TeX.
            %
            shell_escape_commands = \
            bibtex,bibtex8,\
            extractbb,\
            gregorio,\
            kpsewhich,\
            makeindex,\
            repstopdf,\
            r-mpost,\
            texosquery-jre8,\
            `

            Attachments:
            You must be logged in to view attached files.
          • #115645
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              Hai ragione; prima compilavo con pdfLaTeX e trovava regolarmente makeindex.
              Ora ho compilato con LuaLaTeX (se un file è compilabile con pdfLaTeX, senza cambiare praticamante nulla, è compilabile anche con Xe e Lua) e in effetti LuaLaTeX non torva makeindex; bisogna dire che il codice che imakeidx deve eseguire quando la compilazione avviene tramite LuaLaTeX avviene attraverso comandi Lua.
              Provo a verificare, caso mai bisogna avvisare Enrico G. perché è lui il curatore di imakeidx. Ci penso io.

            • #115646
              MatteoF
              Partecipante
                Up
                0
                Down
                ::


                Grazie per l’interessamento. Ma quindi, secondo te, dipende dal pacchetto [tt]imakeidx[/tt]?

                Come scritto nel post, se utilizzo un altro editor (ad es. TeXShop) o se compilo da linea di comando, non ho alcun problema, indipendentemente dal programma di compilazione (pdftex/xetex/luatex). Idem se utilizzo TeXworks 0.6.2 (versione precedente).

                Il problema sorge se utilizzo TeXworks 0.6.3 (ultima versione), indipendentemente dal programma di compilazione (pdftex/xetex/luatex).

                Linea di comando (pdftex/xetex/luatex) ==> OK
                TeXShop (pdftex/xetex/luatex) ==> OK
                TeXworks 0.6.2 (pdftex/xetex/luatex) ==> OK
                TeXworks 0.6.3 (pdftex/xetex/luatex) ==> ERROR

                Parrebbe, quindi, un problema di TeXworks.

              • #115647
                OldClaudio
                Partecipante
                  Up
                  0
                  Down
                  ::


                  Matteo; credo che ci sia un problema con qualcosa che possa legare lo shell editor e i tre programmi.
                  Questo qualcosa è sicuramente sorpassato se si usa TeXShop , come ho provato: Ho preso il mio file di prova, nella sua cartella ho cancellato i file .idx, .ilg e .ind, e ho riprovato con i tre compilatori attraverso TeXworks e l’indice non viene ricreato da nessuno dei tre.
                  Ho provato attraverso TeXShop e l’indice è riapparso immediatamente. evidentemente ci sono alcune opzioni da specificare a TeXworks che TeXshop specifica correttamente e che forse non erano necessarie con la precedente versione di TeXworks.
                  Per questo moritvo non mi stupisco che la creazione dell’indice compilando dalla riga di comando non funzioni; probabilmente manca questa famosa opzione extra che non ho scoperto quale sia. Comunque Enrico è informato, ma oggi è a casa e non dispone di \TeXworks 0.6.2, ma solo della precedente versione; domani in ufficio dove ha la versione 0.6.3 ci riproverà.

                  St cercando l’indirizzo di Jonathan Kew per provare ad interessarlo al problema, caso mai ci fosse qualcosa mancante in TeXworks.

                • #115648
                  Up
                  0
                  Down
                  ::


                  È un problema di TeXworks e non ha nulla a che fare con [tt]imakeidx[/tt].

                  Un semplice file come

                  [tt]
                  \input|”kpsewhich plain.tex”
                  \bye
                  [/tt]

                  dà come risultato [tt]sh: kpsewhich: command not found[/tt]

                  In altre parole, TeXworks non eredita correttamente il PATH dal processo da cui è chiamato.

                  Dirò di più. Se da un terminale do

                  [tt]/Applications/TeXworks.app/Contents/MacOS/TeXworks[/tt]

                  in modo da lanciare TeXworks, il problema non si pone, perché questa istanza di TeXworks eredita correttamente il PATH della mia shell.

                  Ho aperto una “issue”: https://github.com/TeXworks/texworks/issues/861

                  Ciao
                  Enrico

                • #115649
                  OldClaudio
                  Partecipante
                    Up
                    0
                    Down
                    ::


                    Grazie Enrico; sapevo che avresti trovato il busillis. Però ora tocca a Kew col suo gruppo, trovare come fare perchè l’app erediti correttamente i path.

                  • #115650
                    Up
                    0
                    Down
                    ::

                    OldClaudio” post=116045Grazie Enrico; sapevo che avresti trovato il busillis. Però ora tocca a Kew col suo gruppo, trovare come fare perchè l’app erediti correttamente i path.

                    Come faceva la 0.6.2, direi. 😉

                    Ciao
                    Enrico

                  • #115651
                    Up
                    0
                    Down
                    ::


                    Ho provato TeXworks 0.6.3 su LinuxMint e il problema non si presenta.

                    Ciao
                    Enrico

                  • #115652
                    OldClaudio
                    Partecipante
                      Up
                      0
                      Down
                      ::


                      Invece sul Mac il problema continua ad essere presente, nonostante l’ultimo aggiornamento; Se fosse stato un problema di kpsea & Company, l’ultimo aggiornamento eseguito il 12/5 avrebbe potuto risolvere il problema; inve evidentemente è un problema di Texworks sul Mac.

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

                  Go to top