summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/guitarchordschemes/guitarchordschemes_en.tex
blob: 4ad227ba4bf57d85da04807a6d33f7a700f4bb33 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
% 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 2012--2013 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[chordnames]{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,
    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 more or less provides a single command:
\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 a places the roots correspondingly.
  \keychoice{fingering*}{type 1,type 1A,type 2,type 3,type 4}
    The same as \option{fingering} but not 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}

\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}{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{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}.
  \keyval{chord-name-format}{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-format}{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{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.
\end{options}

\end{document}