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. 395
      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)
(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
%
% This program is free software; you can redistribute it and/or
@ -22,29 +22,14 @@
% Modified to serve personnal purposes. Newer versions can be
% obtained from http://www.lohrun.net.
\documentclass[letterpaper]{article}
\documentclass[a4paper]{article}
\usepackage[bookmarks,bookmarksopen]{hyperref}
\usepackage[chorded]{songs}
%my packages
\usepackage[utf8]{inputenc}
\usepackage[pdftex]{graphicx, color}
\usepackage[english,french]{babel}
\usepackage{palatino}
\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}
\newauthorindex{authidx}{cbauth}
@ -57,31 +42,49 @@
{img/}
}
%my renew
%\includeonlysongs{1}
\titleprefixword{}
\renewcommand{\stitlefont}{\LARGE\bf}
\renewcommand{\printchord}[1]{\small{\it#1}}
\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
\versesep=8pt plus 2pt minus 2pt
\pagestyle{empty}
\input{title.tex}
\begin{document}
\maketitle
\thispagestyle{empty}
\setcounter{page}{0}
\newpage
\input{license.tex}
\newpage
\setlength{\colminheight}{9.5in}
\setlength{\textheight}{9.7in}
\showindex{Index des chansons}{titleidx}
\showindex{Index des auteurs}{authidx}
@ -91,4 +94,3 @@
\end{songs}
\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
index 5cd8a9f..6d02922 100644
--- a/license.tex

2
doc/bugs/chordbook.tex.mdwn

@ -3,6 +3,8 @@
* revert to original font
* new layout for indexes
[[done]]
Patch:
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).
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).
@ -7,3 +7,6 @@ This website is both a wiki and the documentation of the songbook project. You a
* [[documentation|doc]]
* [[bugs]]
* [[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{\printchord}[1]{\small{\it#1}}
\renewcommand{\chorusfont}{\it}
\renewcommand{\showauthors}{\normalsize\songauthors}
%\renewcommand{\everychorus}{\textnote{Refrain:}}
\baselineadj=-2.5pt plus 1pt minus 0pt
\versesep=8pt plus 2pt minus 2pt

395
songs.sty

@ -8,7 +8,7 @@
%%
%% 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
%% the LaTeX Project Public License, either version 1.3a of this license
@ -22,7 +22,7 @@
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{songs}
[2008/03/27 v2.6 Songs package]
[2009/03/14 v2.8 Songs package]
\newif\ifSB@etex
\ifx\eTeXversion\undefined\else
\ifx\eTeXversion\relax\else
@ -50,7 +50,6 @@
\newdimen\SB@dimenii
\newdimen\SB@dimeniii
\newdimen\SB@dimeniv
\newdimen\SB@dimenv
\newbox\SB@box
\newbox\SB@boxii
\newbox\SB@boxiii
@ -82,8 +81,14 @@
\leftskip\z@skip\rightskip\@flushglue\SB@cbarshift%
\noindent#1\par%
}
\newcommand\songnumstyle[1]{\arabic{#1}}
\newcommand\versenumstyle[1]{\arabic{#1}}
\newcounter{songnum}
\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\printversenum[1]{\lyricfont#1.\ }
\newcommand\placeversenum[1]{%
@ -119,6 +124,14 @@
\newcommand\chorusmark{}
\newcommand\extendprelude{\showrefs\showauthors}
\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
\setlength\colminheight{123456789sp}
\newdimen\SB@colwidth
@ -490,7 +503,7 @@
\newcommand\SB@submitsong{%
\ifSB@songsenv%
\ifpartiallist%
\edef\SB@tempii{\songnumstyle{songnum}}%
\edef\SB@tempii{\thesongnum}%
\@for\SB@temp:=\songlist\do{%
\ifx\SB@temp\SB@tempii%
\expandafter\newbox\csname songbox@\SB@temp\endcsname%
@ -512,9 +525,12 @@
\unvbox\SB@songbox%
\fi%
}
\newcommand\SB@songlistbrk{}
\def\SB@songlistbrk{brk}
\newcommand\SB@finalizesonglist{%
\ifpartiallist%
\@for\SB@temp:=\songlist\do{%
\ifx\SB@temp\SB@songlistbrk\SB@nextcol\else%
\expandafter\ifx\csname songbox@\SB@temp\endcsname\relax\else%
\setbox\SB@songbox%
\expandafter\box\csname songbox@\SB@temp\endcsname%
@ -526,7 +542,7 @@
\expandafter\box\csname chbox@\SB@temp\endcsname%
\fi%
\SB@dosubmitsong%
\fi%
\fi\fi%
}%
\fi%
}
@ -590,11 +606,9 @@
\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{}
\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{}
\def\SB@emptylist{\\}
\newcommand\SB@ifempty[3]{%
@ -659,11 +673,12 @@
\fi%
\SB@insongtrue%
\SB@parsetitles{#1}%
\global\setbox\SB@songwrites\box\voidb@x%
\SB@clearbskeys%
\@ifnextchar[\SB@bskvfmt\SB@@beginsong%
}
\newcommand\SB@@beginsong{%
\@ifnextchar\bgroup\SB@bsoldfmt\SB@@@beginsong%
\@ifnextchar\bgroup\SB@bsoldfmt{\SB@@@beginsong{}}%
}
\newcommand\SB@bsoldfmt[3]{%
\SB@bskvfmt[sr={#1},by={#2},cr={#3}]%
@ -677,11 +692,6 @@
\global\SB@stanzafalse%
\setbox\SB@chorusbox\box\voidb@x%
\SB@gotchorusfalse%
\resettitles%
\SB@addtoindexes\songtitle\SB@rawrefs\songauthors%
\nexttitle%
\foreachtitle{\expandafter\SB@addtotitles\expandafter{\songtitle}}%
\resettitles%
\setbox\SB@songbox\vbox\bgroup%
\hsize\SB@colwidth%
\leftskip\z@skip\rightskip\z@skip%
@ -689,9 +699,15 @@
\SB@raggedright%
\global\SB@transposefactor0 %
\global\SB@cr@{\\}%
\protected@edef\@currentlabel{\p@songnum\thesongnum}%
\setcounter{versenum}{1}%
\SB@prevversetrue%
\meter44%
\resettitles%
\SB@addtoindexes\songtitle\SB@rawrefs\songauthors%
\nexttitle%
\foreachtitle{\expandafter\SB@addtotitles\expandafter{\songtitle}}%
\resettitles%
\lyricfont%
\SB@setbaselineskip%
}
@ -713,6 +729,7 @@
\egroup%
\setbox\SB@songbox\vbox{%
\songmark%
\unvbox\SB@songwrites%
\hsize\SB@colwidth%
\leftskip\z@skip\rightskip\z@skip%
\parfillskip\@flushglue\parskip\z@skip\parindent\z@%
@ -725,8 +742,8 @@
\ifx\pdfbookmark\relax\else%
\resettitles%
\pdfbookmark[\ifnum\arabic{section}=0 1\else2\fi]%
{\songnumstyle{songnum}. \songtitle}%
{song\arabic{SB@songsnum}-\songnumstyle{songnum}}%
{\thesongnum. \songtitle}%
{song\arabic{SB@songsnum}-\thesongnum}%
\fi\fi%
\endgroup\fi%
\vbox{\makeprelude}%
@ -748,7 +765,7 @@
}%
\SB@insongfalse%
\SB@submitsong%
\edef\SB@prevsong{\songnumstyle{songnum}}%
\edef\SB@prevsong{\thesongnum}%
\stepcounter{songnum}%
\else%
\ifSB@inscripture%
@ -813,7 +830,7 @@
\else%
\setbox\SB@boxii\hbox{\SB@colorbox{%
\hbox to\songnumwidth{%
\printsongnum{\songnumstyle{songnum}}\hfil%
\printsongnum{\thesongnum}\hfil%
}%
}}%
\setbox\SB@box\vbox{%
@ -838,7 +855,7 @@
\else%
\SB@colorbox{\vbox to\ht\SB@box{%
\hbox to\songnumwidth{%
\printsongnum{\songnumstyle{songnum}}\hfil%
\printsongnum{\thesongnum}\hfil%
}\vfil%
}}%
\kern3\p@%
@ -852,7 +869,7 @@
\tiny\extendpostlude%
}
\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%
}
\newcommand\showrefs{%
@ -979,6 +996,7 @@
\let\SB@tempiii= %
}
\newcommand\brk{%
\ifSB@insong%
\ifhmode\penalty-5 %
\else\ifSB@inchorus%
\ifdim\cbarwidth=\z@%
@ -1003,6 +1021,9 @@
\else%
\SB@breakpoint{-50}%
\fi\fi%
\else%
\ifpartiallist\else\SB@nextcol\fi%
\fi%
}
\newcommand\rep[1]{%
(\raise.25ex\hbox{%
@ -1143,9 +1164,10 @@
\SB@ifempty\SB@cr@\memorize{\replay[]}%
\setbox\SB@box\vbox\bgroup%
\ifvnumbered%
\protected@edef\@currentlabel{\p@versenum\theversenum}%
\def\SB@everypar{%
\setbox\SB@box\hbox{%
\printversenum{\versenumstyle{versenum}}%
\printversenum{\theversenum}%
}%
\ifdim\wd\SB@box<\versenumwidth%
\setbox\SB@box%
@ -1528,7 +1550,9 @@
}
\newcommand\musicnote[1]{\ifchorded\textnote{#1}\fi}
\ifSB@etex
\newcommand\echo[1]{%
\newcommand\echo{\begingroup\@sanitize\SB@echo}
\newcommand\SB@echo[1]{%
\endgroup%
\begingroup%
\ifdim\fontdimen\@ne\font>\z@\upshape\else\slshape\fi%
\endlinechar-1 %
@ -1843,6 +1867,31 @@
\mbar\SB@metertop\SB@meterbot%
\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@brokenword
\newtoks\SB@lyric
@ -1857,7 +1906,9 @@
\catcode`!7
\gdef\SB@setchord#1{%
\SB@gettabindtrue\SB@nohattrue%
\setbox\SB@chordbox\hbox{\begingroup%
\setbox\SB@chordbox\hbox{%
\unhbox\SB@chordbox%
\begingroup%
\ifSB@trackch%
\def\SB@activehat{\ifmmode!\else\global\SB@nohatfalse\fi}%
\else%
@ -1866,8 +1917,14 @@
}%
\fi%
\let^\SB@activehat%
\printchord{\vphantom/\transposehere{#1}\kern.2em}%
\endgroup}%
\printchord{%
\ifSB@firstchord\else\kern.15em\fi%
\vphantom/%
\transposehere{#1}%
\kern.2em%
}%
\endgroup%
}%
\SB@gettabindfalse%
\ifSB@trackch\ifSB@nohat%
\global\SB@creg\expandafter{\the\SB@creg#1\\}%
@ -2013,15 +2070,20 @@
\let\SB@endcname\endgroup
\newcommand\SB@nbsp{}
\def\SB@nbsp{\nobreakspace{}}
\newif\ifSB@firstchord\SB@firstchordtrue
\newcommand\SB@@chord{}
\def\SB@@chord#1]{%
\endgroup%
\SB@setchord{#1}%
\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@firstchordfalse%
\let\SB@dothis\SB@chstart%
\SB@chscan%
}
@ -2040,7 +2102,15 @@
}
\newcommand\SB@chmain{\SB@dothis\SB@donext}
\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%
\else\ifx\SB@next'%
\let\SB@donext\SB@chstep%
@ -2049,9 +2119,10 @@
\else%
\the\SB@lyric%
\SB@lyric{}%
\SB@firstchordtrue%
\let\SB@dothis\SB@chnorm%
\SB@chnorm%
\fi\fi\fi%
\fi\fi\fi\fi\fi\fi\fi%
}
\newcommand\SB@chnorm{%
\ifcat\noexpand\SB@next A%
@ -2656,35 +2727,38 @@
\newcommand\SB@indexlist{}
\newcommand\SB@newindex[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%
\newwrite\SB@theindex%
\immediate\openout\SB@theindex=#4.sxd%
#2%
\global\expandafter\let\csname SB@index@#3\endcsname\SB@theindex%
\immediate\openout\SB@theindex=#3.sxd%
#1%
\global\expandafter\let\csname SB@index@#2\endcsname\SB@theindex%
\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
\newcommand\SB@titleinit{%
\immediate\write\SB@theindex{TITLE INDEX DATA FILE}%
}
\newcommand\newscripindex[2]{%
\AtBeginDocument{\SB@newindex2\SB@scripinit{#1}{#2}}%
}
\newcommand\newscripindex{\SB@newindex2\SB@scripinit}
\@onlypreamble\newscripindex
\newcommand\SB@scripinit{%
\immediate\write\SB@theindex{SCRIPTURE INDEX DATA FILE}%
}
\newcommand\newauthorindex[2]{%
\AtBeginDocument{\SB@newindex3\SB@authinit{#1}{#2}}%
}
\newcommand\newauthorindex{\SB@newindex3\SB@authinit}
\@onlypreamble\newauthorindex
\newcommand\SB@authinit{%
\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{}
{\catcode`\%=12\gdef\SB@percent{%}}
\newcommand\SB@idxcmd[2]{%
@ -2700,28 +2774,30 @@
\@onlypreamble\authignoreword
\newcommand\titleprefixword[1]{\SB@idxcmd\SB@titleinit{prefix #1}}
\@onlypreamble\titleprefixword
\newbox\SB@songwrites
\newcommand\SB@addtoindex[2]{%
\global\setbox\SB@songwrites\vbox{%
\unvbox\SB@songwrites%
\ifSB@genindexes%
\immediate\write#1{#2}%
\immediate\write#1{\songnumstyle{songnum}}%
\immediate\write#1{%
song\arabic{SB@songsnum}-\songnumstyle{songnum}.%
\protected@write{\csname SB@index@#1\endcsname}{}{#2}%
\protected@write{\csname SB@index@#1\endcsname}{}%
{\csname SB@idxref@#1\endcsname}%
\protected@write{\csname SB@index@#1\endcsname}{}{%
song\arabic{SB@songsnum}-\thesongnum.%
\ifnum\arabic{section}=0 1\else2\fi}%
\fi%
}%
}
\newcommand\SB@addtoindexes[3]{%
\@for\SB@temp:=\SB@indexlist\do{%
\csname SB@idxsel@\SB@temp\endcsname{\SB@toks\expandafter{#1}}%
{\SB@toks\expandafter{#2}}{\SB@toks\expandafter{#3}}%
\SB@addtoindex{\csname SB@index@\SB@temp\endcsname}{\the\SB@toks}%
\SB@addtoindex\SB@temp%
{\csname SB@idxsel@\SB@temp\endcsname{#1}{#2}{#3}}%
}%
}
\newcommand\SB@addtotitles[1]{%
\SB@toks{#1}%
\@for\SB@temp:=\SB@indexlist\do{%
\csname SB@idxsel@\SB@temp\endcsname{%
\SB@addtoindex{\csname SB@index@\SB@temp\endcsname}{\the\SB@toks}%
}{}{}%
\csname SB@idxsel@\SB@temp\endcsname%
{\SB@addtoindex\SB@temp{#1}}{}{}%
}%
}
\newcommand\SB@chkidxlst{%
@ -2754,63 +2830,88 @@
\newcommand\SB@idxlineskip[1]{%
\vskip#1\p@\@plus#1\p@\@minus#1\p@%
}
\newcommand\SB@multiline{%
\newcommand\SB@multiline[2]{%
\begingroup%
\hbadness\@M\hfuzz\maxdimen%
\SB@dimenii\hsize%
\advance\SB@dimenii-\SB@dimen%
\SB@dimeniii\SB@dimenii%
\advance\SB@dimeniii-\wd\SB@box%
\SB@dimen-\SB@dimen%
\advance\SB@dimen\hsize%
\SB@dimenii-\SB@dimenii%
\advance\SB@dimenii\SB@dimen%
\leftskip.5cm%
\interlinepenalty\@M%
\parshape\tw@\z@\hsize\SB@dimenii\SB@dimen\relax%
\noindent\unhcopy\SB@box%
\leaders\hbox to.5em{\hss.\hss}\hskip\SB@dimeniii\@plus1fil%
\unhcopy\SB@boxii%
\par%
{\hskip-.5cm\relax#1\unskip\nobreak%
\SB@maxmin\SB@dimenii<{1.5em}%
\leaders\hbox to.5em{\hss.\hss}\hskip\SB@dimenii\@plus1fill%
\nobreak{#2\kern-2em}%
\rightskip2em\@plus1fil\par%
\global\SB@cnt\badness}%
\endgroup%
}%
\newcommand\SB@balancerows{%
\SB@dimen\hsize%
\advance\SB@dimen-\wd\SB@box%
\advance\SB@dimen-2em%
\settoheight\SB@dimenii{\vbox{\SB@multiline}}%
\newcommand\SB@balancerows[2]{%
\setbox\SB@box\vbox{%
\SB@multiline{\hbadness\@M\hfuzz\maxdimen#1}{#2}%
}%
\SB@dimeniii.5\SB@dimen%
\SB@dimeniv\SB@dimeniii%
\loop%
\SB@dimeniv.5\SB@dimeniv%
\settoheight\SB@dimenv{\vbox{%
\setbox\SB@boxii\vbox{%
\SB@dimen\SB@dimeniii%
\SB@multiline%
}}%
\ifdim\SB@dimenv>\SB@dimenii%
\SB@multiline{\hbadness\@M\hfuzz\maxdimen#1}{#2}%
}%
\ifnum\SB@cnt<\@M%
\ifdim\ht\SB@boxii>\ht\SB@box%
\advance\SB@dimeniii\SB@dimeniv%
\else%
\SB@dimen\SB@dimeniii%
\advance\SB@dimeniii-\SB@dimeniv%
\fi%
\else%
\advance\SB@dimeniii\SB@dimeniv%
\fi%
\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]{%
\begingroup%
\setbox\SB@box\hbox{#1}%
\setbox\SB@boxii\hbox{#2}%
\SB@dimen\wd\SB@box%
\advance\SB@dimen2em%
\advance\SB@dimen\wd\SB@boxii%
\ifdim\SB@dimen>\hsize%
\SB@balancerows%
\else%
\hbox to\hsize{%
\SB@dimen\z@%
\setbox\SB@box\hbox{%
{#1\leaders\hbox to.5em{\hss.\hss}\hskip2em\@plus1fil{#2}}%
}%
\ifdim\wd\SB@box>\hsize%
\setbox\SB@box\vbox{%
\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%
\leaders\hbox to.5em{\hss.\hss}\hfil%
\unhbox\SB@boxii%
}\par%
\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%
\hbox to\hsize{\unhbox\SB@box}\par%
\fi%
\endgroup%
}
\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]{}{}
\newcommand\idxentry[2]{}
@ -2819,9 +2920,10 @@
\newenvironment{SB@smidx}[1]{}{}
\newcommand\SB@idxsetup[1]{%
\hsize\textwidth%
\parskip\z@skip\parfillskip\z@skip%
\parskip\z@skip\parfillskip\z@skip\parindent\z@%
\baselineskip\f@size\p@\@plus\p@\@minus\p@%
\lineskiplimit\z@\lineskip\p@\@plus\p@\@minus\p@%
\hyphenpenalty\@M\exhyphenpenalty\@M%
\ifnum\SB@numcols>\@ne%
\advance\hsize\columnsep%
\advance\hsize-#1\columnsep%
@ -2851,9 +2953,9 @@
\let\SB@temp\songchapter%
\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\relax\let\hyperlink\@secondoftwo\fi%
\global\setbox\SB@box\vbox{%
@ -2868,7 +2970,7 @@
\renewenvironment{idxblock}[1]%
{\begin{SB@smidx}{####1}}{\end{SB@smidx}}%
\let\\\SB@idxitemsep%
\input{\csname SB@idxfilename@#2\endcsname.sbx}%
\input{\csname SB@idxfilename@#3\endcsname.sbx}%
}%
\hfil%
}%
@ -2884,16 +2986,16 @@
\renewenvironment{idxblock}[1]%
{\begin{SB@lgidx}{####1}}{\end{SB@lgidx}}%
\let\\\SB@idxitemsep%
\SB@idxsetup{#3}%
\input{\csname SB@idxfilename@#2\endcsname.sbx}%
\SB@idxsetup{#1}%
\input{\csname SB@idxfilename@#3\endcsname.sbx}%
\unskip%
}%
\SB@toks{\SB@makeidxcolumn{#3}}%
\SB@toks{\SB@makeidxcolumn{#1}}%
\ifnum\SB@numcols>\@ne%
\SB@cnt#3\relax%
\SB@cnt#1\relax%
\loop\ifnum\SB@cnt>\@ne%
\SB@toks\expandafter{\the\SB@toks%
\kern\columnsep\SB@makeidxcolumn{#3}}%
\kern\columnsep\SB@makeidxcolumn{#1}}%
\advance\SB@cnt\m@ne%
\repeat%
\fi%
@ -2915,7 +3017,7 @@
\vfil\break%
\repeat%
\SB@dimenii\ht\SB@boxii%
\divide\SB@dimenii#3\relax%
\divide\SB@dimenii#1\relax%
\SB@maxmin\SB@dimen>\SB@dimenii%
\loop%
\global\setbox\SB@box\copy\SB@boxii%
@ -2939,43 +3041,49 @@
\cleardoublepage%
\endgroup\fi%
}
\newcommand\showindex[2]{%
\@ifundefined{SB@idxsel@#2}{\SB@errnoidx{#2}}{%
\csname SB@idxsel@#2\endcsname%
\SB@makesongindex\SB@makescripindex\SB@makeauthorindex%
{#1}{#2}%
\newcommand\showindex[3][0]{%
\@ifundefined{SB@idxsel@#3}{\SB@errnoidx{#3}}{%
\expandafter\let\expandafter\SB@temp\csname SB@idxsel@#3\endcsname%
\SB@cnt#1\relax%
\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]{
\parindent\z@%
\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%
}{\penalty-50\vskip5\p@\@plus5\p@\@minus4\p@}%
\renewenvironment{SB@smidx}[1]{}{}%
\renewcommand\idxentry[2]{%
\SB@ellipspread{\sffamily\slshape\ignorespaces##1\unskip}{##2}%
\SB@ellipspread{\idxtitlefont\relax\ignorespaces##1\unskip}%
{\idxrefsfont\relax##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\idxcont[1]{#1 {\mdseries(continued)}}
\newcommand\SB@idxcont[1]{%
\hbox to\hsize{\small\bfseries\idxcont{#1}\hfil}%
\hbox to\hsize{\idxcont{#1}\hfil}%
\nobreak%
\ifdim\prevdepth>4\p@\prevdepth4\p@\fi%
\vskip-\prevdepth%
\vskip4\p@\@plus\p@\@minus\p@\nointerlineskip%
}
\newcommand\SB@makescripindex[2]{%
\newcommand\SB@makescripindex{%
\renewenvironment{SB@lgidx}[1]{%
\gdef\SB@idxcolhead{##1}%
\hbox to\hsize{\small\bfseries##1\hfil}%
\hbox to\hsize{\idxbook{##1}\hfil}%
\nobreak%
\ifdim\prevdepth>4\p@\prevdepth4\p@\fi%
\vskip-\prevdepth%
@ -2987,22 +3095,23 @@
\renewenvironment{SB@smidx}[1]
{\begin{SB@lgidx}{##1}}{\end{SB@lgidx}}%
\renewcommand\idxentry[2]{%
\parindent.25cm%
\SB@ellipspread{\sffamily\small\slshape\indent##1}{##2}%
\SB@ellipspread{\hskip.25cm\idxscripfont\relax##1}%
{\idxrefsfont\relax##2}%
\SB@toks\expandafter{\SB@idxcolhead}%
\mark{\noexpand\SB@idxcont{\the\SB@toks}}%
}%
\renewcommand\idxaltentry[2]{\SB@erridx{a scripture}}%
\SB@displayindex{#1}{#2}{3}%
\SB@displayindex%
}
\newcommand\SB@makeauthorindex[2]{%
\renewenvironment{SB@lgidx}[1]{\parindent\z@}{}%
\renewenvironment{SB@smidx}[1]{\parindent\z@}{}%
\newcommand\SB@makeauthorindex{%
\renewenvironment{SB@lgidx}[1]{}{}%
\renewenvironment{SB@smidx}[1]{}{}%
\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}}%
\SB@displayindex{#1}{#2}{2}%
\SB@displayindex%
}
\newcommand\SB@Error{\PackageError{songs}}
\newcommand\SB@Warn{\PackageWarning{songs}}
@ -3016,13 +3125,13 @@
\PackageWarning{songs}{Indexes shown but index-generation inh%
ibited. Index files may be out of date.}{Indexes were initial%
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%
n the document body using \protect\indexeson, which means th%
e indexes shown in the resulting document are being created f%
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%
lliary files will be updated.}%
liary files will be updated.}%
}
\newcommand\SB@errrtopt{%
\SB@Error{Cannot display chords in a rawtext dump}{You have u%
@ -3037,26 +3146,26 @@
\newcommand\SB@errboo{%
\SB@Error{Encountered \protect\beginsong\space without seein%
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.}%
}
\newcommand\SB@errbor{%
\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%
g \songnumstyle{songnum} might be missing a%
g \thesongnum\space might be missing a%
n \protect\endscripture\space line.}%
}
\newcommand\SB@erreov{%
\SB@Error{Encountered \protect\endsong\space without seein%
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.}%
}
\newcommand\SB@erreoc{%
\SB@Error{Encountered \protect\endsong\space without seein%
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.}%
}
\newcommand\SB@erreor{%
@ -3075,13 +3184,13 @@
\newcommand\SB@errbvv{%
\SB@Error{Encountered \protect\beginverse\space without seein%
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.}%
}
\newcommand\SB@errbvc{%
\SB@Error{Encountered \protect\beginverse\space without seein%
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.}%
}
\newcommand\SB@errbvt{%
@ -3092,13 +3201,13 @@
}
\newcommand\SB@errevc{%
\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%
n \protect\endverse\space instead of an \protect\endchorus.}%
}
\newcommand\SB@errevo{%
\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%
g \protect\beginverse.}%
}
@ -3117,31 +3226,31 @@
\newcommand\SB@errbcv{%
\SB@Error{Encountered \protect\beginchorus\space without see%
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%
ing \protect\endverse.}%
}
\newcommand\SB@errbcc{%
\SB@Error{Encountered \protect\beginchorus\space without see%
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.}%
}
\newcommand\SB@errbct{%
\SB@Error{Encountered \protect\beginchorus\space without see%
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.}%
}
\newcommand\SB@errecv{%
\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%
\space instead of \protect\endverse.}%
}
\newcommand\SB@erreco{%
\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%
ing \protect\beginchorus.}%
}
@ -3153,7 +3262,7 @@
}
\newcommand\SB@errbro{%
\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.}%
}
\newcommand\SB@errbrr{%
@ -3164,7 +3273,7 @@
}
\newcommand\SB@errero{%
\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\endsong.}%
}
@ -3181,7 +3290,7 @@
d \protect\endscripture\space lines.}%
}
\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%
nd lyrics should appear between \protect\beginverse\space%
and \protect\endverse, or between \protect\beginchorus\space%
@ -3189,7 +3298,7 @@
}
\newcommand\SB@errreplay{%
\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.}%
}
\newcommand\SB@errreg[1]{%
@ -3202,7 +3311,7 @@
me chord-replay register twice.}%
}
\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%
sure bars (produced with \protect\mbar\space or |) must ap%
pear between \protect\beginverse\space an%
@ -3280,7 +3389,7 @@
\catcode`^9 %
\def\[##1]{}%
\resettitles%
\immediate\write\SB@txtout{\songnumstyle{songnum}. \songtitle}%
\immediate\write\SB@txtout{\thesongnum. \songtitle}%
\nexttitle%
\foreachtitle{\immediate\write\SB@txtout{(\songtitle)}}%
\ifx\songauthors\@empty\else%

Loading…
Cancel
Save