Buongiorno.
Ho fatto delle prove. La modifica funziona perfettamente con un testo standard.
Il file .idx risulta:`\indexentry{casa}{1}
\indexentry{e bello@è bello}{2}`
Se la introduco invece nel mio documento ho un problema:
Il file .idx risulta così:
`\indexentry{Alleluia Passeranno i cieli@\songtitle }{2}
\indexentry{E santo@\songtitle }{2}`
Cioè lui legge la macro \songtitle perché riesce a “trasformare” le lettere accentate in non accentate, però dopo l’@ non scrive il testo giusto. Inoltre “lavora” anche le parole non accentate.
Il file .ind risulta quindi così:`\begin{theindex}
\item \songtitle , 2
\indexspace
\item \songtitle , 2
\end{theindex}` e l’indice alla fine ha solo dei numeri di pagina, senza nulla prima.
Se serve posso riportare il pezzo di codice che modifico, anche se da solo dice poco.`\newcommand\SB@@@beginsong{%
\global\SB@stanzafalse%
\setbox\SB@chorusbox\box\voidb@x%
\SB@gotchorusfalse%
\setbox\SB@songbox\vbox\bgroup\begingroup%
\ifnum\SB@numcols>\z@\hsize\SB@colwidth\fi%
\leftskip\z@skip\rightskip\z@skip%
\parfillskip\@flushglue\parskip\z@skip%
\SB@raggedright%
\global\SB@transposefactor\z@%
\global\SB@cr@{\\}%
\protected@edef\@currentlabel{\p@songnum\thesongnum}%
\setcounter{versenum}{1}%
\SB@prevversetrue%
\meter44%
\resettitles%
\SB@addtoindexes\songtitle\SB@rawrefs\songauthors%
\noaccentindex{\songtitle} %MODIFICATO
\nexttitle%
\foreachtitle{\expandafter\SB@addtotitles\expandafter{\songtitle}}%
\resettitles%
\lyricfont%
\SB@setbaselineskip%
}`
Ci studio su un po’.
Grazie!
Francesco
EDIT: modificando la riga:`\expandafter\index\expandafter{\next @\detokenize{#1}}% ` in `\expandafter\index\expandafter{\next @#1}% ` tutto funziona.
Il file .idx risulta:
`\indexentry{Alleluia Passeranno i cieli@Alleluia Passeranno i cieli}{2}
\indexentry{E santo@\IeC {\`E} santo}{2}` quindi non lavora ancora perfettamente.
Possono esserci problemi?