- Questo topic ha 20 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 9 anni, 5 mesi fa da
Pasquale Tucci.
-
CreatoreTopic
-
6 Aprile 2017 alle 14:14 #110212::
Vorrei formare un indice nel quale tutte le parole siano in ordine alfabetico sia che esse siano normali che in corsivo. Uso \usepackage{imakeidx} ma nel manuale non sembra che sia prevista questa possibilità. E’ prevista la possibilità di indicizzare la parola corsiva in ordine alfabetico come le altre ma nell’indice viene scritta normale. C’è qualche soluzione?
-
CreatoreTopic
-
AutoreRisposte
-
-
6 Aprile 2017 alle 16:14 #110213::
La creazione di un indice analitico implica che si sia letta almeno la guida makeindex.pdf, oppure ind.pdf, entrambi possono venire letti dandoli come argomento al comando texdoc in un terminal.Ovviamente pippo è una voce e pippo è una voce diversa; questo ti deve essere chiaro. Se vuoi che le paigne siano elencate in un’unica voce, questa deve essere sempre scritta solo in tondo o solo in corsivo.
In ogni caso nell’esempio di pippo il tuo file soregente conterrà cose come questa` … pippo\index{pippo}…
ma (diverse pagine dopo) … \textit{pippo}\index{pippo@\textit{pippo}} è un'altra cosa…` e nell’indice analitico avrai:pippo, 27
pippo, 37Se li vuoi come un’unica voce allora il codice sorgente sarà` … pippo\index{pippo} …
ma (diverse pagine dopo) … \textit{pippo}\index{pippo} è un'altra cosa…` e nell’indice otterraipippo, 27, 37
I modi per strutturae l’indice analitico non sono descritti in imakeidx, ma nelle guide apposite, quelle che ti ho segnalato.
-
6 Aprile 2017 alle 18:57 #110214::
Non sono stato chiaro. Io vorrei che la parola che io ho scritto in corsivo nel testo risultasse in corsivo anche nell’indice e che quella parola in corsivo sia inserita secondo l’ordine alfabetico. Usando il tuo criterio io attengo che una parola in corsivo nel testo diventa diritta nell’indice.Inoltre io vorrei che una parola in corsivo in una nota risultasse nell’indice in corsivo e con il numero della pagina seguito da ‘n’ usando \index{bla bla|nn}. Ma non ci riesco.
Es. io scrivo nel testo `\textit{\index[A]{bla bla}}` ottengo nell’indice “bla bla” e non “bla bla,
” come vorrei e se io scrivo `\footnote{L’\textit{bla bla}\index[A]{bla bla|nn}` ottengo nell’indice “bla bla, ” e non “bla bla, “.
Spero di essere stato chiaro.
-
6 Aprile 2017 alle 20:07 #110215::
Sei stato chiarissimo, ma ha poco colpo d’occhio’ perché non riguardi meglio gli esempi che ti ho messo nel messaggio precedente?Oppure, perché prima di fare cose diverse da quelle che ti ho detto di fare, non cerchi di capire come funziona l’operazione di “indexing”, descritta molto bene nela documentazione che ti ho dato da leggere?
In sostanza produco indici analitici da più di 20 anni; pensi che ti dica delle cose errate come se fossi un principiante?
Scusa lo sfogo; ma tutto questo per dirti di leggere con più attenzione quello che ti ho scritto nel messaggio precedente. Se non capisci quello che ho scritto fai una domanda pertinente, e non una domanda che si riferisce ad un altro tuo errore, che credi di avere fatto giusto perché credi di avere eseguito esattamente quello che ti ho detto.
Ti vengo in aiuto con due macro che fanno quello che vorresti senza bisogno ci capire quello che ho scritto nel messaggio precedente. Definisci du macro per scrivere le voci nel testo e nell’indice o in tondo o in corsivo; metti queste due definizioni nel preambolo:`\newcommand*{\indexrm}[1]{#1\index{#1@\textrm{#1}}}
\newcommand*{\indexit}[1]{\textit{#1}\index{#1@\textit{#1}}}`
Poi mettili nel testo cosi:`… \indexrm{pippo} è una certa cosa mentre \indexit{pippo} in corssivo è una cosa diversa…`
Quando dico metti nel preambolo, intendo copia da questa schermata il codice che ti ho scritto sopra e incollalo nel preambolo del tuo documento.
-
7 Aprile 2017 alle 5:43 #110216::
Ma figurati se ti tratto come un principiante! Il principiante sono io invece e ho un sacco di problemi. La soluzione che mi suggerisci è buona ma mi sfugge qualcosa. Ho letto l’articolo di Lamport ma non ho capito dove sbaglio. In pratica l’indice che risulta va bene. Ma quando io scrivo pippo\indexrm{pippo} e pippo\indexit{pippo} dopo la compilazione mi ritrovo nel pdf “pippopippo” e “pippopippo“. Dove sbaglio?
-
7 Aprile 2017 alle 17:29 #110217::
Sbagli nel non leggere con attenzione il miei messaggi: quei due comandi che ti ho dato ti permettono di scrivere solo una volta pippo dentro l’argomento, perché il comando te mette pippo sia nel testo sia nell’indice; riguarda il mio esempio nel messaggio precedente.Rileggi: “…per scrivere le voci nel testo e nell’indice…”. Hai perso per la strada quell’e
-
7 Aprile 2017 alle 18:10 #110218::
Perfetto! Ti ringrazio tantissimo per la tua professionalità, pazienza e maieutica. Approfitto ancora della tua pazienza per chiederti se è possibile indicare che una parola indicizzata è in una footnote. Con il metodo normale io scrivo “\index{pippo|nn}” e me lo trovo nell’indice come “pippo, 1n”. Con le nuove macro che hai definito sarà possibile? Grazie comunque dell’aiuto che dai.
-
7 Aprile 2017 alle 21:20 #110219::
Definisci altri due comandi, diciamo \indexrmnn e \indexitnn, dove aggiungi a quello che c’è nelle definizioni senza l’appendice nn semplicemente |nn come fai di solito a mano. Ma una volta disponibili i quattro comandi nuovi sta a te usare quelli giusti nel posto giusto. In questo modo hai automatizzato tutto e non devi pensare più dove mettere le graffe, le barre, o che cosa. LaTeX è bello anche perché con pochi comandi di questo tipo ti permette di essere coerente nella resa di qualunque parte del tuo documento.
-
8 Aprile 2017 alle 6:16 #110220::
Scusa se torno sull’argomento. Io vorrei che i nuovi comandi \indexit etc. i funzionassero con tutte le opzioni che ha \index vale a dire “|nn” “!”, “@”, etc. ma non ci riesco assolutamente. Nel preamble io definisco il nuovo comando con `\newcommand*{\indexitnn}[1]{\textit{#1}\index{#1@\textit{#1}}}` ma dovunque io metta “|nn ” o gli altri segni non mi viene riconosciuto e è trattato come testo. Hai ancora tanta pazienza da dire a un principiante dove sbaglia? Grazie
-
8 Aprile 2017 alle 7:13 #110221
-
8 Aprile 2017 alle 8:14 #110222::
Hai ragione e ti assicuro che ho letto la documentazione che mi avevi suggerito. Ma sbagliavo perché scrivevo [code]\newcommand*{\indexitnn}[1]{\textit{#1}\index{#1@\textit{#1}}|nn} in analogia a quando inserisco |nn con il comando \index{pippo|nn}. E onestamente non ho capito perché va dove l’hai messo te.Ma i miei problemi con l’indice non sono ancora finiti. Ora mi è chiaro come indicizzare una stringa. Nell’indice io me la ritrovo identica. Ma se indicizzo una stringa e nell’indice vorrei un’altra stringa mi trovo in difficoltà. Es. Il testo recita: “Un grande scienziato che scrisse il Sidereus Nuncius”. Io vorrei che nell’indice fosse scritto “Galileo Galilei” con il numero di pagina corrispondente a “Sidereus Nuncius”. Ma non so proprio da dove cominciare. Ho letto il manuale Makeindex di Lamport. Ma non ho trovato nulla che possa orientarmi nella soluzione. Grazie ancora.
-
8 Aprile 2017 alle 14:11 #110223::
1) Quel codice |nn va dove l’ho messo io perché va supito dopo il modo di stampare la voce, cioè subito dopo la fine del comando \textit, ma comunque sempre fra le graffe che contengono l’arogmento di \indexitnn; conta le graffe aperte e chiuse e te ne accorgi subito.2) `… Sedereus Nuncius\index{Galileo Galilei} …`
-
8 Aprile 2017 alle 16:03 #110224::
Sì è vero. Ma mi è capitato di dover scrivere in corsivo nell’indice una stringa diversa da quella da indicizzare. Se uso \index{blabla|nn} blabla, e blabla (corsivo) è diverso da quello che voglio indicizzare, non segue l’ordine alfabetico generale. È la ragione per la quale ho avuto necessità della tua professionalità per scrivere un nuovo comando. Il quale però funziona se la stringa da indicizzare e quella indicizzata sono uguali. Ho fatto qualche tentativo ma mi è venuto il dubbio che non sia possibile in linea di principio e, comunque, è ben al di là delle mie forze. Comunque per ora ho aggirato il problema con qualche artifizio editoriale. Spero che non mi capitino altre situazioni del genere.
-
8 Aprile 2017 alle 17:17 #110225::
Ti assicuro che non ho capito che cosa vuoi fare.
Nel precedente messaggio avevi chiesto come fare per indicizzare Galielo Galilei con la stessa pagina del testo Sidereus Nuntius. Ora mi dici che non era quello che volevi fare, ma un;altra cosa che non ho capito quel sia.
Con LaTe si può fare qulunque cosa abbia un minimo di senso. Siccome quello che ho capito, evidentemente fraintendendo, non ha senso, con LaTeX non si può fare. Se ti spieghi meglio, forse ci si riesce, ma ricorda che LaTe è solo uno strumento e fa quello che gli dici di fare; di solito è un esecutore molto obbediente; è raro che faccia degli errori nell’esecuzione (nel senso che gli errori li fa, 999/1000 perché noi gli abbiamo detto di fare cose sbagliate). Succede a me, succede a te, succede a tutti di sbagliare a dare gli ordini da eseguire. Ma per dare ordini giusti, bisogna avere le idee chiare. In questo momento non ho nessuna idea chiara su quello che vorresti ottenere.
-
8 Aprile 2017 alle 19:47 #110226::
Ti faccio un esempio. Ho il seguente testo:
“Il grande scienziato italiano\index{Galileo Galilei}, autore del Sidereus Nuncius, fu professore a Padova\index{Città del Veneto/i]}.” Quando lo compilo ottengo un indice nel quale Galielo Galiei viene messo in testa all’indice insieme a tutte le altre stringhe indicizzate in corsivo. Dopo l’inidce di stringhe in corsivo parte l’indice delle stringhe diritte. Così “Galileo Galilei” me lo trovo nella prima parte dell’indice e Padova me lo trovo nella seconda parte dell’indice mentre io vorrei che fossero nello stesso indice.
Ti allego ius altro esempio
[attachment]C:\fakepath\Esempio per Old Claudio.pdf[/attachment]
Come vedi di fatto ci sono due indici. Uno con le stringhe in corsivo e un altro con le stringhe diritte.Il nuovo comando che mi hai suggerito risolve il problema nel caso che la stringa da indicizzare sia stessa di quella indicizzata. Es. io indicizzo “Pipp”o e voglio nell’indice “Pippo”. Ma se indicizzo “Pippo” e voglio nell’indice `Amico di Paperino` il nuovo comando non va bene. Posso usare il contando standard \index ma in questo caso, essendo “Amico di Paperino” in corsivo me lo mette in un indice a parte.
Spero di essere stato più chiaro.
-
8 Aprile 2017 alle 20:27 #110227::
A me non risulta quello che mi dici; ho predisposto questo esempio minimo compilabile, come avresti dovuto fare tu per mostrare quello che facevi e che non ti tornava: `% !TEX TS-program = pdflatex
% !TEX encoding = UTF-8 Unicode\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}\usepackage{imakeidx}
\newcommand*{\indexrm}[1]{#1\index{#1@\textrm{#1}}}
\newcommand*{\indexit}[1]{\textit{#1}\index{#1@\textit{#1}}}
\newcommand*{\indexrmnn}[1]{#1\index{#1@#1|nn}}
\newcommand*{\indexitnn}[1]{\textit{#1}\index{#1@\textit{#1}|nn}}\newcommand*\nn[1]{#1n}
\makeindex
\begin{document}Pippo\index{Pippo}, amico di \indexit{Paperino}, aveva il cane \indexrm{Pluto}\footnote{In realtà \indexitnn{Pluto} era il cane di \indexitnn{Topolino}.}.
\newpage
Il grande scienziato italiano\indexit{Galileo Galilei}, autore del \indexit{Sidereus Nuncius}, fu professore a \indexrm{Padova}\index{Città del Veneto}.
\printindex
\end{document}`Compila e si vede benissimo che l’indice analitico ha le voci tonde e corsive mescolate e ben messe in ordine alfabetico; solo se la voce è la stessa , ma una è composta in tondo e l’altra viene in corsivo, quella in corsivo nell’indice viene prima; ma come ho detto se metti nell’indice due voci scritte in modo diverso, sono voci distinte, non sono la stessa voce. se vuoi prima quella in tondo e poi quella in corsivo, mdifica la prrima definizione di \indexrm con la seguente`\newcommand*{\indexrm}[1]{#1\index{#1@#1}}`Se così ancora non ti va bene, spiegati meglio con codice effettivo, non solo con le parole; gli esempi minimi compilabili servono a questo.
-
9 Aprile 2017 alle 3:43 #110228::
Ecco l’esempio minimo:
`\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}\usepackage{imakeidx}
\newcommand*{\indexrm}[1]{#1\index{#1@\textrm{#1}}}
\newcommand*{\indexit}[1]{\textit{#1}\index{#1@\textit{#1}}}
\newcommand*{\indexrmnn}[1]{#1\index{#1@#1|nn}}
\newcommand*{\indexitnn}[1]{\textit{#1}\index{#1@\textit{#1}|nn}}\newcommand*\nn[1]{#1n}
\makeindex
\begin{document}Pippo\index{Pippo}, amico di \indexit{Paperino}, aveva il cane \indexrm{Pluto}\footnote{In realtà \indexitnn{Pluto} era il cane di \indexitnn{Topolino}.}.
\textbf{Caso A} Ma Pluto\index{\textit{Plutone, ex pianeta (Caso A)}}, nella lingua inglese, è anche un ex pianeta.
\textbf{Caso B} Ma Pluto\indexit{Plutone, ex pianeta (Caso B)}, nella lingua inglese, è anche un ex pianeta.
\newpage
Il grande scienziato italiano\indexit{Galileo Galilei}, autore del \indexit{Sidereus Nuncius}, fu professore a \indexrm{Padova}\index{Città del Veneto}.
\printindex
\end{document}`Caso A: Nel testo tutto è a posto ma nell’Indice “Plutone, ex pianeta (Caso A)}” non è in ordine alfabetico.
Caso B: Nel testo c’è la ripetizione “PlutoPlutone, ex pianeta (Caso B)” mentre l’indice è in ordine alfabetico.Un dettaglio secondario è rappresentato dal fatto che Pluto in corsivo e Pluto diritto nell’indice sono considerati due nomi diversi.
-
9 Aprile 2017 alle 15:39 #110229::
Capisco che volevi fare un esempio che mettesse in crisi il codice; ma
1) Plutone non è un ex pianeta, ma un pianeta (magari non di origine solare, ma orbita attorno al sole come gli altri pianeti.
2) make index è moto più potente; se non leggi la documentazione non puoi sapere come dirimere casi che il codice non può dirimere, perché tratta solo stringhe di testo senza capire quello che scrive.
3) infatti makeindex può fare indici gerachici fino a tre livelli, uno principlare de due secondari subalterni gerarchicamente
4) che poi Pluto e Pluto per noi siano il nome dello stesso cane, per il codice sono due cose diverse, e ho scelto quell’esempio apposta; sta a noi gestire il testo in modo coerente, quandi non imetteremo ami nell’indice gli stessi nomi composti in modo diverso. Guarda il codice seguente; nonho inventato niente, ho semplicemente usato la sintassi da usare epr gli argomenti di \index per essere trattati gerachicamente.
`\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}\usepackage{imakeidx}
\newcommand*{\indexrm}[1]{#1\index{#1@\textrm{#1}}}
\newcommand*{\indexit}[1]{\textit{#1}\index{#1@\textit{#1}}}
\newcommand*{\indexrmnn}[1]{#1\index{#1@#1|nn}}
\newcommand*{\indexitnn}[1]{\textit{#1}\index{#1@\textit{#1}|nn}}\newcommand*\nn[1]{#1n}
\makeindex
\begin{document}Pippo\index{Pippo}, amico di \indexit{Paperino}, aveva il cane \indexrm{Pluto}\footnote{In realtà \indexitnn{Pluto} era il cane di \indexitnn{Topolino}.}.
\textbf{Caso A} Ma Pluto\index{pianeta!Pluto@\textit{Plutone,(Caso A)}}, nella lingua inglese, è anche un pianeta.
\textbf{Caso B} Ma Pluto\indexit{Plutone, pianeta (Caso B)}, nella lingua inglese, è anche un ex pianeta.
\newpage
Il grande scienziato italiano\indexit{Galileo Galilei}, autore del \indexit{Sidereus Nuncius}, fu professore a \indexrm{Padova}\index{Città del Veneto}.
\printindex
\end{document}`
-
9 Aprile 2017 alle 16:09 #110230::
Grazie del supporto. Sei veramente eccezionale a risolvere problemi difficilissimi per un principiante. Il tuo codice va bene ma non è perfetto. Se vai a vedere l’indice va bene; ma se vai a vedere il testo Nel Caso B risulta “Ma PlutoPlutone, pianeta (CASOB) che certamente non volevi che ci fosse. Sono sicuro che troverai il modo di risolvere il problema. In ogni caso per ora ho aggirato il peoblema con artifizio editorialieP. S. Nel 2006 l’ente preposto alla nomenclatura dei corpi planetari – l’International Astronomical Union – ha dichiarato che Plutone è una ex pianeta, e lo ha classificato come pianeta nano, un oggetto che è a metà strada tra i pianeti e i pianetini (o asteroidi). Plutone nell’occasione fu individuato come il prototipo di oggetti che orbitano al di là dell’orbita di Nettuno e li chiamò “Plutoidi”. Non è sufficiente dire che orbita intorno al Sole per dire che un oggetto è un pianeta. Pensa alle comete e te ne convincerai
-
9 Aprile 2017 alle 19:40 #110231::
Grazie di avermi chiarito le idee sugli ex pianeti. Si sapeva da tempo che forse Plutone non era di origine solare, vista al sua orbita e il senso di rotazione anomali rispetto a quelli degli altri pianeti e degli asteroidi. Poi le classificazioni degli enti cambiano.Comunque hai ragione che nel mio esempio il caso B aveva un \inexit di troppo, nel senso che la frase non stava nemmeno in piedi; il codice seguente rende almeno la frase corretta.`% !TEX encoding = UTF-8 Unicode
% !TEX TS-program = pdflatex\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}\usepackage{imakeidx}
\newcommand*{\indexrm}[1]{#1\index{#1@\textrm{#1}}}
\newcommand*{\indexit}[1]{\textit{#1}\index{#1@\textit{#1}}}
\newcommand*{\indexrmnn}[1]{#1\index{#1@#1|nn}}
\newcommand*{\indexitnn}[1]{\textit{#1}\index{#1@\textit{#1}|nn}}\newcommand*\nn[1]{#1n}
\makeindex
\begin{document}Pippo\index{Pippo}, amico di \indexit{Paperino}, aveva il cane \indexrm{Pluto}\footnote{In realtà \indexitnn{Pluto} era il cane di \indexitnn{Topolino}.}.
\newpage
\textbf{Caso A} Ma Pluto\index{ex pianeta!Pluto@\textit{Plutone,(Caso A)}}, nella lingua inglese, è anche un ex pianeta.
\textbf{Caso B} Ma \indexit{Pluto} è il nome inglese di un ex pianeta.
\newpage
Il grande scienziato italiano\indexit{Galileo Galilei}, autore del \indexit{Sidereus Nuncius}, fu professore a \indexrm{Padova}\index{Città del Veneto}.
\printindex
\end{document}`
-
9 Aprile 2017 alle 20:10 #110232::
Grazie ancora del tuo impegno a trovare una soluzione che sembra vicina e poi si dimostra sfuggente. Ancora non ci siamo: sistemato il testo ora è l’indice che non va. Comunque non pensarci più. Anche io non voglio pensare più a questo problema perché per i prossimi giorni mi debbo concentrare su altri aspetti del testo che spero non mi creino problemi come questo. Avendo trovato una soluzione con una scappatoia editoriale direi di non pensarci più per un po’ di tempo. Poi magari arriva la folgorazione.
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.