Grazie Sig. Luigi e grazie Sig. Enrico!
Puoi fare un esempio, non troppo prolisso, di una situazione reale? Probabilmente si riesce a trovare un insieme di macro che possano alleviare il problema di come inserire i dati. Ti domanderai a che serve |xx alla fine. Be’, è il trucco che permette di eliminare i numeri di pagina.
Il codice che segue proviene dal documento reale che sto preparando, con i suggerimenti da lei fatti (lasciando perdere la formattazione dei singoli lemmi, qui per semplicità li ho messi in maiuscoletto). Adesso che me lo ha detto, userò imakeidx per gestire due indici, uno generale, e uno dei titoli. Siccome l’opera è un dizionario dei nomi (della Commedia Umana), non penso ci dovrebbe essere bisogno di un indice delle persone.
Ho inserito i suggerimenti da lei fatti, sostituendo per adesso allo stile “|xx” di cui parlava, il codice “|texit”, giusto per avere un’idea.
Eccolo:
`
\documentclass{book}
\usepackage{imakeidx}
\makeindex[title=Repertorio delle opere con i personaggi che vi compaiono,columns=1]
\begin{document}\chapter{Dizionario dei personaggi della Commedia Umana}
[\ldots]
\textsc{Albertine}, cameriera di Madame de Bargeton, dal 1821 al 1824.
[Illusioni perdute.\index{Illusioni perdute}\index{Illusioni perdute!Albertine|textit} Massimilla Doni.\index{Massimilla Doni}\index{Massimilla Doni!Albertine|textit} Beatrix.\index{Beatrix}\index{Beatrix!Albertine|textit}]\textsc{Althor} (Jacob), banchiere di Amburgo. Apre una filiale a Havre nel 1815. Ha un figlio che, nel 1829, M. e Mme. Mignon desiderano come genero.
[Modeste Mignon.\index{Modeste Mignon}\index{Modeste Mignon!Althor|textit}]\textsc{Amaury} (Madame), proprietaria, nel 1829, di un padiglione a Sauvic, vicino a Ingouville, che Canalis affittò quando andò a Havre per incontrare Mlle. Mignon
[Modeste Mignon.\index{Modeste Mignon}\index{Modeste Mignon!Amaury|textit}]\printindex
\end{document}
`Il risultato di cui avrei bisogno partendo dai tre lemmi del codice, nell’indice dei nomi sarebbe:
`
Repertorio delle opere con i personaggi che vi compaionoBeatrix
AlbertineIllusioni perdute
AlbertineMassimilla Doni
AlbertineModeste Mignon
Althor
Amaury
`Un secondo problema sarebbe anche l’inserire tutti quei codici per gli indici (occhio e croce, alcune migliaia!)
Come lei ha detto, sarebbe splendido avere una macro che allievi il problema di inserire i dati.
Pensavo di usare le RegEx per iniettare i codici dell’indice, ma il riuscire ad estrarre il nome del personaggio, e quello dei titoli connessi, è al di fuori della mia portata.
Vi molto grato per l’aiuto, ed anche per l’opportunità di imparare di più su questo linguaggio tipografico superlativo.
In questo forum è usanza darsi del tu: fra cultori di TeX si è tutti amici. 🙂
Prova a vedere se questo fa per te
`\documentclass[a4paper]{book}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[italian]{babel}
\usepackage{imakeidx}
\makeindex[name=opere,title=Repertorio delle opere con i personaggi che vi
compaiono,columns=1,options=-s balzac]
\indexsetup{headers={\shortindexname}{\shortindexname}}
\newcommand{\shortindexname}{\indexname}
\newcommand{\ignore}[1]{}
\makeatletter
\let\@indexspace\indexspace
\def\indexspace{\let\indexspace\@indexspace}
\def\@preserve#1{\unexpanded\expandafter{\detokenize{#1}}}
\newcommand{\person}[1]{%
\xdef\@person{\@preserve{#1}}%
\textsc{#1}}
\newcommand{\book}[1]{%
#1.%
\edef\temp{\noexpand\index[opere]{\@preserve{#1}|ignore}}\temp
\edef\temp{\noexpand\index[opere]{\@preserve{#1}!\@person|ignore}}%
\temp}
\makeatother
\frenchspacing
\begin{document}
\chapter{Dizionario dei personaggi della Commedia Umana}
[\ldots]
\person{Albertine}, cameriera di Madame de Bargeton, dal 1821 al 1824.
[\book{Illusioni perdute}
\book{Massimilla Doni}
\book{Beatrix}]
\person{Althor} (Jacob), banchiere di Amburgo. Apre una filiale a Havre nel 1815. Ha un
figlio che, nel 1829, M. e Mme. Mignon desiderano come genero.
[\book{Modeste Mignon}]
\person{Amaury} (Madame), proprietaria, nel 1829, di un padiglione a Sauvic, vicino a
Ingouville, che Canalis affittò quando andò a Havre per incontrare Mlle. Mignon
[\book{Modeste Mignon}]
\renewcommand{\shortindexname}{Repertorio delle opere}
\printindex[opere]
\end{document}`
Se la struttura del tuo dizionario è sempre la stessa, dovrebbe funzionare molto bene. L’idea è che teniamo a mente il personaggio e poi specifichiamo i libri in cui compare. Siccome i libri vanno comunque scritti, uso una macro per fare sia il lavoro di composizione del testo sia il lavoro di indicizzazione.
Occorre nella cartella di lavoro anche un file che va chiamato “balzac.ist”:
`group_skip “”
item_0 “\n\n\\indexspace\n”
delim_0 “”
delim_1 “”`
Sono quasi le 23, scusa per il ritardo. 🙂
Ciao
Enrico
Nota: modificato alle 23:30 del 23/9
Nota: modificato alle 13:30 del 24/9