[risolto] xindy e macro come argomenti di \index

  • Creatore
    Topic
  • #89740
    franen
    Partecipante
      Up
      0
      Down
      ::


      Pare che pian piano stia sviscerando ogni possibile limite di xindy, che all’inizio mi sembrava la soluzione a ogni mancanza di MakeIndex…
      Il mio problema nasce dal fatto che vorrei scrivere nell’indice analitico un punto esclamativo: [tt]\index{Bravo!}[/tt]. Ovviamente non è immediato, perché si sa che il punto esclamativo serve a creare dei sotto lemmi. Ma con MakeIndex basterebbe scrivere [tt]\index{Bravo”!}[/tt], dal momento che le virgolette fungono da carattere di escape.
      Bello, ma con xindy non funziona.
      E già che ci siamo, con MakeIndex posso permettermi di inserire anche delle macro, come [tt]\index{Bravo\dots}[/tt], con xindy no (altrimenti avrei forse anche risolto il problema del punto esclamativo, creandomi un comando che lo richiamasse).
      Qualcuno ha esperienza in merito? Riporto un emc per chi volesse fare delle prove.

      Fran

      `% arara: xelatex: { shell : yes }
      \documentclass{article}
      \usepackage{imakeidx}
      \makeindex[program=truexindy]
      \begin{document}
      \index{Ciao}Ciao

      rete\index{rete\dots}
      \printindex
      \end{document}`

    Visualizzazione 5 filoni di risposte
    • Autore
      Risposte
      • #89741
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Specificare tutte le opzioni necessarie al vero xindy è molto difficile, e di solito non serve per lingue semplici come l’italiano. Ma per rispondere al tuo problema, dire che hai commesso un pio di errori; questo file a me funziona benissimo (senza arara ma xon –shell-escape specificato nella linea comando- io non uso mai arara, non perché mi dia fastidio, ma perché sul Mac mi posso permettere di avere –shell-escape in permanenza):`% arara: xelatex: { shell : yes }
          \documentclass{article}
          \usepackage{imakeidx}
          \makeindex[program=truexindy]
          \begin{document}
          \index{Ciao}Ciao

          rete\index{rete\dots}
          \printindex
          \end{document}`
          Constati che il punto esclamativo preceduto dal doppio apice funziona benissimo e che \dots esce come deve uscire. Il file pdf te lo conferma e il file .log dice esattamente come è stato eseguito xindi (in realtà texindy, che è lo script che specifica le opzioni giuste per un file da compilare in italiano o in una lingua occidentale in alfabeto latino.

          L’unica vera incompatibilità di xindy, anche tramite lo script texindy, è l’uso della barra verticale | che accetta i semplici mark-up per le paigne, ma non accetta il mark up delle pagine creato da hyperref per i link alle pagine dove si trova qualcosa di interessante a proposito dei singoli lemmi; in sostanza hyperref divente inefficace con una indice analitico creato con xindy.

          Se vai in texmf-dist/scripts/xindy/ e apri texindy.pl (è uno script in perl) con TeXworks o altro editor testuale puoi leggere senza troppa fatica (malgrado il mark up perl) la documentazione e trovi scritto quanto ho detto sopra. La compatibilità con makeindex è quidi quasi totale, salvo la barra verticale dove la compatibilità è parziale, se usi texindy perché carica automaticamente i molti moduli che sarebbe necessario caricare a mano se si usasse truexindy.

        • #89742
          franen
          Partecipante
            Up
            0
            Down
            ::


            Il mio log, anche compilando da terminale, mi dice:`Francesco$ xelatex –shell-escape prova.tex
            This is XeTeX, Version 3.1415926-2.5-0.9999.3 (TeX Live 2013)
            \write18 enabled.
            entering extended mode
            (./prova.tex
            LaTeX2e <2011/06/27>
            Babel <3.9f> and hyphenation patterns for 78 languages loaded.
            […]
            (/usr/local/texlive/2013/texmf-dist/tex/xelatex/xetex-def/xetex.def)) [1]*** – XINDY:STARTUP: keyword arguments in
            (:IDXSTYLE :RAWINDEX “/var/folders/zQ/zQUNs-v4F8C6enXxgvcUZk+++TI/-Tmp-/CeRHI3kQVS” :OUTPUT “./prova.ind” :LOGFILE
            “/dev/null”)
            should occur pairwise

            No file prova.ind.
            `Non so che dire

            Fran

          • #89743
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              Sì, quello è il messaggio che esce se usi trueindex, non se usi texindy nell’opzione di \makeindex. Infatti il mio .log dice:

              [tt]runsystem(texindy testXindy.idx)…executed.[/tt]

            • #89744
              franen
              Partecipante
                Up
                0
                Down
                ::


                Il problema è che io non posso usare texindy, ma devo usare truexindy (per problemi con le lettere accentate: http://www.guitex.org/home/it/forum/5-tex-e-latex/89219-indici-xindy-xelatex-e-lettere-accentate)

                Fran

              • #89745
                franen
                Partecipante
                  Up
                  0
                  Down
                  ::


                  Bah… la scienza procede per tentativi… `\makeindex[program=truexindy,options=-M texindy]`.
                  Ho letto un po’ tutto quel che ho trovato in giro su xindy, ma sono ben lontano dall’averne compreso appieno il funzionamento.

                  Fran

                • #89746
                  OldClaudio
                  Partecipante
                    Up
                    0
                    Down
                    ::


                    A me funziona benissimo con gli accenti se nelle opzioni di \makeindex specifico:`program=texindy,options={-Litalian -Iomega}`

                    Prova con questo esempio minimo:`% !TEX encoding = UTF-8 Unicode
                    \documentclass{article}
                    \usepackage[utf8]{inputenc}
                    \usepackage[T1]{fontenc}
                    \usepackage{lmodern}

                    \usepackage{imakeidx}
                    \makeindex[program=texindy,options={-Litalian -Iomega}]
                    \begin{document}
                    \index{Ciao”!@Ciao}Ciao!

                    rete\index{rete@rete\dots}

                    à\index{à}a\index{a}
                    ç\index{ç}c\index{c}

                    è\index{è}È\index{È}é\index{é}

                    Ì\index{Ì}

                    ò\index{ò}ù\index{ù}

                    \printindex
                    \end{document}`

                    D’altra perte scrivere [tt]program=truexindy,options=-M texindy[/tt] è la stessa cosa che scrivere solamente [tt]program=texindi[/tt]

                    Ammetto che la documentazione di xindy è molto lacunosa e difficile da intepretare e il metodo sperimentale continua a essere necessario; con i miei esperimenti sono arrivato alla stringa che ti ho indicato sopra.

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

                Go to top