Песенник \makeTitleIndex: Номер страницы и номер песни

Песенник \makeTitleIndex: Номер страницы и номер песни

Я создал сборник песен с помощью songbookпакета. Как указано в руководстве, я добавил \makeTitleIndexкоманду в преамбулу своего сборника песен. Она создает .tIdxфайл, содержащий названия песен и номера песен. Однако вместо этого мне нужны номера страниц.

Есть ли способ настроить \makeTitleIndexвывод номеров страниц (даже если это команда без параметров)? Если нет, какие альтернативы у меня есть? Я хотел бы использовать makeindexдля преобразования .tIdxв .tdx.

Вот пример: 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}

Скомпилируйте один раз. Затем запустите:

makeindex -o songbook.tdx songbook.tIdx

Скомпилируйте еще раз. Обратите внимание, что индекс в конце PDF-файла показывает номера песен (а не номера страниц).

решение1

Среда songиспользуется \titleIndex{\theSongTitle}{\theSBSongCnt}для создания индексной записи с названием песни и значением счетчика песен.

Это можно исправить, \xpatchcmdизменив \theSBSongCntна \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}

введите описание изображения здесь

Связанный контент