- Questo topic ha 15 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 9 anni, 7 mesi fa da
lorenzo.pantieri.
-
CreatoreTopic
-
29 Gennaio 2017 alle 3:39 #109175::
Carissimi, sto facendo qualche prova con makeidx. Questo codice
`\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[applemac]{inputenc}
\usepackage[italian]{babel}
\usepackage{imakeidx}%\indexsetup{level=\section*,toclevel=section,noclearpage}
\makeindex[title=Indice dei concetti]
\makeindex[name=persone,title=Indice dei nomi,columns=3]\begin{document}
…
…relatività\index{relatività}…
…
…
Einstein\index[persone]{Einstein, Albert}…
…
E questa è la fine della storia.\printindex
\indexprologue{\small In questo indice si trovano solo nomi di persone famose.}
\printindex[persone]
\end{document}`
funziona perfettamente, ma se decommento la riga con \indexsetup gli indici non vengono più prodotti!Perché?
-
CreatoreTopic
-
AutoreRisposte
-
-
29 Gennaio 2017 alle 8:40 #109176::
Ciao Lorenzo,sono l’ultima persona che ti può aiutare. Figurarsi che il pacchetto l’ha scritto Enrico, ti manderà sicuramente le istruzioni più dettagliate possibile.
Io posso solo darti riscontro del fatto che da me compila correttamente l’esempio che segue, e spero tu ne possa trarre qualche indicazione:`
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[applemac]{inputenc}
\usepackage[italian]{babel}
\usepackage{imakeidx}
\indexsetup{level=\section*,toclevel=section,noclearpage}
\usepackage{xpatch}
\makeindex
\makeatletter
\xpatchcmd{\imki@putindex}
{\immediate}
{\ifimki@disableautomatic\else\immediate}
{}{}
\xpatchcmd{\imki@putindex}
{\endcsname}
{\endcsname\fi}
{}{}
\makeatother
\begin{document}
\tableofcontents
\section{F}
a\index{first}
b\index{second}
\section{G}
c\index{third}
d\index{four}
\printindex
\end{document}
`
-
29 Gennaio 2017 alle 8:46 #109177::
marco_stara” post=109358Ciao Lorenzo,
sono l’ultima persona che ti può aiutare. Figurarsi che il pacchetto l’ha scritto Enrico, ti manderà sicuramente le istruzioni più dettagliate possibile.
Io posso solo darti riscontro del fatto che da me compila correttamente l’esempio che segue, e spero tu ne possa trarre qualche indicazione:`
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[applemac]{inputenc}
\usepackage[italian]{babel}
\usepackage{imakeidx}
\indexsetup{level=\section*,toclevel=section,noclearpage}
\usepackage{xpatch}
\makeindex
\makeatletter
\xpatchcmd{\imki@putindex}
{\immediate}
{\ifimki@disableautomatic\else\immediate}
{}{}
\xpatchcmd{\imki@putindex}
{\endcsname}
{\endcsname\fi}
{}{}
\makeatother
\begin{document}
\tableofcontents
\section{F}
a\index{first}
b\index{second}
\section{G}
c\index{third}
d\index{four}
\printindex
\end{document}
`Ciao Marco!
1. Anche a me il tuo codice dà un risultato corretto.
2. È però molto “sporco”: davvero sono necessarie tutte quelle patch?
3. imakeidx è una figata, facile e potente: ogni pacchetto per LaTeX dovrebbe essere così. Non lo conoscevo perché non ho mai dovuto scrivere indici multipli. Ma è una funzione che può servire, eccome!
Aspetto, come al solito, le tue correzioni! 😉
P.S. Com’è noto, uso una vecchia distribuzione di LaTeX, ma i miei problemi non dovrebbero dipendere da quello: “noclearpage” è descritto dalla doc. del pacchetto che posso consultare sulla mia macchina.
-
29 Gennaio 2017 alle 8:51 #109178::
Non credo dipenda dalla tua installazione di Latex. Io uso l’ultima Texlive 2016 e il tuo esempio non compila nemmeno da me.Riporto:
“nonewpage inhibits the new page command to be issued when using an article type document class and multiple indices are being typeset. We don’t see why someone would use multiple indices in an article (except possibly for package documentations, which usually provide a macro index and a list of changes). (egreg 2013, imakeidx documentation)”
-
29 Gennaio 2017 alle 12:07 #109179::
marco_stara” post=109361
“nonewpage inhibits the new page command to be issued when using an article type document class and multiple indices are being typeset. We don’t see why someone would use multiple indices in an article (except possibly for package documentations, which usually provide a macro index and a list of changes). (egreg 2013, imakeidx documentation)”1. L’opzione (del pacchetto imakeidx) [tt]nonewpage[/tt] mi funziona benissimo. Il problema ce l’ho con la chiave (di \indexsetup) noclearpage: non fa quello che mi promette la documentazione.
2. Mi viene in mente (almeno) un altro esempio d’uso di “nonewpage” (con cui, ripeto, non ho problemi): un tizio che stia scrivendo un articolo su imakeidx e che vuole mostrare ai propri lettori il risultato di un sorgente di prova con due indici analitici, può volere che il risultato stia su una sola pagina (per includerla nel suo articolo) e non su tre! 😉
http://www.lorenzopantieri.net/LaTeX_files/LaTeXpedia.pdf
Come vedi, qui ho aggirato il problema descrivendo a parole quello che fa il codice (pagina 242). E ti dirò: il risultato non mi dispiace!
-
30 Gennaio 2017 alle 9:35 #109180::
Ho provato con noclearpage e non funziona correttamente nemmeno a me. Mentre nonewpage funziona benissimo.
Siccome in altre circostanze, avendo usato nonnewpage e noclearpage assieme, le cose andavano bene, non saprei dire che cosa apparentemente intralci i due comandi.
Avendo confrontato l’esempio minimo compilabile, che avevo preparato per controllare quello che dicevi, con il file originale dove l’accoppiata dei due funzionava, non sono riuscito a trovare dove stia il baco, nel mio esempio minimo.Ci vorrebbe l’intervento di Enrico.
-
30 Gennaio 2017 alle 10:21 #109181::
Credo comunque che il problema sia già stato notato anche da Enrico. Sono certo che interverrà.Marco
-
30 Gennaio 2017 alle 12:37 #109182::
OldClaudio” post=109382Ho provato con noclearpage e non funziona correttamente nemmeno a me. Mentre nonewpage funziona benissimo.
Siccome in altre circostanze, avendo usato nonnewpage e noclearpage assieme, le cose andavano bene, non saprei dire che cosa apparentemente intralci i due comandi.
Avendo confrontato l’esempio minimo compilabile, che avevo preparato per controllare quello che dicevi, con il file originale dove l’accoppiata dei due funzionava, non sono riuscito a trovare dove stia il baco, nel mio esempio minimo.Ci vorrebbe l’intervento di Enrico.
Dopo aver letto il messaggio di MArco_Stara, ho capito perché il mio EMC e il mio precedente file si comportavano diversaeante; in particolare nel mio uso precedente avevo specificato l’opzione splitindex, mentre nell’EMC mi basavo sulla compilazione automatica dei vari indici analitici.
Tuttavia devo ancora verificare se il patch indicato da Enrico in TeXStackExchange funzioni ance quando non si specifichi splitindex. Work in progress!
-
30 Gennaio 2017 alle 14:40 #109183::
OldClaudio” post=109386Tuttavia devo ancora verificare se il patch indicato da Enrico in TeXStackExchange funzioni ance quando non si specifichi splitindex. Work in progress!
Sarebbe cosa buona e giusta che la patch venisse incorporata direttamente nel codice di imakeidx.
Nel frattempo, forse dovrei togliere quelle righe da LaTeXpedia: ora come ora fanno delle promesse che non vengono mantenute….
P.S. Aspetto di sapere che ne pensi: quel capitolo l’ho riscritto dietro tuo espresso input. ❗
-
30 Gennaio 2017 alle 16:25 #109184::
Con calma, perché sono fuori sede.
Comunque volevo segnalarti che hai scritto nella pagina 241 \index[nome][voce], mentre voce va fra graffe.Per il resto va bene, ma non citerei per niente nonewpage, perché serve solo quando usi l’opzione splitindex (questa opzione fa si che i comandi vadano in un solo file idx, e poi un programmino esterno, splitindex, spezza il file in tanti file parziali e li alfabetizza eseguendo lui stesso makeindex con lo stile e le opzioni che hai specificato a \makeindex[opzioni]).
Siccome è rarissimo di dover fare tanti indici analitici da saturare il massimo numero di canali di scrittura (massimo 16, almeno per pdflatex e xelatex, sembra che non ci siano limiti per lualatex), è rarissimo che si deba ricorrere a spliindex.
Quindi per mantenere semplice il capitoletto, vediamo se la cosa va a finite nel file di Enrico, oppure se bisogna aspettare, finché Enrico non lo fa; in realtà temo che quel patch non funzioni con una moltitudine di indici; posso sbagliarmi, ovviamamente, ma sicuramante solo Enrico può aggiustare il suo codice in modo che funzioni sempre.
-
30 Gennaio 2017 alle 17:32 #109185::
La soluzione al problema sollevato qui e su TeXExchange, credo di averla trovata, ma non sono sicuro che vada bene nel 100% dei casi. Perciò l’ho inviata a Enrico, e lui vedrà se adottarla o se scartarla.
Non è un semplice patch del codice, ma una modifica abbastanza importante che riguarda quasi una decina di righe del codice originale. Non posso indicala qui, anche perché non ha ancora l’approvazione di Enrico.
-
30 Gennaio 2017 alle 19:02 #109186::
OldClaudio” post=109388Con calma, perché sono fuori sede.
Ok, ci conto.
OldClaudio” post=109388Comunque volevo segnalarti che hai scritto nella pagina 241 \index[nome][voce], mentre voce va fra graffe.
Ops. Corretto.
OldClaudio” post=109388Per il resto va bene, ma non citerei per niente nonewpage […]
Non ho mai citato “nonewpage”, per semplicità. Cit(av)o invece “noclearpage”. Ora ho tolto anche quel riferimento: lo rimetterò quando imakeidx sarà stato corretto!
-
30 Gennaio 2017 alle 19:11 #109187::
Ora che ci ho pensato meglio, ho fatto fuori tutto il paragrafo su \indexsetup, in cui spiegavo level, toclevel e headers. È roba troppo pro per il mio lettore. Sì, anche per il lettore di LaTeXpedia. 😉Quindi per me il problema è risolto.
Spero comunque che il pacchetto venga corretto presto: merita.
-
31 Gennaio 2017 alle 8:08 #109188
-
31 Gennaio 2017 alle 9:37 #109189
-
31 Gennaio 2017 alle 12:03 #109190
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.