Irish Songbook
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1393 lines
42 KiB

%%
%% This is file `songbook.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% songbook.dtx (with options: `package')
%%
%% This is a generated file.
%%
%% Copyright 1992--2002 Christopher Rath <christopher@rath.ca>
%%
%% This package is free software; you can redistribute it and/or
%% modify it under the terms of the GNU Lesser General Public
%% License as published by the Free Software Foundation; either
%% version 2.1 of the License, or (at your option) any later
%% version.
%%
%% This package is distributed in the hope that it will be
%% useful, but WITHOUT ANY WARRANTY; without even the implied
%% warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
%% PURPOSE. See the GNU Lesser General Public License for more
%% details.
%%
%% The list of all files belonging to the LaTeX Songbook Style is
%% given in the file `relnotes.txt'.
%%
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%% Digits \0\1\2\3\4\5\6\7\8\9
%% Exclamation \! Double quote \" Hash (number) \#
%% Dollar \$ Percent \% Ampersand \&
%% Acute accent \' Left paren \( Right paren \)
%% Asterisk \* Plus \+ Comma \,
%% Minus \- Point \. Solidus \/
%% Colon \: Semicolon \; Less than \<
%% Equals \= Greater than \> Question mark \?
%% Commercial at \@ Left bracket \[ Backslash \\
%% Right bracket \] Circumflex \^ Underscore \_
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% %%
%% I D E N T I F I C A T I O N P A R T %%
%% %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% rcsid = @(#)$Id: songbook.dtx,v 1.13 2007/02/04 04:12:40 rathc Exp $
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{songbook}[2007/02/03 v4.3 All purpose Songbook style]
\typeout{Document Subclass: songbook 2007/02/03 v4.3 All purpose Songbook style}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% %%
%% I N I T I A L C O D E P A R T %%
%% %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%========================================================
%% E A R L Y P A C K A G E D E P E N D E N C I E S %
%%========================================================
\RequirePackage{calc}
%%========================================================
%% I F C O N S T R U C T S %
%%========================================================
\newif\ifChordBk \ChordBkfalse
\newif\ifOverhead \Overheadfalse
\newif\ifWordBk \WordBkfalse
\newif\ifWordsOnly \WordsOnlyfalse
\newif\ifNotWordsOnly \NotWordsOnlyfalse
\newif\ifSBinSongEnv \SBinSongEnvfalse
\newif\ifCompactSongMode\CompactSongModefalse
\newif\ifExcludeSong \ExcludeSongfalse
\newif\ifPrintAllSongs \PrintAllSongsfalse
\newif\ifSamepageMode \SamepageModefalse
\newif\ifSongEject \SongEjecttrue
\newif\ifSBpaperAfour \SBpaperAfourfalse
\newif\ifSBpaperAfive \SBpaperAfivefalse
\newif\ifSBpaperBfive \SBpaperBfivefalse
\newif\ifSBpaperLtr \SBpaperLtrfalse
\newif\ifSBpaperLgl \SBpaperLglfalse
\newif\ifSBpaperExc \SBpaperExcfalse
%%========================================================
%% F O N T S %
%%========================================================
\newcommand{\ChBassFont}{\normalsize\bf\sf} % = cmss12 at 12.0pt
\newcommand{\ChFont}{\large\fontfamily{\sfdefault}%
\fontseries{sbc}\fontshape{n}\selectfont} %=cmssbc12 at 14.4pt
\newcommand{\ChBkFont}{\ChFont\fontseries{m} %
\selectfont} % =cmssm12 at 14.4pt
\newcommand{\CpyRtFont}{\footnotesize} % = cmr10 at 10pt
\newcommand{\CpyRtInfoFont}{\tiny} % = cmss8 at 8pt
\newcommand{\STitleFont}{\large\bf\sf} % = cmss12 at 14.4pt
\newcommand{\STitleKeyFont}{\large} % = cmr12 at 14.4pt
\font\STNFont=cmtt12 at 20pt
\newcommand{\STitleNumberFont}{\STNFont} % = cmtt12 at 20pt
\newcommand{\ScriptRefFont}{\footnotesize} % = cmr10 at 10pt
\newcommand{\WandMFont}{\footnotesize} % = cmr10 at 10pt
\newcommand{\SBBracketTagFont}{\small\bf\sf} % = cmss10 at 10.0pt
\newcommand{\SBBridgeTagFont}{\SBEndTagFont} % = cmss10 at 10.9pt
\newcommand{\SBChorusTagFont}{\small\bf\sf} % = cmss10 at 10.9pt
\newcommand{\SBEndTagFont}{\small\bf\sf} % = cmss10 at 10.9pt
\newcommand{\SBIntroTagFont}{\SBEndTagFont} % = cmss10 at 10.9pt
\font\SBOBFont=cmss17 at 30pt
\newcommand{\SBOccursBrktFont}{\SBOBFont} % = cmss17 at 30pt
\newcommand{\SBOccursTagFont}{\small\bf\sf} % = cmss10 at 10.0pt
\newcommand{\SBVerseNumberFont}{\small\bf\sf} % = cmss10 at 10.9pt
\newcommand{\SBSectionNumberFont}{\small\bf\sf} % = cmss10 at 10.9pt
\newcommand{\SBMargNoteFont}{\scriptsize} % = cmti8 at 8pt
\newcommand{\SBRefFont}{\SBMargNoteFont} % = cmti8 at 8pt
\newcommand{\SBDefaultFont}{\fontfamily{\rmdefault}%
\large} % = cmr12 at 14.4pt
\newcommand{\SBLyricNoteFont}{\footnotesize\sf} % = cmss10 at 10pt
\newcommand{\SBOHContTagFont}{\small\bf\sf\itshape} % = cmss10 at 10.9pt
%%========================================================
%% C O N F I G U R A B L E D I M E N S I O N S %
%%========================================================
\newcommand{\HangAmt} {1.5em}
\newcommand{\LeftMarginSBBracket}{2.85em}
\newcommand{\LeftMarginSBChorus} {4em}
\newcommand{\LeftMarginSBSection}{\LeftMarginSBChorus}
\newcommand{\LeftMarginSBVerse} {\LeftMarginSBChorus}
\newcommand{\SBChordRaise} {2.25ex}
\newcommand{\SBOldChordRaise} {2.90ex}
\newcommand{\SBRuleRaiseAmount} {0.57ex}
\newcommand{\SpaceAboveSTitle} {0.5in}
\newcommand{\SpaceAfterTitleBlk} {-1.75ex}
\newcommand{\SpaceAfterChorus} {\vspace{0ex plus0ex minus3ex}}
\newcommand{\SpaceAfterOpGroup} {\vspace{0ex plus0ex minus3ex}}
\newcommand{\SpaceAfterSBBracket}{\vspace{2ex plus1ex minus1ex}}
\newcommand{\SpaceAfterSection} {\vspace{0ex plus0ex minus3ex}}
\newcommand{\SpaceAfterSong} {\vspace{0ex plus10ex minus3ex}}
\newcommand{\SpaceAfterVerse} {\vspace{0ex plus0ex minus3ex}}
\newcommand{\SpaceBeforeSBBracket}{\vspace{1ex plus1ex minus1ex}}
\newlength{\chSpaceTolerance} \setlength{\chSpaceTolerance}{1.5mm}
\newlength{\chMiniSpace} \setlength{\chMiniSpace} {0.3mm}
\newlength{\sbBaselineSkipAmt} \setlength{\sbBaselineSkipAmt}{0pt}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% %%
%% D E C L A R A T I O N O F O P T I O N S %%
%% %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%=======================================================%
%% P A P E R S I Z E O P T I O N S %
%%=======================================================%
\DeclareOption{a4paper}{% Paper size: 210mm x 297mm
\SBpaperAfourtrue
\SBpaperAfivefalse
\SBpaperBfivefalse
\SBpaperLtrfalse
\SBpaperLglfalse
\SBpaperExcfalse
}
\DeclareOption{a5paper}{% Paper size: 148mm x 210mm
\SBpaperAfourfalse
\SBpaperAfivetrue
\SBpaperBfivefalse
\SBpaperLtrfalse
\SBpaperLglfalse
\SBpaperExcfalse
}
\DeclareOption{b5paper}{% Paper size: 176mm x 250mm
\SBpaperAfourfalse
\SBpaperAfivefalse
\SBpaperBfivetrue
\SBpaperLtrfalse
\SBpaperLglfalse
\SBpaperExcfalse
}
\DeclareOption{letterpaper}{% Paper size: 8.5in x 11in
\SBpaperAfourfalse
\SBpaperAfivefalse
\SBpaperBfivefalse
\SBpaperLtrtrue
\SBpaperLglfalse
\SBpaperExcfalse
}
\DeclareOption{legalpaper}{% Paper size: 8.5in x 14in
\SBpaperAfourfalse
\SBpaperAfivefalse
\SBpaperBfivefalse
\SBpaperLtrfalse
\SBpaperLgltrue
\SBpaperExcfalse
}
\DeclareOption{executivepaper}{% Paper size: 7.25in x 10.5in
\SBpaperAfourfalse
\SBpaperAfivefalse
\SBpaperBfivefalse
\SBpaperLtrfalse
\SBpaperLglfalse
\SBpaperExctrue
}
%%=======================================================%
%% C O M P A C T S O N G O P T I O N %
%%=======================================================%
\DeclareOption{compactsong}{%
%%%
% Set flag to indicate the user wants compact song mode.
\CompactSongModetrue
}
%%=======================================================%
%% P R I N T A L L S O N G S O P T I O N %
%%=======================================================%
\DeclareOption{printallsongs}{%
%%%
% Set flag to indicate the user wants to print all songs.
\PrintAllSongstrue
}
%%=======================================================%
%% S O N G B O O K C O R E O P T I O N S %
%%=======================================================%
\DeclareOption{chordbk}{%
\ChordBktrue
\WordBkfalse
\Overheadfalse
\WordsOnlyfalse
\NotWordsOnlytrue
\SongEjecttrue
\voffset=-1.00in
\hoffset=-1.00in
\ifSBpaperAfour
\topmargin=0.5in
\headheight=0.21in
\headsep=0.2in
\textheight=10.0in
\footskip=0.19in
%
\oddsidemargin=0.618in
\evensidemargin=1.4in
\textwidth=6.25in
\marginparsep=0.2in
\marginparwidth=0.8in
\else\ifSBpaperAfive
\topmargin=6.0mm
\headheight=5.334mm
\headsep=2.666mm
\textheight=185.17mm
\footskip=4.826mm
%
\oddsidemargin=12.0mm
\evensidemargin=30.0mm
\textwidth=106.0mm
\marginparsep=3.68mm
\marginparwidth=20.32mm
\renewcommand{\ChBassFont}{\small\bf\sf} % = cmss12 at 11.0pt
\renewcommand{\ChFont}{\normalsize\fontfamily{\sfdefault}%
\fontseries{sbc}\fontshape{n}\selectfont} %=cmssbc12 at 12.0pt
\renewcommand{\ChBkFont}{\ChFont\fontseries{m} %
\selectfont} % =cmssm12 at 12.0pt
\renewcommand{\SBDefaultFont}{\normalsize} % = cmr12 at 12.0pt
\renewcommand{\SBOccursBrktFont}{\large\bf\sf} % = cmss10 at 10.9pt
\else\ifSBpaperBfive
\topmargin=10.0mm
\headheight=5.334mm
\headsep=5.0mm
\textheight=214.84mm
\footskip=4.826mm
%
\oddsidemargin=20.0mm
\evensidemargin=34.0 mm
\textwidth=122.0mm
\marginparsep=3.68mm
\marginparwidth=20.32mm
\renewcommand{\ChBassFont}{\small\bf\sf} % = cmss12 at 11.0pt
\renewcommand{\ChFont}{\normalsize\fontfamily{\sfdefault}%
\fontseries{sbc}\fontshape{n}\selectfont} %=cmssbc12 at 12.0pt
\renewcommand{\ChBkFont}{\ChFont\fontseries{m} %
\selectfont} % =cmssm12 at 12.0pt
\renewcommand{\SBDefaultFont}{\normalsize} % = cmr12 at 12.0pt
\renewcommand{\SBOccursBrktFont}{\large\bf\sf} % = cmss10 at 10.9pt
\else\ifSBpaperLtr
\topmargin=0.5in
\headheight=0.21in
\headsep=0.20in
\textheight=9.4in
\footskip=0.19in
%
\oddsidemargin=0.75in
\evensidemargin=1.5in
\textwidth=6.25in
\marginparsep=0.2in
\marginparwidth=0.8in
\else\ifSBpaperLgl
\topmargin=0.5in
\headheight=0.21in
\headsep=0.20in
\textheight=12.4in
\footskip=0.19in
%
\oddsidemargin=0.75in
\evensidemargin=1.5in
\textwidth=6.25in
\marginparsep=0.2in
\marginparwidth=0.8in
\else\ifSBpaperExc
\topmargin=0.25in
\headheight=0.21in
\headsep=0.165in
\textheight=9.435in
\footskip=0.19in
%
\oddsidemargin=0.5in
\evensidemargin=1.25in
\textwidth=5.5in
\marginparsep=0.2in
\marginparwidth=0.8in
\fi\fi\fi\fi\fi\fi
\raggedbottom
\ifCompactSongMode
\renewcommand{\ChBassFont}{\small\bf\sf} % = cmss12 at 11.0pt
\renewcommand{\ChFont}{\normalsize\fontfamily{\sfdefault}%
\fontseries{sbc}\fontshape{n}\selectfont} %=cmssbc12 at 12.0pt
\renewcommand{\ChBkFont}{\ChFont\fontseries{m} %
\selectfont} % =cmssm12 at 12.0pt
\renewcommand{\SBDefaultFont}{\normalsize} % = cmr12 at 12.0pt
\renewcommand{\SBOccursBrktFont}{\large\bf\sf} % = cmss10 at 10.9pt
\setlength{\columnsep}{0.25in}
\addtolength{\textwidth} {\marginparsep + \marginparwidth}
\addtolength{\evensidemargin}{-\marginparsep - \marginparwidth}
\setlength {\marginparsep} {0in}
\setlength {\marginparwidth}{0in}
\setlength{\chSpaceTolerance}{1.0mm}
\renewcommand{\HangAmt} {1.5em}
\renewcommand{\LeftMarginSBChorus} {2em}
\renewcommand{\LeftMarginSBSection}{\LeftMarginSBChorus}
\renewcommand{\LeftMarginSBVerse} {\LeftMarginSBChorus}
\fi
}
\DeclareOption{wordbk}{%
\ChordBkfalse
\WordBktrue
\Overheadfalse
\WordsOnlytrue
\NotWordsOnlyfalse
\SongEjectfalse
\renewcommand{\SBDefaultFont}{\normalsize}
\font\mySTNFont=cmtt12 at 17pt
\renewcommand{\STitleNumberFont}{\mySTNFont}
\renewcommand{\CpyRtFont}{\scriptsize}
\renewcommand{\WandMFont}{\scriptsize}
\renewcommand{\ScriptRefFont}{\scriptsize}
\renewcommand{\SBOccursBrktFont}{\large\bf\sf}
\renewcommand{\SpaceAboveSTitle} {0.25in}
\renewcommand{\LeftMarginSBChorus} {1.5em}
\renewcommand{\LeftMarginSBSection}{\LeftMarginSBChorus}
\renewcommand{\LeftMarginSBVerse} {\LeftMarginSBChorus}
\voffset=-1.00in
\hoffset=-1.00in
\ifSBpaperAfour
\topmargin=0.5in
\headheight=0.21in
\headsep=0.2in
\textheight=10.0in
\footskip=0.19in
%
\oddsidemargin=0.618in
\evensidemargin=0.4in
\textwidth=7.25in
\marginparsep=0.0in
\marginparwidth=0.0in
\else\ifSBpaperAfive
\topmargin=6.0mm
\headheight=5.334mm
\headsep=2.666mm
\textheight=185.17mm
\footskip=4.826mm
%
\oddsidemargin=12.0mm
\evensidemargin=6.0mm
\textwidth=130.0mm
\marginparsep=0.0mm
\marginparwidth=0.0mm
\else\ifSBpaperBfive
\topmargin=10.0mm
\headheight=5.334mm
\headsep=5.0mm
\textheight=214.84mm
\footskip=4.826mm
%
\oddsidemargin=20.0mm
\evensidemargin=10.0mm
\textwidth=146.0mm
\marginparsep=0.0mm
\marginparwidth=0.0mm
\else\ifSBpaperLtr
\topmargin=0.5in
\headheight=0.21in
\headsep=0.10in
\textheight=9.4in
\footskip=0.29in
%
\oddsidemargin=0.75in
\evensidemargin=0.5in
\textwidth=7.25in
\marginparsep=0.0in
\marginparwidth=0.0in
\else\ifSBpaperLgl
\topmargin=0.5in
\headheight=0.21in
\headsep=0.20in
\textheight=12.4in
\footskip=0.19in
%
\oddsidemargin=0.75in
\evensidemargin=0.5in
\textwidth=7.25in
\marginparsep=0.0in
\marginparwidth=0.0in
\else\ifSBpaperExc
\topmargin=0.25in
\headheight=0.21in
\headsep=0.165in
\textheight=9.435in
\footskip=0.19in
%
\oddsidemargin=0.5in
\evensidemargin=0.25in
\textwidth=6.5in
\marginparsep=0.0in
\marginparwidth=0.0in
\fi\fi\fi\fi\fi\fi
\raggedright
\ifCompactSongMode
\typeout{``compactsong'' mode not implemented for Wordbk mode.}
\CompactSongModefalse
\fi
}
\DeclareOption{overhead}{%
\ChordBkfalse
\WordBkfalse
\Overheadtrue
\WordsOnlytrue
\NotWordsOnlyfalse
\SongEjecttrue
\def\@mss{cmssdc10}
\renewcommand{\SBDefaultFont}{\LARGE\bf\sf}
\renewcommand{\STitleNumberFont}{\Large\sf}
\renewcommand{\STitleFont}{\LARGE\sf}
\renewcommand{\CpyRtFont}{\normalsize\rm}
\renewcommand{\CpyRtInfoFont}{\normalsize\rm}
\renewcommand{\WandMFont}{\normalsize\rm}
\renewcommand{\ScriptRefFont}{\normalsize\rm}
\renewcommand{\SBLyricNoteFont}{\normalsize\rm}
\renewcommand{\SBChorusTagFont}{\Large\sf}
\renewcommand{\SBVerseNumberFont}{\Large\sf}
\renewcommand{\SBSectionNumberFont}{\Large\sf}
\renewcommand{\SBOccursTagFont}{\Large\sf}
\renewcommand{\SBOccursBrktFont}{\huge\sf}
\renewcommand{\SBBracketTagFont}{\Large\sf}
\renewcommand{\SBOHContTagFont}{\Large\sf\itshape}
\renewcommand{\SpaceAboveSTitle} {0.25in}
\renewcommand{\LeftMarginSBBracket}{2.25em}
\renewcommand{\LeftMarginSBChorus} {1.5em}
\renewcommand{\LeftMarginSBSection}{\LeftMarginSBChorus}
\renewcommand{\LeftMarginSBVerse} {\LeftMarginSBChorus}
\renewcommand{\baselinestretch}{.9}
\voffset=-1.00in
\hoffset=-1.00in
\ifSBpaperAfour
\topmargin=0.25in
\headheight=0.25in
\headsep=0.0in
\textheight=10.3in
\footskip=0.2in
%
\oddsidemargin=1.134in
\evensidemargin=1.134in
\textwidth=6.0in
\marginparsep=0.0in
\marginparwidth=0.0in
\else\ifSBpaperAfive
\topmargin=0.0mm
\headheight=5.334mm
\headsep=0.0mm
\textheight=193.666mm
\footskip=4.826mm
%
\oddsidemargin=9.0mm
\evensidemargin=9.0mm
\textwidth=130.0mm
\marginparsep=0.0mm
\marginparwidth=0.0mm
\else\ifSBpaperBfive
\topmargin=0.666mm
\headheight=5.334mm
\headsep=0.0mm
\textheight=229.0mm
\footskip=4.826mm
%
\oddsidemargin=15.0mm
\evensidemargin=15.0mm
\textwidth=146.0mm
\marginparsep=0.0mm
\marginparwidth=0.0mm
\else\ifSBpaperLtr
\topmargin=0.25in
\headheight=0.25in
\headsep=0.0in
\textheight=9.75in
\footskip=0.2in
%
\oddsidemargin=1.25in
\evensidemargin=1.25in
\textwidth=6.0in
\marginparsep=0.0in
\marginparwidth=0.0in
\else\ifSBpaperLgl
\topmargin=0.25in
\headheight=0.25in
\headsep=0.0in
\textheight=12.8in
\footskip=0.2in
%
\oddsidemargin=1.25in
\evensidemargin=1.25in
\textwidth=6.0in
\marginparsep=0.0in
\marginparwidth=0.0in
\else\ifSBpaperExc
\topmargin=0.25in
\headheight=0.21in
\headsep=0.0in
\textheight=9.6in
\footskip=0.19in
%
\oddsidemargin=0.625in
\evensidemargin=0.625in
\textwidth=6.0in
\marginparsep=0.0in
\marginparwidth=0.0in
\fi\fi\fi\fi\fi\fi
\raggedright
\raggedbottom
\ifCompactSongMode
\typeout{``compactsong'' mode not implemented for Overhead mode.}
\CompactSongModefalse
\fi
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% %%
%% E X E C U T I O N O F O P T I O N S %%
%% %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ExecuteOptions{letterpaper}
\ProcessOptions
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% %%
%% P A C K A G E L O A D I N G P A R T %%
%% %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\RequirePackage{conditionals}
\RequirePackage{ifthen}
\ifCompactSongMode
\RequirePackage{multicol}[1999/05/25]
\fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% %%
%% M A I N C O D E P A R T %%
%% %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\AtBeginDocument{%
\setbox0=\hbox{}
%
\ifChordBk\setbox0=\hbox{1}\fi
\ifWordBk\setbox0=\hbox{1}\fi
\ifOverhead\setbox0=\hbox{1}\fi
%
\ifthenelse{\wd0 = 0}
{\errmessage{No songbook option (i.e., type) specified.
Specify a songbook mode in your usepackage
statement; one of: [chordbk], [wordbk], or [overhead]}}
{\relax}
\SBDefaultFont
}
%%========================================================
%% C O N S T A N T S & V A R I A B L E S %
%%========================================================
\newcounter{SBSongCnt}
\newcounter{SBSectionCnt}
\newcounter{SBVerseCnt}
\newcommand{\OHContPgFtrTag} {continued on next page\ldots}
\newcommand{\OHContPgHdrTag} {\theSBSongCnt\ --- \theSongTitle, continued\ldots}
\newcommand{\SBBaseLang} {English}
\newcommand{\SBBridgeTag} {Bridge:}
\newcommand{\SBChorusTag} {Ch:}
\newcommand{\SBContinueTag} {cont\ldots}
\newcommand{\SBEndTag} {End:}
\newcommand{\SBIntersyllableRule}{\hrulefill}
\newcommand{\SBIntroTag} {Intro:}
\newcommand{\SBPubDom} {Public Domain}
\newcommand{\SBUnknownTag} {Unknown}
\newcommand{\SBWAndMTag} {W\&M:}
\newcommand{\Songbook} {\textrm{Song$\flat$ook}}
\newcommand{\theSongComposer}{the Composer}
\newcommand{\theSongComposerU}{the ComposerU}
\newcommand{\theSongCopyRt}{the Copyright}
\newcommand{\theSongKey}{the Key}
\newcommand{\theSongLicense}{the License}
\newcommand{\theSongScriptRef}{the Scripture}
\newcommand{\theSongTitle}{the Title}
\newcommand{\theXlatnBy}{the Translator}
\newcommand{\theXlatnLang}{the Language}
\newcommand{\theXlatnPerm}{the Permission}
\newcommand{\theXlatnTitle}{the Translation Title}
%%=======================================================%
%% S P E C I A L C H A R A C T E R S %
%%=======================================================%
\newcommand{\SBem}{\ifWordsOnly\relax\else---\fi}
\newcommand{\SBen}{\ifWordsOnly\relax\else--\fi}
%%%
\newcommand{\SBContinueMark}{%
\setbox0=\hbox{\rightmark}
\ifthenelse{\lengthtest{\wd0 = 0pt}}
{\relax}%
{\SBContinueTag}%
}
\newcommand{\OHContPgFtr}{%
\ifOverhead
\vskip .25in
\centerline{\SBOHContTagFont\OHContPgFtrTag}
\else%
\relax%
\fi}
\newcommand{\OHContPgHdr}{%
\ifOverhead
\centerline{\SBOHContTagFont\OHContPgHdrTag}
\vskip .25in
\else%
\relax%
\fi}
%%=======================================================%
%% T A B L E O F C O N T E N T S %
%% %
%% A N D I N D I C E S %
%%=======================================================%
\def\makeArtistIndex{\if@filesw \newwrite\@artistIndexfile
\immediate\openout\@artistIndexfile=\jobname.aIdx
\def\artistIndex{\@bsphack\begingroup
\def\protect####1{\string####1\space}\@sanitize
\@wrArtistIndex}\typeout
{Writing index file \jobname.aIdx }\fi}
\def\@wrArtistIndex#1#2{\let\thepage\relax
\xdef\@gtempa{\write\@artistIndexfile{\string
\indexentry{#1}{#2}}}\endgroup\@gtempa
\if@nobreak \ifvmode\nobreak\fi\fi\@esphack}
\def\artistIndex{\@bsphack\begingroup \@sanitize\@artistIndex}
\def\@artistIndex#1#2{\endgroup\@esphack}
\def\makeKeyIndex{\if@filesw \newwrite\@keyIndexfile
\immediate\openout\@keyIndexfile=\jobname.kIdx
\def\keyIndex{\@bsphack\begingroup
\def\protect####1{\string####1\space}\@sanitize
\@wrKeyIndex}\typeout
{Writing index file \jobname.kIdx }\fi}
\def\@wrKeyIndex#1#2{\let\thepage\relax
\xdef\@gtempa{\write\@keyIndexfile{\string
\indexentry{#1}{#2}}}\endgroup\@gtempa
\if@nobreak \ifvmode\nobreak\fi\fi\@esphack}
\def\keyIndex{\@bsphack\begingroup \@sanitize\@keyIndex}
\def\@keyIndex#1#2{\endgroup\@esphack}
\def\makeTitleIndex{\if@filesw \newwrite\@titleIndexfile
\immediate\openout\@titleIndexfile=\jobname.tIdx
\def\titleIndex{\@bsphack\begingroup
\def\protect####1{\string####1\space}\@sanitize
\@wrTitleIndex}\typeout
{Writing index file \jobname.tIdx }\fi}
\def\@wrTitleIndex#1#2{\let\thepage\relax
\xdef\@gtempa{\write\@titleIndexfile{\string
\indexentry{#1}{#2}}}\endgroup\@gtempa
\if@nobreak \ifvmode\nobreak\fi\fi\@esphack}
\def\titleIndex{\@bsphack\begingroup \@sanitize\@titleIndex}
\def\@titleIndex#1#2{\endgroup\@esphack}
\def\makeTitleContents{\if@filesw \newwrite\@titleContentsfile
\immediate\openout\@titleContentsfile=\jobname.toc
\def\titleContents{\@bsphack\begingroup
\def\protect####1{\string####1\space}\@sanitize
\@wrTitleContents}\typeout
{Writing table of contents file \jobname.toc }\fi}
\def\@wrTitleContents#1#2{\let\thepage\relax
\xdef\@gtempa{\write\@titleContentsfile{\string
\item\ \theSBSongCnt. #1\protect\hbox{, \thepage}}}\endgroup\@gtempa
\if@nobreak \ifvmode\nobreak\fi\fi\@esphack}
\def\titleContents{\@bsphack\begingroup \@sanitize\@titleContents}
\def\@titleContents#1#2{\endgroup\@esphack}
\newcommand{\SBtocSEntry}[3]{#1. \textit{#2}\hbox{, #3}}
\def\makeTitleContentsSkip{\if@filesw \newwrite\@titleContentsSkipfile
\immediate\openout\@titleContentsSkipfile=\jobname.tocS
\def\titleContentsSkip{\@bsphack\begingroup
\def\protect####1{\string####1\space}\@sanitize
\@wrTitleContentsSkip}\typeout
{Writing table of contents (skipped) file \jobname.tocS }\fi}
\def\@wrTitleContentsSkip#1#2{\let\thepage\relax
\xdef\@gtempa{\write\@titleContentsSkipfile{\string
\item\ \protect\SBtocSEntry{\theSBSongCnt}{#1}{\thepage}}}\endgroup\@gtempa
\if@nobreak \ifvmode\nobreak\fi\fi\@esphack}
\def\titleContentsSkip{\@bsphack\begingroup \@sanitize\@titleContentsSkip}
\def\@titleContentsSkip#1#2{\endgroup\@esphack}
\newcommand{\FLineIdx}[1]{\titleIndex{#1@{\it #1\/}}{\theSBSongCnt}}
%%=======================================================%
%% S O M E O T H E R H O O K S %
%%=======================================================%
\newcommand{\SBChorusMarkright}[1]{\markright{#1}}
\newcommand{\SBVerseMarkright}[1]{\markright{#1}}
\newcommand{\SBSectionMarkright}[1]{\markright{\alph{#1}}}
\newcommand{\SongMarkboth}[2]{\markboth{#1}{#2}}
\newcommand{\STitleMarkboth}[2]{\markboth{#1}{#2}}
%%=======================================================%
%% M I S C E L L A N E O U S M A C R O S %
%%=======================================================%
\newcommand{\CpyRt}[3][Y]{%
\if#1Y\begin{center}\fi
\if\blank{#2}%
\if\blank{#3}%
{\CpyRtFont\copyright \SBUnknownTag{} \CpyRtInfoFont}%
\else
{\CpyRtFont\copyright \SBUnknownTag{} \CpyRtInfoFont #3}%
\fi%
\else%
\ifthenelse{\equal{#2}{\SBPubDom}}
{%then
{\CpyRtFont #2 \CpyRtInfoFont #3}%
}{%else
{\CpyRtFont\copyright #2 \CpyRtInfoFont #3}%
}%fi
\fi%
\if#1Y\end{center}\fi
}
\newcommand{\ScriptRef}[2][Y]{%
\if#1Y\begin{center}\fi
{\ScriptRefFont #2}%
\if#1Y\end{center}\fi
}
\newcommand{\WAndM}[2][Y]{%
\if#1Y\begin{center}\fi
\if\blank{#2}%
{\WandMFont\SBWAndMTag ~\SBUnknownTag}%
\else
{\WandMFont\SBWAndMTag ~#2}%
\fi
\if#1Y\end{center}\fi
}
\newcommand{\sbSetsbBaselineSkipAmt}{
\ifChordBk%
\setbox0=\hbox{\strut\raise\SBChordRaise\hbox{\ChFont\sbChord{}A\relax\strut}A}%
\setlength{\sbBaselineSkipAmt}{\ht0 + \dp0}%
\else%
\setlength{\sbBaselineSkipAmt}{\baselineskip}%
\fi%
}
%%=======================================================%
%% P R I M A R Y S O N G B O O K M A C R O S %
%%=======================================================%
%%%
\newcommand{\STitle}[3][Y]{%
\setcounter{SBVerseCnt}{0}%
\setcounter{SBSectionCnt}{0}%
\ifExcludeSong\relax%
\else\keyIndex{{\protect\sbChord#3\protect\relax} -- #2}{\theSBSongCnt}\fi%
\vspace{\SpaceAboveSTitle}%
\if#1Y\begin{center}\fi
{\STitleNumberFont\theSBSongCnt}{\STitleFont\ --- #2}%
\ifWordsOnly\relax\else{\STitleKeyFont\ [{\sbChord#3\relax}]}\fi%
\if#1Y\end{center}\fi
\STitleMarkboth{#2}{\relax}%
}
\newenvironment{song}[7][Y]{ % Comment markers to negate
\if#1Y\ExcludeSongfalse\else\ExcludeSongtrue\fi% the newline.
\ifPrintAllSongs\ExcludeSongfalse\fi %
\SongMarkboth{\relax}{\relax} %
\SBinSongEnvtrue %
\renewcommand{\SBinSongEnv}{\True} %
\ifWordsOnly %
\setlength{\parindent}{0pt} %
\fi %
\renewcommand{\theSongComposer}{#5} %
\if\blank{#5} %
\renewcommand{\theSongComposerU}{\SBUnknownTag}%
\else %
\renewcommand{\theSongComposerU}{#5} %
\fi %
\renewcommand{\theSongCopyRt}{#4} %
\renewcommand{\theSongKey}{#3} %
\renewcommand{\theSongLicense}{#7} %
\renewcommand{\theSongScriptRef}{#6} %
\renewcommand{\theSongTitle}{#2} %
\renewcommand{\theXlatnBy}{} %
\renewcommand{\theXlatnLang}{\SBBaseLang} %
\renewcommand{\theXlatnPerm}{} %
\renewcommand{\theXlatnTitle}{} %
%
\addtocounter{SBSongCnt}{1} %
%
\ifExcludeSong %
\titleContentsSkip{\theSongTitle}{\theSongKey}%
\else %
\titleIndex{\theSongTitle}{\theSBSongCnt} %
\titleContents{\theSongTitle}{\theSongKey} %
\artistIndex{\theSongComposerU+\theSongTitle}{\theSBSongCnt}%
\fi %
\ifExcludeSong\setbox2=\vbox\bgroup\fi%
\ifSamepageMode%
\begin{samepage}%
\fi%
\begin{center}
\STitle[N]{\theSongTitle}{#3}\\
\vspace{-.5ex}
%\CpyRt[N]{#4}{#7}\\
{#4}\\
\vspace{-.5ex}
\WAndM[N]{#5}\\
\if\given{#6}%
\vspace{-.75ex}
\ScriptRef[N]{\theSongScriptRef}\\
\fi%
\end{center}%
\vspace{\SpaceAfterTitleBlk}
\ifCompactSongMode
\begin{multicols*}{2}
\raggedcolumns
\fi
\SBDefaultFont%
}%
{\ifSamepageMode%
\end{samepage}%
\fi%
\ifCompactSongMode
\end{multicols*}
\fi
\ifSongEject%
\vfill\pagebreak%
\else%
\SpaceAfterSong\pagebreak[1]%
\fi%
\ifExcludeSong\egroup\setbox2=\hbox{}\fi%
\renewcommand{\SBinSongEnv}{\False}%
\SBinSongEnvfalse%
}
\newcommand{\CBExcl}{\ifChordBk N\else Y\fi}
\newcommand{\OHExcl}{\ifOverhead N\else Y\fi}
\newcommand{\WBExcl}{\ifWordBk N\else Y\fi}
\newcommand{\WOExcl}{\ifWordsOnly N\else Y\fi}
\newenvironment{xlatn}[3]{% Comment marker negates the newline.
\renewcommand{\theXlatnBy}{#3}%
\renewcommand{\theXlatnPerm}{#2}%
\renewcommand{\theXlatnTitle}{#1}%
%
\titleIndex{\theXlatnTitle}{\theSBSongCnt}%
\titleContents{\theXlatnTitle}{\theSongKey}%
%
\begin{center}
\STitle[N]{\theXlatnTitle}{\theSongKey}\\
\CpyRt[N]{\theSongCopyRt}{\theSongLicense}\\
\if\nil{#2}%
\relax%
\else%
\vspace{-.5ex}
{\CpyRtFont\theXlatnPerm}\\
\fi
\if\nil{#3}%
\relax%
\else%
\vspace{-.5ex}
{\CpyRtFont\theXlatnBy}\\
\fi
\end{center}%
%
\setcounter{SBVerseCnt}{0}%
\setcounter{SBSectionCnt}{0}%
}{\relax}
\newenvironment{songTranslation}[4]{% Comment marker negates the newline.
\renewcommand{\theXlatnBy}{#4}%
\begin{xlatn}{#2}{#3}{#4}%
}{\end{xlatn}}
\def\sbChord#1{%
\ifx#1\relax%
\let\next=\relax%
\else%
\ifx#1##% double sharp because we're inside a \def
$\sharp$%
\else%
\ifx#1b%
$\flat$%
\else%
\ifx#1/%
\ChBassFont /%
\else%
\ifx#1[%
\bgroup\ChBkFont [\egroup%
\else%
\ifx#1]%
\bgroup\ChBkFont ]\egroup%
\else%
#1%
\fi%
\fi%
\fi%
\fi%
\fi%
\let\next=\sbChord%
\fi%
\next%
}
%%%
\newcommand{\Ch}[2]{{%
\ifChordBk%
\setbox1=\hbox{\ChFont\sbChord#1\relax\strut}%
\setbox0=\hbox{#2}%
\ifdim\wd1<\wd0%
\strut\raise\SBChordRaise\copy1\kern-\wd1\copy0%
\else%
\strut\copy0\kern-\wd0\strut\raise\SBChordRaise\copy1%
\fi%
\else%
#2%
\fi}}
\newcommand{\ChX}[2]{%
\ifWordsOnly%
\if\nil{#2}%
\ignorespaces%
\else%
#2%
\fi%
\else%
\Ch{#1}{#2}%
\fi}
\newlength{\chCriticDim}
\newlength{\chSpaceDim}
\newcommand{\Chr}[2]{{%
\ifChordBk
\setbox1=\hbox{\ChFont\sbChord#1\relax\strut}%
\setbox0=\hbox{#2}%
\setlength{\chCriticDim}{\wd0 - \chSpaceTolerance}%
\advance\chCriticDim by 2\chMiniSpace%
\ifdim\wd1>\chCriticDim%
\chCriticDim \wd1%
\advance\chCriticDim by -\wd0%
\advance\chCriticDim by -\chSpaceTolerance%
\advance\chCriticDim by -2\chMiniSpace%
\ifdim\chCriticDim>0mm%
\chSpaceDim \wd1%
\advance\chSpaceDim by -\wd0%
\advance\chSpaceDim by \chSpaceTolerance%
\else%
\chSpaceDim\chSpaceTolerance%
\fi%
\chCriticDim \chSpaceDim%
\advance\chCriticDim by 2\chMiniSpace%
\strut\raise\SBChordRaise\copy1\kern-\wd1\ifdim\wd0=0mm\kern-2\chMiniSpace\fi%
\copy0\hbox to\chCriticDim{\hss%
\raise\SBRuleRaiseAmount\hbox to\chSpaceDim{\SBIntersyllableRule}\hss}%
\else%
\strut\raise\SBChordRaise\copy1\kern-\wd1%
\copy0%
\fi%
\else%
#2%
\fi}%
}
\newcommand{\SBMargNote}[1]{%
\ifExcludeSong%
\relax%
\else\ifWordsOnly%
\relax%
\else\ifCompactSongMode%
\footnote{{\SBMargNoteFont{#1}}}%
\else%
\marginpar{{\begin{flushleft}\SBRefFont{#1}\end{flushleft}}}%
\fi\fi\fi}
\newcommand{\SBRef}[2]{%
\ifExcludeSong%
\relax%
\else\ifWordsOnly%
\relax%
\else\ifCompactSongMode%
\footnotetext[0]{{\SBRefFont{\em #1}, {#2}.}}%
\else%
\marginpar{{\begin{flushleft}\SBRefFont{\em #1}, {#2}.\end{flushleft}}}%
\fi\fi\fi}
\newenvironment{SBVerse}{%
\sbSetsbBaselineSkipAmt%
\bgroup%
\addtocounter{SBVerseCnt}{1}%
\SBVerseMarkright{\theSBVerseCnt}%
\begin{list}{{\SBVerseNumberFont\theSBVerseCnt .}}
{\setlength {\leftmargin} {\LeftMarginSBVerse + \HangAmt}
\setlength{\itemindent} {-\HangAmt}
\setlength{\listparindent}{-\HangAmt}
\setlength{\parsep} {0pt}
\setlength{\baselineskip} {\sbBaselineSkipAmt}
}%
\item}
{\end{list}%
\egroup%
\SpaceAfterVerse}
\newenvironment{SBVerse*}{%
\sbSetsbBaselineSkipAmt%
\bgroup%
\begin{list}{{\SBVerseNumberFont }}
{\setlength {\leftmargin} {\LeftMarginSBVerse + \HangAmt}
\setlength{\itemindent} {-\HangAmt}
\setlength{\listparindent}{-\HangAmt}
\setlength{\parsep} {0pt}
\setlength{\baselineskip} {\sbBaselineSkipAmt}
}%
\item}
{\end{list}%
\egroup%
\SpaceAfterVerse}
\newenvironment{SBSection}{%
\sbSetsbBaselineSkipAmt%
\bgroup%
\addtocounter{SBSectionCnt}{1}%
\SBSectionMarkright{SBSectionCnt}
\begin{list}{{\SBSectionNumberFont\alph{SBSectionCnt})}}
{\setlength {\leftmargin} {\LeftMarginSBSection + \HangAmt}
\setlength{\itemindent} {-\HangAmt}
\setlength{\listparindent}{-\HangAmt}
\setlength{\parsep} {0pt}
\setlength{\baselineskip} {\sbBaselineSkipAmt}
}%
\item}
{\end{list}%
\egroup%
\SpaceAfterSection}
\newenvironment{SBSection*}{%
\sbSetsbBaselineSkipAmt%
\bgroup%
\begin{list}{{\SBSectionNumberFont }}
{\setlength {\leftmargin} {\LeftMarginSBSection + \HangAmt}
\setlength{\itemindent} {-\HangAmt}
\setlength{\listparindent}{-\HangAmt}
\setlength{\parsep} {0pt}
\setlength{\baselineskip} {\sbBaselineSkipAmt}
}%
\item}
{\end{list}%
\egroup%
\SpaceAfterSection}
\newenvironment{SBChorus}{%
\sbSetsbBaselineSkipAmt%
\bgroup%
\SBChorusMarkright{\SBChorusTag}
\begin{list}{{\SBChorusTagFont\SBChorusTag}}
{\setlength {\leftmargin} {\LeftMarginSBChorus + \HangAmt}
\setlength{\itemindent} {-\HangAmt}
\setlength{\listparindent}{-\HangAmt}
\setlength{\parsep} {0pt}
\setlength{\baselineskip} {\sbBaselineSkipAmt}
}%
\item}
{\end{list}%
\egroup%
\SpaceAfterChorus%
}
\newenvironment{SBChorus*}{%
\sbSetsbBaselineSkipAmt%
\bgroup%
\begin{list}{{\SBChorusTagFont }}
{\setlength {\leftmargin} {\LeftMarginSBChorus + \HangAmt}
\setlength{\itemindent} {-\HangAmt}
\setlength{\listparindent}{-\HangAmt}
\setlength{\parsep} {0pt}
\setlength{\baselineskip} {\sbBaselineSkipAmt}
}%
\item}
{\end{list}%
\egroup%
\SpaceAfterChorus}
%%%
\newenvironment{SBOpGroup}{%
\sbSetsbBaselineSkipAmt%
\bgroup%
\begin{list}{\hbox{}}
{\setlength {\leftmargin} {\HangAmt}
\setlength{\itemindent} {-\HangAmt}
\setlength{\listparindent}{-\HangAmt}
\setlength{\topsep} {0pt}
\setlength{\parsep} {0pt}
\setlength{\labelwidth} {0pt}
\setlength{\labelsep} {0pt}
\setlength{\baselineskip} {\sbBaselineSkipAmt}
}%
\item}
{\end{list}%
\egroup%
\SpaceAfterOpGroup}
\newcommand{\SBBridge}[1]{%
\ifWordsOnly%
\relax%
\else%
\sbSetsbBaselineSkipAmt%
\bgroup%
\begin{list}{{\SBBridgeTagFont\SBBridgeTag}}
{\setlength {\leftmargin} {\LeftMarginSBChorus}%
\setlength{\parsep} {0pt}
\setlength{\baselineskip}{\sbBaselineSkipAmt}
}%
\item #1
\end{list}%
\egroup\par
\fi}
\newcommand{\SBEnd}[2][N]{%
\ifthenelse{\equal{\ifWordsOnly Y\fi}{Y}
\and \equal{N}{#1}}%
{\relax}%
{\sbSetsbBaselineSkipAmt%
\bgroup%
\begin{list}{{\SBEndTagFont\SBEndTag}}
{\setlength {\leftmargin} {\LeftMarginSBChorus}
\setlength{\parsep} {0pt}
\setlength{\baselineskip}{\sbBaselineSkipAmt}
}%
\item #2
\end{list}%
\egroup\par}
}
\newcommand{\SBIntro}[2][N]{%
\ifthenelse{\equal{\ifWordsOnly Y\fi}{Y}
\and \equal{N}{#1}}%
{\relax}%
{\sbSetsbBaselineSkipAmt%
\bgroup%
\begin{list}{{\SBIntroTagFont\SBIntroTag}}%
{\setlength {\leftmargin} {\LeftMarginSBChorus}%
\setlength{\parsep} {0pt}
\setlength{\baselineskip}{\sbBaselineSkipAmt}
}%
\item #2
\vspace{-\topsep}%\vspace{-\partopsep}%
\end{list}%
\egroup\par}%
}
\newenvironment{SBBracket}[1]{%
\SpaceBeforeSBBracket
\sbSetsbBaselineSkipAmt%
\setbox0=\hbox to \LeftMarginSBBracket{\parbox{\LeftMarginSBBracket}%
{\flushright{\hspace{0pt}\SBBracketTagFont #1}}}%
\hbox\bgroup%
\rightskip=\LeftMarginSBBracket%
$\raisebox{1.25ex}{\copy0}%
\left\lbrack%
\vcenter\bgroup%
\begin{list}{\hbox{}}% %
{\setlength {\leftmargin} {\HangAmt + 0.5em}% This list
\setlength{\rightmargin} {\LeftMarginSBBracket}%
\setlength{\itemindent} {-\HangAmt}% % been copied
\setlength{\listparindent}{-\HangAmt}% % verbatim from
\setlength{\topsep} {0pt}% % the SBOpGroup
\setlength{\parsep} {0pt}% % environment,
\setlength{\labelwidth} {0pt}% % above and then
\setlength{\labelsep} {0pt}% % modified slightly.
\setlength{\baselineskip} {\sbBaselineSkipAmt}%
}% %
\item%
}{%
\end{list}%
\egroup%
\right.$%
\rightskip=0pt
\egroup
\SpaceAfterSBBracket
}
\newenvironment{SBBracket*}[1]{%
\SpaceBeforeSBBracket
\sbSetsbBaselineSkipAmt%
\ifNotWordsOnly
\setbox0=\hbox to \LeftMarginSBBracket{\parbox{\LeftMarginSBBracket}%
{\flushright{\hspace{0pt}\SBBracketTagFont #1}}}%
\hbox\bgroup%
\rightskip=\LeftMarginSBBracket%
$\raisebox{1.25ex}{\copy0}%
\left\lbrack%
\vcenter\bgroup%
\fi
\begin{list}{\hbox{}}% %
{\setlength {\leftmargin} {\HangAmt + 0.5em}% This list
\setlength{\rightmargin} {\LeftMarginSBBracket}%
\setlength{\itemindent} {-\HangAmt}% % been copied
\setlength{\listparindent}{-\HangAmt}% % verbatim from
\setlength{\topsep} {0pt}% % the SBOpGroup
\setlength{\parsep} {0pt}% % environment,
\setlength{\labelwidth} {0pt}% % above and then
\setlength{\labelsep} {0pt}% % modified slightly.
\setlength{\baselineskip} {\sbBaselineSkipAmt}%
}% %
\item%
}{%
\end{list}%
\ifNotWordsOnly
\egroup%
\right.$%
\rightskip=0pt
\egroup
\fi
\SpaceAfterSBBracket
}
\newenvironment{SBOccurs}[1]{%
{\SBOccursTagFont #1\SBOccursBrktFont [}
}
{{\SBOccursBrktFont ]}}
\newenvironment{SBExtraKeys}[1]{%
\ifWordsOnly%
\relax%
\else%
#1
\fi}
{}
\newcommand{\CBPageBrk}[1][N]{%
\ifChordBk%
\ifCompactSongMode
\ifthenelse{\equal{#1}{N}}
{\relax}
{\vfill\pagebreak}
\else
\vfill\pagebreak
\fi
\fi}
\newcommand{\CSColBrk}{%
\ifCompactSongMode%
\columnbreak%
\fi}
\newcommand{\NotWOPageBrk}{%
\ifWordsOnly%
\relax%
\else%
\pagebreak
\fi}
\newcommand{\OHPageBrk}{%
\ifOverhead%
\pagebreak
\fi}
\newcommand{\WBPageBrk}{%
\ifWordBk%
\pagebreak
\fi}
\newcommand{\WOPageBrk}{%
\ifWordsOnly%
\pagebreak
\fi}
%%=======================================================%
%% O B S O L E T E M A C R O S %
%%=======================================================%
%%=======================================================%
%% D E P R E C A T E D M A C R O S %
%%=======================================================%
%%%
\newcommand{\False}{0}
\newcommand{\True}{1}
\newcommand{\ChordBk}{\False}
\newcommand{\Overhead}{\False}
\newcommand{\SongEject}{\True}
\newcommand{\WordBk}{\False}
\newcommand{\WordsOnly}{\False}
\newcommand{\SBinSongEnv}{\False}
\endinput
%%
%% End of file `songbook.sty'.