mirror of https://github.com/patacrep/patacrep.git
Engine for LaTeX songbooks
http://www.patacrep.com
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.
395 lines
12 KiB
395 lines
12 KiB
% Chords package for patacrep songbook
|
|
% Define command \chords to display list of chords, for guitar or ukulele
|
|
\ProvidesPackage{chords}
|
|
\RequirePackage{songs}
|
|
\newcommand*{\Sharp}{\nolinebreak\hspace{-.05em}\raisebox{.6ex}{\,\small\bf \#}}
|
|
\newcommand*{\Flat}{\nolinebreak\hspace{-.05em}\raisebox{.6ex}{\,\small$\mathbf{\flat}$}}
|
|
\newcommand*{\chordname}[1]{\large \textbf{#1}}
|
|
|
|
% Temporary boxes and length
|
|
\newsavebox{\@chordgroupbox@i}
|
|
\newsavebox{\@chordgroupbox@ii}
|
|
\newlength{\@chordgrouplength@i}
|
|
\newlength{\@chordgrouplength@ii}
|
|
|
|
\newcommand{\chordtabs}[3]{
|
|
% Saving chords groups in boxes
|
|
\sbox{\@chordgroupbox@i}{#2}%
|
|
\settowidth{\@chordgrouplength@i}{\usebox{\@chordgroupbox@i}}%
|
|
\sbox{\@chordgroupbox@ii}{#3}%
|
|
\settowidth{\@chordgrouplength@ii}{\usebox{\@chordgroupbox@ii}}%
|
|
% Local command
|
|
\def\pl@cechord##1{%
|
|
\vskip.2ex%
|
|
\raisebox{2em}{\chordname{##1}} %
|
|
} %
|
|
% Placing boxes
|
|
\ifimportantdiagramonly%
|
|
\pl@cechord{#1}%
|
|
\hspace{\stretch{1}}%
|
|
\usebox{\@chordgroupbox@ii}%
|
|
\hspace{\stretch{1}}%
|
|
\vskip.2ex%
|
|
\hrule%
|
|
\else%
|
|
\pl@cechord{#1}%
|
|
\hspace{\stretch{1}}%
|
|
\ifdim \dimexpr\@chordgrouplength@i+\@chordgrouplength@ii\relax > .8\textwidth
|
|
\vbox{\hbox{\usebox{\@chordgroupbox@i}}%
|
|
\hbox{\usebox{\@chordgroupbox@ii}}
|
|
}%
|
|
\else
|
|
\hbox{\usebox{\@chordgroupbox@i}%
|
|
\usebox{\@chordgroupbox@ii}%
|
|
}%
|
|
\fi
|
|
\vskip.2ex%
|
|
\hrule%
|
|
\fi%
|
|
}
|
|
|
|
\newcommand{\chordnameAsharp}{\printnoteA{}\Sharp = \printnoteB{}\Flat}
|
|
\newcommand{\chordnameA}{\printnoteA{}}
|
|
\newcommand{\chordnameB}{\printnoteB{}}
|
|
\newcommand{\chordnameCsharp}{\printnoteC{}\Sharp = \printnoteD{}\Flat}
|
|
\newcommand{\chordnameC}{\printnoteC{}}
|
|
\newcommand{\chordnameDsharp}{\printnoteD{}\Sharp = \printnoteE{}\Flat}
|
|
\newcommand{\chordnameD}{\printnoteD{}}
|
|
\newcommand{\chordnameE}{\printnoteE{}}
|
|
\newcommand{\chordnameFsharp}{\printnoteF{}\Sharp = \printnoteG{}\Flat}
|
|
\newcommand{\chordnameF}{\printnoteF{}}
|
|
\newcommand{\chordnameGsharp}{\printnoteG{}\Sharp = \printnoteA{}\Flat}
|
|
\newcommand{\chordnameG}{\printnoteG{}}
|
|
|
|
\AtBeginDocument{
|
|
% Default names (english)
|
|
\newcommand{\guitarchordsname}{Guitar chords}
|
|
\newcommand{\ukulelechordsname}{Ukulele chords}
|
|
|
|
\IfStrEq{\mainlanguage}{french}{
|
|
% French names
|
|
\renewcommand{\guitarchordsname}{Accords de guitare}
|
|
\renewcommand{\ukulelechordsname}{Accords de ukulélé}
|
|
}{}
|
|
}
|
|
|
|
|
|
\newcommand{\chords}{
|
|
\begin{songs}{}
|
|
%hide song number
|
|
\definecolor{SongNumberBgColor}{HTML}{FFFFFF}
|
|
\renewcommand{\snumbgcolor}{SongNumberBgColor}
|
|
\renewcommand{\printsongnum}[1]{}
|
|
\setlength{\songnumwidth}{0.1cm}
|
|
\songcolumns{1}
|
|
|
|
\ifguitar
|
|
\beginsong{\guitarchordsname}
|
|
\chordtabs{\chordnameC}{
|
|
{\gtab{\printnoteC{}}{~:X32010}}
|
|
{\gtab{\printnoteC{}7}{~:X32310}}
|
|
{\gtab{\printnoteC{}m}{3:X02210}}
|
|
{\gtab{\printnoteC{}m7}{3:X02010}}
|
|
}{
|
|
{\gtab*{\printnoteC{}7M}{~:332000}}
|
|
{\gtab*{\printnoteC{}4}{~:X32011}}
|
|
{\gtab*{\printnoteC{}7}{1:X2120X}}
|
|
{\gtab*{\printnoteC{}6}{~:XX2213}}
|
|
}
|
|
|
|
\chordtabs{\chordnameCsharp}{
|
|
{\gtab{\printnoteC{}\#}{4:X02220}}
|
|
{\gtab{\printnoteC{}\#7}{4:X02020}}
|
|
{\gtab{\printnoteC{}\#m}{4:X02210}}
|
|
{\gtab{\printnoteC{}\#m7}{5:XX2213}}
|
|
}{
|
|
{\gtab*{\printnoteC{}\#7M}{1:X32000}}
|
|
{\gtab*{\printnoteC{}\#4}{2:X21000}}
|
|
{\gtab*{\printnoteC{}\#7}{2:X2120X}}
|
|
{\gtab*{\printnoteC{}\#6}{1:X02010}}
|
|
}
|
|
|
|
\chordtabs{\chordnameD}{
|
|
{\gtab{\printnoteD{}}{~:XX0232}}
|
|
{\gtab{\printnoteD{}7}{~:XX0212}}
|
|
{\gtab{\printnoteD{}m}{~:XX0231}}
|
|
{\gtab{\printnoteD{}m7}{~:XX0211}}
|
|
}{
|
|
{\gtab*{\printnoteD{}7M}{~:X00222}}
|
|
{\gtab*{\printnoteD{}4}{~:X00233}}
|
|
{\gtab*{\printnoteD{}7}{3:X2120X}}
|
|
{\gtab*{\printnoteD{}6}{~:X00202}}
|
|
}
|
|
|
|
\chordtabs{\chordnameDsharp}{
|
|
{\gtab{\printnoteD{}\#}{6:X02220}}
|
|
{\gtab{\printnoteD{}\#7}{6:X02020}}
|
|
{\gtab{\printnoteD{}\#m}{6:X02210}}
|
|
{\gtab{\printnoteD{}\#m7}{~:XX1322}}
|
|
}{
|
|
{\gtab*{\printnoteD{}\#7M}{3:022010}}
|
|
{\gtab*{\printnoteD{}\#4}{4:X21000}}
|
|
{\gtab*{\printnoteD{}\#7}{4:X2120X}}
|
|
{\gtab*{\printnoteD{}\#6}{1:X00202}}
|
|
}
|
|
|
|
\chordtabs{\chordnameE}{
|
|
{\gtab{\printnoteE{}}{~:022100}}
|
|
{\gtab{\printnoteE{}7}{~:020100}}
|
|
{\gtab{\printnoteE{}m}{~:022000}}
|
|
{\gtab{\printnoteE{}m7}{~:022030}}
|
|
}{
|
|
{\gtab*{\printnoteE{}7M}{~:021100}}
|
|
{\gtab*{\printnoteE{}4}{~:02220}}
|
|
{\gtab*{\printnoteE{}7}{5:X2120X}}
|
|
{\gtab*{\printnoteE{}6}{~:022120}}
|
|
}
|
|
|
|
\chordtabs{\chordnameF}{
|
|
{\gtab{\printnoteF{}}{1:022100}}
|
|
{\gtab{\printnoteF{}7}{1:020100}}
|
|
{\gtab{\printnoteF{}m}{1:022000}}
|
|
{\gtab{\printnoteF{}m7}{1:020000}}
|
|
}{
|
|
{\gtab*{\printnoteF{}7M}{~:XX3210}}
|
|
{\gtab*{\printnoteF{}4}{1:022200}}
|
|
{\gtab*{\printnoteF{}7}{6:X2120X}}
|
|
{\gtab*{\printnoteF{}6}{~:XX0211}}
|
|
}
|
|
|
|
\chordtabs{\chordnameFsharp}{
|
|
{\gtab{\printnoteF{}\#}{2:022100}}
|
|
{\gtab{\printnoteF{}\#7}{2:020100}}
|
|
{\gtab{\printnoteF{}\#m}{2:022000}}
|
|
{\gtab{\printnoteF{}\#m7}{2:020000}}
|
|
}{
|
|
{\gtab*{\printnoteF{}\#7M}{~:XX4321}}
|
|
{\gtab*{\printnoteF{}\#4}{2:022200}}
|
|
{\gtab*{\printnoteF{}\#7}{7:X2120X}}
|
|
{\gtab*{\printnoteF{}\#6}{~:XX1322}}
|
|
}
|
|
|
|
\chordtabs{\chordnameG}{
|
|
{\gtab{\printnoteG{}}{~:320003}}
|
|
{\gtab{\printnoteG{}7}{~:320001}}
|
|
{\gtab{\printnoteG{}m}{3:022000}}
|
|
{\gtab{\printnoteG{}m7}{3:020000}}
|
|
}{
|
|
{\gtab*{\printnoteG{}7M}{~:XX0002}}
|
|
{\gtab*{\printnoteG{}4}{3:022200}}
|
|
{\gtab*{\printnoteG{}7}{3:020200}}
|
|
{\gtab*{\printnoteG{}6}{~:320000}}
|
|
}
|
|
|
|
\chordtabs{\chordnameGsharp}{
|
|
{\gtab{\printnoteG{}\#}{4:022100}}
|
|
{\gtab{\printnoteG{}\#7}{4:020100}}
|
|
{\gtab{\printnoteG{}\#m}{4:022000}}
|
|
{\gtab{\printnoteG{}\#m7}{4:020000}}
|
|
}{
|
|
{\gtab*{\printnoteG{}\#7M}{3:XX4321}}
|
|
{\gtab*{\printnoteG{}\#4}{4:022200}}
|
|
{\gtab*{\printnoteG{}\#7}{~:XX1122}}
|
|
{\gtab*{\printnoteG{}\#6}{~:XX1111}}
|
|
}
|
|
|
|
\chordtabs{\chordnameA}{
|
|
{\gtab{\printnoteA{}}{~:X02220}}
|
|
{\gtab{\printnoteA{}7}{~:X02020}}
|
|
{\gtab{\printnoteA{}m}{~:X02210}}
|
|
{\gtab{\printnoteA{}m7}{~:X02213}}
|
|
}{
|
|
{\gtab*{\printnoteA{}7M}{~:X02120}}
|
|
{\gtab*{\printnoteA{}4}{~:X02230}}
|
|
{\gtab*{\printnoteA{}7}{~:X02233}}
|
|
{\gtab*{\printnoteA{}6}{~:XX2222}}
|
|
}
|
|
|
|
\chordtabs{\chordnameAsharp}{
|
|
{\gtab{\printnoteA{}\#}{1:X02220}}
|
|
{\gtab{\printnoteA{}\#7}{1:X02020}}
|
|
{\gtab{\printnoteA{}\#m}{1:X02210}}
|
|
{\gtab{\printnoteA{}\#m7}{1:X02010}}
|
|
}{
|
|
{\gtab*{\printnoteA{}\#7M}{1:X02120}}
|
|
{\gtab*{\printnoteA{}\#4}{1:X02230}}
|
|
{\gtab*{\printnoteA{}\#7}{~:XX3344}}
|
|
{\gtab*{\printnoteA{}\#6}{~:XX3333}}
|
|
}
|
|
|
|
\chordtabs{\chordnameB}{
|
|
{\gtab{\printnoteB{}}{2:X02220}}
|
|
{\gtab{\printnoteB{}7}{X21202}}
|
|
{\gtab{\printnoteB{}m}{2:X02210}}
|
|
{\gtab{\printnoteB{}m7}{~:X00202}}
|
|
}{
|
|
{\gtab*{\printnoteB{}7M}{2:X02120}}
|
|
{\gtab*{\printnoteB{}4}{2:X02230}}
|
|
{\gtab*{\printnoteB{}7}{~:X22202}}
|
|
{\gtab*{\printnoteB{}6}{~:XX4444}}
|
|
}
|
|
\begin{verse*}
|
|
\musicnote[french]{Accordage standard : {\nolyrics \[\printnoteE{} \printnoteA{} \printnoteD{} \printnoteG{} \printnoteB{} \printnoteE{}]}}
|
|
\musicnote[english]{Standard tuning: {\nolyrics \[\printnoteE{} \printnoteA{} \printnoteD{} \printnoteG{} \printnoteB{} \printnoteE{}]}}
|
|
\end{verse*}
|
|
|
|
\endsong
|
|
\fi
|
|
|
|
\ifukulele
|
|
\beginsong{\ukulelechordsname}
|
|
|
|
\chordtabs{\chordnameC}{
|
|
{\utab{\printnoteC{}}{~:0003}}
|
|
{\utab{\printnoteC{}7}{~:0001}}
|
|
{\utab{\printnoteC{}m}{~:0333}}
|
|
{\utab{\printnoteC{}m7}{3:0000}}
|
|
}{
|
|
{\utab*{\printnoteC{}7M}{~:0002}}
|
|
{\utab*{\printnoteC{}6}{~:0000}}
|
|
{\utab*{\printnoteC{}aug}{~:1003}}
|
|
{\utab*{\printnoteC{}dim}{2:3101}}
|
|
}
|
|
|
|
\chordtabs{\chordnameCsharp}{
|
|
{\utab{\printnoteC{}\#}{1:0003}}
|
|
{\utab{\printnoteC{}\#7}{1:0001}}
|
|
{\utab{\printnoteC{}\#m}{~:1104}}
|
|
{\utab{\printnoteC{}\#m7}{4:0000}}
|
|
}{
|
|
{\utab*{\printnoteC{}\#7M}{1:0002}}
|
|
{\utab*{\printnoteC{}\#6}{1:0000}}
|
|
{\utab*{\printnoteC{}\#aug}{~:2110}}
|
|
{\utab*{\printnoteC{}\#dim}{~:0104}}
|
|
}
|
|
|
|
\chordtabs{\chordnameD}{
|
|
{\utab{\printnoteD{}}{~:2220}}
|
|
{\utab{\printnoteD{}7}{2:0001}}
|
|
{\utab{\printnoteD{}m}{~:2210}}
|
|
{\utab{\printnoteD{}m7}{1:1102}}
|
|
}{
|
|
{\utab*{\printnoteD{}7M}{2:0002}}
|
|
{\utab*{\printnoteD{}6}{2:0000}}
|
|
{\utab*{\printnoteD{}aug}{1:2110}}
|
|
{\utab*{\printnoteD{}dim}{1:0104}}
|
|
}
|
|
|
|
\chordtabs{\chordnameDsharp}{
|
|
{\utab{\printnoteD{}\#}{1:2220}}
|
|
{\utab{\printnoteD{}\#7}{3:0001}}
|
|
{\utab{\printnoteD{}\#m}{1:2210}}
|
|
{\utab{\printnoteD{}\#m7}{2:1102}}
|
|
}{
|
|
{\utab*{\printnoteD{}\#7M}{3:0002}}
|
|
{\utab*{\printnoteD{}\#6}{3:0000}}
|
|
{\utab*{\printnoteD{}\#aug}{~:0332}}
|
|
{\utab*{\printnoteD{}\#dim}{~:2320}}
|
|
}
|
|
|
|
\chordtabs{\chordnameE}{
|
|
{\utab{\printnoteE{}}{2:2220}}
|
|
{\utab{\printnoteE{}7}{~:1202}}
|
|
{\utab{\printnoteE{}m}{~:0432}}
|
|
{\utab{\printnoteE{}m7}{~:0202}}
|
|
}{
|
|
{\utab*{\printnoteE{}7M}{~:1302}}
|
|
{\utab*{\printnoteE{}6}{~:1102}}
|
|
{\utab*{\printnoteE{}aug}{1:0000}}
|
|
{\utab*{\printnoteE{}dim}{1:2320}}
|
|
}
|
|
|
|
\chordtabs{\chordnameF}{
|
|
{\utab{\printnoteF{}}{~:2010}}
|
|
{\utab{\printnoteF{}7}{~:2310}}
|
|
{\utab{\printnoteF{}m}{~:1013}}
|
|
{\utab{\printnoteF{}m7}{1:0202}}
|
|
}{
|
|
{\utab*{\printnoteF{}7M}{1:1302}}
|
|
{\utab*{\printnoteF{}6}{1:1102}}
|
|
{\utab*{\printnoteF{}aug}{~:2110}}
|
|
{\utab*{\printnoteF{}dim}{2:2320}}
|
|
}
|
|
|
|
\chordtabs{\chordnameFsharp}{
|
|
{\utab{\printnoteF{}\#}{1:2010}}
|
|
{\utab{\printnoteF{}\#7}{1:2310}}
|
|
{\utab{\printnoteF{}\#m}{~:2120}}
|
|
{\utab{\printnoteF{}\#m7}{2:0202}}
|
|
}{
|
|
{\utab*{\printnoteF{}\#7M}{2:1302}}
|
|
{\utab*{\printnoteF{}\#6}{~:0202}}
|
|
{\utab*{\printnoteF{}\#aug}{1:2110}}
|
|
{\utab*{\printnoteF{}\#dim}{~:2020}}
|
|
}
|
|
|
|
\chordtabs{\chordnameG}{
|
|
{\utab{\printnoteG{}}{~:0232}}
|
|
{\utab{\printnoteG{}7}{~:0212}}
|
|
{\utab{\printnoteG{}m}{~:0231}}
|
|
{\utab{\printnoteG{}m7}{~:0211}}
|
|
}{
|
|
{\utab*{\printnoteG{}7M}{~:0222}}
|
|
{\utab*{\printnoteG{}6}{~:0202}}
|
|
{\utab*{\printnoteG{}aug}{~:0332}}
|
|
{\utab*{\printnoteG{}dim}{~:0131}}
|
|
}
|
|
|
|
\chordtabs{\chordnameGsharp}{
|
|
{\utab{\printnoteG{}\#}{3:2010}}
|
|
{\utab{\printnoteG{}\#7}{1:0212}}
|
|
{\utab{\printnoteG{}\#m}{1:0231}}
|
|
{\utab{\printnoteG{}\#m7}{1:0211}}
|
|
}{
|
|
{\utab*{\printnoteG{}\#7M}{1:0222}}
|
|
{\utab*{\printnoteG{}\#6}{1:0202}}
|
|
{\utab*{\printnoteG{}\#aug}{~:1003}}
|
|
{\utab*{\printnoteG{}\#dim}{1:0131}}
|
|
}
|
|
|
|
\chordtabs{\chordnameA}{
|
|
{\utab{\printnoteA{}}{~:2100}}
|
|
{\utab{\printnoteA{}7}{~:0100}}
|
|
{\utab{\printnoteA{}m}{~:2000}}
|
|
{\utab{\printnoteA{}m7}{~:0000}}
|
|
}{
|
|
{\utab*{\printnoteA{}7M}{~:1100}}
|
|
{\utab*{\printnoteA{}6}{2:0202}}
|
|
{\utab*{\printnoteA{}aug}{~:2110}}
|
|
{\utab*{\printnoteA{}dim}{2:0131}}
|
|
}
|
|
|
|
\chordtabs{\chordnameAsharp}{
|
|
{\utab{\printnoteA{}\#}{1:2100}}
|
|
{\utab{\printnoteA{}\#7}{1:0100}}
|
|
{\utab{\printnoteA{}\#m}{1:2000}}
|
|
{\utab{\printnoteA{}\#m7}{1:0000}}
|
|
}{
|
|
{\utab*{\printnoteA{}\#7M}{1:1100}}
|
|
{\utab*{\printnoteA{}\#6}{~:0211}}
|
|
{\utab*{\printnoteA{}\#aug}{1:2110}}
|
|
{\utab*{\printnoteA{}\#dim}{~:3101}}
|
|
}
|
|
|
|
\chordtabs{\chordnameB}{
|
|
{\utab{\printnoteB{}}{2:2100}}
|
|
{\utab{\printnoteB{}7}{2:0100}}
|
|
{\utab{\printnoteB{}m}{2:2000}}
|
|
{\utab{\printnoteB{}m7}{2:0000}}
|
|
}{
|
|
{\utab*{\printnoteB{}7M}{2:1100}}
|
|
{\utab*{\printnoteB{}6}{1:0211}}
|
|
{\utab*{\printnoteB{}aug}{~:0332}}
|
|
{\utab*{\printnoteB{}dim}{1:3101}}
|
|
}
|
|
\begin{verse*}
|
|
\musicnote[french]{Accordage standard : {\nolyrics \[\printnoteG{} \printnoteC{} \printnoteE{} \printnoteA{}]}}
|
|
\musicnote[english]{Standard tuning: {\nolyrics \[\printnoteG{} \printnoteC{} \printnoteE{} \printnoteA{}]}}
|
|
\end{verse*}
|
|
|
|
\endsong
|
|
\fi
|
|
|
|
\end{songs}
|
|
}
|
|
\endinput
|
|
|