Browse Source

Merge branch 'master' of git://git.lohrun.net/songbook

remotes/origin/split-songs
Alexandre Dupas 16 years ago
parent
commit
52e68c4946
  1. 18
      NEWS
  2. 50
      chordbook.tex
  3. 4
      doc/bugs/License.mdwn
  4. 2
      doc/bugs/chordbook.tex.mdwn
  5. 3
      doc/download.mdwn
  6. 5
      doc/index.mdwn
  7. 1
      lyricbook.tex
  8. 471
      songs.sty

18
NEWS

@ -1,3 +1,21 @@
songbook (??)
(crep, lohrun) New songs:
Eels - Hey man
Moriarty - Jimmy
Les Cowboys Fringants - La manifestation
Terra Naomi - Say it's possible
Bob Dylan - Blowin in the wind
Eels - I like birds
Eels - Packing blankets
Les Cowboys Fringants - Toune d'Automne
Tri Yann - Si Mors A Mors
Garfunkel and Oates - Fuck You.
(crep) Correction of some mistakes and typos.
(lohrun) Update to the Songs Package v2.8
-- Alexandre Dupas <alexandre.dupas@gmail.com> Fri, 20 Mar 2009 16:33:22 +0100
songbook (0.3) songbook (0.3)
(crep, lohrun) Major update with many new songs. (crep, lohrun) Major update with many new songs.

50
chordbook.tex

