diff options
author | Karl Berry <karl@freefriends.org> | 2017-09-30 23:08:42 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-09-30 23:08:42 +0000 |
commit | e34ba1cbe700c96794b9488ec6922ee328c722f0 (patch) | |
tree | 1a76a63cb43516099e39b81556b2856e49ea0aab /Master/texmf-dist/tex | |
parent | 4c17e70fa9bb3d1985518e445884b4547fc11617 (diff) |
musicography (30sep17)
git-svn-id: svn://tug.org/texlive/trunk@45440 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/musicography/musicography.sty | 222 |
1 files changed, 222 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/musicography/musicography.sty b/Master/texmf-dist/tex/latex/musicography/musicography.sty new file mode 100644 index 00000000000..b592b2a8f5f --- /dev/null +++ b/Master/texmf-dist/tex/latex/musicography/musicography.sty @@ -0,0 +1,222 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{musicography} +[2017/08/29 Symbols for music writing with pdflatex] + +% Copyright 2017 Andrew A. Cashner, andrewacashner@gmail.com + +% 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 Andrew A. Cashner. +% This work consists of the package file musicography.sty +% and the documentation file musicography.tex. + +% CHANGE LOG +% 2017-08-29 First version on CTAN +% 2017-04-12 Created + +\newif\ifLargeFont +\LargeFontfalse +\DeclareOption{bigger}{\LargeFonttrue} +\ProcessOptions\relax + +\RequirePackage{xparse} + +\ifLargeFont + \newfont{\musFont}{musix13} + \newfont{\musFontBig}{musix16} + \newfont{\musFontLarge}{musix20} +\else + \newfont{\musFont}{musix11} + \newfont{\musFontBig}{musix13} + \newfont{\musFontLarge}{musix16} +\fi + +% Font for numbers in \musStack +% Could redefine to use lining figures, math mode, sans-serif, etc. +% Example for ebgaramond: \renewcommand{\musNumFont}[1]{\liningnums{#1}} +\NewDocumentCommand{\musNumFont}{}{} + +% Print a music symbol from the \musFont, specifying space before, after, and +% baseline adjustment +% #1 optional font command (default: \musFont) +% #2 kern before +% #3 raisebox value +% #4 kern after +% #5 symbol code (e.g., \symbol{4}) +\NewDocumentCommand{\musSymbol}{ O{\musFont} m m m m }{% + {#1\kern#2\raisebox{#3}{#5}\kern#4}% +} + +% Accidentals +% #1 symbol command for accidental +\NewDocumentCommand{\musAccidental}{ m }{% + \musSymbol[\musFontLarge]{0.1em}{0.5ex}{-0.1pt}{#1}% +} +\NewDocumentCommand{\musFlat} {}{\musAccidental{\symbol{90}}} +\NewDocumentCommand{\musDoubleFlat} {}{\musAccidental{\symbol{91}}} +\NewDocumentCommand{\musSharp} {}{\musAccidental{\symbol{92}}} +\NewDocumentCommand{\musDoubleSharp}{}{\musAccidental{\symbol{93}}} +\NewDocumentCommand{\musNatural} {}{\musAccidental{\symbol{94}}} + +% Shorthand accidental commands +% These commands are defined differently in the semantic-markup package, +% so LaTeX will use musicography commands instead, if this package is called +% after +\let\fl\musFlat +\let\sh\musSharp +\let\na\musNatural + +% Print a composite music symbol of a notehead plus stem +% #1 Symbol musSymbol command for notehead +\NewDocumentCommand{\musStemmedNote}{ m }{% + \musSymbol{0.05em}{0.5ex}{0.2em}{#1\musStem}% +} + +% Stemmed note plus flag +% #1 symbol command for base note +% #2 symbol command for flag +\NewDocumentCommand{\musFlaggedNote}{ m m }{% + \musSymbol{0.05em}{0.5ex}{0pt}{#1\musStem}% + \musSymbol{0pt}{0pt}{0.9em}{#2}% +} + +% Note plus dot +% #1 \musSymbol command for note to be dotted +\NewDocumentCommand{\musDottedNote}{ m }{#1\musDot} + +\NewDocumentCommand{\musStem}{}{% + \musSymbol{0.955em}{0.55ex}{0pt}{\symbol{16}}% +} +\NewDocumentCommand{\musSegno}{}{% + \musSymbol{0.55em}{-0.4ex}{1.5em}{\symbol{86}}% +} +\NewDocumentCommand{\musDot}{}{% + \musSymbol{-0.2em}{-0.5ex}{0.7em}{\symbol{24}}% +} + +\NewDocumentCommand{\musWhole}{}{% + \musSymbol{0.05em}{0.5ex}{1.35em}{\symbol{9}}% +} +\NewDocumentCommand{\musHalf}{}{% + \musStemmedNote{\symbol{9}}% +} +\NewDocumentCommand{\musQuarter}{}{% + \musStemmedNote{\symbol{7}}% +} +\NewDocumentCommand{\musEighth}{}{% + \musFlaggedNote{\symbol{8}}{\symbol{40}}% +} +\NewDocumentCommand{\musSixteenth}{}{% + \musFlaggedNote{\symbol{8}}{\symbol{41}}% +} + +\NewDocumentCommand{\musWholeDotted}{}{% + \musDottedNote{\musWhole}% +} +\NewDocumentCommand{\musHalfDotted}{}{% + \musDottedNote{\musHalf}% +} +\NewDocumentCommand{\musQuarterDotted}{}{% + \musDottedNote{\musQuarter}% +} +\NewDocumentCommand{\musEighthDotted}{}{% + \musDottedNote{\musEighth}% +} +\NewDocumentCommand{\musSixteenthDotted}{}{% + \musDottedNote{\musSixteenth}% +} + +% Command to stack numerals +% Adapted from harmony.sty's \ueber command +\newdimen\tmpdima +\newdimen\tmpdimb +\newdimen\tmpdimc +\newdimen\tmpdimd +\newdimen\tmpdime +\newbox\nbxa +\newbox\nbxb +\newbox\nbxc +\newbox\nbxd +\newbox\nbxe +\newbox\nbxf +\newbox\nbxg +\newbox\nbxh +\newbox\nbxi + +\NewDocumentCommand{\musStack}{ m m }{% + \setbox\nbxi=\hbox{% + \setbox\nbxa=\hbox{\scriptsize{\musNumFont{#1}}}% + \setbox\nbxb=\hbox{\scriptsize{\musNumFont{#2}}}% + \ifdim\wd\nbxa>\wd\nbxb% + \tmpdima=\wd\nbxa% + \else% + \tmpdima=\wd\nbxb% + \fi% + \setbox\nbxa=\hbox to \tmpdima{% + \scriptsize\hss{\musNumFont{#1}}\hss}% + \setbox\nbxb=\hbox to \tmpdima{\scriptsize\hss{% + \musNumFont{#2}}\hss}% + \lower0.3ex\copy\nbxb% + \kern-\wd\nbxb% + \raise0.8\ht\nbxb% + \box\nbxa% + }% + \unhbox\nbxi% +} + +% Meter symbols +% #1 symbol code for meter sign +\NewDocumentCommand{\musSymbolMeter}{ m }{% + \raisebox{0.58ex}[8pt][2pt]{% + {\kern-1pt\musFontBig\raisebox{0.3ex}{#1}\kern0.3em}% + }% +} +% Meter that combines \meterC with numerals (e.g., C3 C3/2) +\NewDocumentCommand{\meterCplus}{ m }{\meterC{}\kern-0.7pt#1} + +% Numeric meter signatures (e.g., 3/4) +% #1 number on top +% #2 number on bottom +\NewDocumentCommand{\musMeter}{ m m }{% + \musStack{#1}{#2}\kern0.05em +} +% Same command used for figured bass +\NewDocumentCommand{\musFigures}{}{\musMeter} + +\NewDocumentCommand{\meterC}{}{% + \musSymbolMeter{\symbol{83}}% +} +\NewDocumentCommand{\meterCutC}{}{% + \musSymbolMeter{\symbol{82}}% +} +% Ternary meters used in 16th--18th c. music +\NewDocumentCommand{\meterCThree}{}{% + \meterCplus{\musNumFont{3}}% +} +\NewDocumentCommand{\meterCThreeTwo}{}{% + \meterCplus{\musStack{3}{2}}% +} +% Ternary meter used in 17th-century Spanish music +\NewDocumentCommand{\meterCZ}{}{% + \meterCplus{Z}% +} + +% Aliases for older note names +\NewDocumentCommand{\musSemibreve} {}{\musWhole} +\NewDocumentCommand{\musMinim} {}{\musHalf} +\NewDocumentCommand{\musSemiminim} {}{\musQuarter} +\NewDocumentCommand{\musCorchea} {}{\musEighth} +\NewDocumentCommand{\musSemibreveDotted} {}{\musWholeDotted} +\NewDocumentCommand{\musMinimDotted} {}{\musHalfDotted} +\NewDocumentCommand{\musSeminiminimDotted} {}{\musQuarterDotted} +\NewDocumentCommand{\musCorcheaDotted} {}{\musEighthDotted} + +\endinput |