Songbook \makeTitleIndex: Número da página vs número da música

Songbook \makeTitleIndex: Número da página vs número da música

Criei um songbook usando o songbookpacote. Conforme indicado no manual, adicionei um \makeTitleIndexcomando ao preâmbulo do meu cancioneiro. Ele cria um .tIdxarquivo contendo títulos e números de músicas. No entanto, preciso dos números das páginas.

Existe uma maneira de configurar \makeTitleIndexa saída de números de páginas (mesmo que seja um comando sem parâmetros)? Se não, que alternativas tenho? Eu gostaria de usar makeindexpara converter o .tIdxarquivo .tdx.

Aqui um exemplo songbook.tex::

\documentclass[a4paper,10pt]{book}
\usepackage[ngerman]{babel}
\usepackage[chordbk]{songbook}

\begin{document}

    \makeTitleIndex

    \begin{song}{Song 1}{}{~}{}{}{} 
        song1
        \newpage
        song1 continued
    \end{song}


    \begin{song}{Song 2}{}{~}{}{}{}
        song2
    \end{song}

    \begin{song}{Song 3}{}{~}{}{}{}
        song3
    \end{song}

    \input{songbook.tdx}

\end{document}

Compile uma vez. Então corra:

makeindex -o songbook.tdx songbook.tIdx

Compile novamente. Observe que o índice no final do PDF mostra os números das músicas (não os números das páginas).

Responder1

O songambiente usa \titleIndex{\theSongTitle}{\theSBSongCnt}para fazer a entrada do índice com o título da música e o valor do contador da música.

Isso pode ser corrigido para \xpatchcmdmudar \theSBSongCntpara \thepage.

\documentclass[a4paper,10pt]{book}
\usepackage[ngerman]{babel}
\usepackage[chordbk]{songbook}
\usepackage{xpatch}

\xpatchcmd{\song}{%
  \titleIndex{\theSongTitle}{\theSBSongCnt}   %
}{%
  \titleIndex{\theSongTitle}{\thepage}   %
}{}{}


\begin{document}

    \makeTitleIndex

    \begin{song}{Song Foo}{}{~}{}{}{} 
        song1
        \newpage
        song1 continued
    \end{song}


    \begin{song}{Song Foobar}{}{~}{}{}{}
        song2
    \end{song}

    \begin{song}{Song Other Foobar}{}{~}{}{}{}
        song3
    \end{song}

    \input{songbook.tdx}

\end{document}

insira a descrição da imagem aqui

informação relacionada