Testatina stile dizionario nell’indice analitico

  • Questo topic ha 8 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 19 anni, 3 mesi fa da DMW.
Visualizzazione 7 filoni di risposte
  • Autore
    Risposte
    • #14931
      Up
      0
      Down
      ::

      Salve,

      Nella doc. di fancyhdr, sezione 10, ho letto che si può fare un indice analitico con le testatine stile dizionario, ma non ho capito come procedere.

      ftp://tug.ctan.org/pub/tex-archive/info/italian/fancyhdr/itfancyhdr.pdf

      Devi, come spiegato là, annullare i comandi \chaptermark e \sectionmark, poi definire il comando per inserire l’elemento del “dizionario”; nel caso dell’indice analitico, devi ridefinire \item all’interno dell’ambiente theindex. Wow.
      `\makeatletter
      \let\@@theindex\theindex
      \def\theindex{\@@theindex
      \let\chaptermark\@gobble
      \let\sectionmark\@gobble
      \let\index@item\item
      \def\item##1,{\markboth{##1}{##1}\index@item #1,}%
      \fancyhead[LE]{\leftmark}%
      \fancyhead[RO]{\rightmark}%
      \fancyhead[RE,LO]{\thepage}%
      }
      \makeatother`
      Così direi che dovrebbe funzionare. Aggiungi il codice che viene indicato da fancyhdr se ci sono problemi per via delle due colonne.

      Il file .idx ha righe della forma “\item pippo, 1, 2”, quindi ridefinisco \item con argomento delimitato dalla virgola (raddoppiando i caratteri #, perché siamo dentro una definizione). Occorre eseguire le ridefinizioni all’interno dell’ambiente “theindex”, perché è esso stesso che definisce il significato di \item che gli serve.

      Ciao
      Enrico

    • #14932
      DMW
        Up
        0
        Down
        ::

        Salve,

        Nella doc. di fancyhdr, sezione 10, ho letto che si può fare un indice analitico con le testatine stile dizionario, ma non ho capito come procedere.

        ftp://tug.ctan.org/pub/tex-archive/info/italian/fancyhdr/itfancyhdr.pdf

        Devi, come spiegato là, annullare i comandi \chaptermark e \sectionmark, poi definire il comando per inserire l’elemento del “dizionario”; nel caso dell’indice analitico, devi ridefinire \item all’interno dell’ambiente theindex. Wow.
        `\makeatletter
        \let\@@theindex\theindex
        \def\theindex{\@@theindex
        \let\chaptermark\@gobble
        \let\sectionmark\@gobble
        \let\index@item\item
        \def\item##1,{\markboth{##1}{##1}\index@item #1,}%
        \fancyhead[LE]{\leftmark}%
        \fancyhead[RO]{\rightmark}%
        \fancyhead[RE,LO]{\thepage}%
        }
        \makeatother`
        Così direi che dovrebbe funzionare. Aggiungi il codice che viene indicato da fancyhdr se ci sono problemi per via delle due colonne.

        Il file .idx ha righe della forma “\item pippo, 1, 2”, quindi ridefinisco \item con argomento delimitato dalla virgola (raddoppiando i caratteri #, perché siamo dentro una definizione). Occorre eseguire le ridefinizioni all’interno dell’ambiente “theindex”, perché è esso stesso che definisce il significato di \item che gli serve.

        Ciao
        Enrico

        Per ora non posso provare perché su questo pc non c’è LaTeX, ma Word 👿 👿 👿

        Non ho capito cosa vole dire annullare i comandi \chaptermark e \sectionmark.
        Cioè devo scrivere così?
        `
        \usepackage{makeidx,fancyhdr,fixmarks}
        \renewcommand{\chaptermark}{}
        \renewcommand{\sectionmark}{}
        \makeatletter
        \let\@@theindex\theindex
        \def\theindex{\@@theindex
        \let\chaptermark\@gobble
        \let\sectionmark\@gobble
        \let\index@item\item
        \def\item##1,{\markboth{##1}{##1}\index@item #1,}%
        \fancyhead[LE]{\leftmark}%
        \fancyhead[RO]{\rightmark}%
        \fancyhead[RE,LO]{\thepage}%
        }
        \makeatother

        %e poi le testatine dei capitoli in cui ridefinisco \chaptermark e \sectionmark
        \pagestyle{fancy}
        ….`

        oppure la struttura è diversa?

      • #14933
        Up
        0
        Down
        ::

        Non ho capito cosa vole dire annullare i comandi \chaptermark e \sectionmark.
        Cioè devo scrivere così?
        `
        \usepackage{makeidx,fancyhdr,fixmarks}
        \renewcommand{\chaptermark}{}
        \renewcommand{\sectionmark}{}
        \makeatletter
        \let\@@theindex\theindex
        \def\theindex{\@@theindex
        \let\chaptermark\@gobble
        \let\sectionmark\@gobble
        \let\index@item\item
        \def\item##1,{\markboth{##1}{##1}\index@item #1,}%
        \fancyhead[LE]{\leftmark}%
        \fancyhead[RO]{\rightmark}%
        \fancyhead[RE,LO]{\thepage}%
        }
        \makeatother

        %e poi le testatine dei capitoli in cui ridefinisco \chaptermark e \sectionmark
        \pagestyle{fancy}
        ….`

        oppure la struttura è diversa?

        No, vanno annullati dove hai l’esigenza particolare. Infatti il codice che ti ho dato li annulla localmente:
        `\let\chaptermark\@gobble`
        rende \chaptermark un comando con un argomento che semplicemente lo butta via.

        Il comando \endtheindex, che viene eseguito alla fine dell’ambiente theindex, esegue un clearpage, quindi non dovrebbero esserci problemi con l’ultima pagina.

        Ciao
        Enrico

      • #14934
        DMW
          Up
          0
          Down
          ::

          Non ho capito cosa vole dire annullare i comandi \chaptermark e \sectionmark.
          Cioè devo scrivere così?
          `
          \usepackage{makeidx,fancyhdr,fixmarks}
          \renewcommand{\chaptermark}{}
          \renewcommand{\sectionmark}{}
          \makeatletter
          \let\@@theindex\theindex
          \def\theindex{\@@theindex
          \let\chaptermark\@gobble
          \let\sectionmark\@gobble
          \let\index@item\item

          %
          \fancyhead[LE]{\leftmark}%
          \fancyhead[RO]{\rightmark}%
          \fancyhead[RE,LO]{\thepage}%
          }
          \makeatother

          %e poi le testatine dei capitoli in cui ridefinisco \chaptermark e \sectionmark
          \pagestyle{fancy}
          ….`

          oppure la struttura è diversa?

          No, vanno annullati dove hai l’esigenza particolare. Infatti il codice che ti ho dato li annulla localmente:
          `\let\chaptermark\@gobble`
          rende \chaptermark un comando con un argomento che semplicemente lo butta via.

          Il comando \endtheindex, che viene eseguito alla fine dell’ambiente theindex, esegue un clearpage, quindi non dovrebbero esserci problemi con l’ultima pagina.

          Ciao
          Enrico

          Per prima cosa sono un idiota perché non ho visto
          ` \let\chaptermark\@gobble`
          visto che questo comando lo uso per non far comparire, in fase finale, i warning dei font:
          `
          \makeatletter
          \let\@font@info\@gobble
          \let\@font@warning\@gobble
          \makeatother`

          Seconda cosa, c’è un errore di battitura, perché dovrebbe essere
          `
          \def\item##1,{\markboth{##1}{##1}\index@item ##1,} %e non #1
          `

          Terzo, il file fixmarks.sty della guida fancyhdr non funge. Quello esatto è questo:
          http://www.astro.unipd.it/cosmo/carlo/latex_personal/fixmarks.sty

          oppure usare fix2col che è più recente e presente in tutte le distribuzioni.

          Quarto, se nella pagina dispari inizia un nuovo \item, \markboth è come se non lo vedesse e di \item vede quello dopo.
          Se vuoi ti mando, in privato, un esempio demenziale in pdf

          Per il resto va benissimo.

          Ciao

          Andrea

        • #14935
          Up
          0
          Down
          ::

          Per prima cosa sono un idiota perché non ho visto
          ` \let\chaptermark\@gobble`

          Dai, su! 🙂

          Seconda cosa, c’è un errore di battitura, perché dovrebbe essere
          `
          \def\item##1,{\markboth{##1}{##1}\index@item ##1,} %e non #1
          `

          Ovvio.

          Quarto, se nella pagina dispari inizia un nuovo \item, \markboth è come se non lo vedesse e di \item vede quello dopo.
          Se vuoi ti mando, in privato, un esempio demenziale in pdf

          Fa’ pure.

          Ciao
          Enrico

        • #14936
          DMW
            Up
            0
            Down
            ::

            Per prima cosa sono un idiota perché non ho visto
            ` \let\chaptermark\@gobble`

            Dai, su! 🙂

            Professore!

            Resto sempre mezzo idiota però ogni tanto qualcosa l’azzecco. 😀 😀 😀

            Torniamo al problema:
            La pagina dell’indice in esame è composta da:
            `
            \item segui, 15
            \subitem nulla, 15
            \subitem poco, 15
            \item sole, 15
            \subitem alto, 15
            \subitem rovente, 15
            \item…`

            Ora se uso
            `
            \def\item##1,{\markboth{##1}{##1}\index@item ##1,}`
            nella testatina compare sole e non segui.
            Se invece cambio la riga precedente in
            `
            \def\item##1,{\index@item ##1, \markboth{##1}{##1}}`

            Il problema non si presenta più e nella testatina c’è segui e non sole.

            Ciao e grazie per l’aiuto.

            Andrea

          • #14937
            Up
            0
            Down
            ::


            salve
            è possibile unire a quanto detto sopra a quanto trattatalo qui?
            http://www.guit.sssup.it/phpbb/viewtopic.php?t=1763&highlight=indice

            grazie
            trim

          • #14938
            DMW
              Up
              0
              Down
              ::

              salve
              è possibile unire a quanto detto sopra a quanto trattatalo qui?
              http://www.guit.sssup.it/phpbb/viewtopic.php?t=1763&highlight=indice

              grazie
              trim

              Peccato. Purtroppo non va!

              Ecco l’errore
              `! Paragraph ended before \item was complete.

              \par
              l.6

              ? `

              forse si dovrebbe modificare il file ist:
              `headings_flag 1
              headings_prefix “\n \\item \\textbf{”
              headings_suffix “}”
              symhead_positive “Simboli”
              symhead_negative “simboli”
              numhead_positive “Numeri”
              numhead_negative “numeri”
              delim_0 “\\dotfill”
              delim_1 “\\dotfill”
              delim_2 “\\dotfill”
              `

              Ma io non so come.

              Ciao

              Andrea.

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

          Go to top