@ -1,4 +1,4 @@
% Copyright (C) 2008 Romain Goffe, Alexandre Dupas % Copyright (C) 2009 Romain Goffe, Alexandre Dupas
% Copyright (C) 2008 Kevin W. Hamlen % Copyright (C) 2008 Kevin W. Hamlen
% %
% This program is free software; you can redistribute it and/or % This program is free software; you can redistribute it and/or
@ -22,29 +22,14 @@
% Modified to serve personnal purposes. Newer versions can be % Modified to serve personnal purposes. Newer versions can be
% obtained from http://www.lohrun.net. % obtained from http://www.lohrun.net.
\documentclass[letterpaper]{article} \documentclass[a4paper]{article}
\usepackage[bookmarks,bookmarksopen]{hyperref} \usepackage[bookmarks,bookmarksopen]{hyperref}
\usepackage[chorded]{songs} \usepackage[chorded]{songs}
%my packages
\usepackage[utf8]{inputenc} \usepackage[utf8]{inputenc}
\usepackage[pdftex]{graphicx, color} \usepackage[pdftex]{graphicx, color}
\usepackage[english,french]{babel} \usepackage[english,french]{babel}
\usepackage{palatino}
\usepackage{fancybox} \usepackage{fancybox}
\setlength{\oddsidemargin}{0in}
\setlength{\evensidemargin}{0in}
\setlength{\textwidth}{6.5in}
\setlength{\topmargin}{0in}
\setlength{\topskip}{0in}
\setlength{\headheight}{0in}
\setlength{\headsep}{0in}
\setlength{\textheight}{9.1in}
\settowidth{\versenumwidth}{1.\ }
\addtolength{\voffset}{-1cm}
\pagestyle{empty}
\newindex{titleidx}{cbtitle} \newindex{titleidx}{cbtitle}
\newauthorindex{authidx}{cbauth} \newauthorindex{authidx}{cbauth}
@ -57,31 +42,49 @@
{img/} {img/}
} }
%my renew
%\includeonlysongs{1} %\includeonlysongs{1}
\titleprefixword{} \titleprefixword{}
\renewcommand{\stitlefont}{\LARGE\bf} \renewcommand{\stitlefont}{\LARGE\bf}
\renewcommand{\printchord}[1]{\small{\it#1}} \renewcommand{\printchord}[1]{\small{\it#1}}
\renewcommand{\chorusfont}{\it} \renewcommand{\chorusfont}{\it}
%\renewcommand{\everychorus}{\textnote{Refrain:}} \renewcommand{\showauthors}{\normalsize\songauthors}
\renewcommand{\idxtitlefont}{\sffamily\bfseries}
\renewcommand{\idxauthfont}{\sffamily\bfseries}
\renewcommand{\idxheadfont}{\sffamily\it\LARGE}
\renewcommand{\idxrefsfont}{\bfseries}
% Customization of the page appearance
\setlength{\topmargin}{0cm}
\setlength{\oddsidemargin}{0cm}
\setlength{\evensidemargin}{0cm}
\setlength{\textwidth}{16cm}
% header
\setlength{\topskip}{0cm}
\setlength{\headheight}{0cm}
\setlength{\headsep}{0cm}
% column
\setlength{\colminheight}{24cm}
\setlength{\textheight}{26cm}
\settowidth{\versenumwidth}{1.\ }
\addtolength{\voffset}{-1cm}
\baselineadj=-2.5pt plus 1pt minus 0pt \baselineadj=-2.5pt plus 1pt minus 0pt
\versesep=8pt plus 2pt minus 2pt \versesep=8pt plus 2pt minus 2pt
\pagestyle{empty}
\input{title.tex} \input{title.tex}
\begin{document} \begin{document}
\maketitle \maketitle
\thispagestyle{empty} \thispagestyle{empty}
\setcounter{page}{0}
\newpage \newpage
\input{license.tex} \input{license.tex}
\newpage \newpage
\setlength{\colminheight}{9.5in}
\setlength{\textheight}{9.7in}
\showindex{Index des chansons}{titleidx} \showindex{Index des chansons}{titleidx}
\showindex{Index des auteurs}{authidx} \showindex{Index des auteurs}{authidx}
@ -91,4 +94,3 @@
\end{songs} \end{songs}
\end{document} \end{document}

4
doc/bugs/License.mdwn

@ -1,3 +1,7 @@
Please do not push a patch into the bug section without any bug related or feature request. I appreciate patch send by mail too! -- [[lohrun]]
[[done]]
diff --git a/license.tex b/license.tex diff --git a/license.tex b/license.tex
index 5cd8a9f..6d02922 100644 index 5cd8a9f..6d02922 100644
--- a/license.tex --- a/license.tex

2
doc/bugs/chordbook.tex.mdwn

@ -3,6 +3,8 @@
* revert to original font * revert to original font
* new layout for indexes * new layout for indexes
[[done]]
Patch: Patch:
diff --git a/chordbook.tex b/chordbook.tex diff --git a/chordbook.tex b/chordbook.tex

3
doc/download.mdwn

@ -6,5 +6,4 @@ To get your own copy of the songbook using git, the command should be:
The lastest source package is available from [here](http://git.lohrun.net/?p=songbook.git;a=snapshot;h=HEAD;sf=tgz). The lastest source package is available from [here](http://git.lohrun.net/?p=songbook.git;a=snapshot;h=HEAD;sf=tgz).
You can also get the lastest stable release compiled into a [chordbook](http://www.patacrep.com/files/chordbook.pdf) and a [lyricbook](http://www.patacrep.com/files/lyricbook.pdf).

5
doc/index.mdwn

@ -1,4 +1,4 @@
Songbook is a set of tools used to produce lyricbooks and guitar chordbooks from latex songs file. It is shipped with Crep's and Lohrun's chordbook containing more than 125 songs. Crep's website, <http://patacrep.com>, gives more information about this project. Songbook is a set of tools used to produce lyricbooks and guitar chordbooks from latex songs file. It is shipped with Crep's and Lohrun's chordbook containing more than 125 songs. Crep's website, <http://patacrep.com>, gives more information about this project (in French).
This website is both a wiki and the documentation of the songbook project. You are welcome to contribute in any way (you have to register in order to edit pages). This website is both a wiki and the documentation of the songbook project. You are welcome to contribute in any way (you have to register in order to edit pages).
@ -7,3 +7,6 @@ This website is both a wiki and the documentation of the songbook project. You a
* [[documentation|doc]] * [[documentation|doc]]
* [[bugs]] * [[bugs]]
* [[contact]] * [[contact]]
This project uses the LaTeX [songs](http://songs.sourceforge.net) package written by [Kevin W. Hamlen](http://www.utdallas.edu/~hamlen).
His work is redistributed and modified under the conditions of the LaTeX Project Public License, either version 1.3a of this license or (at your option) any later version. The latest version of this license is in: <http://www.latex-project.org/lppl.txt>. Other material such as the makefile and perl script used to make songbooks are distributed under the GPLv2 Licence.

1
lyricbook.tex

@ -62,6 +62,7 @@
\renewcommand{\stitlefont}{\LARGE\bf} \renewcommand{\stitlefont}{\LARGE\bf}
\renewcommand{\printchord}[1]{\small{\it#1}} \renewcommand{\printchord}[1]{\small{\it#1}}
\renewcommand{\chorusfont}{\it} \renewcommand{\chorusfont}{\it}
\renewcommand{\showauthors}{\normalsize\songauthors}
%\renewcommand{\everychorus}{\textnote{Refrain:}} %\renewcommand{\everychorus}{\textnote{Refrain:}}
\baselineadj=-2.5pt plus 1pt minus 0pt \baselineadj=-2.5pt plus 1pt minus 0pt
\versesep=8pt plus 2pt minus 2pt \versesep=8pt plus 2pt minus 2pt

471
songs.sty

@ -8,7 +8,7 @@
%% %%
%% This is a generated file. %% This is a generated file.
%% %%
%% Copyright (C) 2008 by Kevin W. Hamlen %% Copyright (C) 2009 by Kevin W. Hamlen
%% %%
%% This file may be distributed and/or modified under the conditions of %% This file may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License, either version 1.3a of this license %% the LaTeX Project Public License, either version 1.3a of this license
@ -22,7 +22,7 @@
%% %%
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{songs} \ProvidesPackage{songs}
[2008/03/27 v2.6 Songs package] [2009/03/14 v2.8 Songs package]
\newif\ifSB@etex \newif\ifSB@etex
\ifx\eTeXversion\undefined\else \ifx\eTeXversion\undefined\else
\ifx\eTeXversion\relax\else \ifx\eTeXversion\relax\else
@ -50,7 +50,6 @@
\newdimen\SB@dimenii \newdimen\SB@dimenii
\newdimen\SB@dimeniii \newdimen\SB@dimeniii
\newdimen\SB@dimeniv \newdimen\SB@dimeniv
\newdimen\SB@dimenv
\newbox\SB@box \newbox\SB@box
\newbox\SB@boxii \newbox\SB@boxii
\newbox\SB@boxiii \newbox\SB@boxiii
@ -82,8 +81,14 @@
\leftskip\z@skip\rightskip\@flushglue\SB@cbarshift% \leftskip\z@skip\rightskip\@flushglue\SB@cbarshift%
\noindent#1\par% \noindent#1\par%
} }
\newcommand\songnumstyle[1]{\arabic{#1}} \newcounter{songnum}
\newcommand\versenumstyle[1]{\arabic{#1}} \newcounter{versenum}
\renewcommand\thesongnum{\songnumstyle{songnum}}
\newcommand\songnumstyle{}
\let\songnumstyle\arabic
\renewcommand\theversenum{\versenumstyle{versenum}}
\newcommand\versenumstyle{}
\let\versenumstyle\arabic
\newcommand\printsongnum[1]{\sffamily\bfseries\LARGE#1} \newcommand\printsongnum[1]{\sffamily\bfseries\LARGE#1}
\newcommand\printversenum[1]{\lyricfont#1.\ } \newcommand\printversenum[1]{\lyricfont#1.\ }
\newcommand\placeversenum[1]{% \newcommand\placeversenum[1]{%
@ -119,6 +124,14 @@
\newcommand\chorusmark{} \newcommand\chorusmark{}
\newcommand\extendprelude{\showrefs\showauthors} \newcommand\extendprelude{\showrefs\showauthors}
\newcommand\extendpostlude{\songcopyright\ \songlicense\unskip} \newcommand\extendpostlude{\songcopyright\ \songlicense\unskip}
\newcommand\idxheadfont{\sffamily\bfseries\LARGE}
\newcommand\idxtitlefont{\sffamily\slshape}
\newcommand\idxlyricfont{\rmfamily}
\newcommand\idxscripfont{\sffamily\small\slshape}
\newcommand\idxauthfont{\small\bfseries}
\newcommand\idxrefsfont{\normalfont\normalsize}
\newcommand\idxbook[1]{\small\bfseries#1}
\newcommand\idxcont[1]{\small\textbf{#1} (continued)}
\newlength\colminheight \newlength\colminheight
\setlength\colminheight{123456789sp} \setlength\colminheight{123456789sp}
\newdimen\SB@colwidth \newdimen\SB@colwidth
@ -490,7 +503,7 @@
\newcommand\SB@submitsong{% \newcommand\SB@submitsong{%
\ifSB@songsenv% \ifSB@songsenv%
\ifpartiallist% \ifpartiallist%
\edef\SB@tempii{\songnumstyle{songnum}}% \edef\SB@tempii{\thesongnum}%
\@for\SB@temp:=\songlist\do{% \@for\SB@temp:=\songlist\do{%
\ifx\SB@temp\SB@tempii% \ifx\SB@temp\SB@tempii%
\expandafter\newbox\csname songbox@\SB@temp\endcsname% \expandafter\newbox\csname songbox@\SB@temp\endcsname%
@ -512,9 +525,12 @@
\unvbox\SB@songbox% \unvbox\SB@songbox%
\fi% \fi%
} }
\newcommand\SB@songlistbrk{}
\def\SB@songlistbrk{brk}
\newcommand\SB@finalizesonglist{% \newcommand\SB@finalizesonglist{%
\ifpartiallist% \ifpartiallist%
\@for\SB@temp:=\songlist\do{% \@for\SB@temp:=\songlist\do{%
\ifx\SB@temp\SB@songlistbrk\SB@nextcol\else%
\expandafter\ifx\csname songbox@\SB@temp\endcsname\relax\else% \expandafter\ifx\csname songbox@\SB@temp\endcsname\relax\else%
\setbox\SB@songbox% \setbox\SB@songbox%
\expandafter\box\csname songbox@\SB@temp\endcsname% \expandafter\box\csname songbox@\SB@temp\endcsname%
@ -526,7 +542,7 @@
\expandafter\box\csname chbox@\SB@temp\endcsname% \expandafter\box\csname chbox@\SB@temp\endcsname%
\fi% \fi%
\SB@dosubmitsong% \SB@dosubmitsong%
\fi% \fi\fi%
}% }%
\fi% \fi%
} }
@ -590,11 +606,9 @@
\fi% \fi%
}} }}
\newcommand\nextcol{\ifpartiallist\else\SB@nextcol\fi} \newcommand\nextcol{\ifpartiallist\else\SB@nextcol\fi}
\newcounter{songnum}
\newcounter{versenum}
\newcommand\SB@lop[1]{\expandafter\SB@@lop\the#1\SB@@lop#1} \newcommand\SB@lop[1]{\expandafter\SB@@lop\the#1\SB@@lop#1}
\newcommand\SB@@lop{} \newcommand\SB@@lop{}
\def\SB@@lop\\#1\\#2\SB@@lop#3#4{\global#4{#1}\global#3{\\#2}} \def\SB@@lop\\#1\\#2\SB@@lop#3#4{\global#3{\\#2}\global#4{#1}}
\newcommand\SB@emptylist{} \newcommand\SB@emptylist{}
\def\SB@emptylist{\\} \def\SB@emptylist{\\}
\newcommand\SB@ifempty[3]{% \newcommand\SB@ifempty[3]{%
@ -659,11 +673,12 @@
\fi% \fi%
\SB@insongtrue% \SB@insongtrue%
\SB@parsetitles{#1}% \SB@parsetitles{#1}%
\global\setbox\SB@songwrites\box\voidb@x%
\SB@clearbskeys% \SB@clearbskeys%
\@ifnextchar[\SB@bskvfmt\SB@@beginsong% \@ifnextchar[\SB@bskvfmt\SB@@beginsong%
} }
\newcommand\SB@@beginsong{% \newcommand\SB@@beginsong{%
\@ifnextchar\bgroup\SB@bsoldfmt\SB@@@beginsong% \@ifnextchar\bgroup\SB@bsoldfmt{\SB@@@beginsong{}}%
} }
\newcommand\SB@bsoldfmt[3]{% \newcommand\SB@bsoldfmt[3]{%
\SB@bskvfmt[sr={#1},by={#2},cr={#3}]% \SB@bskvfmt[sr={#1},by={#2},cr={#3}]%
@ -677,11 +692,6 @@
\global\SB@stanzafalse% \global\SB@stanzafalse%
\setbox\SB@chorusbox\box\voidb@x% \setbox\SB@chorusbox\box\voidb@x%
\SB@gotchorusfalse% \SB@gotchorusfalse%
\resettitles%
\SB@addtoindexes\songtitle\SB@rawrefs\songauthors%
\nexttitle%
\foreachtitle{\expandafter\SB@addtotitles\expandafter{\songtitle}}%
\resettitles%
\setbox\SB@songbox\vbox\bgroup% \setbox\SB@songbox\vbox\bgroup%
\hsize\SB@colwidth% \hsize\SB@colwidth%
\leftskip\z@skip\rightskip\z@skip% \leftskip\z@skip\rightskip\z@skip%
@ -689,9 +699,15 @@
\SB@raggedright% \SB@raggedright%
\global\SB@transposefactor0 % \global\SB@transposefactor0 %
\global\SB@cr@{\\}% \global\SB@cr@{\\}%
\protected@edef\@currentlabel{\p@songnum\thesongnum}%
\setcounter{versenum}{1}% \setcounter{versenum}{1}%
\SB@prevversetrue% \SB@prevversetrue%
\meter44% \meter44%
\resettitles%
\SB@addtoindexes\songtitle\SB@rawrefs\songauthors%
\nexttitle%
\foreachtitle{\expandafter\SB@addtotitles\expandafter{\songtitle}}%
\resettitles%
\lyricfont% \lyricfont%
\SB@setbaselineskip% \SB@setbaselineskip%
} }
@ -713,6 +729,7 @@
\egroup% \egroup%
\setbox\SB@songbox\vbox{% \setbox\SB@songbox\vbox{%
\songmark% \songmark%
\unvbox\SB@songwrites%
\hsize\SB@colwidth% \hsize\SB@colwidth%
\leftskip\z@skip\rightskip\z@skip% \leftskip\z@skip\rightskip\z@skip%
\parfillskip\@flushglue\parskip\z@skip\parindent\z@% \parfillskip\@flushglue\parskip\z@skip\parindent\z@%
@ -725,8 +742,8 @@
\ifx\pdfbookmark\relax\else% \ifx\pdfbookmark\relax\else%
\resettitles% \resettitles%
\pdfbookmark[\ifnum\arabic{section}=0 1\else2\fi]% \pdfbookmark[\ifnum\arabic{section}=0 1\else2\fi]%
{\songnumstyle{songnum}. \songtitle}% {\thesongnum. \songtitle}%
{song\arabic{SB@songsnum}-\songnumstyle{songnum}}% {song\arabic{SB@songsnum}-\thesongnum}%
\fi\fi% \fi\fi%
\endgroup\fi% \endgroup\fi%
\vbox{\makeprelude}% \vbox{\makeprelude}%
@ -748,7 +765,7 @@
}% }%
\SB@insongfalse% \SB@insongfalse%
\SB@submitsong% \SB@submitsong%
\edef\SB@prevsong{\songnumstyle{songnum}}% \edef\SB@prevsong{\thesongnum}%
\stepcounter{songnum}% \stepcounter{songnum}%
\else% \else%
\ifSB@inscripture% \ifSB@inscripture%
@ -813,7 +830,7 @@
\else% \else%
\setbox\SB@boxii\hbox{\SB@colorbox{% \setbox\SB@boxii\hbox{\SB@colorbox{%
\hbox to\songnumwidth{% \hbox to\songnumwidth{%
\printsongnum{\songnumstyle{songnum}}\hfil% \printsongnum{\thesongnum}\hfil%
}% }%
}}% }}%
\setbox\SB@box\vbox{% \setbox\SB@box\vbox{%
@ -838,7 +855,7 @@
\else% \else%
\SB@colorbox{\vbox to\ht\SB@box{% \SB@colorbox{\vbox to\ht\SB@box{%
\hbox to\songnumwidth{% \hbox to\songnumwidth{%
\printsongnum{\songnumstyle{songnum}}\hfil% \printsongnum{\thesongnum}\hfil%
}\vfil% }\vfil%
}}% }}%
\kern3\p@% \kern3\p@%
@ -852,7 +869,7 @@
\tiny\extendpostlude% \tiny\extendpostlude%
} }
\newcommand\showauthors{% \newcommand\showauthors{%
\setbox\SB@box\hbox{\bfseries\sfcode`.\@m\normalsize\songauthors}% \setbox\SB@box\hbox{\bfseries\sfcode`.\@m\songauthors}%
\ifdim\wd\SB@box>\z@\unhbox\SB@box\par\fi% \ifdim\wd\SB@box>\z@\unhbox\SB@box\par\fi%
} }
\newcommand\showrefs{% \newcommand\showrefs{%
@ -979,30 +996,34 @@
\let\SB@tempiii= % \let\SB@tempiii= %
} }
\newcommand\brk{% \newcommand\brk{%
\ifhmode\penalty-5 % \ifSB@insong%
\else\ifSB@inchorus% \ifhmode\penalty-5 %
\ifdim\cbarwidth=\z@% \else\ifSB@inchorus%
\ifrepchorus\marks\SB@cmarkclass{}\fi% \ifdim\cbarwidth=\z@%
\SB@breakpoint{-50}% \ifrepchorus\marks\SB@cmarkclass{}\fi%
\SB@breakpoint{-50}%
\else%
\egroup%
\ifrepchorus\ifSB@gotchorus\else%
\global\setbox\SB@chorusbox\vbox{%
\unvbox\SB@chorusbox%
\SB@chorusbar\SB@box%
\unvcopy\SB@box%
\SB@breakpoint{-50}%
}%
\fi\fi%
\SB@chorusbar\SB@box%
\unvbox\SB@box%
\SB@breakpoint{-50}%
\SB@chorustopfalse%
\SB@@beginchorus%
\fi%
\else% \else%
\egroup%
\ifrepchorus\ifSB@gotchorus\else%
\global\setbox\SB@chorusbox\vbox{%
\unvbox\SB@chorusbox%
\SB@chorusbar\SB@box%
\unvcopy\SB@box%
\SB@breakpoint{-50}%
}%
\fi\fi%
\SB@chorusbar\SB@box%
\unvbox\SB@box%
\SB@breakpoint{-50}% \SB@breakpoint{-50}%
\SB@chorustopfalse% \fi\fi%
\SB@@beginchorus%
\fi%
\else% \else%
\SB@breakpoint{-50}% \ifpartiallist\else\SB@nextcol\fi%
\fi\fi% \fi%
} }
\newcommand\rep[1]{% \newcommand\rep[1]{%
(\raise.25ex\hbox{% (\raise.25ex\hbox{%
@ -1143,9 +1164,10 @@
\SB@ifempty\SB@cr@\memorize{\replay[]}% \SB@ifempty\SB@cr@\memorize{\replay[]}%
\setbox\SB@box\vbox\bgroup% \setbox\SB@box\vbox\bgroup%
\ifvnumbered% \ifvnumbered%
\protected@edef\@currentlabel{\p@versenum\theversenum}%
\def\SB@everypar{% \def\SB@everypar{%
\setbox\SB@box\hbox{% \setbox\SB@box\hbox{%
\printversenum{\versenumstyle{versenum}}% \printversenum{\theversenum}%
}% }%
\ifdim\wd\SB@box<\versenumwidth% \ifdim\wd\SB@box<\versenumwidth%
\setbox\SB@box% \setbox\SB@box%
@ -1528,7 +1550,9 @@
} }
\newcommand\musicnote[1]{\ifchorded\textnote{#1}\fi} \newcommand\musicnote[1]{\ifchorded\textnote{#1}\fi}
\ifSB@etex \ifSB@etex
\newcommand\echo[1]{% \newcommand\echo{\begingroup\@sanitize\SB@echo}
\newcommand\SB@echo[1]{%
\endgroup%
\begingroup% \begingroup%
\ifdim\fontdimen\@ne\font>\z@\upshape\else\slshape\fi% \ifdim\fontdimen\@ne\font>\z@\upshape\else\slshape\fi%
\endlinechar-1 % \endlinechar-1 %
@ -1843,6 +1867,31 @@
\mbar\SB@metertop\SB@meterbot% \mbar\SB@metertop\SB@meterbot%
\meter{}{}% \meter{}{}%
} }
\newcommand\SB@repcolon{{%
\usefont{OT1}{cmss}{m}{n}\selectfont%
\ifchorded%
\baselineskip.5\SB@dimen%
\vbox{\hbox{:}\hbox{:}\kern.5\p@}%
\else%
\raise.5\p@\hbox{:}%
\fi%
}}
\newcommand\lrep{%
\SB@dimen\baselineskip%
\advance\SB@dimen-2\p@%
\vrule\@width1.5\p@\@height\SB@dimen\@depth\p@%
\kern1.5\p@%
\vrule\@width.5\p@\@height\SB@dimen\@depth\p@%
\SB@repcolon%
}
\newcommand\rrep{%
\SB@dimen\baselineskip%
\advance\SB@dimen-2\p@%
\SB@repcolon%
\vrule\@width.5\p@\@height\SB@dimen\@depth\p@%
\kern1.5\p@%
\vrule\@width1.5\p@\@height\SB@dimen\@depth\p@%
}
\newif\ifSB@wordends \newif\ifSB@wordends
\newif\ifSB@brokenword \newif\ifSB@brokenword
\newtoks\SB@lyric \newtoks\SB@lyric
@ -1857,17 +1906,25 @@
\catcode`!7 \catcode`!7
\gdef\SB@setchord#1{% \gdef\SB@setchord#1{%
\SB@gettabindtrue\SB@nohattrue% \SB@gettabindtrue\SB@nohattrue%
\setbox\SB@chordbox\hbox{\begingroup% \setbox\SB@chordbox\hbox{%
\ifSB@trackch% \unhbox\SB@chordbox%
\def\SB@activehat{\ifmmode!\else\global\SB@nohatfalse\fi}% \begingroup%
\else% \ifSB@trackch%
\def\SB@activehat{% \def\SB@activehat{\ifmmode!\else\global\SB@nohatfalse\fi}%
\ifmmode!\else\SB@lop\SB@ctail\SB@toks\the\SB@toks\fi% \else%
\def\SB@activehat{%
\ifmmode!\else\SB@lop\SB@ctail\SB@toks\the\SB@toks\fi%
}%
\fi%
\let^\SB@activehat%
\printchord{%
\ifSB@firstchord\else\kern.15em\fi%
\vphantom/%
\transposehere{#1}%
\kern.2em%
}% }%
\fi% \endgroup%
\let^\SB@activehat% }%
\printchord{\vphantom/\transposehere{#1}\kern.2em}%
\endgroup}%
\SB@gettabindfalse% \SB@gettabindfalse%
\ifSB@trackch\ifSB@nohat% \ifSB@trackch\ifSB@nohat%
\global\SB@creg\expandafter{\the\SB@creg#1\\}% \global\SB@creg\expandafter{\the\SB@creg#1\\}%
@ -2013,15 +2070,20 @@
\let\SB@endcname\endgroup \let\SB@endcname\endgroup
\newcommand\SB@nbsp{} \newcommand\SB@nbsp{}
\def\SB@nbsp{\nobreakspace{}} \def\SB@nbsp{\nobreakspace{}}
\newif\ifSB@firstchord\SB@firstchordtrue
\newcommand\SB@@chord{} \newcommand\SB@@chord{}
\def\SB@@chord#1]{% \def\SB@@chord#1]{%
\endgroup% \endgroup%
\ifSB@firstchord%
\setbox\SB@lyricbox\hbox{\kern\SB@tabindent}%
\global\SB@tabindent\z@%
\SB@lyric{}%
\SB@numhyps0 %
\SB@spcinit%
\setbox\SB@chordbox\box\voidb@x%
\fi%
\SB@setchord{#1}% \SB@setchord{#1}%
\setbox\SB@lyricbox\hbox{\kern\SB@tabindent}% \SB@firstchordfalse%
\global\SB@tabindent\z@%
\SB@lyric{}%
\SB@numhyps0 %
\SB@spcinit%
\let\SB@dothis\SB@chstart% \let\SB@dothis\SB@chstart%
\SB@chscan% \SB@chscan%
} }
@ -2040,7 +2102,15 @@
} }
\newcommand\SB@chmain{\SB@dothis\SB@donext} \newcommand\SB@chmain{\SB@dothis\SB@donext}
\newcommand\SB@chstart{% \newcommand\SB@chstart{%
\ifx\SB@next`% \ifx\SB@next\[%
\let\SB@donext\relax%
\else\ifx\SB@next\SB@activehat%
\let\SB@donext\relax%
\else\ifx\SB@next\ch%
\let\SB@donext\relax%
\else\ifx\SB@next\mch%
\let\SB@donext\relax%
\else\ifx\SB@next`%
\let\SB@donext\SB@chstep% \let\SB@donext\SB@chstep%
\else\ifx\SB@next'% \else\ifx\SB@next'%
\let\SB@donext\SB@chstep% \let\SB@donext\SB@chstep%
@ -2049,9 +2119,10 @@
\else% \else%
\the\SB@lyric% \the\SB@lyric%
\SB@lyric{}% \SB@lyric{}%
\SB@firstchordtrue%
\let\SB@dothis\SB@chnorm% \let\SB@dothis\SB@chnorm%
\SB@chnorm% \SB@chnorm%
\fi\fi\fi% \fi\fi\fi\fi\fi\fi\fi%
} }
\newcommand\SB@chnorm{% \newcommand\SB@chnorm{%
\ifcat\noexpand\SB@next A% \ifcat\noexpand\SB@next A%
@ -2656,35 +2727,38 @@
\newcommand\SB@indexlist{} \newcommand\SB@indexlist{}
\newcommand\SB@newindex[4]{% \newcommand\SB@newindex[4]{%
\expandafter\newcommand\csname SB@idxfilename@#3\endcsname{#4}% \expandafter\newcommand\csname SB@idxfilename@#3\endcsname{#4}%
\expandafter\newcommand\csname SB@idxsel@#3\endcsname[3]{###1}%
\expandafter\newcommand\csname SB@idxref@#3\endcsname{\thesongnum}%
\AtBeginDocument{\SB@openindex{#2}{#3}{#4}}%
}
\newcommand\SB@openindex[3]{%
\ifSB@genindexes\begingroup% \ifSB@genindexes\begingroup%
\newwrite\SB@theindex% \newwrite\SB@theindex%
\immediate\openout\SB@theindex=#4.sxd% \immediate\openout\SB@theindex=#3.sxd%
#2% #1%
\global\expandafter\let\csname SB@index@#3\endcsname\SB@theindex% \global\expandafter\let\csname SB@index@#2\endcsname\SB@theindex%
\endgroup\fi% \endgroup\fi%
\expandafter\newcommand\csname SB@idxsel@#3\endcsname[3]{###1}%
}
\newcommand\newindex[2]{%
\AtBeginDocument{\SB@newindex1\SB@titleinit{#1}{#2}}%
} }
\newcommand\newindex{\SB@newindex1\SB@titleinit}
\@onlypreamble\newindex \@onlypreamble\newindex
\newcommand\SB@titleinit{% \newcommand\SB@titleinit{%
\immediate\write\SB@theindex{TITLE INDEX DATA FILE}% \immediate\write\SB@theindex{TITLE INDEX DATA FILE}%
} }
\newcommand\newscripindex[2]{% \newcommand\newscripindex{\SB@newindex2\SB@scripinit}
\AtBeginDocument{\SB@newindex2\SB@scripinit{#1}{#2}}%
}
\@onlypreamble\newscripindex \@onlypreamble\newscripindex
\newcommand\SB@scripinit{% \newcommand\SB@scripinit{%
\immediate\write\SB@theindex{SCRIPTURE INDEX DATA FILE}% \immediate\write\SB@theindex{SCRIPTURE INDEX DATA FILE}%
} }
\newcommand\newauthorindex[2]{% \newcommand\newauthorindex{\SB@newindex3\SB@authinit}
\AtBeginDocument{\SB@newindex3\SB@authinit{#1}{#2}}%
}
\@onlypreamble\newauthorindex \@onlypreamble\newauthorindex
\newcommand\SB@authinit{% \newcommand\SB@authinit{%
\immediate\write\SB@theindex{AUTHOR INDEX DATA FILE}% \immediate\write\SB@theindex{AUTHOR INDEX DATA FILE}%
} }
\newcommand\indexsongsas[1]{%
\@ifundefined{SB@idxref@#1}%
{\SB@errnoidx{#1}\@gobble}%
{\expandafter\renewcommand\csname SB@idxref@#1\endcsname}%
}
\newcommand\SB@percent{} \newcommand\SB@percent{}
{\catcode`\%=12\gdef\SB@percent{%}} {\catcode`\%=12\gdef\SB@percent{%}}
\newcommand\SB@idxcmd[2]{% \newcommand\SB@idxcmd[2]{%
@ -2700,28 +2774,30 @@
\@onlypreamble\authignoreword \@onlypreamble\authignoreword
\newcommand\titleprefixword[1]{\SB@idxcmd\SB@titleinit{prefix #1}} \newcommand\titleprefixword[1]{\SB@idxcmd\SB@titleinit{prefix #1}}
\@onlypreamble\titleprefixword \@onlypreamble\titleprefixword
\newbox\SB@songwrites
\newcommand\SB@addtoindex[2]{% \newcommand\SB@addtoindex[2]{%
\ifSB@genindexes% \global\setbox\SB@songwrites\vbox{%
\immediate\write#1{#2}% \unvbox\SB@songwrites%
\immediate\write#1{\songnumstyle{songnum}}% \ifSB@genindexes%
\immediate\write#1{% \protected@write{\csname SB@index@#1\endcsname}{}{#2}%
song\arabic{SB@songsnum}-\songnumstyle{songnum}.% \protected@write{\csname SB@index@#1\endcsname}{}%
\ifnum\arabic{section}=0 1\else2\fi}% {\csname SB@idxref@#1\endcsname}%
\fi% \protected@write{\csname SB@index@#1\endcsname}{}{%
song\arabic{SB@songsnum}-\thesongnum.%
\ifnum\arabic{section}=0 1\else2\fi}%
\fi%
}%
} }
\newcommand\SB@addtoindexes[3]{% \newcommand\SB@addtoindexes[3]{%
\@for\SB@temp:=\SB@indexlist\do{% \@for\SB@temp:=\SB@indexlist\do{%
\csname SB@idxsel@\SB@temp\endcsname{\SB@toks\expandafter{#1}}% \SB@addtoindex\SB@temp%
{\SB@toks\expandafter{#2}}{\SB@toks\expandafter{#3}}% {\csname SB@idxsel@\SB@temp\endcsname{#1}{#2}{#3}}%
\SB@addtoindex{\csname SB@index@\SB@temp\endcsname}{\the\SB@toks}%
}% }%
} }
\newcommand\SB@addtotitles[1]{% \newcommand\SB@addtotitles[1]{%
\SB@toks{#1}%
\@for\SB@temp:=\SB@indexlist\do{% \@for\SB@temp:=\SB@indexlist\do{%
\csname SB@idxsel@\SB@temp\endcsname{% \csname SB@idxsel@\SB@temp\endcsname%
\SB@addtoindex{\csname SB@index@\SB@temp\endcsname}{\the\SB@toks}% {\SB@addtoindex\SB@temp{#1}}{}{}%
}{}{}%
}% }%
} }
\newcommand\SB@chkidxlst{% \newcommand\SB@chkidxlst{%
@ -2754,63 +2830,88 @@
\newcommand\SB@idxlineskip[1]{% \newcommand\SB@idxlineskip[1]{%
\vskip#1\p@\@plus#1\p@\@minus#1\p@% \vskip#1\p@\@plus#1\p@\@minus#1\p@%
} }
\newcommand\SB@multiline{% \newcommand\SB@multiline[2]{%
\begingroup% \begingroup%
\hbadness\@M\hfuzz\maxdimen% \SB@dimen-\SB@dimen%
\SB@dimenii\hsize% \advance\SB@dimen\hsize%
\advance\SB@dimenii-\SB@dimen% \SB@dimenii-\SB@dimenii%
\SB@dimeniii\SB@dimenii% \advance\SB@dimenii\SB@dimen%
\advance\SB@dimeniii-\wd\SB@box% \leftskip.5cm%
\interlinepenalty\@M% \interlinepenalty\@M%
\parshape\tw@\z@\hsize\SB@dimenii\SB@dimen\relax% {\hskip-.5cm\relax#1\unskip\nobreak%
\noindent\unhcopy\SB@box% \SB@maxmin\SB@dimenii<{1.5em}%
\leaders\hbox to.5em{\hss.\hss}\hskip\SB@dimeniii\@plus1fil% \leaders\hbox to.5em{\hss.\hss}\hskip\SB@dimenii\@plus1fill%
\unhcopy\SB@boxii% \nobreak{#2\kern-2em}%
\par% \rightskip2em\@plus1fil\par%
\global\SB@cnt\badness}%
\endgroup% \endgroup%
}% }%
\newcommand\SB@balancerows{% \newcommand\SB@balancerows[2]{%
\SB@dimen\hsize% \setbox\SB@box\vbox{%
\advance\SB@dimen-\wd\SB@box% \SB@multiline{\hbadness\@M\hfuzz\maxdimen#1}{#2}%
\advance\SB@dimen-2em% }%
\settoheight\SB@dimenii{\vbox{\SB@multiline}}%
\SB@dimeniii.5\SB@dimen% \SB@dimeniii.5\SB@dimen%
\SB@dimeniv\SB@dimeniii% \SB@dimeniv\SB@dimeniii%
\loop% \loop%
\SB@dimeniv.5\SB@dimeniv% \SB@dimeniv.5\SB@dimeniv%
\settoheight\SB@dimenv{\vbox{% \setbox\SB@boxii\vbox{%
\SB@dimen\SB@dimeniii% \SB@dimen\SB@dimeniii%
\SB@multiline% \SB@multiline{\hbadness\@M\hfuzz\maxdimen#1}{#2}%
}}% }%
\ifdim\SB@dimenv>\SB@dimenii% \ifnum\SB@cnt<\@M%
\advance\SB@dimeniii\SB@dimeniv% \ifdim\ht\SB@boxii>\ht\SB@box%
\advance\SB@dimeniii\SB@dimeniv%
\else%
\SB@dimen\SB@dimeniii%
\advance\SB@dimeniii-\SB@dimeniv%
\fi%
\else% \else%
\SB@dimen\SB@dimeniii% \advance\SB@dimeniii\SB@dimeniv%
\advance\SB@dimeniii-\SB@dimeniv%
\fi% \fi%
\ifdim\SB@dimeniv>2\p@\repeat% \ifdim\SB@dimeniv>2\p@\repeat%
\SB@multiline% \setbox\SB@box\box\voidb@x%
\setbox\SB@boxii\box\voidb@x%
\SB@multiline{#1}{#2}%
} }
\newcommand\SB@ellipspread[2]{% \newcommand\SB@ellipspread[2]{%
\begingroup% \begingroup%
\setbox\SB@box\hbox{#1}% \SB@dimen\z@%
\setbox\SB@boxii\hbox{#2}% \setbox\SB@box\hbox{%
\SB@dimen\wd\SB@box% {#1\leaders\hbox to.5em{\hss.\hss}\hskip2em\@plus1fil{#2}}%
\advance\SB@dimen2em% }%
\advance\SB@dimen\wd\SB@boxii% \ifdim\wd\SB@box>\hsize%
\ifdim\SB@dimen>\hsize% \setbox\SB@box\vbox{%
\SB@balancerows% \SB@toks{\\#2\\}%
\SB@lop\SB@toks\SB@toks%
\settowidth\SB@dimen{\the\SB@toks}%
\advance\SB@dimen-.5em%
\leftskip.5cm%
{\hbadness\@M\hfuzz\maxdimen%
\hskip-.5cm\relax#1\unskip\nobreak%
\hskip\SB@dimen\nobreak%
\rightskip2em\@plus1fil\par}%
\setbox\SB@box\lastbox%
\setbox\SB@box\hbox{%
\unhbox\SB@box%
\unskip\unskip\unpenalty%
\unpenalty\unskip\unpenalty%
}%
\expandafter%
}%
\expandafter\SB@dimenii\the\wd\SB@box\relax%
\SB@dimen\hsize%
\advance\SB@dimen-.5cm%
\SB@balancerows{#1}{#2}%
\else% \else%
\hbox to\hsize{% \hbox to\hsize{\unhbox\SB@box}\par%
\unhbox\SB@box%
\leaders\hbox to.5em{\hss.\hss}\hfil%
\unhbox\SB@boxii%
}\par%
\fi% \fi%
\endgroup% \endgroup%
} }
\newcommand\SB@idxitemsep{% \newcommand\SB@idxitemsep{%
,\penalty0\hskip.33em\@minus.11em\hfilneg\vadjust{}\hfil% ,\kern-2em\penalty-8\hskip2.33em\@minus.11em%
\hskip-\SB@dimen\@plus-1fill%
\vadjust{}\nobreak%
\hskip\SB@dimen\@plus1fill\relax%
} }
\newenvironment{idxblock}[1]{}{} \newenvironment{idxblock}[1]{}{}
\newcommand\idxentry[2]{} \newcommand\idxentry[2]{}
@ -2819,9 +2920,10 @@
\newenvironment{SB@smidx}[1]{}{} \newenvironment{SB@smidx}[1]{}{}
\newcommand\SB@idxsetup[1]{% \newcommand\SB@idxsetup[1]{%
\hsize\textwidth% \hsize\textwidth%
\parskip\z@skip\parfillskip\z@skip% \parskip\z@skip\parfillskip\z@skip\parindent\z@%
\baselineskip\f@size\p@\@plus\p@\@minus\p@% \baselineskip\f@size\p@\@plus\p@\@minus\p@%
\lineskiplimit\z@\lineskip\p@\@plus\p@\@minus\p@% \lineskiplimit\z@\lineskip\p@\@plus\p@\@minus\p@%
\hyphenpenalty\@M\exhyphenpenalty\@M%
\ifnum\SB@numcols>\@ne% \ifnum\SB@numcols>\@ne%
\advance\hsize\columnsep% \advance\hsize\columnsep%
\advance\hsize-#1\columnsep% \advance\hsize-#1\columnsep%
@ -2851,9 +2953,9 @@
\let\SB@temp\songchapter% \let\SB@temp\songchapter%
\fi% \fi%
\fi% \fi%
\SB@temp{#1}% \SB@temp{#2}%
}% }%
\IfFileExists{\csname SB@idxfilename@#2\endcsname.sbx}{% \IfFileExists{\csname SB@idxfilename@#3\endcsname.sbx}{%
\ifx\hyperlink\undefined\let\hyperlink\@secondoftwo\fi% \ifx\hyperlink\undefined\let\hyperlink\@secondoftwo\fi%
\ifx\hyperlink\relax\let\hyperlink\@secondoftwo\fi% \ifx\hyperlink\relax\let\hyperlink\@secondoftwo\fi%
\global\setbox\SB@box\vbox{% \global\setbox\SB@box\vbox{%
@ -2868,7 +2970,7 @@
\renewenvironment{idxblock}[1]% \renewenvironment{idxblock}[1]%
{\begin{SB@smidx}{####1}}{\end{SB@smidx}}% {\begin{SB@smidx}{####1}}{\end{SB@smidx}}%
\let\\\SB@idxitemsep% \let\\\SB@idxitemsep%
\input{\csname SB@idxfilename@#2\endcsname.sbx}% \input{\csname SB@idxfilename@#3\endcsname.sbx}%
}% }%
\hfil% \hfil%
}% }%
@ -2884,16 +2986,16 @@
\renewenvironment{idxblock}[1]% \renewenvironment{idxblock}[1]%
{\begin{SB@lgidx}{####1}}{\end{SB@lgidx}}% {\begin{SB@lgidx}{####1}}{\end{SB@lgidx}}%
\let\\\SB@idxitemsep% \let\\\SB@idxitemsep%
\SB@idxsetup{#3}% \SB@idxsetup{#1}%
\input{\csname SB@idxfilename@#2\endcsname.sbx}% \input{\csname SB@idxfilename@#3\endcsname.sbx}%
\unskip% \unskip%
}% }%
\SB@toks{\SB@makeidxcolumn{#3}}% \SB@toks{\SB@makeidxcolumn{#1}}%
\ifnum\SB@numcols>\@ne% \ifnum\SB@numcols>\@ne%
\SB@cnt#3\relax% \SB@cnt#1\relax%
\loop\ifnum\SB@cnt>\@ne% \loop\ifnum\SB@cnt>\@ne%
\SB@toks\expandafter{\the\SB@toks% \SB@toks\expandafter{\the\SB@toks%
\kern\columnsep\SB@makeidxcolumn{#3}}% \kern\columnsep\SB@makeidxcolumn{#1}}%
\advance\SB@cnt\m@ne% \advance\SB@cnt\m@ne%
\repeat% \repeat%
\fi% \fi%
@ -2915,7 +3017,7 @@
\vfil\break% \vfil\break%
\repeat% \repeat%
\SB@dimenii\ht\SB@boxii% \SB@dimenii\ht\SB@boxii%
\divide\SB@dimenii#3\relax% \divide\SB@dimenii#1\relax%
\SB@maxmin\SB@dimen>\SB@dimenii% \SB@maxmin\SB@dimen>\SB@dimenii%
\loop% \loop%
\global\setbox\SB@box\copy\SB@boxii% \global\setbox\SB@box\copy\SB@boxii%
@ -2939,43 +3041,49 @@
\cleardoublepage% \cleardoublepage%
\endgroup\fi% \endgroup\fi%
} }
\newcommand\showindex[2]{% \newcommand\showindex[3][0]{%
\@ifundefined{SB@idxsel@#2}{\SB@errnoidx{#2}}{% \@ifundefined{SB@idxsel@#3}{\SB@errnoidx{#3}}{%
\csname SB@idxsel@#2\endcsname% \expandafter\let\expandafter\SB@temp\csname SB@idxsel@#3\endcsname%
\SB@makesongindex\SB@makescripindex\SB@makeauthorindex% \SB@cnt#1\relax%
{#1}{#2}% \ifnum\SB@cnt<\@ne\SB@cnt\SB@temp232\relax\fi%
\expandafter\SB@temp%
\expandafter\SB@maketitleindex%
\expandafter\SB@makescripindex%
\expandafter\SB@makeauthorindex%
\expandafter{\the\SB@cnt}%
{#2}{#3}%
}% }%
} }
\newcommand\SB@makesongindex[2]{% \newcommand\SB@maketitleindex{%
\renewenvironment{SB@lgidx}[1]{ \renewenvironment{SB@lgidx}[1]{
\parindent\z@%
\hbox{\SB@colorbox{\vbox{% \hbox{\SB@colorbox{\vbox{%
\hbox to\idxheadwidth{\sffamily\bfseries\LARGE##1\hfil}% \hbox to\idxheadwidth{\idxheadfont\relax##1\hfil}%
}}}% }}}%
\nobreak\vskip3\p@\@plus2\p@\@minus2\p@\nointerlineskip% \nobreak\vskip3\p@\@plus2\p@\@minus2\p@\nointerlineskip%
}{\penalty-50\vskip5\p@\@plus5\p@\@minus4\p@}% }{\penalty-50\vskip5\p@\@plus5\p@\@minus4\p@}%
\renewenvironment{SB@smidx}[1]{}{}% \renewenvironment{SB@smidx}[1]{}{}%
\renewcommand\idxentry[2]{% \renewcommand\idxentry[2]{%
\SB@ellipspread{\sffamily\slshape\ignorespaces##1\unskip}{##2}% \SB@ellipspread{\idxtitlefont\relax\ignorespaces##1\unskip}%
{\idxrefsfont\relax##2}%
}% }%
\renewcommand\idxaltentry[2]{% \renewcommand\idxaltentry[2]{%
\SB@ellipspread{\rmfamily\ignorespaces##1\unskip}{##2}% \SB@ellipspread{\idxlyricfont\relax\ignorespaces##1\unskip}%
{\idxrefsfont\relax##2}%
}% }%
\SB@displayindex{#1}{#2}{2}% \SB@displayindex%
} }
\newcommand\SB@idxcolhead{} \newcommand\SB@idxcolhead{}
\newcommand\idxcont[1]{#1 {\mdseries(continued)}}
\newcommand\SB@idxcont[1]{% \newcommand\SB@idxcont[1]{%
\hbox to\hsize{\small\bfseries\idxcont{#1}\hfil}% \hbox to\hsize{\idxcont{#1}\hfil}%
\nobreak% \nobreak%
\ifdim\prevdepth>4\p@\prevdepth4\p@\fi% \ifdim\prevdepth>4\p@\prevdepth4\p@\fi%
\vskip-\prevdepth% \vskip-\prevdepth%
\vskip4\p@\@plus\p@\@minus\p@\nointerlineskip% \vskip4\p@\@plus\p@\@minus\p@\nointerlineskip%
} }
\newcommand\SB@makescripindex[2]{% \newcommand\SB@makescripindex{%
\renewenvironment{SB@lgidx}[1]{% \renewenvironment{SB@lgidx}[1]{%
\gdef\SB@idxcolhead{##1}% \gdef\SB@idxcolhead{##1}%
\hbox to\hsize{\small\bfseries##1\hfil}% \hbox to\hsize{\idxbook{##1}\hfil}%
\nobreak% \nobreak%
\ifdim\prevdepth>4\p@\prevdepth4\p@\fi% \ifdim\prevdepth>4\p@\prevdepth4\p@\fi%
\vskip-\prevdepth% \vskip-\prevdepth%
@ -2987,22 +3095,23 @@
\renewenvironment{SB@smidx}[1] \renewenvironment{SB@smidx}[1]
{\begin{SB@lgidx}{##1}}{\end{SB@lgidx}}% {\begin{SB@lgidx}{##1}}{\end{SB@lgidx}}%
\renewcommand\idxentry[2]{% \renewcommand\idxentry[2]{%
\parindent.25cm% \SB@ellipspread{\hskip.25cm\idxscripfont\relax##1}%
\SB@ellipspread{\sffamily\small\slshape\indent##1}{##2}% {\idxrefsfont\relax##2}%
\SB@toks\expandafter{\SB@idxcolhead}% \SB@toks\expandafter{\SB@idxcolhead}%
\mark{\noexpand\SB@idxcont{\the\SB@toks}}% \mark{\noexpand\SB@idxcont{\the\SB@toks}}%
}% }%
\renewcommand\idxaltentry[2]{\SB@erridx{a scripture}}% \renewcommand\idxaltentry[2]{\SB@erridx{a scripture}}%
\SB@displayindex{#1}{#2}{3}% \SB@displayindex%
} }
\newcommand\SB@makeauthorindex[2]{% \newcommand\SB@makeauthorindex{%
\renewenvironment{SB@lgidx}[1]{\parindent\z@}{}% \renewenvironment{SB@lgidx}[1]{}{}%
\renewenvironment{SB@smidx}[1]{\parindent\z@}{}% \renewenvironment{SB@smidx}[1]{}{}%
\renewcommand\idxentry[2]{% \renewcommand\idxentry[2]{%
\SB@ellipspread{\small\bfseries\sfcode`.\@m##1}{##2}% \SB@ellipspread{\idxauthfont\relax\sfcode`.\@m##1}%
{\idxrefsfont##2}%
}% }%
\renewcommand\idxaltentry[2]{\SB@erridx{an author}}% \renewcommand\idxaltentry[2]{\SB@erridx{an author}}%
\SB@displayindex{#1}{#2}{2}% \SB@displayindex%
} }
\newcommand\SB@Error{\PackageError{songs}} \newcommand\SB@Error{\PackageError{songs}}
\newcommand\SB@Warn{\PackageWarning{songs}} \newcommand\SB@Warn{\PackageWarning{songs}}
@ -3016,13 +3125,13 @@
\PackageWarning{songs}{Indexes shown but index-generation inh% \PackageWarning{songs}{Indexes shown but index-generation inh%
ibited. Index files may be out of date.}{Indexes were initial% ibited. Index files may be out of date.}{Indexes were initial%
ly turned off by the end of the document preamble, which mean% ly turned off by the end of the document preamble, which mean%
s that the auxilliary files used to keep the indexes up-to-da% s that the auxiliary files used to keep the indexes up-to-da%
te were not generated. However, indexes were turned on withi% te were not generated. However, indexes were turned on withi%
n the document body using \protect\indexeson, which means th% n the document body using \protect\indexeson, which means th%
e indexes shown in the resulting document are being created f% e indexes shown in the resulting document are being created f%
rom outdated files. To correct the problem, be sure that inde% rom outdated files. To correct the problem, be sure that inde%
xes are turned on by the end of the preamble so that the auxi% xes are turned on by the end of the preamble so that the auxi%
lliary files will be updated.}% liary files will be updated.}%
} }
\newcommand\SB@errrtopt{% \newcommand\SB@errrtopt{%
\SB@Error{Cannot display chords in a rawtext dump}{You have u% \SB@Error{Cannot display chords in a rawtext dump}{You have u%
@ -3037,26 +3146,26 @@
\newcommand\SB@errboo{% \newcommand\SB@errboo{%
\SB@Error{Encountered \protect\beginsong\space without seein% \SB@Error{Encountered \protect\beginsong\space without seein%
g an \protect\endsong\space for the previous song}% g an \protect\endsong\space for the previous song}%
{Song \songnumstyle{songnum} might be missing a% {Song \thesongnum\space might be missing a%
n \protect\endsong\space line.}% n \protect\endsong\space line.}%
} }
\newcommand\SB@errbor{% \newcommand\SB@errbor{%
\SB@Error{Encountered \protect\beginsong\space without seein% \SB@Error{Encountered \protect\beginsong\space without seein%
g an \protect\endscripture\space for the preceeding scriptur% g an \protect\endscripture\space for the preceding scriptur%
e quotation}{A scripture quotation appearing after son% e quotation}{A scripture quotation appearing after son%
g \songnumstyle{songnum} might be missing a% g \thesongnum\space might be missing a%
n \protect\endscripture\space line.}% n \protect\endscripture\space line.}%
} }
\newcommand\SB@erreov{% \newcommand\SB@erreov{%
\SB@Error{Encountered \protect\endsong\space without seein% \SB@Error{Encountered \protect\endsong\space without seein%
g an \protect\endverse\space for the preceding verse}{Son% g an \protect\endverse\space for the preceding verse}{Son%
g \songnumstyle{songnum} has a \protect\beginverse\space% g \thesongnum\space has a \protect\beginverse\space%
line with no matching \protect\endverse\space line.}% line with no matching \protect\endverse\space line.}%
} }
\newcommand\SB@erreoc{% \newcommand\SB@erreoc{%
\SB@Error{Encountered \protect\endsong\space without seein% \SB@Error{Encountered \protect\endsong\space without seein%
g an \protect\endchorus\space for the preceding chorus}{Son% g an \protect\endchorus\space for the preceding chorus}{Son%
g \songnumstyle{songnum} has a \protect\beginchorus\space% g \thesongnum\space has a \protect\beginchorus\space%
line with no matching \protect\endchorus\space line.}% line with no matching \protect\endchorus\space line.}%
} }
\newcommand\SB@erreor{% \newcommand\SB@erreor{%
@ -3075,13 +3184,13 @@
\newcommand\SB@errbvv{% \newcommand\SB@errbvv{%
\SB@Error{Encountered \protect\beginverse\space without seein% \SB@Error{Encountered \protect\beginverse\space without seein%
g an \protect\endverse\space for the preceding verse}{Son% g an \protect\endverse\space for the preceding verse}{Son%
g \songnumstyle{songnum} might have a verse that has n% g \thesongnum\space might have a verse that has n%
o \protect\endendverse\space line.}% o \protect\endendverse\space line.}%
} }
\newcommand\SB@errbvc{% \newcommand\SB@errbvc{%
\SB@Error{Encountered \protect\beginverse\space without seein% \SB@Error{Encountered \protect\beginverse\space without seein%
g an \protect\endchorus\space for the preceding chorus}{Son% g an \protect\endchorus\space for the preceding chorus}{Son%
g \songnumstyle{songnum} might have a chorus that has n% g \thesongnum\space might have a chorus that has n%
o \protect\endchorus\space line.}% o \protect\endchorus\space line.}%
} }
\newcommand\SB@errbvt{% \newcommand\SB@errbvt{%
@ -3092,13 +3201,13 @@
} }
\newcommand\SB@errevc{% \newcommand\SB@errevc{%
\SB@Error{Encountered \protect\endverse\space while process% \SB@Error{Encountered \protect\endverse\space while process%
ing a chorus}{Song \songnumstyle{songnum} might hav% ing a chorus}{Song \thesongnum\space might hav%
e a \protect\beginchorus\space concluded by a% e a \protect\beginchorus\space concluded by a%
n \protect\endverse\space instead of an \protect\endchorus.}% n \protect\endverse\space instead of an \protect\endchorus.}%
} }
\newcommand\SB@errevo{% \newcommand\SB@errevo{%
\SB@Error{Encountered \protect\endverse\space without firs% \SB@Error{Encountered \protect\endverse\space without firs%
t seeing a \protect\beginverse}{Song \songnumstyle{songnum} m% t seeing a \protect\beginverse}{Song \thesongnum\space m%
ight have an \protect\endverse\space with no matchin% ight have an \protect\endverse\space with no matchin%
g \protect\beginverse.}% g \protect\beginverse.}%
} }
@ -3117,31 +3226,31 @@
\newcommand\SB@errbcv{% \newcommand\SB@errbcv{%
\SB@Error{Encountered \protect\beginchorus\space without see% \SB@Error{Encountered \protect\beginchorus\space without see%
ing an \protect\endverse\space for the preceding verse}{Son% ing an \protect\endverse\space for the preceding verse}{Son%
g \songnumstyle{songnum} might hav% g \thesongnum\space might hav%
e a \protect\beginverse\space with no match% e a \protect\beginverse\space with no match%
ing \protect\endverse.}% ing \protect\endverse.}%
} }
\newcommand\SB@errbcc{% \newcommand\SB@errbcc{%
\SB@Error{Encountered \protect\beginchorus\space without see% \SB@Error{Encountered \protect\beginchorus\space without see%
ing an \protect\endchorus\space for the preceding chorus}% ing an \protect\endchorus\space for the preceding chorus}%
{Song \songnumstyle{songnum} might have a \protect\beginchorus% {Song \thesongnum\space might have a \protect\beginchorus%
\space with no matching \protect\endchorus.}% \space with no matching \protect\endchorus.}%
} }
\newcommand\SB@errbct{% \newcommand\SB@errbct{%
\SB@Error{Encountered \protect\beginchorus\space without see% \SB@Error{Encountered \protect\beginchorus\space without see%
ing a \protect\beginsong\space line first}{After son% ing a \protect\beginsong\space line first}{After son%
g \songnumstyle{songnum} there is a \protect\beginchorus\space% g \thesongnum\space there is a \protect\beginchorus\space%
line outside of any song.}% line outside of any song.}%
} }
\newcommand\SB@errecv{% \newcommand\SB@errecv{%
\SB@Error{Encountered an \protect\endchorus\space while proc% \SB@Error{Encountered an \protect\endchorus\space while proc%
essing a verse}{Song \songnumstyle{songnum} might hav% essing a verse}{Song \thesongnum\space might hav%
e a \protect\beginverse\space concluded by \protect\endchorus% e a \protect\beginverse\space concluded by \protect\endchorus%
\space instead of \protect\endverse.}% \space instead of \protect\endverse.}%
} }
\newcommand\SB@erreco{% \newcommand\SB@erreco{%
\SB@Error{Encountered \protect\endchorus\space without firs% \SB@Error{Encountered \protect\endchorus\space without firs%
t seeing a \protect\beginchorus}{Song \songnumstyle{songnum} m% t seeing a \protect\beginchorus}{Song \thesongnum\space m%
ight have an \protect\endchorus\space with no match% ight have an \protect\endchorus\space with no match%
ing \protect\beginchorus.}% ing \protect\beginchorus.}%
} }
@ -3153,7 +3262,7 @@
} }
\newcommand\SB@errbro{% \newcommand\SB@errbro{%
\SB@Error{Encountered a \protect\beginscripture\space insid% \SB@Error{Encountered a \protect\beginscripture\space insid%
e a song}{Song \songnumstyle{songnum} might be missing a% e a song}{Song \thesongnum\space might be missing a%
n \protect\endsong\space line.}% n \protect\endsong\space line.}%
} }
\newcommand\SB@errbrr{% \newcommand\SB@errbrr{%
@ -3164,7 +3273,7 @@
} }
\newcommand\SB@errero{% \newcommand\SB@errero{%
\SB@Error{Encountered an \protect\endscripture\space whil% \SB@Error{Encountered an \protect\endscripture\space whil%
e processing a song}{Song \songnumstyle{songnum} ends wit% e processing a song}{Song \thesongnum\space ends wit%
h \protect\endscripture\space when it should end wit% h \protect\endscripture\space when it should end wit%
h \protect\endsong.}% h \protect\endsong.}%
} }
@ -3181,7 +3290,7 @@
d \protect\endscripture\space lines.}% d \protect\endscripture\space lines.}%
} }
\newcommand\SB@errchord{% \newcommand\SB@errchord{%
\SB@Error{Song \songnumstyle{songnum} seems to have chord% \SB@Error{Song \thesongnum\space seems to have chord%
s that appear outside of any verse or chorus}{All chords a% s that appear outside of any verse or chorus}{All chords a%
nd lyrics should appear between \protect\beginverse\space% nd lyrics should appear between \protect\beginverse\space%
and \protect\endverse, or between \protect\beginchorus\space% and \protect\endverse, or between \protect\beginchorus\space%
@ -3189,7 +3298,7 @@
} }
\newcommand\SB@errreplay{% \newcommand\SB@errreplay{%
\SB@Error{Replayed chord has no matching chord}{Son% \SB@Error{Replayed chord has no matching chord}{Son%
g \songnumstyle{songnum} uses \protect^ more times than the% g \thesongnum\space uses \protect^ more times than the%
re are chords in the previously memorized verse.}% re are chords in the previously memorized verse.}%
} }
\newcommand\SB@errreg[1]{% \newcommand\SB@errreg[1]{%
@ -3202,7 +3311,7 @@
me chord-replay register twice.}% me chord-replay register twice.}%
} }
\newcommand\SB@errmbar{% \newcommand\SB@errmbar{%
\SB@Error{Song \songnumstyle{songnum} seems to have measur% \SB@Error{Song \thesongnum\space seems to have measur%
e bars that appear outside of any verse or chorus}{All mea% e bars that appear outside of any verse or chorus}{All mea%
sure bars (produced with \protect\mbar\space or |) must ap% sure bars (produced with \protect\mbar\space or |) must ap%
pear between \protect\beginverse\space an% pear between \protect\beginverse\space an%
@ -3280,7 +3389,7 @@
\catcode`^9 % \catcode`^9 %
\def\[##1]{}% \def\[##1]{}%
\resettitles% \resettitles%
\immediate\write\SB@txtout{\songnumstyle{songnum}. \songtitle}% \immediate\write\SB@txtout{\thesongnum. \songtitle}%
\nexttitle% \nexttitle%
\foreachtitle{\immediate\write\SB@txtout{(\songtitle)}}% \foreachtitle{\immediate\write\SB@txtout{(\songtitle)}}%
\ifx\songauthors\@empty\else% \ifx\songauthors\@empty\else%

Loading…
Cancel
Save