Browse Source

Merge pull request #256 from Grahack/new_songs.sty

Add songs.sty of july 2017
toolchain-overview
Prof Gra 7 years ago
committed by GitHub
parent
commit
30eb8d6243
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 247
      patacrep/data/templates/styles/songs.sty

247
patacrep/data/templates/styles/songs.sty

@ -8,7 +8,7 @@
%% %%
%% This is a generated file. %% This is a generated file.
%% %%
%% Copyright (C) 2015 by Kevin W. Hamlen %% Copyright (C) 2017 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}
[2015/08/18 v2.18 Songs package] [2017/07/16 v3.1a Songs package]
\newif\ifSB@etex \newif\ifSB@etex
\ifx\eTeXversion\undefined\else \ifx\eTeXversion\undefined\else
\ifx\eTeXversion\relax\else \ifx\eTeXversion\relax\else
@ -347,7 +347,7 @@
\setbox\SB@temp\vsplit#2to#4\relax% \setbox\SB@temp\vsplit#2to#4\relax%
\ifvoid#2% \ifvoid#2%
\ifnum#1=\z@% \ifnum#1=\z@%
\global\setbox#2\vbox{\unvbox\SB@tempii\unskip}% \global\setbox#2\box\SB@tempii%
\else% \else%
\SB@updatepage% \SB@updatepage%
\global\advance#3\@ne% \global\advance#3\@ne%
@ -361,6 +361,7 @@
\fi\fi% \fi\fi%
\fi% \fi%
\repeat% \repeat%
\ifnum#1=\z@\global\setbox#2\vbox{\unvbox#2\unskip}\fi%
\endgroup\fi% \endgroup\fi%
} }
\newcommand\SB@migrate[1]{% \newcommand\SB@migrate[1]{%
@ -637,14 +638,10 @@
\SB@styppage% \SB@styppage%
\endgroup% \endgroup%
} }
\newcommand\SB@songlistbrk{} \newcommand*\SB@songlistbrk{brk}
\def\SB@songlistbrk{brk} \newcommand*\SB@songlistnc{nextcol}
\newcommand\SB@songlistnc{} \newcommand*\SB@songlistcp{sclearpage}
\def\SB@songlistnc{nextcol} \newcommand*\SB@songlistcdp{scleardpage}
\newcommand\SB@songlistcp{}
\def\SB@songlistcp{sclearpage}
\newcommand\SB@songlistcdp{}
\def\SB@songlistcdp{scleardpage}
\newcommand\commitsongs{% \newcommand\commitsongs{%
\ifpartiallist% \ifpartiallist%
\ifnum\SB@numcols>\z@% \ifnum\SB@numcols>\z@%
@ -759,8 +756,7 @@
\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#3{\\#2}\global#4{#1}} \def\SB@@lop\\#1\\#2\SB@@lop#3#4{\global#3{\\#2}\global#4{#1}}
\newcommand\SB@emptylist{} \newcommand*\SB@emptylist{\\}
\def\SB@emptylist{\\}
\newcommand\SB@ifempty[3]{% \newcommand\SB@ifempty[3]{%
\edef\SB@temp{\the#1}% \edef\SB@temp{\the#1}%
\ifx\SB@temp\SB@emptylist#2\else#3\fi% \ifx\SB@temp\SB@emptylist#2\else#3\fi%
@ -1354,12 +1350,9 @@
\newmarks\SB@nocmarkclass \newmarks\SB@nocmarkclass
} }
\fi \fi
\newcommand\SB@cmark{} \newcommand*\SB@cmark{SB@cmark}
\def\SB@cmark{SB@cmark} \newcommand*\SB@lastcmark{SB@lastcmark}
\newcommand\SB@lastcmark{} \newcommand*\SB@nocmark{SB@nocmark}
\def\SB@lastcmark{SB@lastcmark}
\newcommand\SB@nocmark{}
\def\SB@nocmark{SB@nocmark}
\newenvironment{chorus}{\beginchorus}{\SB@endchorus} \newenvironment{chorus}{\beginchorus}{\SB@endchorus}
\newcommand\beginchorus{% \newcommand\beginchorus{%
\ifSB@insong \ifSB@insong
@ -2099,18 +2092,15 @@
\newcommand\SB@setchord{} \newcommand\SB@setchord{}
{ {
\catcode`^\active \catcode`^\active
\catcode`!7
\gdef\SB@setchord#1{% \gdef\SB@setchord#1{%
\SB@gettabindtrue\SB@nohattrue% \SB@gettabindtrue\SB@nohattrue%
\setbox\SB@chordbox\hbox{% \setbox\SB@chordbox\hbox{%
\unhbox\SB@chordbox% \unhbox\SB@chordbox%
\begingroup% \begingroup%
\ifSB@trackch% \ifSB@trackch%
\def\SB@activehat{\ifmmode!\else\global\SB@nohatfalse\fi}% \let\SB@activehat\SB@hat@tr%
\else% \else%
\def\SB@activehat{% \let\SB@activehat\SB@hat@notr%
\ifmmode!\else\SB@lop\SB@ctail\SB@toks\the\SB@toks\fi%
}%
\fi% \fi%
\let^\SB@activehat% \let^\SB@activehat%
\printchord{% \printchord{%
@ -2267,8 +2257,7 @@
} }
\newcommand\SB@endcname{} \newcommand\SB@endcname{}
\let\SB@endcname\endgroup \let\SB@endcname\endgroup
\newcommand\SB@nbsp{} \newcommand*\SB@nbsp{\nobreakspace{}}
\def\SB@nbsp{\nobreakspace{}}
\newif\ifSB@firstchord\SB@firstchordtrue \newif\ifSB@firstchord\SB@firstchordtrue
\newcommand*\SB@@chord{} \newcommand*\SB@@chord{}
\def\SB@@chord#1]{% \def\SB@@chord#1]{%
@ -2600,7 +2589,8 @@
\advance\SB@dimen.5em% \advance\SB@dimen.5em%
\hbox to\SB@dimen{\unhbox\SB@chordbox\hfil}% \hbox to\SB@dimen{\unhbox\SB@chordbox\hfil}%
\hbox to\SB@dimen{% \hbox to\SB@dimen{%
\unhcopy\SB@lyricbox\hfil\char\hyphenchar\font\hfil% \unhcopy\SB@lyricbox\hfil
\ifnum\hyphenchar\font>\m@ne\char\hyphenchar\font\hfil\fi%
}% }%
\global\SB@cnt\@m% \global\SB@cnt\@m%
\gdef\SB@temp{\expandafter\SB@clearlig\SB@ligpost}% \gdef\SB@temp{\expandafter\SB@clearlig\SB@ligpost}%
@ -2676,6 +2666,15 @@
\newcommand\SB@activehat{% \newcommand\SB@activehat{%
\ifmmode^\else\expandafter\SB@rechord\fi% \ifmmode^\else\expandafter\SB@rechord\fi%
} }
\newcommand\SB@hat@tr{%
\ifmmode^\else\global\SB@nohatfalse\fi%
}
\newcommand\SB@hat@notr{%
\ifmmode^\else%
\SB@lop\SB@ctail\SB@toks%
\expandafter\transposehere\expandafter{\the\SB@toks}%
\fi%
}
\newcommand\SB@loadactives{} \newcommand\SB@loadactives{}
{ {
\catcode`&\active \catcode`&\active
@ -2750,7 +2749,9 @@
\sffamily\fontsize\@xpt\@xpt\selectfont#1% \sffamily\fontsize\@xpt\@xpt\selectfont#1%
}} }}
\newcommand\SB@onfret[1]{% \newcommand\SB@onfret[1]{%
\rlap{\hbox to\SB@fretwidth{\hfil\vrule\@height6\p@\hfil}}% \kern.5\SB@fretwidth\kern-.2\p@%
\vrule\@height6\p@%
\kern-.2\p@\kern-.5\SB@fretwidth%
\hbox to\SB@fretwidth{\hfil#1\hfil}% \hbox to\SB@fretwidth{\hfil#1\hfil}%
} }
\newcommand\SB@atopfret[1]{% \newcommand\SB@atopfret[1]{%
@ -2785,56 +2786,131 @@
\fontsize\@xpt\@xpt\selectfont\char14% \fontsize\@xpt\@xpt\selectfont\char14%
}% }%
}} }}
\newcommand\SB@fretempty{\SB@onfret\relax} \newcommand\SB@do[1]{}
\newcommand\SB@frethit{\SB@onfret{% \newcommand\SB@doify[2]{%
\hbox{% \SB@toks{}%
\edef#1{#2}%
\expandafter\SB@@doify#1\SB@@doify%
\edef#1{\the\SB@toks}%
}
\newcommand\SB@@doify[1]{%
\ifx#1\SB@@doify\else%
\SB@toks\expandafter{\the\SB@toks\SB@do{#1}}%
\expandafter\SB@@doify%
\fi%
}
\newcommand\SB@allbarres{}
\newcommand\SB@dobarre{}
\newcommand\SB@barreI{\noexpand\SB@barreI}
\newcommand\SB@barreN{\noexpand\SB@barreN}
\newcommand\SB@barreY{\noexpand\SB@barreY}
\newcommand\SB@lowfret{%
\let\SB@dobarre\SB@@lowfret\SB@allbarres%
\SB@fretempty%
}
\newcommand\SB@@lowfret[3]{{%
\let\SB@barreI\SB@barreN%
\let\SB@barreY\SB@barreN%
\xdef#1{#1}%
}}
\newcommand\SB@bactivate[3]{{%
\let\SB@barreI\SB@barreY%
\xdef#1{#1}%
}}
\newcommand\SB@bbarre[1]{%
\xdef#1{\SB@barreI{\the\SB@cntii}#1}%
}
\newcommand\SB@ebarre[3]{%
\ifx#1\@empty%
\ifnum\SB@cnt=\@ne\SB@errebar#2#3\fi%
\else%
\expandafter\SB@@ebarre#1\SB@@ebarre#1%
\fi%
}
\newcommand\SB@@ebarre{}
\def\SB@@ebarre#1#2#3\SB@@ebarre#4{{%
\gdef#4{#3}%
\let\SB@barreI\@gobble%
\let\SB@barreN\@gobble%
\let\SB@barreY\SB@barre%
#1{#2}%
}}
\newcommand\SB@barreson[3]{%
\def#2{\SB@bbarre#1}%
\def#3{\SB@ebarre#1#2#3}%
}
\newcommand\SB@barresoff[3]{\let#2\relax\let#3\relax}
\newcommand\SB@fretempty{%
\advance\SB@cntii\@ne%
\SB@onfret\relax%
}
\newcommand\SB@fretdot{%
\advance\SB@cntii\@ne%
\let\SB@dobarre\SB@bactivate\SB@allbarres%
\SB@@fretdot%
}
\newcommand\SB@@fretdot{%
\SB@onfret{%
\fontencoding{OMS}\fontfamily{cmsy}% \fontencoding{OMS}\fontfamily{cmsy}%
\fontseries{m}\fontshape{n}% \fontseries{m}\fontshape{n}%
\fontsize\@xiipt\@xiipt\selectfont\char15% \fontsize\@xiipt\@xiipt\selectfont\char15%
}% }%
}
\newcommand\SB@barre[1]{{%
\SB@dimen\SB@fretwidth%
\multiply\SB@dimen\SB@cntii%
\advance\SB@dimen-#1\SB@fretwidth%
\kern-\SB@dimen%
\SB@@fretdot%
\kern-.5\SB@fretwidth%
\advance\SB@dimen-\SB@fretwidth%
\raise.7pt\hbox{\vrule\@height4.6\p@\@width\SB@dimen}%
\kern-.5\SB@fretwidth%
\SB@@fretdot%
}} }}
\newcommand\SB@fretend{{%
\let\SB@barreI\@gobble%
\let\SB@barreN\@gobble%
\let\SB@barreY\SB@barre%
\def\SB@dobarre##1##2##3{##1\gdef##1{}}\SB@allbarres%
}}
\newcommand*\SB@X{X}
\newcommand*\SB@Z{0}
\newcommand*\SB@O{O}
\newcommand\SB@finger[1]{% \newcommand\SB@finger[1]{%
\def\SB@temp{#1}%
\ifx\SB@temp\SB@X\SB@topempty\else%
\ifx\SB@temp\SB@Z\SB@topempty\else%
\ifx\SB@temp\SB@O\SB@topempty\else%
\SB@atopfret{\sffamily\fontsize\@vipt\@vipt\selectfont#1}% \SB@atopfret{\sffamily\fontsize\@vipt\@vipt\selectfont#1}%
\fi\fi\fi%
} }
\newif\ifSB@gettabind\SB@gettabindfalse \newif\ifSB@gettabind\SB@gettabindfalse
\SB@newdimen\SB@tabindent \SB@newdimen\SB@tabindent
\newcommand\SB@targfret{} \newcommand\SB@targfret{}
\newcommand\SB@targstr{} \newcommand\SB@targstr{}
\newcommand\SB@targfing{} \newcommand\SB@targfing{}
\newcommand\SB@csify[2]{%
\SB@toks{}%
\SB@cnt\z@%
\SB@@csify#2\SB@@csify%
\edef#1{\the\SB@toks}%
}
\newcommand\SB@@csify[1]{%
\ifx#1\SB@@csify\else%
\advance\SB@cnt\@ne%
\SB@toks\expandafter{\the\SB@toks\csname#1\endcsname}%
\expandafter\SB@@csify%
\fi%
}
\newcommand\SB@gttop{%
\let\X\SB@topX\let\0\SB@topO\let\O\0\let\1\SB@topempty%
\let\2\1\let\3\1\let\4\1\let\5\1%
\let\6\1\let\7\1\let\8\1\let\9\1%
}
\newcommand\SB@gtinit{% \newcommand\SB@gtinit{%
\let\X\SB@fretempty\let\0\X\let\O\X\let\1\SB@frethit% \def\SB@do##1{\csname##1\endcsname}%
\let\2\X\let\3\X\let\4\X\let\5\X% \let\O\0%
\let\6\X\let\7\X\let\8\X\let\9\X% \let\3\2\let\4\2\let\5\2\let\6\2%
\let\7\2\let\8\2\let\9\2%
} }
\newcommand\SB@gtinc{% \newcommand\SB@gtinc{%
\advance\SB@cnt\@ne%
\let\9\8\let\8\7\let\7\6\let\6\5\let\5\4% \let\9\8\let\8\7\let\7\6\let\6\5\let\5\4%
\let\4\3\let\3\2\let\2\1\let\1\0% \let\4\3\let\3\2\let\2\1\let\1\SB@lowfret%
} }
\newcommand\SB@gtset[2]{% \newcommand\BarreDelims[2]{%
\let\X#1\let\0\X\let\O\X% \expandafter\SB@bdelims\csname SB@bs@#1#2\expandafter\endcsname%
\def\1{#21}\def\2{#22}\def\3{#23}% \csname#1\expandafter\endcsname\csname#2\endcsname%
\def\4{#24}\def\5{#25}\def\6{#26}%
\def\7{#27}\def\8{#28}\def\9{#29}%
} }
\newcommand\SB@gtmax[1]{\ifnum\SB@cnt<#1\SB@cnt#1\fi} \newcommand\SB@bdelims[3]{%
\newcommand*#1{}%
\SB@app\def\SB@allbarres{\SB@dobarre#1#2#3}%
}
\BarreDelims()
\BarreDelims[]
\newcommand\gtab{\SB@begincname\SB@gtab} \newcommand\gtab{\SB@begincname\SB@gtab}
\newcommand*\SB@gtab[1]{% \newcommand*\SB@gtab[1]{%
\SB@endcname% \SB@endcname%
@ -2869,7 +2945,13 @@
\thinspace{\printchord{\transposehere{#1}\strut}}\thinspace% \thinspace{\printchord{\transposehere{#1}\strut}}\thinspace%
}% }%
\setbox\SB@boxii\hbox{\SB@fretnum{\SB@targfret}}% \setbox\SB@boxii\hbox{\SB@fretnum{\SB@targfret}}%
\setbox\SB@boxiii\hbox{{\SB@gttop\SB@targstr}}% \setbox\SB@boxiii\hbox{{%
\let\X\SB@topX\let\0\SB@topO%
\let\1\SB@topempty\let\2\1%
\SB@gtinit%
\let\SB@dobarre\SB@barresoff\SB@allbarres%
\SB@targstr%
}}%
\hsize\wd\SB@box% \hsize\wd\SB@box%
\ifSB@gettabind% \ifSB@gettabind%
\global\SB@tabindent\wd\SB@boxii% \global\SB@tabindent\wd\SB@boxii%
@ -2894,18 +2976,20 @@
\vtop{% \vtop{%
\SB@dimen\wd\SB@boxiii% \SB@dimen\wd\SB@boxiii%
\box\SB@boxiii% \box\SB@boxiii%
\SB@cnt\minfrets% \let\X\SB@fretempty\let\0\X%
\SB@gtset\relax\SB@gtmax\SB@targstr% \let\1\SB@fretdot\def\2{\SB@fretempty\global\SB@testtrue}%
\SB@gtinit% \SB@gtinit%
\let\SB@dobarre\SB@barreson\SB@allbarres%
\SB@cnt\@ne%
\loop% \loop%
\SB@fretbar\hbox{\SB@targstr}% \SB@testfalse%
\advance\SB@cnt\m@ne% \SB@fretbar\hbox{\SB@cntii\z@\SB@targstr\SB@fretend}%
\ifnum\SB@cnt>\z@\SB@gtinc\repeat% \ifnum\SB@cnt<\minfrets\SB@testtrue\fi%
\ifSB@test\SB@gtinc\repeat%
\SB@fretbar% \SB@fretbar%
\ifx\SB@targsfing\@empty\else% \ifx\SB@targsfing\@empty\else%
\kern1.5\p@% \kern1.5\p@%
\SB@gtset\SB@topempty\SB@finger% \hbox{\let\SB@do\SB@finger\SB@targfing}%
\hbox{\SB@targfing}%
\fi% \fi%
}% }%
\hfil% \hfil%
@ -2919,23 +3003,24 @@
\def\SB@tabargs#1:#2:#3:#4\SB@tabargs{% \def\SB@tabargs#1:#2:#3:#4\SB@tabargs{%
\def\SB@temp{#4}% \def\SB@temp{#4}%
\ifx\SB@temp\@empty% \ifx\SB@temp\@empty%
\SB@csify\SB@targstr{#1}% \SB@doify\SB@targstr{#1}%
\else\ifx\SB@temp\SB@ctoken% \else\ifx\SB@temp\SB@ctoken%
\SB@csify\SB@targstr{#1}% \SB@@tabargs#1\SB@@tabargs%
\ifnum\SB@cnt>\@ne% \ifx\SB@temp\@empty%
\SB@cntii\SB@cnt%
\SB@csify\SB@targfing{#2}%
\SB@cnt\SB@cntii%
\else%
\def\SB@targfret{#1}% \def\SB@targfret{#1}%
\SB@csify\SB@targstr{#2}% \SB@doify\SB@targstr{#2}%
\else%
\SB@doify\SB@targfing{#2}%
\SB@doify\SB@targstr{#1}%
\fi% \fi%
\else% \else%
\def\SB@targfret{#1}% \def\SB@targfret{#1}%
\SB@csify\SB@targfing{#3}% \SB@doify\SB@targfing{#3}%
\SB@csify\SB@targstr{#2}% \SB@doify\SB@targstr{#2}%
\fi\fi% \fi\fi%
} }
\newcommand\SB@@tabargs{}
\def\SB@@tabargs#1#2\SB@@tabargs{\def\SB@temp{#2}}
\newcommand\songchapter{% \newcommand\songchapter{%
\let\SB@temp\@seccntformat% \let\SB@temp\@seccntformat%
\def\@seccntformat##1{}% \def\@seccntformat##1{}%
@ -3662,10 +3747,10 @@
d \protect\endverse, or between \protect\beginchorus\space% d \protect\endverse, or between \protect\beginchorus\space%
and \protect\endchorus.}% and \protect\endchorus.}%
} }
\newcommand\SB@errtab{% \newcommand\SB@errebar[2]{%
\SB@Error{Invalid argument to \protect\gtab\space macro. R% \SB@Error{Ignoring unbalanced \expandafter\@gobble\string#2 i%
eplacing it with \protect\0.}{Valid arguments consist onl% n \protect\gtab}{Found no \expandafter\@gobble\string#1 to ma%
y of: X, O, 0, 1, 2, 3, or 4.}% tch the \expandafter\@gobble\string#2.}%
} }
\newcommand\SB@errnoidx[1]{% \newcommand\SB@errnoidx[1]{%
\SB@Error{Unknown index identifier: #1}{This index identifie% \SB@Error{Unknown index identifier: #1}{This index identifie%

Loading…
Cancel
Save