From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- .../guitarchordschemes/guitarchordschemes_en.tex | 403 +++++++++++++++++++++ 1 file changed, 403 insertions(+) create mode 100644 macros/latex/contrib/guitarchordschemes/guitarchordschemes_en.tex (limited to 'macros/latex/contrib/guitarchordschemes/guitarchordschemes_en.tex') diff --git a/macros/latex/contrib/guitarchordschemes/guitarchordschemes_en.tex b/macros/latex/contrib/guitarchordschemes/guitarchordschemes_en.tex new file mode 100644 index 0000000000..7112b93b01 --- /dev/null +++ b/macros/latex/contrib/guitarchordschemes/guitarchordschemes_en.tex @@ -0,0 +1,403 @@ +% arara: pdflatex +% arara: biber +% arara: pdflatex +% arara: pdflatex +% -------------------------------------------------------------------------- +% the GUITARCHORDSCHEMES package +% +% Guitar Chord and Scale Tablatures with TikZ +% +% -------------------------------------------------------------------------- +% Clemens Niederberger +% Web: https://bitbucket.org/cgnieder/guitarchordschemes/ +% E-Mail: contact@mychemistry.eu +% -------------------------------------------------------------------------- +% Copyright 2013--2016 Clemens Niederberger +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% 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 +% and version 1.3 or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Clemens Niederberger. +% -------------------------------------------------------------------------- +% The guitarchordschemes package consists of the files +% - guitarchordschemes.sty, +% - guitarchordschemes_en.tex, +% - guitarchordschemes_en.pdf, +% - README +% -------------------------------------------------------------------------- +% If you have any ideas, questions, suggestions or bugs to report, please +% feel free to contact me. +% -------------------------------------------------------------------------- +\documentclass[load-preamble+]{cnltx-doc} +\usepackage{guitarchordschemes} +\usepackage[chords]{leadsheets} + +\setcnltx{ + package = guitarchordschemes , + authors = Clemens Niederberger , + email = contact@mychemistry.eu , + url = https://bitbucket.org/cgnieder/guitarchordschemes/ , + info = guitar chord schemes and fingering scales with \TikZ , + add-cmds = { + chordscheme, + setchordscheme, + setfingering , + scales + } , + add-silent-cmds = textsuperscript , + abstract = {% + \centering + \chordscheme[ + name = Gmi7 , + position = II , + barre = {2/2-4:3} , + show-root = {4/4} , + root = {2/6:2} , + mute = {1,5} + ]% + } , + index-setup = { + othercode = \footnotesize , + level = \addsec , + noclearpage + } , + makeindex-setup = { + columns = 3 , + columnsep = 1em + } +} + +\addbibresource{\jobname.bib} +\begin{filecontents}{\jobname.bib} +@online{web:pietsch:fonts, + author = {Jochen Pietsch} , + title = {Jazz Fonts} , + url = {http://notation.jochenpietsch.de/index_e.html} , + urldate = {2012-05-10} +} +@book{leavitt:mmfg:1, + author = {William G. Leavitt}, + title = {A Modern Method for Guitar}, + volume = {1}, + publisher = {Berklee Press Publications, Boston}, + year = {1966} +} +\end{filecontents} + +\usepackage{ccicons} + +\setchordscheme{ + finger-format+ = \biolinumLF , + name-format+ = \libertineLF , + chord-name-cs = \chordname +} + +\newcommand*\TikZ{Ti\textit{k}Z} + +\begin{document} + +\section{License and Requirements} + +\license + +\guitarchordschemes{} loads the packages \TikZ~\cite{pkg:pgf}, +\pkg{etoolbox}~\cite{pkg:etoolbox} and \pkg{pgfopts}~\cite{pkg:pgfopts}. It +also loads the \TikZ{} libraries \code{shapes.misc}, \code{arrows} and +\code{calc}. + +% Depending on an option it also loads +% \pkg{realbookchords}~\cite{pkg:realbookchords}. This package is not yet +% published on \CTAN{} and thus not part of any \TeX{} distribution. Until it is +% you can find it at \url{https://bitbucket.org/cgnieder/realbookchords/}. See +% section~\ref{sec:realbookchords} for details on this option. + +\section{The Commands} +This package mainly provides two commands: +\begin{commands} + \command{chordscheme}[\oarg{options}] + Typeset a guitar chord scheme. + \command{scales}[\oarg{option}] + Typeset a fingering scale. +\end{commands} +These commands set the frame for the chord and scale tablatures and can be used +to create sheets for manually writing down tablatures: +\begin{example}[side-by-side] + \chordscheme +\end{example} + +Similarly \cs{scales} creates a frame with two more frets: +\begin{example} + \scales +\end{example} + +\subsection{Options for \cs*{chordscheme}} +The \meta{options} argument is where the actual details for a chord +happen. These are the available ones for \cs{chordscheme}: +\begin{options} + \keyval{fret-number}{number}\Default{4} + \sinceversion{0.6}The number of frets that are drawn. This number must be + at least 4. The option should be set as first option since it influences + other options. + \keyval{name}{chordsymbol} + Set the chord symbol. This option accepts a comma separated list of + entries. + \keyval{position}{position} + Set the position for the first of the four frets. + \keychoice{finger}{\meta{fret}/\meta{string}:\meta{label}} + Specify the finger positions for a chord. This option accepts a comma + separated list of entries. The \code{:\meta{label}} is optional. + \keychoice{root}{\meta{fret}/\meta{string}:\meta{label}} + The same as finger but uses a square instead of a circle to indicate that + this finger is playing the root of the chord. This option accepts a comma + separated list of entries. The \code{:\meta{label}} is optional. + \keychoice{show-root}{\meta{fret}/\meta{string}} + Specify positions of the root that are \emph{not} part of the actual chord + but are somewhere in the vicinity of it on the guitar neck. This option + accepts a comma separated list of entries. + \keychoice{barre}{\meta{fret}/\meta{string range}:\meta{label}} + Specify a barr\'e position for a chord. The \meta{string range} part must + contain a two string numbers separated with a dash. This option accepts a + list of entries. The \code{:\meta{label}} is optional. + \keyval{ring}{string} + Specify open strings. This option accepts a comma separatedlist of + entries. + \keyval{mute}{string} + Specify muted/un-played strings. This option accepts a comma separated + list of entries. +\end{options} + +Let's take a look at a few examples: + +\begin{example}[side-by-side] + \chordscheme[ + name = G , + position = I , + finger = {2/5:1} , + root = {3/6:2, 3/1:4} , + ring = {2,3,4} + ] +\end{example} +\makeatletter +\setchordscheme{chord-name-cs=\@firstofone} +\makeatother + +Or a more "`jazzy"' chord: +\begin{example}[side-by-side] + \chordscheme[ + name = G\textsuperscript{6} , + position = II , + finger = {1/4:1, 3/3:4, 2/2:3} , + root = 2/6:2 , + show-root = 4/4 , + mute = {1,5} + ] +\end{example} + +One with a barr\'e: + +\begin{example}[side-by-side] + \chordscheme[ + name = Gmi\textsuperscript{7} , + position = II , + barre = 2/2-4:3 , + show-root = 4/4 , + root = 2/6:2 , + mute = {1,5} + ] +\end{example} + +\subsection{Options for \cs*{scales}} +The \meta{options} argument for \cs{scales} are similar to the ones for +\cs{chordscheme}: +\begin{options} + \keyval{fret-number}{number}\Default{6} + \sinceversion{0.6}The number of frets that are drawn. This number must be + at least 6. The option should be set as first option since it influences + other options. + \keyval{name}{title} + Set a title for the scale. + \keyval{position}{position} + Set the position for the first of the six frets. + \keychoice{finger}{\meta{fret}/\meta{string}:\meta{label}} + Specify the finger positions for the scale. This option accepts a comma + separated list of entries. The \code{:\meta{label}} is optional. + \keychoice{root}{\meta{fret}/\meta{string}:\meta{label}} + The same as finger but uses a square instead of a circle to indicate that + this finger is playing the root of the scale. This option accepts a comma + separated list of entries. The \code{:\meta{label}} is optional. + \keyval{fret number}{integer}\Default{6} + The number of frets displayed for a scale. The minimum number is 6. + \keychoice{fingering}{type 1,type 1A,type 2,type 3,type 4} + Set a whole predefined fingering. The types correspond to ones taught + in \citeauthor{leavitt:mmfg:1}'s + \citetitle{leavitt:mmfg:1}~\cite{leavitt:mmfg:1}. This option assumes an + ionic scale and places the roots correspondingly. + \keychoice{fingering*}{type 1,type 1A,type 2,type 3,type 4} + The same as \option{fingering} but no scale is assumed and no roots are + indicated. + \keychoice{fingering?}{type 1,type 1A,type 2,type 3,type 4} + The same as \option{fingering*} but also no labels for the fingers are given. +\end{options} + +Let's see an example: +\begin{example} + \scales[ + name = F-major (Fingering Type~1A) , + position = I , + fingering = type 1A + ] +\end{example} + +An example for \option{fingering*}: +\begin{example} + \scales[ + name = Fingering Type~3 , + fingering* = type 3 + ] +\end{example} + +Now an example for \option{fingering?}: +\begin{example} + \scales[ + name = Fingering Type~2 , + fingering? = type 2 + ] +\end{example} + +At last an example for an explicitly set scale: +\begin{example} + \scales[ + finger = { + 2/1:1, 5/1:4, + 2/2:1, 5/2:4, + 2/3:1, 4/3:3, 5/3:4, + 2/4:1, 4/4:3, + 2/5:1, 3/5:2, 4/5:3, + 2/6:1, 5/6:4 + } + ] +\end{example} + +You can add other predefined fingerings or change the existing ones with the +following command: +\begin{commands} + \command{setfingering}[\marg{name}\marg{fingers}\marg{roots}] + \sinceversion{0.7}\marg{name} sets the name as chosen by + \option{fingering}, \option{fingering*} or \option{fingering?}, + \meta{fingers} is passed to the \option{finger} option and \meta{roots} + either to the \option{finger} option or the \option{root} option depending + if the fingering is called by \option{fingering}, \option{fingering*} or + \option{fingering?}. +\end{commands} +As an example here is how fingering type 1A has been defined: +\begin{sourcecode} + \setfingering{type 1A}{ + 3/1:2, 5/1:4, + 3/2:2, 5/2:4, + 2/3:1, 3/3:2, 5/3:4, + 2/4:1, 5/4:4, + 1/5:1s, 3/5:2, 5/5:4, + 3/6:2, 5/6:4 + }{1/1:1s, 3/4:2, 1/6:1s} +\end{sourcecode} + +\section{Options} +There are quite a number of options determining the layout of the tablatures. +They can either be set as package options or via the setup command: +\begin{commands} + \command{setchordscheme}[\marg{options}] + The setup command for \guitarchordschemes. +\end{commands} + +Below every option and its corresponding default setting is described. +\begin{options} + \keyval{x-unit}{dim}\Default{.8cm} + The basic $x$ unit for the \TikZ{} picture the chord scheme is set in. + \keyval{y-unit}{dim}\Default{.8cm} + The basic $y$ unit for the \TikZ{} picture the chord scheme is set in. + \keyval{rotate}{angle}\Default{0} + \sinceversion{0.7}Rotates the diagram counter-clockwise by \meta{angle}. + \keyval{finger-format}{\TeX{} code}\Default{\cs*{sffamily}\cs*{small}} + The format the numbers for the fingers are typeset with. + \keyval{finger-format+}{\TeX{} code}\Default + Code to be appended to \option{finger-format}. + \keyval{position-format}{\TeX{} code}\Default{\cs*{sffamily}} + The format the number for the position is typeset with. + \keyval{position-format+}{\TeX{} code}\Default + Code to be appended to \option{position-format}. + \keyval{name-format}{\TeX{} code}\Default{\cs*{large}} + The format the chord name/symbol is typeset with. + \keyval{name-format+}{\TeX{} code}\Default + Code to be appended to \option{name-format}. + \keybool{name-below}\Default{false} + \sinceversion{0.7}If set to \code{true} the name will be written below + instead of above the diagram. + \keyval{name-distance}{dim}\Default{.5em} + \sinceversion{0.7}The distance between name and chord diagram. + \keyval{chord-name-cs}{cs}\Default{\cs*{@firstofone}} + \sinceversion{0.5}The command that is used to parse the chord name. + \meta{cs} needs to be a command that takes a mandatory argument. + \keyval{scales-name-cs}{cs}\Default{\cs*{@firstofone}} + \sinceversion{0.5}The command that is used to parse the scales name. + \meta{cs} needs to be a command that takes a mandatory argument. + \keyval{string-name-format}{\TeX{} code}\Default{\cs*{sffamily}\cs*{small}} + The format the names of the strings are typeset with. + \keyval{string-name-format+}{\TeX{} code}\Default + Code to be appended to \option{string-name-format}. + \keyval{strings}{num}\Default{6} + \sinceversion{0.7}Sets the number of strings. + \keyval{chord-frets}{number}\Default{4} + \sinceversion{0.6}The default number of frets of a chord scheme. + \meta{number} must be at least 4. + \keyval{scales-frets}{number}\Default{6} + \sinceversion{0.6}The default number of frets of a scales scheme. + \meta{number} must be at least 6. + \keyval{line-width}{dim}\Default{1pt} + The line width used for all lines drawn in the chord scheme. + \keyval{finger-radius}{num}\Default{.1875} + The radius of the circles that represent the fingers in multiples of + \option{x-unit}. Also determines the size of the root markers and the + barr\'e. + \keyval{finger-x-offset}{num}\Default{.375} + The $x$ offset of the number with respect to the circle in multiples of + \option{x-unit}. + \keyval{finger-y-offset}{num}\Default{.375} + The $y$ offset of the number with respect to the circle in multiples of + \option{y-unit}. + \keyval{finger-style}{\TikZ{} style}\Default{fill} + The \TikZ{} style the circles representing the fingers are drawn with. + This is equivalent to \cs*{tikzset}\Marg{finger + style/.style=\{\meta{\TikZ{} style}\}}. + \keyval{root-style}{\TikZ{} style}\Default{fill} + The \TikZ{} style the squares representing the roots are drawn with. + This is equivalent to \cs*{tikzset}\Marg{root style/.style=\{\meta{\TikZ{} + style}\}}. + \keyval{show-root-style}{\TikZ{} style}\Default{draw} + The \TikZ{} style the squares representing the "`ghost roots"' are drawn + with. This is equivalent to \cs*{tikzset}\Marg{show root + style/.style=\{\meta{\TikZ{} style}\}}. + \keyval{ringing-style}{\TikZ{} style}\Default{draw} + The \TikZ{} style the circles representing the open string markers are + drawn with. This is equivalent to \cs*{tikzset}\Marg{ringing + style/.style=\{\meta{\TikZ{} style}\}}. + \keyval{muted-style}{\TikZ{} style}\Default{cross out,draw} + The \TikZ{} style the nodes representing muted strings are drawn with. + This is equivalent to \cs*{tikzset}\Marg{muted style/.style=\{\meta{\TikZ{} + style}\}}. + \keyval{tuning}{comma separated list of string names}\Default{E,B,G,D,A,E} + The tuning. The strings are named from first to sixth string. If you + want to remove all names use \keyis{tuning}{,,,,,}. + \keybool{restrict-bounding-box}\Default{false} + \sinceversion{0.7}If set to \code{true} the bounding box of the \TikZ{} + picture is not extended by string names, position labels etc.\@ but + restricted (more or less) only to the chord scheme diagram itself. +\end{options} + +\end{document} -- cgit v1.2.3