Songbook \makeTitleIndex:頁碼與歌曲編號

Songbook \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}

在此輸入影像描述

相關內容