%%%%% %%%%% %% %% songbook.sty - Generic SongBook style. %% %% Version 2.4, 30 May, 1996 %% %% Copyright 1992--96 Christopher Rath %% crath@cyberus.ca %% %% You may distribute under the terms of the Artistic License, %% as specified in the relnotes.txt file. %% %%%%% %%%%% \typeout{SongBook Style version 2.4 <30 May 96>} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% %% R E Q U I R E D M A C R O F I L E S %% %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% % Donald Arseneau's conditionals.sty. %%% \input conditionals.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% %% F O N T S %% %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% % The majority of the fonts have been defined as LaTeX commands so % that traditional LaTeX font selection can be utilized. The font % commands are defined as: % % \ChBassFont - Sets the font for the bass note in chords as % printed by the \Ch and \ChX commands. % \ChFont - Sets the font for chords as printed by the \Ch and % \ChX commands. % \CpyRtFont - sets the font used to print the copyright line % produced by the \CpyRt command. % \CpyRtInfoFont - sets the font used to print the copyright % licensing information parameter of the \song % environment; which appears after the copyright % information parameter under the song title. % \SBChorusTagFont - sets the font used to print the chorus tag % (``Ch:''). % \SBDefaultFont - sets the default font for the songbook. For % this command to be effective it should appear within % the songbook itself. % \SBOccursBrktFont - sets the font used to create the large % left and right square brackets used to delimit the % \SBOccurs environment. % \SBIntroTagFont - sets the font used to print the introduction % tag (``Intro:''). % \SBOccursTagFont - sets the font used to create the \SBOccurs % tag. % \SBRefFont - sets the font used in the marginal reference % printed by the \SBRef command. % \SBVerseNumberFont - sets the font used to print the % \SBVerseCnt in front of verses in an SBVerse % environment. % \SBSectionNumberFont - sets the font used to print the % \SBSectionCnt in front of sections in an SBSection % environment. % \STitleFont - sets the font used to print the song title, as % generated by the \STitle command. % \STitleKeyFont - sets the font used to print the key a song is % written in, as generated by the \STitle command. % \STitleNumberFont - sets the font used to print the \SBSongCnt % in front of the song title, as generated by the % \STitle command. % \ScriptRefFont - sets the font used to print the scripture % reference generated by the \ScriptRef command. % \WandMFont - sets the font used to print the lyricist and % composer line generated by the \B\bs WandM command. % \lyricNoteFont - sets the font used in comments placed within % the lyrics giving musical direction. This is the only % font command commonly used by the writer of a % songbook. %%% \font\STNFont=cmtt12 at 20pt \font\SBOBFont=cmss17 at 30pt \newcommand{\ChBassFont}{\normalsize\bf\sf} % = cmss12 at ??pt \newcommand{\ChFont}{\bf\sf} % = cmss12 at 14.4pt \newcommand{\CpyRtFont}{\footnotesize} % = cmr10 at 10pt \newcommand{\CpyRtInfoFont}{\tiny}%\sf} % = cmss8 at 8pt \newcommand{\SBChorusTagFont}{\small\bf\sf} % = cmss10 at 10.9pt \newcommand{\SBDefaultFont}{\large} % = cmr12 at 14.4pt \newcommand{\SBIntroTagFont}{\small\bf\sf} % = cmss10 at 10.9pt \newcommand{\SBOccursBrktFont}{\SBOBFont} % = cmss17 at 30pt \newcommand{\SBOccursTagFont}{\small\bf\sf} % = cmss10 at 10.0pt \newcommand{\SBRefFont}{\scriptsize} % = cmti8 at 8pt \newcommand{\SBVerseNumberFont}{\small\bf\sf} % = cmss10 at 10.9pt \newcommand{\SBSectionNumberFont}{\small\bf\sf} % = cmss10 at 10.9pt \newcommand{\STitleFont}{\bf\sf} % = cmss12 at 14.4pt \newcommand{\STitleKeyFont}{\large} % = cmr12 at 14.4pt \newcommand{\STitleNumberFont}{\STNFont} % = cmtt12 at 20pt \newcommand{\ScriptRefFont}{\footnotesize} % = cmr10 at 10pt \newcommand{\WandMFont}{\footnotesize} % = cmr10 at 10pt \newcommand{\lyricNoteFont}{\footnotesize\sf} % = cmss10 at 10pt %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% %% C O N S T A N T S & V A R I A B L E S %% %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% % Boolean Contants. % \False - Defined for use in \if macro contructs and the other % constants in this style. % \True - Defined for use in \if macro contructs and the other % constants in this style. %% % \ChordBk - Are we processing a chordbk.sty document? % \HangAmt - Amount to indent when a line wraps. This has been % defined using \newcommand instead of \newlength so that % any unit definitions are evaluated at the time the % \HangAmt command is used. % \Overhead - Are we processing an overhead.sty document? % \SongEject - Do we want to end the current page at the end of % every {song} environment? A value of \True means % eject after every {song} environment. % \WordBk - Are we processing a wordbk.sty document? % \WordsOnly - Is equal to \True if we're in words only mode. % The default value will be false, as that is how all of % the commands in this file will act. %%% \newcommand{\False}{0} \newcommand{\True}{1} \newcommand{\ChordBk}{\False} \newcommand{\HangAmt}{1.5em} \newcommand{\Overhead}{\False} \newcommand{\SongEject}{\True} \newcommand{\WordBk}{\False} \newcommand{\WordsOnly}{\False} %%% % Define Counters used herein. % % \theSBSongCnt - This counter is used for numbering the % songs. When a song is listed multiple times (for % multiple keys) the songs number must remain the same % each time. % \theSBVerseCnt - The verse counter is used for numbering % verses as they occur within a song. % \theSBSectionCnt - The section counter is used for numbering % sections as they occur within a song. %%% \newcounter{SBSongCnt} \newcounter{SBVerseCnt} \newcounter{SBSectionCnt} %%% % Define spaces to leave in various situations. % % All of these spaces are defined as LaTeX commands to overcome % limitations in length evaluation. For example, if % \LeftMarginSBVerse were to be defined as a length, and then % immediately set to 4em's the specific length would be evaluated with % respect to the current font. This is not be what is desired; % instead a length evaluated with respect to the font in place at the % start of an SBVerse is what is desired. This can only be done by % making these lengths LaTeX commands. % % \SpaceAboveSTitle - The space skipped by the \STitle macro % before it prints the song title. % \LeftMarginSBChorus - The amount of left margin left in front % of named choruses in the songbook. % \LeftMarginSBVerse - The amount of left margin left in front % of verses in the songbook. % \LeftMarginSBSection - The amount of left margin left in front % of sections in the songbook. %%% \newcommand{\SpaceAboveSTitle}{.5in} \newcommand{\LeftMarginSBChorus}{4em} \newcommand{\LeftMarginSBVerse}{4em} \newcommand{\LeftMarginSBSection}{4em} %%% % Declare song attribute variables. % % These variables are intended for consumption within the songbook % style itself, so they will not be documented on the manual page. % % \theSongComposer - The composer and lyricist of the last song. % \theSongKey - The key of the last song. This variable must be % reset within the \STitle command, as well as at the % start of the song environment, because of the way in % which extra keys are handled. % \theSongLicense - The copyright license info. % \theSongTitle - The title of the last song. % \theCopyRtInfo - The copyright information of the last song. % This includes the copyright licensing information. % \theScriptureRef - The scripture reference of the last song. % \theXlatnBy - Who translated the song. % \theXlatnPerm - The permission details for the last song- % translation. This variable is reset to an empty % string at the start of each song environment. % \theXlatnTitle - The title of the last song-translation. This % variable is reset to an empty string at the start of % each song environment. %%% \newcommand{\theSongComposer}{the Composer} \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{\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 %% %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% % \SBem - em-dash macro definition. % Parameters: None. % % Generate an em-dash within a songbook. This macro is used to place % in em-dash within text when we're NOT in words-only mode. This % allows us to place dashes within text in order to make room for % chords that are bigger than their sylables; yet, that dash will not % appear in the words-only book. The words-only version of this macro % is a no-op. %%% \newcommand{\SBem}{\if\WordsOnly\False ---\fi} %%% % \SBen - en-dash macro definition. % Parameters: None. % % Generate an en-dash within a songbook. This macro is used to place % in en-dash within text when we're NOT in words-only mode. This % allows us to place dashes within text in order to make room for % chords that are bigger than their sylables; yet, that dash will not % appear in the words-only book. The words-only version of this macro % is a no-op. %%% \newcommand{\SBen}{\if\WordsOnly\False --\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 %% %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% % \makeKeyIndex - Start creation of an index of songs by key. % Parameters: None. % % This code is stolen from latex.tex. %%% \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} %%% % \keyIndex - Make an entry in the index of songs by key. % Parameters: % [1] Song key and title. % [2] Song number. % % This code is stolen from latex.tex. %%% \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} %%% % \makeTitleIndex - Start creation of a title & first line index. % Parameters: None. % % This code is stolen from latex.tex. %%% \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} %%% % \titleIndex - Make an entry in the title & first line index. % Parameters: % [1] Song title or first line. % [2] Song number. % % This code is stolen from latex.tex. %%% \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} %%% % \makeTitleContents - Start creation of a table of contents % Parameters: None. % % This code is stolen from latex.tex. %%% \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} %% % \titleContents - Make an entry in the table of contents file % Parameters: % [1] Song number. % [2] Song title. % % This code is stolen from latex.tex. %%% \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} %%% % \FLineIdx - Add a first line of song entry to index/idx file. % Parameters: % [1] First line of song. %%% \newcommand{\FLineIdx}[1]{\titleIndex{#1@{\it #1\/}}{\theSBSongCnt}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% %% P R I M A R Y S O N G B O O K M A C R O S %% %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% % \STitle - Song title macro definition. % Paramaters: % [1] Song's title. % [2] Song's Key. % % Before printing the title we reset the SBVerseCnt and SBSectionCnt % counters back to zero. This is for songs which are printed in more % than one key, because the verse count always begins at 1. for each key. % % This macro also makes an entry in the table of contents. %%% \newcommand{\STitle}[2]{\setcounter{SBVerseCnt}{0}\setcounter{SBSectionCnt}{0} \keyIndex{#2 -- #1}{\theSBSongCnt} % \vspace{\SpaceAboveSTitle} \centerline{{\STitleNumberFont\theSBSongCnt}{\STitleFont\ --- #1} \if\WordsOnly\False {\STitleKeyFont\ [{\Chord #2\relax}]} \fi}} %%% % \CpyRt - Copyright info. macro definition. % Paramaters: % [1] Copyright information. % [2] Copyright licensing information. %%% \newcommand{\CpyRt}[2]{\centerline{\CpyRtFont\copyright #1 #2}} %%% % \WAndM - Words and Music macro definition. % Paramaters: % [1] Name(s) of the composer and lyricist. %%% \newcommand{\WAndM}[1]{\centerline{\WandMFont W\&M: #1}} %%% % \ScriptRef - Scripture reference macro definition. % Paramaters: % [1] Address of scripture reference for the song. % % Used to indicate a scripture reference for the song. May either be % the scripture being quoted in the song, or a scripture which % supports the theology presented in the song. %%% \newcommand{\ScriptRef}[1]{\centerline{\ScriptRefFont #1}} %%% % {song} - Song environment definition. % [1] Title of song. % [2] Key song is written in. % [3] Copyright information. % [4] Name(s) of composer and lyricist. % [5] Scripture reference for the song. % [6] Copyright licensing information. % % The song environment encapsulates a song, including multiple % appearances for multiple keys and translations. We increment % the song counter and then cause the title and other paramater % information to be displayed. % % NOTE: This environment makes use of \everypar. %%% \newenvironment{song}[6]{ % Comment marker negates the newline. \if\WordsOnly\True % \setlength{\parindent}{0pt} % \fi % \renewcommand{\theSongComposer}{#4} % \renewcommand{\theSongCopyRt}{#3} % \renewcommand{\theSongKey}{#2} % \renewcommand{\theSongLicense}{#6} % \renewcommand{\theSongScriptRef}{#5} % \renewcommand{\theSongTitle}{#1} % \renewcommand{\theXlatnBy}{} % \renewcommand{\theXlatnPerm}{} % \renewcommand{\theXlatnTitle}{} % % \addtocounter{SBSongCnt}{1} % \titleIndex{\theSongTitle}{\theSBSongCnt} % \titleContents{\theSongTitle}{\theSongKey} % % \STitle{\theSongTitle}{\theSongKey} \vspace{-.5ex} \CpyRt{\theSongCopyRt}{\theSongLicense} \vspace{-.5ex} \WAndM{\theSongComposer} \if\naught{#5}\relax\else% \vspace{-.5ex} \ScriptRef{\theSongScriptRef} \fi% \vspace{.5ex} \everypar={\hangafter=1\hangindent=\HangAmt}% }{\if\SongEject\True \vfill\pagebreak \else \vspace{0ex plus15ex minus0ex} \pagebreak[1]\fi} %%% % {xlatn} - Song-tranlation environment definition. % [1] Title of the translated song. % [2] Translation permission. % [3] Who performed the translation. % % The xlatn environment always occurs within a song environment. % We reset the verse counter then cause the title and other % parameter information to be displayed. It is important for the % xlatn environment to occur within a song environment, because the % xlatn environment inherits the song environment's \everypar % definition. %%% \newenvironment{xlatn}[3]{ % Comment marker negates the newline. \renewcommand{\theXlatnBy}{#3} % \renewcommand{\theXlatnPerm}{#2} % \renewcommand{\theXlatnTitle}{#1} % % \titleIndex{\theXlatnTitle}{\theSBSongCnt} % \titleContents{\theXlatnTitle}{\theSongKey} % % \STitle{\theXlatnTitle}{\theSongKey} \CpyRt{\theSongCopyRt}{\theSongLicense} \vspace{-.5ex} \centerline{\CpyRtFont\theXlatnPerm} \vspace{-.5ex} \centerline{\CpyRtFont\theXlatnBy} % \setcounter{SBVerseCnt}{0} % \setcounter{SBSectionCnt}{0} % }{} %%% % \Chord - Change the sequence of characters into a chord. % Parameters: % [1] Chord. % % The original version of this function was written by Philip % Hirschhorn (psh@math.mit.edu or phirschhorn@lucy.wellesley.edu). % % Scan the sequence of characters in Chord. Replace `#' characters % with $\sharp$'s and `b' characters with $\flat$. This produces more % realistic looking chord symbols (which also take up less space than % their phoney counterparts). We also look for '/' characters, and % insert a \ChBassFont command into the stream when a '/' is found. % This makes the bass note of the chord to appear in a smaller font. % \def\Chord#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 #1% \fi \fi \fi \let\next=\Chord \fi \next} %%% % \Ch - Chord over lyrics macro definition. % \ChX - Chord over lyrics macro, deleting trailing spaces. % Paramaters: % [1] Chord. % [2] Syllable that chord is to be left justified over. % % The words-only style file turns off the chord generation and just % prints the second parameter. The \ChX version of this macro is used % in the words only style to ensure that spaces following the macro % are removed. For example, a line ending with an extra couple of % dangling chords could be written as: % \ChX{D7}{ing.} \ChX{E}{} \ChX{D}{} % \newcommand{\Ch}[2]{\if\WordsOnly\False{\leavevmode\vbox{\hbox{\strut\ChFont\Chord#1\relax}\hbox{#2\strut}}}\else#2\fi} \newcommand{\ChX}[2]{\if\WordsOnly\False\Ch{#1}{#2}\else\if\naught{#2}\ignorespaces\else#2\fi\fi} %%% % \SBMargNote - Songbook marginal note. % Paramaters: % [1] Text of note to place in margin. % % Used to place a note of some kind in the margin of a songbook. In words % only mode this macro is a no-op. %%% \newcommand{\SBMargNote}[1]{\if\WordsOnly\True \else \marginpar{{\begin{flushleft}\SBRefFont{#1}\end{flushleft}}} \fi} %%% % \SBRef - Song reference definition. % Paramaters: % [1] Songbook name. % [2] Page/Song number within book ref'ed by [1]. % % Used to indicate a source for the full SATB music for this song. % In words only mode this macro is a no-op. %%% \newcommand{\SBRef}[2]{\if\WordsOnly\True \else \marginpar{{\begin{flushleft}\SBRefFont{\em #1}, {#2}.\end{flushleft}}} \fi} %%% % \begin{SBVerse} - Verse environment definition. % Parameters: None. % % Very much like LaTeX's verse environment, except that here the % verses are numbered. The indent amount for lines that are too long % is set with the \HangAmt command (see the constant definitions at % the top of this file). %%% \newenvironment{SBVerse}{ \addtocounter{SBVerseCnt}{1} \begin{list}{{\SBVerseNumberFont \theSBVerseCnt .}\hskip\HangAmt} {\setlength{\leftmargin}{\LeftMarginSBVerse} \setlength{\parsep}{0pt}\addtolength{\leftmargin}{\HangAmt} \setlength{\listparindent}{-\HangAmt}\addtolength{\labelwidth}{\HangAmt} } \item\hskip -\HangAmt }{\end{list}\par} %%% % \begin{SBSection} - Section environment definition. % Parameters: None. % % Very much like LaTeX's verse environment, except that here the % sections are numbered. The indent amount for lines that are too long % is set with the \HangAmt command (see the constant definitions at % the top of this file). %%% \newenvironment{SBSection}{ \addtocounter{SBSectionCnt}{1} \begin{list}{{\SBSectionNumberFont\alph{SBSectionCnt})}\hskip\HangAmt} {\setlength{\leftmargin}{\LeftMarginSBSection} \setlength{\parsep}{0pt}\addtolength{\leftmargin}{\HangAmt} \setlength{\listparindent}{-\HangAmt}\addtolength{\labelwidth}{\HangAmt} } \item\hskip -\HangAmt }{\end{list}\par} %%% % \begin{SBChorus} - Chorus environment definition. % Parameters: None. % % Very much like LaTeX's verse environment, except that here a `Ch:' % tag is inserted to demark the start of the chorus. The indent % amount for lines that are too long is set with the \HangAmt command % (see the constant definitions at the top of this file). %%% \newenvironment{SBChorus}{ \begin{list}{{\SBChorusTagFont Ch:}\hskip\HangAmt} {\setlength{\leftmargin}{\LeftMarginSBChorus} \setlength{\parsep}{0pt}\addtolength{\leftmargin}{\HangAmt} \setlength{\listparindent}{-\HangAmt}\addtolength{\labelwidth}{\HangAmt} } \item\hskip -\HangAmt }{\end{list}\par} %%% % \SBIntro - Introduction definition. % Parameters: % [1] The Introduction. % % This command is used to encapsulate any introduction to a song. In % words only mode this command is a no-op. %%% \newcommand{\SBIntro}[1]{\if\WordsOnly\False \begin{list}{{\SBIntroTagFont Intro:}} {\setlength{\leftmargin}{\LeftMarginSBChorus} \setlength{\parsep}{0pt}} \item #1 \end{list}\par \fi} %%% % \begin{SBOccurs} - Occurance environment definition. % Parameters: % [1] Occurance number(s). For example "1,3" would % designate that this passage applies to the 1st and % 3rd occurances. %%% \newenvironment{SBOccurs}[1]{ {\SBOccursTagFont #1\SBOccursBrktFont [} }{{\SBOccursBrktFont ]}} %%% % \begin{SBExtraKeys} - Extra song keys environment definition. % Parameters: % [1] This paramater actually is used to either pass or % not pass all the content of the environment on to % the LaTeX processor. % % Songs are frequently listed in more than one key. This is ok for % books with chords, however the words only edition should only print % one occurance of a song. So, any extra keys are placed in a % SBExtraKey environment. This allows them to be "shut off" when % they're not needed. %%% \newenvironment{SBExtraKeys}[1]{\if\WordsOnly\True \else #1 \fi}{} %%% % \CBPageBrk - Generate a page break here if we're in Chordbk mode. % Parameters: None. %%% \newcommand{\CBPageBrk}{\if\ChordBk\True \vfill\pagebreak \else \fi} %%% % \NotWOPageBrk - Generate a page break here if we're NOT in Words Only mode. % Parameters: None. %%% \newcommand{\NotWOPageBrk}{\if\WordsOnly\False \pagebreak \else \fi} %%% % \OHPageBrk - Generate a page break here if we're in OverHead mode. % Parameters: None. %%% \newcommand{\OHPageBrk}{\if\Overhead\True \pagebreak \else \fi} %%% % \WOPageBrk - Generate a page break here if we're in Words Only mode. % Parameters: None. %%% \newcommand{\WOPageBrk}{\if\WordsOnly\True \pagebreak \else \fi} % %%% % End of songbook.sty file. %%%