Я создал сборник песен с помощью 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}