- Questo topic ha 8 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 14 anni, 4 mesi fa da
teomat.
-
CreatoreTopic
-
3 Aprile 2012 alle 7:31 #71891::
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
-
CreatoreTopic
-
AutoreRisposte
-
-
3 Aprile 2012 alle 12:06 #71892::
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,
MatteoPuoi mostrare un estratto della base di dati?
Ciao
Enrico
-
4 Aprile 2012 alle 5:00 #71893::
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
-
10 Aprile 2012 alle 6:18 #71894::
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
-
11 Aprile 2012 alle 5:10 #71895::
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
-
11 Aprile 2012 alle 10:03 #71896::
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.
-
16 Aprile 2012 alle 7:22 #71897::
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
-
16 Aprile 2012 alle 9:35 #71898::
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}
`
-
17 Aprile 2012 alle 6:09 #71899
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.