[Tex/LaTex] Quartertone symbols

musicsymbols

Does anyone know if there is any package that provides the quartertone sharps and flats symbols? (I've already checked the Comprehensive LaTeX Symbol List and couldn't find them.)

The symbols can be seen, for example, in the following picture taken from Wikipedia:

Quartertone

(If I were actually writing musical excerpts, then I'd just use Lilypond with LaTeX, but that seems a bit silly if I just want to get a few symbols into the body text.)

Best Answer

While the fonts and the respective packages are being built, as pragmatic as it can be, one can get away with the following inline TikZ drawings

\documentclass{article}
\usepackage{tikz}
\newcommand{\dflat}{\tikz[baseline=-1.2mm] \node {\reflectbox{$\flat$}};}

\newcommand{\sflat}{\tikz[baseline=-1.2mm] \node {\reflectbox{$\flat$}$\flat$};}

\newcommand{\dsharp}{\hskip3pt \tikz[baseline=-1.2mm] {%
\clip (-2pt,-6pt) rectangle (-.2pt,6pt); \node at (0,0) {$\sharp$};}\hskip3pt
}

\newcommand{\ssharp}{\tikz[baseline=-1.2mm] {%
\node[inner sep=0mm] at (0,0) {$\sharp$};\node at (1.7pt,0.55pt) {$\sharp$};}
}

\begin{document}
\parbox{5cm}{
This is some random text to use the symbols \dflat, \sflat,\dsharp and \ssharp inline.
It can be improved by assigning some input parameters and adjusting the kerning as
C~{\hskip-7pt\dflat}, A~{\hskip-6pt\dsharp} or D~{\hskip-6pt\ssharp}
}
\end{document}

enter image description here

I will not attempt to make stupid comments since I know almost nothing about typography and kerning but this can be automated at will. Also I am not sure if these commands I have defined are robust. Please consider this as a proof of concept.


Addition by Jake:

By using \tikz [baseline] \node [anchor=base, inner sep=0pt], the nodes will automatically be positioned on the text line like a character would, so the vertical position doesn't have to be adjusted manually.

When defining TikZ commands to be used in text lines, it is usually a good idea to specify lengths in terms of ex and em, since these depend on the surrounding font size. That way, the symbols will scale with the text.

\documentclass{article}
\usepackage{tikz}
\newcommand{\dflat}{\tikz [baseline] \node [anchor=base, inner sep=0pt] {\reflectbox{$\flat$}};}

\newcommand{\sflat}{\tikz [baseline] \node [anchor=base, inner sep=0pt] {\reflectbox{$\flat$}$\flat$};}

\newcommand{\dsharp}{\tikz [baseline] {%
    \clip (-0.2em,-1ex) rectangle (-0.01em,2ex);
    \node[anchor=base, inner sep=0pt] {$\sharp$};}
}

\newcommand{\ssharp}{\tikz[baseline] {%
    \node[anchor=base,inner sep=0pt,name=leftsharp] at (0,0) {$\sharp$};
    \node  at (leftsharp.east) [xshift=-0.25em, yshift=0.1ex, inner sep=0pt,anchor=west] {$\sharp$};}
}

\begin{document}
\parbox{5cm}{
This is some random text to use the symbols \dflat, \sflat, \dsharp and \ssharp inline.
It can be improved by assigning some input parameters and adjusting the kerning as
C\dflat, A\dsharp or D\ssharp
}

\parbox{5cm}{\Large
The symbols scale with the text:
C\dflat, A\dsharp or D\ssharp
}
\end{document}