summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/leadsheets/leadsheets.library.musicsymbols.code.tex
blob: 82a515786a385e0196cbe48c379d1e46319265ba (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
\LeadsheetsLibrary{musicsymbols}{2014/08/10 musical symbols}
\RequirePackage{etoolbox}

% define a LaTeX font that uses the `musix' font from MusiXTeX:
\DeclareFontFamily{U}{musix}{}%
\DeclareFontShape{U}{musix}{m}{n}{%
  <-12>   musix11
  <12-15> musix13
  <15-18> musix16
  <18-23> musix20
  <23->   musix29
}{}%

% a font switch command:
\newrobustcmd*\musix{\usefont{U}{musix}{m}{n}\selectfont}
% a text font command:
\DeclareTextFontCommand{\textmusix}{\musix}

% the `symbol' command: raises the symnol since most symbols are too low for
% use in normal text:
\newrobustcmd*\musicsymbol[2][0pt]{%
  \raisebox{\dimexpr.5ex+(#1)\relax}{\textmusix{#2}}%
}

% define the symbol
\renewrobustcmd*\sharp       {\musicsymbol[.2ex]{4}\kern-.06em}
\renewrobustcmd*\flat        {\kern-.05em\musicsymbol{2}\kern-.06em}
\renewrobustcmd*\natural     {\musicsymbol{6}\kern-.06em}
\newrobustcmd*\doublesharp   {\musicsymbol{5}\kern-.05em}
\newrobustcmd*\doubleflat    {\kern-.05em\musicsymbol{3}\kern-.06em}
\newrobustcmd*\trebleclef    {\musicsymbol{H}}
\newrobustcmd*\bassclef      {\musicsymbol{J}}
\newrobustcmd*\altoclef      {\musicsymbol{K}}
\newrobustcmd*\allabreve     {\kern-.15em\musicsymbol{R}}
\newrobustcmd*\meterC        {\kern-.15em\musicsymbol{S}}
\newrobustcmd*\wholerest     {\musicsymbol{<}}
\newrobustcmd*\halfrest      {\musicsymbol{=}}
\newrobustcmd*\quarterrest   {\musicsymbol[-1ex]{>}\kern.25em}
\newrobustcmd*\eighthrest    {\musicsymbol[-1ex]{?}\kern.33em}
\newrobustcmd*\sixteenthrest {\musicsymbol[-1ex]{@}\kern.33em}

\newcommand*\leadsheets@size{\f@size pt}
\newlength\leadsheets@barheight

\newrobustcmd*\genericbar[1]{%
  \setlength\leadsheets@barheight\leadsheets@size
  \rule[-.2\leadsheets@barheight]{#1}{\leadsheets@barheight}%
}

\newcommand*\normalbarwidth{.02em}
\newcommand*\thickbarwidth{.15em}
\newcommand*\interbarwidth{.1em}

\newrobustcmd*\leadsheets@thickbar{%
  \genericbar{\thickbarwidth}%
}

\newrobustcmd*\leadsheets@repeatcolon{%
  \leavevmode
  \setlength\leadsheets@barheight\leadsheets@size
  \raise.1\leadsheets@barheight\hbox{:}%
}

\newrobustcmd*\leadsheets@interbar{\kern\interbarwidth\relax}

\newrobustcmd*\normalbar{%
  \genericbar{\normalbarwidth}%
}

\newrobustcmd*\leftrepeat{%
  \leadsheets@thickbar
  \leadsheets@interbar
  \normalbar
  \leadsheets@repeatcolon
}

\newrobustcmd*\rightrepeat{%
  \leadsheets@repeatcolon
  \normalbar
  \leadsheets@interbar
  \leadsheets@thickbar
}

\newrobustcmd*\leftrightrepeat{%
  \leadsheets@repeatcolon
  \leadsheets@thickbar
  \leadsheets@interbar
  \leadsheets@thickbar
  \leadsheets@repeatcolon
}

\newrobustcmd*\doublebar{%
  \normalbar
  \leadsheets@interbar
  \normalbar
}

\newrobustcmd*\stopbar{%
  \normalbar
  \leadsheets@interbar
  \leadsheets@thickbar
}

\endinput