[Risolto] Indice dei capoversi

  • Creatore
    Topic
  • #46389
    Up
    0
    Down
    ::


    Buongiorno a tutti,
    scrivo per chiedere un aiuto in vista della stampa della tesi.

    Avrei bisogno di un “Indice dei capoversi”, in appendice, che elencasse tutti i componimenti presenti nella tesi; l’Indice lo farei “a mano” (vale a dire pensavo di fare un elenco alfabetico dei componimenti) con il riferimento (\label{testo1} in corrispondenza del primo testo … \pageref{testo1} in corrispondenza dello stesso testo nell’Indice dei capoversi).

    Fin qui nulla di problematico, però vorrei che il riferimento alla pagina fosse allineato al margine destro (come avviene nell’Indice iniziale), tenendo conto che a volte i numeri delle pagine sono espressi in unità, a volte in decine, a volte in centinaia; insomma è l’ultimo numero di pagina che deve essere allineato.

    È possibile?
    Grazie in anticipo!

    Matteo

Visualizzazione 15 filoni di risposte
  • Autore
    Risposte
    • #46390
      Up
      0
      Down
      ::

      Buongiorno a tutti,
      scrivo per chiedere un aiuto in vista della stampa della tesi.

      Avrei bisogno di un “Indice dei capoversi”, in appendice, che elencasse tutti i componimenti presenti nella tesi; l’Indice lo farei “a mano” (vale a dire pensavo di fare un elenco alfabetico dei componimenti) con il riferimento (\label{testo1} in corrispondenza del primo testo … \pageref{testo1} in corrispondenza dello stesso testo nell’Indice dei capoversi).

      Fin qui nulla di problematico, però vorrei che il riferimento alla pagina fosse allineato al margine destro (come avviene nell’Indice iniziale), tenendo conto che a volte i numeri delle pagine sono espressi in unità, a volte in decine, a volte in centinaia; insomma è l’ultimo numero di pagina che deve essere allineato.

      È possibile?

      Saresti così gentile da proporre un esempio? Breve, mi raccomando.

      Ciao
      Enrico

    • #46391
      Up
      0
      Down
      ::


      Il risultato dovrebbe essere qualcosa di simile a questo (p. 337 e seguenti)

      oppure a questo (p. 393 e seguenti)

      L’esempio è questo:
      `
      \documentclass[10pt,a4paper,twoside,openright,titlepage,italian,draft]{book}
      \usepackage[italian]{babel}
      \usepackage[latin1]{inputenc}
      \usepackage[T1]{fontenc}

      \begin{document}
      \chapter{Primo}
      Iniziamo dalla lettura di questo sonetto:

      \begin{verse}
      Voi ch'ascoltate in rime sparse il suono\label{RVF1} \\
      di quei sospiri ond'io nudriva 'l core \\

      \end{verse}

      Continuiamo leggendo una canzone:
      \begin{verse}
      Verdi panni, sanguigni, oscuri o persi\label{RVF29} \\
      non vestì donna unquancho\\

      \end{verse}

      \chapter{Indice dei capoversi}
      Verdi panni sanguigni, oscuri e persi p.~\pageref{RVF29}
      Voi ch'ascoltate in rime sparse il suono p.~\pageref{RVF1}
      \end{document}
      `

      Vorrei che i numeri delle pagine creati con \pageref{xy} venissero allineati al margine destro.

      Grazie!

    • #46392
      Up
      0
      Down
      ::

      Il risultato dovrebbe essere qualcosa di simile a questo (p. 337 e seguenti)

      oppure a questo (p. 393 e seguenti)
      L’esempio è questo:
      `
      \documentclass[10pt,a4paper,twoside,openright,titlepage,italian,draft]{book}
      \usepackage[italian]{babel}
      \usepackage[latin1]{inputenc}
      \usepackage[T1]{fontenc}

      \begin{document}
      \chapter{Primo}
      Iniziamo dalla lettura di questo sonetto:

      \begin{verse}
      Voi ch'ascoltate in rime sparse il suono\label{RVF1} \\
      di quei sospiri ond'io nudriva 'l core \\

      \end{verse}

      Continuiamo leggendo una canzone:
      \begin{verse}
      Verdi panni, sanguigni, oscuri o persi\label{RVF29} \\
      non vestì donna unquancho\\

      \end{verse}

      \chapter{Indice dei capoversi}
      Verdi panni sanguigni, oscuri e persi p.~\pageref{RVF29}
      Voi ch'ascoltate in rime sparse il suono p.~\pageref{RVF1}
      \end{document}
      `

      Vorrei che i numeri delle pagine creati con \pageref{xy} venissero allineati al margine destro.

      Non c’è alcun bisogno di farlo a mano. 🙂
      `\documentclass[a4paper]{book}

      \makeatletter
      \newcommand{\listofverse}[1]{%
      \chapter{Lista dei capoversi}%
      \@starttoc{lov}}
      \newcommand{\l@verse}{\@dottedtocline{1}{\z@}{2.3em}}
      \newcommand{\listverse}[1]{%
      \@nameuse{phantomsection}%
      \addcontentsline{lov}{verse}{#1}%
      #1}
      \makeatother

      \begin{document}
      \frontmatter
      \listofverse

      \mainmatter

      \chapter{Primo}
      Iniziamo dalla lettura di questo sonetto:

      \begin{verse}
      \listverse{Voi ch'ascoltate in rime sparse il suono} \\
      di quei sospiri ond'io nudriva 'l core \\

      \end{verse}

      Continuiamo leggendo una canzone:
      \begin{verse}
      \listverse{Verdi panni, sanguigni, oscuri o persi} \\
      non vestì donna unquancho\\

      \end{verse}

      \end{document}`
      Il misterioso \@nameuse{phantomsection} serve per hyperref, facendo così non è obbligatorio che sia caricato.

      Ciao
      Enrico

    • #46393
      Up
      0
      Down
      ::

      Non c’è alcun bisogno di farlo a mano. 🙂

      Geniale!

      Una sola richiesta aggiuntiva, tradizionalmente l’indice dei capoversi si trova in fondo al libro (in questo caso alla tesi), in appendice, solo che se sposto \listofverse alla fine del documento la magia non funziona più.

      È possibile rimediare?

      Grazie di cuore.
      Matteo

    • #46394
      Up
      0
      Down
      ::

      Non c’è alcun bisogno di farlo a mano. 🙂

      Geniale!

      Una sola richiesta aggiuntiva, tradizionalmente l’indice dei capoversi si trova in fondo al libro (in questo caso alla tesi), in appendice, solo che se sposto \listofverse alla fine del documento la magia non funziona più.

      È possibile rimediare?

      Grazie di cuore.
      Matteo

      Mettilo dopo \backmatter

      Ciao
      Enrico

    • #46395
      Up
      0
      Down
      ::

      Mettilo dopo \backmatter

      forse non ho capito, ma se uso questo codice:

      `
      \documentclass[a4paper]{book}

      \makeatletter
      \newcommand{\listofverse}[1]{%
      \chapter{Lista dei capoversi}%
      \@starttoc{lov}}
      \newcommand{\l@verse}{\@dottedtocline{1}{\z@}{2.3em}}
      \newcommand{\listverse}[1]{%
      \@nameuse{phantomsection}%
      \addcontentsline{lov}{verse}{#1}%
      #1}
      \makeatother

      \begin{document}
      \frontmatter

      \mainmatter

      \chapter{Primo}
      Iniziamo dalla lettura di questo sonetto:

      \begin{verse}
      \listverse{Voi ch'ascoltate in rime sparse il suono} \\
      di quei sospiri ond'io nudriva 'l core \\

      \end{verse}

      Continuiamo leggendo una canzone:
      \begin{verse}
      \listverse{Verdi panni, sanguigni, oscuri o persi} \\
      non vestì donna unquancho\\

      \end{verse}


      \backmatter
      \listofverse

      \end{document}`

      mi si blocca la compilazione. Deve esserci qualcosa che mi sfugge 😳

    • #46396
      Up
      0
      Down
      ::

      Mettilo dopo \backmatter

      forse non ho capito, ma se uso questo codice:

      `
      \documentclass[a4paper]{book}

      \makeatletter
      \newcommand{\listofverse}[1]{%
      \chapter{Lista dei capoversi}%
      \@starttoc{lov}}
      \newcommand{\l@verse}{\@dottedtocline{1}{\z@}{2.3em}}
      \newcommand{\listverse}[1]{%
      \@nameuse{phantomsection}%
      \addcontentsline{lov}{verse}{#1}%
      #1}
      \makeatother

      \begin{document}
      \frontmatter

      \mainmatter

      \chapter{Primo}
      Iniziamo dalla lettura di questo sonetto:

      \begin{verse}
      \listverse{Voi ch'ascoltate in rime sparse il suono} \\
      di quei sospiri ond'io nudriva 'l core \\

      \end{verse}

      Continuiamo leggendo una canzone:
      \begin{verse}
      \listverse{Verdi panni, sanguigni, oscuri o persi} \\
      non vestì donna unquancho\\

      \end{verse}

      [color=red]
      \backmatter
      \listofverse
      [/color]
      \end{document}`

      mi si blocca la compilazione. Deve esserci qualcosa che mi sfugge 😳

      A me funziona senza alcun problema, sia con la 2009 sia con la 2010/pretest. Che cosa succede, di preciso?

      Ciao
      Enrico

    • #46397
      ernded
      Partecipante
        Up
        0
        Down
        ::


        Anche a me funziona; ti sei ricordato di compilare almeno due volte?
        ciao
        Ernesto

      • #46398
        Up
        0
        Down
        ::

        A me funziona senza alcun problema, sia con la 2009 sia con la 2010/pretest. Che cosa succede, di preciso?

        Chiedo scusa, la compilazione funziona benissimo anche a me.

        C’è solo un problema, o meglio, una cosa che davo per scontata nella mia prima richiesta: l’Indice dei capoversi deve essere ordinato alfabeticamente, l’ottimo codice che hai proposto genera l’Indice ordinando i versi consequenzialmente i versi, e non alfabeticamente.

        Posso chiedere se è possibile modificarlo per far sì che l’Indice presenti gli incipit alfabeticamente?

        Grazie ancora!

        Matteo

      • #46399
        Up
        0
        Down
        ::

        A me funziona senza alcun problema, sia con la 2009 sia con la 2010/pretest. Che cosa succede, di preciso?

        Chiedo scusa, la compilazione funziona benissimo anche a me.

        C’è solo un problema, o meglio, una cosa che davo per scontata nella mia prima richiesta: l’Indice dei capoversi deve essere ordinato alfabeticamente, l’ottimo codice che hai proposto genera l’Indice ordinando i versi consequenzialmente i versi, e non alfabeticamente.

        Posso chiedere se è possibile modificarlo per far sì che l’Indice presenti gli incipit alfabeticamente?

        Ordinare alfabeticamente con TeX è poco efficiente.
        `\makeatletter
        \def\x@starttoc#1#2{%
        \begingroup
        \makeatletter
        \@input{\jobname.#2}%
        \if@filesw
        \expandafter\newwrite\csname tf@#1\endcsname
        \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax
        \fi
        \@nobreakfalse
        \endgroup}
        \newcommand{\listofverse}{%
        \chapter{Lista dei capoversi}%
        \x@starttoc{lov}{lvs}}
        \newcommand{\l@verse}{\@dottedtocline{1}{\z@}{2.3em}}
        \newcommand{\listverse}[1]{%
        \@nameuse{phantomsection}%
        \addcontentsline{lov}{verse}{#1}%
        #1}
        \makeatother`
        Ogni compilazione del documento produce un file .lov che puoi ordinare alfabeticamente in un file .lvs; con una shell Unix è facile:
        `sort < documento.lov > documento.lvs`
        Quando esiste il file .lvs (List of Verse Sorted), viene letto.

        Ciao
        Enrico

      • #46400
        Up
        0
        Down
        ::


        Grazie, il codice funziona benissimo.

        Ci sono due notizie: quella buona è che il codice è compatibile con ledmac, quella cattiva è che lo è solo parzialmente. Se l’incipit di un componimento non è “trattato” da ledmac tutto bene, se però nell’incipit ci sono note o commenti di ledmac, allora salta tutto.

        Per capirci, in questo caso tutto bene:
        `
        \beginnumbering
        \stanza
        \listverse{Sdegnasi il tristo cor, talhor, s'adviene}&
        che per celar \edtext{gli}{\Afootnote{l'}\Bfootnote{li}&
        `

        in questo caso si blocca:
        `
        \beginnumbering
        \stanza
        \listverse{\edtext{Sdegnasi}{\Afootnote{Crucciasi}} il tristo cor, talhor, s'adviene}&
        che per celar \edtext{gli}{\Afootnote{l'}\Bfootnote{li}&
        `

        e anche così non funziona:
        `
        \beginnumbering
        \stanza
        \edtext{\listverse{Sdegnasi}}{\Afootnote{Crucciasi}} il tristo cor, talhor, s'adviene&
        che per celar \edtext{gli}{\Afootnote{l'}\Bfootnote{li}&
        `

        Per fortuna, nella mia tesi, accade in un numero molto limitato di casi (3-4 componimenti su una cinquantina) di avere l’incipit soggetto a note; ho risolto modificando a mano il file TESI.lvs: probabilmente non è ortodosso, ma funziona! 😉

        Grazie ancora per l’enorme aiuto.
        Matteo

      • #46401
        Up
        0
        Down
        ::

        Grazie, il codice funziona benissimo.

        Ci sono due notizie: quella buona è che il codice è compatibile con ledmac, quella cattiva è che lo è solo parzialmente. Se l’incipit di un componimento non è “trattato” da ledmac tutto bene, se però nell’incipit ci sono note o commenti di ledmac, allora salta tutto.

        Per capirci, in questo caso tutto bene:
        `
        \beginnumbering
        \stanza
        \listverse{Sdegnasi il tristo cor, talhor, s'adviene}&
        che per celar \edtext{gli}{\Afootnote{l'}\Bfootnote{li}&
        `

        in questo caso si blocca:
        `
        \beginnumbering
        \stanza
        \listverse{\edtext{Sdegnasi}{\Afootnote{Crucciasi}} il tristo cor, talhor, s'adviene}&
        che per celar \edtext{gli}{\Afootnote{l'}\Bfootnote{li}&
        `

        e anche così non funziona:
        `
        \beginnumbering
        \stanza
        \edtext{\listverse{Sdegnasi}}{\Afootnote{Crucciasi}} il tristo cor, talhor, s'adviene&
        che per celar \edtext{gli}{\Afootnote{l'}\Bfootnote{li}&
        `

        Per fortuna, nella mia tesi, accade in un numero molto limitato di casi (3-4 componimenti su una cinquantina) di avere l’incipit soggetto a note; ho risolto modificando a mano il file TESI.lvs: probabilmente non è ortodosso, ma funziona! 😉

        Solito problema di argomenti mobili. Dovrebbe funzionare una cosa del genere:
        `\newcommand{\listverse}{\@dblarg\@listverse}
        \def\@listverse[#1]#2{%
        \@nameuse{phantomsection}%
        \addcontentsline{lov}{verse}{#1}%
        #2}`
        che deve sostituire la definizione precedente di \listverse. Nel tuo documento, per i versi che contengono roba speciale, scriverai
        `\beginnumbering
        \stanza
        \listverse[Sdegnasi il tristo cor, talhor, s'adviene]
        {\edtext{Sdegnasi}{\Afootnote{Crucciasi}} il tristo cor, talhor, s'adviene}&
        che per celar \edtext{gli}{\Afootnote{l'}\Bfootnote{li}& `
        cioè nell’argomento opzionale di \listverse metti il verso “piano”. Non credo abbia molto senso mettere gli apparati di note anche nell’indice.

        Ciao
        Enrico

      • #46402
        Up
        0
        Down
        ::


        Grazie! Funziona tutto alla perfezione 😆

        Volendo riassumere i risultati dei consigli di Enrico:

        1-Una Lista dei capoversi che elenchi gli incipit dei testi poetici presenti nel documento nell’ordine col quale compaiono nel testo (funzione analoga, quindi, ad una lista della figure) si ottiene con questo codice:

        `
        \documentclass[a4paper]{book}
        \makeatletter
        \newcommand{\listofverse}[1]{%
        \chapter{Lista dei capoversi}%
        \@starttoc{lov}}
        \newcommand{\l@verse}{\@dottedtocline{1}{\z@}{2.3em}}
        \newcommand{\listverse}[1]{%
        \@nameuse{phantomsection}%
        \addcontentsline{lov}{verse}{#1}%
        #1}
        \makeatother

        \begin{document}
        \frontmatter
        \listofverse

        \mainmatter

        \chapter{Primo}
        \begin{verse}
        \listverse{Voi ch'ascoltate in rime sparse il suono} \\
        di quei sospiri ond'io nudriva 'l core \\

        \end{verse}

        \begin{verse}
        \listverse{Verdi panni, sanguigni, oscuri o persi} \\
        non vestì donna unquancho\\

        \end{verse}
        \end{document}
        `

        2-Una Lista dei capoversi che elenchi gli incipit dei testi poetici presenti nel documento in ordine alfabetico e in presenza di ledmac che “lavora” su di un incipit si ottiene con questo codice:

        `
        \documentclass[a4paper]{book}
        \makeatletter
        \def\x@starttoc#1#2{%
        \begingroup
        \makeatletter
        \@input{\jobname.#2}%
        \if@filesw
        \expandafter\newwrite\csname tf@#1\endcsname
        \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax
        \fi
        \@nobreakfalse
        \endgroup}
        \newcommand{\listofverse}{%
        \chapter{Lista dei capoversi}%
        \x@starttoc{lov}{lvs}}
        \newcommand{\l@verse}{\@dottedtocline{1}{\z@}{2.3em}}
        \newcommand{\listverse}{\@dblarg\@listverse}
        \def\@listverse[#1]#2{%
        \@nameuse{phantomsection}%
        \addcontentsline{lov}{verse}{#1}%
        #2}
        \makeatother

        \begin{document}
        \frontmatter
        \listofverse

        \mainmatter

        \chapter{Primo}
        \begin{verse}
        \listverse[Voi ch'ascoltate in rime sparse il suono]{\edtext{Voi ch'ascoltate in rime sparse il suono}{\Afootnote{Verso memorabile}}} \\
        di quei sospiri ond'io nudriva 'l core \\

        \end{verse}

        \begin{verse}
        \listverse[Verdi panni, sanguigni, oscuri o sparsi]{\edtext{Verdi panni, sanguigni, oscuri o persi}{Afootnote{Verso mancante nella prima stampa}}} \\
        non vestì donna unquancho\\

        \end{verse}
        \end{document}
        `

        Nel secondo caso, però, occorre ordinare alfabeticamente il file “documento.lov” (prodotta nella prima compilazione) in un file “documento.lvs” e ricompilare; per ordinare alfabeticamente, sotto Unix: sort < documento.lov > documento.lvs.

        Ultima cosa: \listofverse può essere messo anche dopo \backmatter, per avere la Lista in fondo.

        Grazie ancora ad Enrico per l’aiuto e la pazienza.

        Matteo

      • #46403
        benedetto batta
        Partecipante
          Up
          0
          Down
          ::


          Scusate se recupero questa vecchia discussione, ma il codice mi è certo molto utile e avrei bisogno di modificarlo per le mie necessità.

          Allora, rispetto a questo, mi occorre inserire nell’elenco di \listofverse oltre ai capoversi anche il titolo della singola poesia, ordinando poi l’elenco alfabeticamente. Inoltre, vorrei poi nell’elenco i capoversi in corsivo e i titoli in grassetto.
          Non conosco la programmazione delle macro, anche se sto cercando di studiare.

          Ho visto come il pacchetto verse definisce il comando \poemtitle, ma non so come modificare il codice per aggiungere il titolo. In effetti, \listofverse ha un solo parametro, ma credo sia possibile fargli leggere il dato inserito in \poemtitle (come nell’esempio di codice qui sotto, dove il parametro a \poemtitle è stato già passato prima dell’assegnazione a \listverse):
          `\renewcommand{\poemtoc}{subsection}
          \poemtitle {Senza luna la quiete}
          \settowidth{\versewidth}{intrecciate da pollini azzurri.}
          \begin{verse}[\versewidth]
          \listverse{Con tre frecce}
          Con tre frecce\\
          piantate nel petto,\\`
          In definitiva, nell’elenco, oltre a “Con tre frecce” vorrei fosse inserito anche “Senza luna la quiete”, il primo in corsivo, il secondo in grassetto.
          Qualcuno ha qualche idea su come modificare il comando \listofverse?

        • #46404
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::



            @BennyB
            , se vuoi avere rispte ai tuoi quesiti, non aggingrli ad altri quesiti che si riferiscono a cose divere (un capoverso non è una poesia) e che portano la dicitura {RISOLTO]. nessuni ti leggerebbe.
            Riformula il tuo questi aprendo in filone nuovo con un titolo breve ma chiaro.

          • #46405
            benedetto batta
            Partecipante
              Up
              0
              Down
              ::


              D’accordo, scusa.
              Se riesci a cancellarlo, ora apro una nuova discussione.
              In effetti, pur partendo da una discussione già chiusa, credo si debba solo modificare il codice della macro lì descritto. Lo farei volentieri da solo, e ho anche fatto qualche tentativo (alla cieca, a dire il vero), ma non ho proprio “gli strumenti”…

              Scusa ancora.

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

          Go to top