Volume di indici cumulativi

  • Creatore
    Topic
  • #71891
    Up
    0
    Down
    ::


    Buongiorno a tutti,
    vi scrivo per un aiuto per un volume di indici cumulativi.
    Mi spiego: non mi interessa l’indice dei nomi finale di un testo, ma dovrei/vorrei comporre un volume contenente solo l’indice dei nomi di una collezione di riviste.
    Tanto per capirci, una cosa del genere (si tratta di una pagina dell’indice dei nomi dei primi 100 volumi del Giornale storico delle letteratura italiana).
    In particolare vorrei riuscire ad ottenere un testo su due o tre colonne con lemmi e sottolemmi, a partire da una base di dati.

    Si può fare?
    Grazie in anticipo a tutti.
    A presto,
    Matteo

Visualizzazione 7 filoni di risposte
  • Autore
    Risposte
    • #71892
      Up
      0
      Down
      ::

      teomat” post=71050Buongiorno a tutti,
      vi scrivo per un aiuto per un volume di indici cumulativi.
      Mi spiego: non mi interessa l’indice dei nomi finale di un testo, ma dovrei/vorrei comporre un volume contenente solo l’indice dei nomi di una collezione di riviste.
      Tanto per capirci, una cosa del genere (si tratta di una pagina dell’indice dei nomi dei primi 100 volumi del Giornale storico delle letteratura italiana).
      In particolare vorrei riuscire ad ottenere un testo su due o tre colonne con lemmi e sottolemmi, a partire da una base di dati.

      Si può fare?
      Grazie in anticipo a tutti.
      A presto,
      Matteo

      Puoi mostrare un estratto della base di dati?

      Ciao
      Enrico

    • #71893
      Up
      0
      Down
      ::


      ecco il problema: non ho ancora iniziato a stilare la base dei dati per timore di sbagliare impostazione; non vorrei trovarmi, dopo due mesi di lavoro, a imprecare per un aver commesso un errore di metodo.

      Insomma, al momento ho due idee per la base dei dati:
      1-un file ods/excel nel quale la prima colonna contenga i nomi e la seconda colonna i riferimenti (Alighieri, Dante XI 18, CX 15…)
      2-un file cvs dal contenuto (esportato dal file ods/excel appena menzionato):
      “Alighieri, Dante”;”XI 18, CX 15″
      “Bembo, Pietro”;”VI 14, C 114″

      Non saprei, però, come gestire i sottolemmi, dal momento che il risultato atteso dovrebbe essere questo:

      Alighieri, Dante: XI 18….
      -vita: CX 36…
      -opere:
      –Commedia: VI 34…
      –Rime
      -fortuna

      I rinvii (Lasca vedi Grazini, Anton Francesco) potrebbero essere inseriti ‘a mano’.
      In ogni caso l’indice farà riferimento ad una collezione omogenea di opere, dovendo segnalare solo il volume e la/le pagine.

      Un po’ confuso, lo ammetto, ma il problema non è dei più semplici…
      A presto,
      Matteo

    • #71894
      Up
      0
      Down
      ::


      Dopo le vacanze ritorno a chiedere l’aiuto degli esperti.
      Ho cercato i pacchetti che ‘lavorassero’ con file csv: “csvsimple” mi sembra un buon punto di partenza.
      Con questa base di dati (“csv-prova.csv”):
      `
      nome, luoghi
      Alighieri Dante, X~14; C~12; X~14; C~12; X~14; C~12; X~14; C~12; X~14; C~12; X~14; C~12; X~14; C~12; X~14; C~12; X~14; C~12; X~14; C~12; X~14; C~12; X~14; C~12;
      -opere, X~14; C~12
      \medskip
      Bembo Pietro, X~14; C~12
      `

      e questo esempio:
      `\documentclass[a4paper, twocolumn]{book}
      \usepackage{csvsimple}

      \begin{document}

      \section{Prova indici}
      \csvnames{my names}{nome=\nome, luoghi=\luoghi}
      \csvreader[my names, late after line=\\, late after last line=]{csv-prova.csv}{}{\textbf{\nome}: \newline \luoghi.}

      \end{document}
      `

      sono ad un primo passo.

      Il problema maggiore è rappresentato dall’impossibilità di far apparire “Alighieri, Dante” e, contemporaneamente, di gestire i sottolemmi come indicato. Mi spiego: se facessi queste modifiche:

      nome, cognome, luoghi
      Alighieri, Dante, X~14; C~12; X~14; C~12; X~14; C~12; X~14; C~12; X~14; C~12; X~14; C~12; X~14; C~12; X~14; C~12; X~14; C~12; X~14; C~12; X~14; C~12; X~14; C~12;
      ,-opere, X~14; C~12
      \medskip
      Bembo, Pietro, X~14; C~12

      \documentclass[a4paper, twocolumn]{book}
      \usepackage{csvsimple}

      \begin{document}

      \section{Prova indici}
      \csvnames{my names}{nome=\nome, cognome=\cognomeluoghi=\luoghi}
      \csvreader[my names, late after line=\\, late after last line=]{csv-prova.csv}{}{\textbf{\nome} ,\cognome: \newline \luoghi.}

      \end{document}

      risolverei solo parzialmente il problema (avrei, cioè, “Alighieri, Dante”) causando un orrendo “, -opere” come sottolemma.

      Grazie in anticipo.
      A presto,
      Matteo

    • #71895
      Up
      0
      Down
      ::


      dopo un paio di tentativi ecco il risultato parziale delle fatiche:

      1- base di dati (prova.csv):
      `nome, cognome, luoghi
      Alighieri, Dante, {X~11,~12,~14-16}; XC~12; C~14
      –, opere, X~14; C~12
      — –, Commedia, X~12
      \medskip
      Bembo, Pietro, X~14; C~12
      \medskip
      Pio II, Papa, vedi {Piccolomini, Enea Silvio}
      `

      2-esempio:
      `
      \documentclass[a4paper]{book}
      \usepackage{csvsimple}
      \begin{document}

      \csvnames{my names}{nome=\nome, cognome=\cognome, luoghi=\luoghi}
      \csvreader[my names, late after line=\\]{prova.csv}{}{\noindent\textbf{\nome}, \textbf{\cognome} \luoghi.}
      \end{document}
      `

      Il risultato non è elegantissimo, ma mi sembra una buona base.

      Una domanda: sarebbe possibile ottenere le testatine “stile dizionario” in maniera automatica? Mi spiego: una volta completato l’intero indice sarebbe molto opportuno che la testina di sinistra riportasse il primo lemma presente nella pagina e la testina di destra l’ultimo.

      Attendo fiducioso 😉
      A presto,
      Matteo

    • #71896
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        La cosa non è difficile e, se ben ricordo, ne ho scritto anche nella guida tematica sulla creazione di classi; comunque se ne parla nella GuidaGuIT, e nella documentazione della classe memoir, e in molte altre documentazioni, persino quella di fancyhdr; anche in un articolo scritto su ArsTeXnica qualche anno fa. Ma il trucco, a parte uno stile di pagina che va creato come raccontato nelle guide suddette, sta nel mettere nel comando che genera il lemma anche l’istruzione

        \markboth{lemma}{lemma}

        che carica gli appositi marchi (marks) e poi nello stile della pagina se ne recuperano i valori con \lefmark e \rightmark.

      • #71897
        Up
        0
        Down
        ::


        Seguendo i consigli di OldClaudio, ecco il risultato dei miei tentativi:

        `
        \documentclass[a4paper]{book}

        \usepackage{multicol,lipsum}

        \makeatletter
        \newcommand\ultimomark{\makebox[\z@][r]%
        {\expandafter
        \@rightmark\botmark\@empty\@empty}}
        \newcommand\primomark{\makebox[\z@][l]%
        {\expandafter
        \@rightmark\firstmark\@empty\@empty}}
        \newcommand*\ps@dizionario{%
        \let\@mkboth\@gobbletwo
        \let\chaptermark\@gobble
        \let\sectionmark\@gobble
        \def\@evenhead{\primomark\hfil\ultimomark}%
        \def\@oddhead{\primomark\hfill\ultimomark}%
        \def\@oddfoot{\thepage}%
        \let\@evenfoot\@oddfoot
        }%
        \makeatother

        \newcommand*\lemma[1]{%
        \medskip\par\noindent{\bfseries#1}%
        \markboth{#1}{#1}%
        \quad\ignorespaces}

        \begin{document}
        \pagestyle{dizionario}
        \begin{multicols}{2}

        \lemma{Alessio}
        \lemma{Barbara}
        \lipsum[1-5]
        \lemma{Carlo}
        \lemma{Dante}
        \lemma{Elio}
        \lemma{Felice}
        \lipsum[1-4]
        \lemma{Giulio}
        \lemma{Ilaro}
        \end{multicols}
        \end{document}
        `

        Inserirò i nomi con il comando \lemma{Alighieri, Dante).

        Alcune richieste: non riesco a modificare il codice indicato sopra: nello specifico non saprei come avere le testatine riportanti ‘primolemma–ultimolemma’ nella parte esterna della testina stessa e come far comparire il numero di pagina al centro del piede.

        Grazie in anticipo!
        A presto,
        Matteo

      • #71898
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Be’ quel codice serviva per un dizionario che aveva i due lemmi (primo e ultimo) elencati agli estremi della testaina, e per motivi vari erano racchiusi dentro scatole di larghezza zero, per non interferire con il numero della pagina che doveva restare nel mezzo, indipendentemente dalle voci da scrivere.
          Se metti i due lemmi all’esterno della testaine e il numero di pagina al centro del piedino, (non dal lato sinistro come hai fatto tu) bisogna modificare le definzioni così:
          `
          \documentclass[a4paper]{book}

          \usepackage{multicol,lipsum}

          \makeatletter
          \newcommand\ultimomark{\expandafter
          \@rightmark\botmark\@empty\@empty}

          \newcommand\primomark{\expandafter
          \@rightmark\firstmark\@empty\@empty}

          \newcommand*\ps@dizionario{%
          \let\@mkboth\@gobbletwo
          \let\chaptermark\@gobble
          \let\sectionmark\@gobble
          \def\@evenhead{\primomark\ — \ultimomark\hfill}%
          \def\@oddhead{\hfill\primomark\ — \ultimomark}%
          \def\@oddfoot{\hfill\thepage\hfill}%
          \let\@evenfoot\@oddfoot
          }%
          \makeatother

          \newcommand*\lemma[1]{%
          \medskip\par\noindent{\bfseries#1}%
          \markboth{#1}{#1}%
          \quad\ignorespaces}

          \begin{document}
          \pagestyle{dizionario}
          \begin{multicols}{2}

          \lemma{Alessio}
          \lemma{Barbara}
          \lipsum[1-5]
          \lemma{Carlo}
          \lemma{Dante}
          \lemma{Elio}
          \lemma{Felice}
          \lipsum[1-4]
          \lemma{Giulio}
          \lemma{Ilaro}
          \end{multicols}
          \end{document}
          `

        • #71899
          Up
          0
          Down
          ::


          Grazie mille, funziona alla perfezione e, confrontando il codice che mi hai segnalato con quello che avevo dedotto dall’articolo, ho finalmente capito come modificarlo, se dovesse servire.

          A presto,
          Matteo

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

      Go to top