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}

여기에 이미지 설명을 입력하세요

관련 정보