패키지 를 이용하여 노래책을 만들었습니다 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}