songs/tex/skrul-leadsheet.cls

88 lines
2.1 KiB
OpenEdge ABL
Raw Normal View History

2019-09-06 04:35:14 +00:00
\ProvidesClass{skrul-leadsheet}
\LoadClassWithOptions{scrartcl}
\RequirePackage{leadsheets}
\RequirePackage{etoolbox}
\RequirePackage{translations}
2019-09-09 02:43:57 +00:00
\usepackage[T1]{fontenc}
2019-09-06 04:35:14 +00:00
\usepackage[utf8]{inputenc}
2019-09-09 02:43:57 +00:00
\usepackage[sfdefault]{roboto}
2019-09-06 04:35:14 +00:00
\usepackage{geometry}
\geometry{
letterpaper,
2019-09-08 06:00:55 +00:00
margin=0.5in
2019-09-06 04:35:14 +00:00
}
\pagenumbering{gobble}
2019-10-09 04:03:58 +00:00
\usepackage[dvipsnames]{xcolor}
2019-09-06 04:35:14 +00:00
\definesongproperty{year}
2019-09-25 05:16:36 +00:00
\definesongproperty{meter}
2019-09-06 04:35:14 +00:00
\definesongtitletemplate{leadsheet}{%
{\large \textbf{\songproperty{title}} - \songproperty{band}}
2019-09-25 05:16:36 +00:00
{\footnotesize
\space\space // \space\space \songproperty{year}
\space\space // \space\space key: \songproperty{key}
\ifsongproperty{capo}{// \space\space\capo}{}
\ifsongproperty{meter}{// \space\space\songproperty{meter} time}{}
}
2019-09-09 04:35:54 +00:00
\vspace{-0.5\baselineskip}
\hrulefill
2019-09-06 04:35:14 +00:00
}
2019-10-14 04:49:33 +00:00
\ExplSyntaxOn
\char_set_catcode_other:N \#
\char_set_catcode_parameter:N \!
2020-01-12 19:31:04 +00:00
\NewDocumentCommand \xchordname {m} {%
2019-10-14 04:49:33 +00:00
\str_case:nnTF {!1}
{
2020-01-12 19:31:04 +00:00
{B#} {\chordname{C}}
{F##} {\chordname{G}}
{F##/B} {\chordname{G/B}}
{Am/F##} {\chordname{Am/G}}
2019-10-14 04:49:33 +00:00
}
{}
2020-01-12 19:31:04 +00:00
{\chordname{!1}}
2019-10-14 04:49:33 +00:00
}
\char_set_catcode_parameter:N \#
\char_set_catcode_other:N \!
\ExplSyntaxOff
2019-09-06 04:35:14 +00:00
\setleadsheets{
title-template = leadsheet,
align-chords=l,
2019-09-09 04:35:54 +00:00
verse/numbered,
2019-10-09 04:03:58 +00:00
chords/format = \color{black}\bfseries,
2019-10-14 04:49:33 +00:00
chord-cs = \xchordname,
2019-09-08 06:00:55 +00:00
verses-label-format = \itshape
2019-09-06 04:35:14 +00:00
}
\LeadsheetSurvive
\provideversetype{prechorus}[name=Prechorus]
\provideversetype*{prechorus*}[name=Prechorus]
2020-06-04 04:43:25 +00:00
\provideversetype{postchorus}[name=Postchorus]
\provideversetype*{postchorus*}[name=Postchorus]
2020-01-12 19:31:04 +00:00
\provideversetype{chorus1}[name=Chorus 1]
\provideversetype{chorus2}[name=Chorus 2]
2019-09-06 04:35:14 +00:00
\providerobustcmd*\lsenparen[1]{%
\expandcode{\noexpand\mklsenparen\mklsenparens{\unexpanded{#1}}}%
}
\providecommand*\mklsenparens{[]}
\providecommand*\mklsenparen[3]{\textup{#1}#3\textup{#2}}
\providerobustcmd*\instruction[1]{\lsenparen{\mkinstruction{#1}}}
\providecommand*\mkinstruction[1]{\emph{#1}}
\providerobustcmd*\choir[1]{\null\qquad\mkchoir{#1}}
\providecommand*\mkchoir[1]{\instruction{\leadsheetstranslate{choir}: #1}}
\LeadsheetEndSurvive