我使用該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}