summaryrefslogtreecommitdiff
path: root/macros/musixtex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/musixtex')
-rw-r--r--macros/musixtex/README16
-rw-r--r--macros/musixtex/doc/ChangeLog-134.txt9
-rw-r--r--macros/musixtex/doc/musixdoc.pdfbin1410320 -> 1416764 bytes
-rw-r--r--macros/musixtex/doc/musixdoc/extensions.tex51
-rw-r--r--macros/musixtex/doc/musixdoc/frontmatter.tex2
-rw-r--r--macros/musixtex/doc/musixdoc/miscellaneous.tex74
-rw-r--r--macros/musixtex/doc/musixtex-install.pdfbin93845 -> 119810 bytes
-rw-r--r--macros/musixtex/doc/musixtex-install.tex4
-rw-r--r--macros/musixtex/map/frenchtab.map1
-rw-r--r--macros/musixtex/tex/musixftab.tex148
-rw-r--r--macros/musixtex/tex/musixtex.tex60
-rw-r--r--macros/musixtex/tfm/frenchtab.tfmbin0 -> 1304 bytes
-rw-r--r--macros/musixtex/type1/frenchtab.pfbbin0 -> 14449 bytes
13 files changed, 300 insertions, 65 deletions
diff --git a/macros/musixtex/README b/macros/musixtex/README
index 1d3a097d19..29bb184edb 100644
--- a/macros/musixtex/README
+++ b/macros/musixtex/README
@@ -1,4 +1,4 @@
-This is MusiXTeX, version 1.33a (2021-07-07).
+This is MusiXTeX, version 1.34 (2021-07-24).
MusiXTeX is a TeX-based system for typesetting music.
The main author was Daniel Taupin, who died in a climbing
@@ -47,6 +47,10 @@ To install (on TDS-compliant TeX systems):
texmf tree and, if necessary, update the filename database;
e.g., texhash texmf.
+ + update the font maps, for example, by executing
+
+ updmap-user -enable Map frenchtab.map
+
+ on Windows: move the scripts in Windows to a folder
on the executable PATH (or add that folder to the PATH)
@@ -83,7 +87,15 @@ http://tug.org/mailman/listinfo/tex-music
MusiXTeX may be freely copied, duplicated and used in
conformance to the GNU General Public License (Version 2,
1991, see included file gpl.txt) or (at your option) any
-later version.
+later version.
+
+The font file frenchtab.pfb is derived from mscoreTab.ttf
+by Maurizio M. Gavioli. It was obtained from
+
+https://github.com/musescore/MuseScore/blob/master/fonts/
+
+and is licensed under the SIL Open Font Licence,
+Version 1.1; the text may be found in the doc directory.
This distribution is maintained by Bob Tennent
rdt(at)cs(dot)queensu(dot)ca.
diff --git a/macros/musixtex/doc/ChangeLog-134.txt b/macros/musixtex/doc/ChangeLog-134.txt
new file mode 100644
index 0000000000..fb19280be0
--- /dev/null
+++ b/macros/musixtex/doc/ChangeLog-134.txt
@@ -0,0 +1,9 @@
+
+Changes from MusiXTeX 133 to 134:
+
+ * new extension library musixftab.tex to support traditional French
+ tablature using script letters instead of numerals
+
+ * \tabfnt ... commands re-defined to allow re-definition in
+ musixftab.tex
+
diff --git a/macros/musixtex/doc/musixdoc.pdf b/macros/musixtex/doc/musixdoc.pdf
index 48fc1a33af..ce5a18080c 100644
--- a/macros/musixtex/doc/musixdoc.pdf
+++ b/macros/musixtex/doc/musixdoc.pdf
Binary files differ
diff --git a/macros/musixtex/doc/musixdoc/extensions.tex b/macros/musixtex/doc/musixdoc/extensions.tex
index 3871f73268..164117f8f3 100644
--- a/macros/musixtex/doc/musixdoc/extensions.tex
+++ b/macros/musixtex/doc/musixdoc/extensions.tex
@@ -385,6 +385,57 @@ requiring ledger lines look better with \keyindex{longledgerlines}.
\autoledgerlines
\end{music}
+ \section{musixftab}\label{frenchtab}\index{tablature}\index{musixftab@{\tt musixftab.tex}}
+This extension replaces the default (Helvetica) numerals of the tablature commands
+of Section~\ref{tablature} with the traditional script letters of French tablature.
+These glyphs are generated in \keyindex{tabfnt} by arguments \texttt{0}--\texttt{9}
+or by (capital) Latin letters \texttt{A}--\texttt{R} (excluding \texttt{J}).
+\clearpage
+
+The example of Section~\ref{tablature} with \texttt{musixftab.tex} is as follows:
+\medskip
+
+\begin{music}
+\input musixftab
+\input musixps
+\tabstylespacetrue
+\largemusicsize
+\def\psslurhgt{0.5}
+\instrumentnumber{1}
+\generalmeter{\meterfrac34}
+\generalsignature{-1}
+\setlines16\setclefsymbol1\tabclef\setsize1{1.2}\setsign10
+\nobarnumbers
+\parindent=2ex
+\setname1{\tabstringfnt\baselineskip=1.2\internote%
+\vbox{\hbox{F}\hbox{D}\hbox{A}\hbox{F}\hbox{D}\hbox{A}}}
+\nostartrule
+\startextract
+\scale{0.6}
+\NOtes\tzqu\qa{*}\en
+\NOtesp\zltab50\zltab40\tzqup\ltab30\en
+\Notes\tzcu\ltab30\en
+\bar%
+\NOtes\zltab50\zltab42\zltab31\tzqu\ltab22\en
+\NOtesp\zltab64\zltab35\zltab30\tzqup\ltab22\en
+\Notes\tzcu\ltab22\en
+\bar%
+\NOtes\zltab50\zltab30\zltab20\tzqu\ltab10\en
+\NOtes\zltab61\zltab40\tzqup\ltab20\en
+\Notes\tzcu\ltab33\en
+\bar%
+\NOtes\zltab70\zltab55\tzqu\ltab45\en
+\NOtes\zltab60\zltab53\ltab44\en
+\notesp\zltab64\tzccu\ltab42\ilsluru03\ltab53\ltab52\tlslur03\ltab53\en
+\bar%
+\notesp\ztab{10}0\tzccu\ltab42\ilsluru03\ltab52\ltab53\tlslur03\ltab50\en
+\NOtesp\zltab50\zltab40\tzqup\ltab30\en
+\Notes\tzcu\ltab30\en
+\bar%
+\zendextract
+\end{music}
+\medskip
+
\section{musixgre}\label{gregnotes}\index{gregorian chant}
% \section{Gregorian chant: staffs and clefs}
diff --git a/macros/musixtex/doc/musixdoc/frontmatter.tex b/macros/musixtex/doc/musixdoc/frontmatter.tex
index 7feaad8416..8713f1ee71 100644
--- a/macros/musixtex/doc/musixdoc/frontmatter.tex
+++ b/macros/musixtex/doc/musixdoc/frontmatter.tex
@@ -1,6 +1,6 @@
\title{\Huge\bfseries\musixtex\\[\bigskipamount]
\LARGE\bfseries Using \TeX{} to write polyphonic\\or
-instrumental music\\\Large\itshape Version 1.33}
+instrumental music\\\Large\itshape Version 1.34}
\author{}
diff --git a/macros/musixtex/doc/musixdoc/miscellaneous.tex b/macros/musixtex/doc/musixdoc/miscellaneous.tex
index db1ae9cf1e..83b62bed6d 100644
--- a/macros/musixtex/doc/musixdoc/miscellaneous.tex
+++ b/macros/musixtex/doc/musixdoc/miscellaneous.tex
@@ -830,20 +830,25 @@ The coding is
\end{verbatim}\end{quote}
-\section{Tablature}
+\section{Tablature}\label{tablature}\index{tablature}
Tablature is a notational system used for fretted stringed instruments such
as lute, guitar, banjo, mandolin, and so on. Staff lines represent strings
and conventional note heads are replaced by numbers (or sometimes letters)
indicating which fret is to be stopped, with $0$ representing an open string.
A special clef symbol
-\keyindex{tabclef} may be used with \verb|\setclefsymbol| for a tablature staff; commands \verb|\setlines|, \verb|\setsign|
-and \verb|\setsize| may be used as usual for a tablature staff. The macros that put numbers (or letters) on staff lines
+\keyindex{tabclef} may be used with \verb|\setclefsymbol| for a tablature staff; commands \verb|\setlines|, \verb|\setsign|,
+\verb|\setsize| and \verb|\setname| may be used as usual for a tablature staff.
+A size-dependent font \keyindex{tabstringfnt} can be used for string names.
+
+The macros that put numbers (or letters) on staff lines
are as follows:
\begin{itemize}
\item \keyindex{tab}\verb|{|$n$\verb|}|\verb|{|$p$\verb|}|
puts $p$ on string $n$
(counting from top to bottom); $p$ is centered, using \verb|\ccharnote|.
+Space for a ``rest'' can be generated by a command like
+\verb|\qa{*}|.
Ledger lines are replaced by slashes (/) for $n$ greater than the number of staff lines,
or simply the number of courses below the staff if this is greater than 3.
\item \keyindex{ltab}\verb|{|$n$\verb|}|\verb|{|$p$\verb|}|
@@ -859,16 +864,14 @@ is a non-spacing \verb|\ltab| and
\keyindex{zrtab}\verb|{|$n$\verb|}|\verb|{|$p$\verb|}|
is a non-spacing \verb|\rtab|.
\end{itemize}
-A size-dependent font \keyindex{tabfnt} is used for tab characters; Helvetica bold is the default font family.
+A size-dependent font \keyindex{tabfnt} is used for tab characters. Helvetica bold is the
+default font family but the traditional script letters of French tablature may be obtained by
+inputting the extension library \verb|musixftab.tex|\index{musixftab@{\tt musixftab.tex}}
+described in Section~\ref{frenchtab}.
The default tablature style is to place fingering notations \emph{on} staff lines;
Postscript specials are used to ``blank'' staff lines below
the tab characters.
-If it is desired to locate the fingering notations \emph{above} staff lines, use
-the command \keyindex{tabstylespacetrue}.
-A size-dependent font \keyindex{tabstringfnt} is defined to allow string names to be
-listed using \verb|\setname|.
-
Here is an example
for baroque lute
(from \emph{Ciaccona} in D~minor by J.S.~Bach):
@@ -885,15 +888,10 @@ for baroque lute
\setsign2{-1}\setclefsymbol2\treblelowoct
\parindent=2ex
\setname1{\tabstringfnt\baselineskip=1.2\internote%
-\vbox{%
-\hbox to\parindent{\hss F\hss}%
-\hbox to\parindent{\hss D\hss}%
-\hbox to\parindent{\hss A\hss}%
-\hbox to\parindent{\hss F\hss}%
-\hbox to\parindent{\hss D\hss}%
-\hbox to\parindent{\hss A\hss}}}
+\vbox{\hbox{F}\hbox{D}\hbox{A}\hbox{F}\hbox{D}\hbox{A}}}
\startextract
-\scale{0.88}
+\scale{0.8}
+\NOtes\qa{*}&\qp\en
\NOtesp\zltab50\zltab40\ltab30&\zhl{d}\zhu{f}\qu{.h}\en
\Notes\ltab30&\cu{h}\en
\bar%
@@ -930,14 +928,9 @@ The coding is
\setsign2{-1}\setclefsymbol2\treblelowoct
\parindent=2ex
\setname1{\tabstringfnt\baselineskip=1.2\internote%
-\vbox{%
-\hbox to\parindent{\hss F\hss}%
-\hbox to\parindent{\hss D\hss}%
-\hbox to\parindent{\hss A\hss}%
-\hbox to\parindent{\hss F\hss}%
-\hbox to\parindent{\hss D\hss}%
-\hbox to\parindent{\hss A\hss}}}
+\vbox{\hbox{F}\hbox{D}\hbox{A}\hbox{F}\hbox{D}\hbox{A}}}
\startextract
+\NOtes\qa{*}&\qp\en
\NOtesp\zltab50\zltab40\ltab30&\zhl{d}\zhu{f}\qu{.h}\en
\Notes\ltab30&\cu{h}\en
\bar%
@@ -965,6 +958,8 @@ The coding is
\clearpage
\par\noindent
+If it is desired that fingering notations be placed \emph{above} staff lines, use
+the command \keyindex{tabstylespacetrue}.
Here is the same example with \verb|\tabstylespacetrue|:
\begin{music}
\input musixps
@@ -979,15 +974,10 @@ Here is the same example with \verb|\tabstylespacetrue|:
\setsign2{-1}\setclefsymbol2\treblelowoct
\parindent=2ex
\setname1{\tabstringfnt\baselineskip=1.2\internote%
-\vbox{%
-\hbox to\parindent{\hss F\hss}%
-\hbox to\parindent{\hss D\hss}%
-\hbox to\parindent{\hss A\hss}%
-\hbox to\parindent{\hss F\hss}%
-\hbox to\parindent{\hss D\hss}%
-\hbox to\parindent{\hss A\hss}}}
+\vbox{\hbox{F}\hbox{D}\hbox{A}\hbox{F}\hbox{D}\hbox{A}}}
\startextract
-\scale{0.88}
+\scale{0.8}
+\NOtes\qa{*}&\qp\en
\NOtesp\zltab50\zltab40\ltab30&\zhl{d}\zhu{f}\qu{.h}\en
\Notes\ltab30&\cu{h}\en
\bar%
@@ -1028,15 +1018,11 @@ above the staff, as in:
\nobarnumbers
\parindent=2ex
\setname1{\tabstringfnt\baselineskip=1.2\internote%
-\vbox{\hbox to\parindent{\hss F\hss}%
-\hbox to\parindent{\hss D\hss}%
-\hbox to\parindent{\hss A\hss}%
-\hbox to\parindent{\hss F\hss}%
-\hbox to\parindent{\hss D\hss}%
-\hbox to\parindent{\hss A\hss}}}
+\vbox{\hbox{F}\hbox{D}\hbox{A}\hbox{F}\hbox{D}\hbox{A}}}
\nostartrule
\startextract
-\scale{0.88}
+\scale{0.8}
+\NOtes\tzqu\qa{*}\en
\NOtesp\zltab50\zltab40\tzqup\ltab30\en
\Notes\tzcu\ltab30\en
\bar%
@@ -1066,12 +1052,18 @@ above the staff, as in:
\noindent
A tiny note can be generated above the staff using one of the commands
\keyindex{tzwh}, \keyindex{tzwhp}, \keyindex{tzhu}, \keyindex{tzhup}, \keyindex{tzqu}, \keyindex{tzqup}, \keyindex{tzcu}, \keyindex{tzcup}, \keyindex{tzccu}, \ldots\
-\emph{before} a spacing command. Coding
+\emph{before} a spacing command. These commands suppress spurious ledger lines and
+avoid raising dots on dotted notes.
+
+\smallskip
+
+\noindent
+Coding
for the notes in the example above is as follows:
\begin{footnotesize}
\begin{quote}\begin{verbatim}
\startextract
-\scale{0.88}
+\NOtes\tzqu\qa{*}\en
\NOtesp\zltab50\zltab40\tzqup\ltab30\en
\Notes\tzcu\ltab30\en
\bar%
diff --git a/macros/musixtex/doc/musixtex-install.pdf b/macros/musixtex/doc/musixtex-install.pdf
index 8a1d27ac52..d06023158d 100644
--- a/macros/musixtex/doc/musixtex-install.pdf
+++ b/macros/musixtex/doc/musixtex-install.pdf
Binary files differ
diff --git a/macros/musixtex/doc/musixtex-install.tex b/macros/musixtex/doc/musixtex-install.tex
index b3e78f4328..d2876fa3d0 100644
--- a/macros/musixtex/doc/musixtex-install.tex
+++ b/macros/musixtex/doc/musixtex-install.tex
@@ -48,6 +48,10 @@ compliant TeX distribution, including MikTeX, TeXlive and teTeX.
After unzipping the archive, update the filename database as necessary,
for example, by executing \verb\texhash ~/texmf\ or
clicking the button labelled ``Refresh FNDB" in the MikTeX settings program.
+Update the font map files, for example, by executing
+\begin{list}{}{}\item
+\verb|updmap-user -enable Map frenchtab.map|
+\end{list}
MusiXTeX requires a large set of specialized fonts. If necessary, install the
\texttt{musixtex-fonts} package.
diff --git a/macros/musixtex/map/frenchtab.map b/macros/musixtex/map/frenchtab.map
new file mode 100644
index 0000000000..116a3f2e21
--- /dev/null
+++ b/macros/musixtex/map/frenchtab.map
@@ -0,0 +1 @@
+frenchtab frenchtab <frenchtab.pfb
diff --git a/macros/musixtex/tex/musixftab.tex b/macros/musixtex/tex/musixftab.tex
new file mode 100644
index 0000000000..fb9b4b15b4
--- /dev/null
+++ b/macros/musixtex/tex/musixftab.tex
@@ -0,0 +1,148 @@
+
+% musixftab.tex : french tablature definitions for MusiXTeX
+%
+% usage:
+%
+% \input musixtex
+% \input musixftab
+% ...
+%
+% musixftab.tex is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% musixftab.tex is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+% Copyright 2021 Bob Tennent rdt@cs.queensu.ca
+%
+\immediate\write16{musixftab\space<2017/02/10>}
+\ifx\undefined\startpiece\errmessage{Input musixtex.tex before musixftab.tex}\fi
+
+\font\tabfntthirteen=frenchtab at 4pt
+\font\tabfntsixteen=frenchtab at 5pt
+\font\tabfnttwenty=frenchtab at 6pt
+\font\tabfnttwentyfour=frenchtab at 8pt
+\font\tabfnttwentynine=frenchtab at 12pt
+
+\makeatletter
+
+% need to raise note boxes 0.2ex for frenchtab.pfb
+
+\def\tabbox#1#2{%
+ \setbox0=\hbox{\tabfnt #2}%
+ \stringraise\nblines
+ \advance\stringraise by -#1
+ \multiply\stringraise by 2
+ \advancefalse\def\q@u{}\loffset{0.45}{\@nq{\the\stringraise}}%
+ \iftabstylespace\else\advance\stringraise-1\fi
+ \special{ps: 1 setgray}%
+ \ccharnote{\the\stringraise}{\vrule height \ht0 width \wd0 depth \dp0}%
+ \special{ps: 0 setgray}%
+ \ccharnote{\the\stringraise}{\raise 0.2ex\box0}%
+}
+% \ltabbox does the same as \tabbox, except that it produces
+% left-outlined symbols
+\def\ltabbox#1#2{\setbox0=\hbox{\tabfnt #2}%
+ \stringraise\nblines
+ \advance\stringraise by -#1
+ \multiply\stringraise by 2
+ \advancefalse\def\q@u{}\loffset{0.2}{\@nq{\the\stringraise}}%
+ \iftabstylespace\else\advance\stringraise-1\fi
+ \special{ps: 1 setgray}%
+ \zcharnote{\the\stringraise}{\vrule height \ht0 width \wd0 depth \dp0}%
+ \special{ps: 0 setgray}%
+ \zcharnote{\the\stringraise}{\raise 0.2ex\box0}%
+}
+% \rtabbox does the same as \tabbox, except that it produces
+% right-outlined symbols
+\def\rtabbox#1#2{\setbox0=\hbox{\tabfnt #2}%
+ \stringraise\nblines
+ \advance\stringraise by -#1
+ \multiply\stringraise by 2
+ \advancefalse\def\q@u{}\loffset{0.75}{\@nq{\the\stringraise}}%
+ \iftabstylespace\else\advance\stringraise-1\fi
+ \special{ps: 1 setgray}%
+ \lcharnote{\the\stringraise}{\vrule height \ht0 width \wd0 depth \dp0}%
+ \special{ps: 0 setgray}%
+ \lcharnote{\the\stringraise}{\raise 0.2ex\box0}%
+}
+
+\makeatother
+
+
+\def\tab#1#2{%
+\stringnum=#1
+\ifnum\stringnum>\nblines
+\nslashes=\stringnum
+\advance\nslashes by -\nblines
+\iftabstylespace\advance\nslashes by -1\fi
+\def\numslashes{\the\nslashes}
+\ifcase\numslashes\tabbox{#1}{#2}\or\zcn{-3}{\tabfnt V0}\or\zcn{-3}{\tabfnt W0}\or\zcn{-3}{\tabfnt X0}\or\zcn{-3}{\tabstringfnt\bf 4}\or\zcn{-3}{\tabstringfnt\bf 5}\or\zcn{-3}{\tabstringfnt\bf 6}\or\zcn{-3}{\tabstringfnt\bf 7}\fi%
+\else\tabbox{#1}{#2}\fi\sk}
+
+% left spilling \tab
+\def\ltab#1#2{%
+\stringnum=#1
+\ifnum\stringnum>\nblines
+\nslashes=\stringnum
+\advance\nslashes by -\nblines
+\iftabstylespace\advance\nslashes by -1\fi
+\def\numslashes{\the\nslashes}
+\ifcase\numslashes\ltabbox{#1}{#2}\or\zcn{-3}{\tabfnt V0}\or\zcn{-3}{\tabfnt W0}\or\zcn{-3}{\tabfnt X0}\or\zcn{-3}{\tabstringfnt\bf 4}\or\zcn{-3}{\tabstringfnt\bf 5}\or\zcn{-3}{\tabstringfnt\bf 6}\or\zcn{-3}{\tabstringfnt\bf 7}\fi%
+\else\ltabbox{#1}{#2}\fi\sk}
+
+% right spilling \tab
+\def\rtab#1#2{%
+\stringnum=#1
+\ifnum\stringnum>\nblines
+\nslashes=\stringnum
+\advance\nslashes by -\nblines
+\iftabstylespace\advance\nslashes by -1\fi
+\def\numslashes{\the\nslashes}
+\ifcase\numslashes\rtabbox{#1}{#2}\or\zcn{-3}{\tabfnt V0}\or\zcn{-3}{\tabfnt W0}\or\zcn{-3}{\tabfnt X0}\or\zcn{-3}{\tabstringfnt\bf 4}\or\zcn{-3}{\tabstringfnt\bf 5}\or\zcn{-3}{\tabstringfnt\bf 6}\or\zcn{-3}{\tabstringfnt\bf 7}\fi%
+\else\rtabbox{#1}{#2}\fi\sk}
+
+% \chord-tab symbol. Same as \tab, but no \sk is given, so multiple
+% symbols can be placed above one another
+\def\ztab#1#2{%
+\stringnum=#1
+\ifnum\stringnum>\nblines
+\nslashes=\stringnum
+\advance\nslashes by -\nblines
+\iftabstylespace\advance\nslashes by -1\fi
+\def\numslashes{\the\nslashes}
+\ifcase\numslashes\tabbox{#1}{#2}\or\zcn{-3}{\tabfnt V0}\or\zcn{-3}{\tabfnt W0}\or\zcn{-3}{\tabfnt X0}\or\zcn{-3}{\tabstringfnt\bf 4}\or\zcn{-3}{\tabstringfnt\bf 5}\or\zcn{-3}{\tabstringfnt\bf 6}\or\zcn{-3}{\tabstringfnt\bf 7}\fi%
+\else\tabbox{#1}{#2}\fi}
+
+% left spilling \ztab
+\def\zltab#1#2{%
+\stringnum=#1
+\ifnum\stringnum>\nblines
+\nslashes=\stringnum
+\advance\nslashes by -\nblines
+\iftabstylespace\advance\nslashes by -1\fi
+\def\numslashes{\the\nslashes}
+\ifcase\numslashes\ltabbox{#1}{#2}\or\zcn{-3}{\tabfnt V0}\or\zcn{-3}{\tabfnt W0}\or\zcn{-3}{\tabfnt X0}\or\zcn{-3}{\tabstringfnt\bf 4}\or\zcn{-3}{\tabstringfnt\bf 5}\or\zcn{-3}{\tabstringfnt\bf 6}\or\zcn{-3}{\tabstringfnt\bf 7}\fi%
+\else\ltabbox{#1}{#2}\fi}
+
+% right spilling \ztab
+\def\zrtab#1#2{%
+\stringnum=#1
+\ifnum\stringnum>\nblines
+\nslashes=\stringnum
+\advance\nslashes by -\nblines
+\iftabstylespace\advance\nslashes by -1\fi
+\def\numslashes{\the\nslashes}
+\ifcase\numslashes\rtabbox{#1}{#2}\or\zcn{-3}{\tabfnt V0}\or\zcn{-3}{\tabfnt W0}\or\zcn{-3}{\tabfnt X0}\or\zcn{-3}{\tabstringfnt\bf 4}\or\zcn{-3}{\tabstringfnt\bf 5}\or\zcn{-3}{\tabstringfnt\bf 6}\or\zcn{-3}{\tabstringfnt\bf 7}\fi%
+\else\rtabbox{#1}{#2}\fi}
+
+\endinput
diff --git a/macros/musixtex/tex/musixtex.tex b/macros/musixtex/tex/musixtex.tex
index d91c665a68..7dda85bd90 100644
--- a/macros/musixtex/tex/musixtex.tex
+++ b/macros/musixtex/tex/musixtex.tex
@@ -25,15 +25,21 @@
\def\mufl@x{0.83}%
\def\mxmajorvernumber{1}
-\def\mxminorvernumber{33}
+\def\mxminorvernumber{34}
\def\mxvernumber{\mxmajorvernumber\mxminorvernumber}% make it possible to compare with \ifnum
-\def\mxversuffix{a}%
+\def\mxversuffix{}%
\edef\mxversion{\mxmajorvernumber.\mxminorvernumber\mxversuffix}
-\def\mxdate{2021-07-07}
+\def\mxdate{2021-07-24}
\immediate\write16{MusiXTeX(c) \mxversion\space<\mxdate>}%
\everyjob{\immediate\write16{MusiXTeX(c) \mxversion\space<\mxdate>}}%
+% version 1.34
+%
+% redefine \tabfnt... commands to allow re-definition in musixftab.tex
+% decrement the number of slashes if tabstylespace is true
+%
+
% version 1.33a
%
% improved implementations of the tablature commands:
@@ -870,6 +876,11 @@
\def\normdyn{\let\ppff\ppfftwenty}
\def\meddyn{\let\ppff\ppfftwentyfour}
+\font\tabfntthirteen=phvb8t at 4pt % version 1.34 RDT
+\font\tabfntsixteen=phvb8t at 5pt
+\font\tabfnttwenty=phvb8t at 6pt
+\font\tabfnttwentyfour=phvb8t at 8pt
+\font\tabfnttwentynine=phvb8t at 10pt
\font\musiceleven=musix11
\font\musicthirteen=musix13
@@ -1769,8 +1780,8 @@
\else\ifdim\internote<1.19\Internote \smalltype\it
\else\ifdim\internote<1.43\Internote \Smalltype\it
\else\normtype\it\fi\fi\fi}%
- \let\tabnorfnt\fivedc \let\tablargefnt\sixdc % 1.33 RDT
- \let\tabLargefnt\eightdc \let\tabsmallfnt\fourdc
+ \let\tabnorfnt\tabfntsixteen \let\tablargefnt\tabfnttwenty % 1.34 RDT
+ \let\tabLargefnt\tabfnttwentyfour \let\tabsmallfnt\tabfntthirteen
\let\tabnorcleffnt\eightdc \let\tablargecleffnt\tendc
\let\tabLargecleffnt\twelvedc \let\tabsmallcleffnt\sixdc
\def\tabstringfnt{\ifdim\internote<.95\Internote \fourss % 1.29 RDT
@@ -1801,8 +1812,8 @@
\else\ifdim\internote<1.19\Internote \Smalltype\it
\else\ifdim\internote<1.43\Internote \normtype\it
\else\medtype\it\fi\fi\fi}%
- \let\tabnorfnt\eightdc \let\tablargefnt\ninedc % 1.33 RDT
- \let\tabLargefnt\elevendc \let\tabsmallfnt\sixdc
+ \let\tabnorfnt\tabfnttwentyfour \let\tablargefnt\tabfnttwentynine % 1.34 RDT
+ \let\tabLargefnt\tabfnttwentynine \let\tabsmallfnt\tabfnttwenty
\let\tabnorcleffnt\twelvedc \let\tablargecleffnt\frtdc
\let\tabLargecleffnt\svtdc \let\tabsmallcleffnt\tendc
\def\tabstringfnt{\ifdim\internote<.95\Internote \sixss % 1.29 RDT
@@ -1835,8 +1846,8 @@
\else\ifdim\internote<1.19\Internote \medtype\it
\else\ifdim\internote<1.43\Internote \bigfont\it
\else\Bigfont\it\fi\fi\fi}%
- \let\tabnorfnt\ninedc \let\tablargefnt\elevendc % 1.33 RDT
- \let\tabLargefnt\twelvedc \let\tabsmallfnt\eightdc
+ \let\tabnorfnt\tabfnttwentynine \let\tablargefnt\tabfnttwentynine % 1.34 RDT
+ \let\tabLargefnt\tabfnttwentynine \let\tabsmallfnt\tabfnttwentyfour
\let\tabnorcleffnt\frtdc \let\tablargecleffnt\svtdc
\let\tabLargecleffnt\twtydc \let\tabsmallcleffnt\twelvedc
\def\tabstringfnt{\ifdim\internote<.95\Internote \eightss % 1.29 RDT
@@ -1873,8 +1884,8 @@
\else\ifdim\internote<1.19\Internote \Smalltype\it
\else\ifdim\internote<1.43\Internote \normtype\it
\else\medtype\it\fi\fi\fi}%
- \let\tabnorfnt\sixdc \let\tablargefnt\eightdc % 1.33 RDT
- \let\tabLargefnt\ninedc \let\tabsmallfnt\fivedc
+ \let\tabnorfnt\tabfnttwenty \let\tablargefnt\tabfnttwentyfour % 1.34 RDT
+ \let\tabLargefnt\tabfntwentynine \let\tabsmallfnt\tabfntsixteen
\let\tabnorcleffnt\tendc \let\tablargecleffnt\twelvedc
\let\tabLargecleffnt\frtdc \let\tabsmallcleffnt\eightdc
\def\tabstringfnt{\ifdim\internote<.95\Internote \fivess % 1.29 RDT
@@ -5483,7 +5494,7 @@
% This version corrected 07/23/2007 by Rainer Dunker to make it %
% insensitive to changes in \interstaff by PMX %
% %
-% Added to musixtex.tex version 1.16 by RDT %
+% Added to musixtex.tex version 1.16 by RDT %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -5496,8 +5507,9 @@
% 1.33 RDT %
% replace ledger lines by slashes (/) for string numbers > number of staff lines %
% %
-% 1.34 RDT %
+% 1.33a RDT %
% replace 4-7 slashes by numbers 4-7 %
+% decrement number of slashes if tabstylespace is true %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -5525,7 +5537,7 @@
\advance\stringraise by -#1
\multiply\stringraise by 2
\advancefalse\def\q@u{}\loffset{0.2}{\@nq{\the\stringraise}}%
- \iftabstylespace\else\advance\stringraise-1\fi
+ \iftabstylespace\else\advance\stringraise-1\fi
\special{ps: 1 setgray}%
\zcharnote{\the\stringraise}{\vrule height \ht0 width \wd0 depth \dp0}%
\special{ps: 0 setgray}%
@@ -5559,8 +5571,9 @@
\ifnum\stringnum>\nblines
\nslashes=\stringnum
\advance\nslashes by -\nblines
+\iftabstylespace\advance\nslashes by -1\fi
\def\numslashes{\the\nslashes}
-\ifcase\numslashes\or\ccn{-3}{\tabfnt/#2}\or\ccn{-3}{\tabfnt//#2}\or\ccn{-3}{\tabfnt///#2}\or\ccn{-3}{\tabfnt////#2}\ccn{-3}{\tabfnt/////#2}\or\ccn{-3}{\tabfnt//////#2}\or\ccn{-3}{\tabfnt///////#2}\fi%
+\ifcase\numslashes\tabbox{#1}{#2}\or\zcn{-3}{\tabfnt/#2}\or\zcn{-3}{\tabfnt//#2}\or\zcn{-3}{\tabfnt///#2}\or\zcn{-3}{\tabfnt 4}\or\zcn{-3}{\tabfnt 5}\or\zcn{-3}{\tabfnt 6}\or\zcn{-3}{\tabfnt 7}\fi%
\else\tabbox{#1}{#2}\fi\sk}
% left spilling \tab
@@ -5569,8 +5582,9 @@
\ifnum\stringnum>\nblines
\nslashes=\stringnum
\advance\nslashes by -\nblines
+\iftabstylespace\advance\nslashes by -1\fi
\def\numslashes{\the\nslashes}
-\ifcase\numslashes\or\zcn{-3}{\tabfnt/#2}\or\zcn{-3}{\tabfnt//#2}\or\zcn{-3}{\tabfnt///#2}\or\zcn{-3}{\tabfnt////#2}\or\zcn{-3}{\tabfnt/////#2}\or\zcn{-3}{\tabfnt//////#2}\or\zcn{-3}{\tabfnt///////#2}\fi%
+\ifcase\numslashes\ltabbox{#1}{#2}\or\zcn{-3}{\tabfnt/#2}\or\zcn{-3}{\tabfnt//#2}\or\zcn{-3}{\tabfnt///#2}\or\zcn{-3}{\tabfnt 4}\or\zcn{-3}{\tabfnt 5}\or\zcn{-3}{\tabfnt 6}\or\zcn{-3}{\tabfnt 7}\fi%
\else\ltabbox{#1}{#2}\fi\sk}
% right spilling \tab
@@ -5579,8 +5593,9 @@
\ifnum\stringnum>\nblines
\nslashes=\stringnum
\advance\nslashes by -\nblines
+\iftabstylespace\advance\nslashes by -1\fi
\def\numslashes{\the\nslashes}
-\ifcase\numslashes\or\lcn{-3}{\tabfnt/#2}\or\lcn{-3}{\tabfnt//#2}\or\lcn{-3}{\tabfnt///#2}\or\lcn{-3}{\tabfnt////#2}\or\lcn{-3}{\tabfnt/////#2}\or\lcn{-3}{\tabfnt//////#2}\or\lcn{-3}{\tabfnt///////#2}\fi%
+\ifcase\numslashes\rtabbox{#1}{#2}\or\zcn{-3}{\tabfnt/#2}\or\zcn{-3}{\tabfnt//#2}\or\zcn{-3}{\tabfnt///#2}\or\zcn{-3}{\tabfnt 4}\or\zcn{-3}{\tabfnt 5}\or\zcn{-3}{\tabfnt 6}\or\zcn{-3}{\tabfnt 7}\fi%
\else\rtabbox{#1}{#2}\fi\sk}
% \chord-tab symbol. Same as \tab, but no \sk is given, so multiple
@@ -5590,8 +5605,9 @@
\ifnum\stringnum>\nblines
\nslashes=\stringnum
\advance\nslashes by -\nblines
+\iftabstylespace\advance\nslashes by -1\fi
\def\numslashes{\the\nslashes}
-\ifcase\numslashes\or\zcn{-3}{\tabfnt/#2}\or\zcn{-3}{\tabfnt//#2}\or\zcn{-3}{\tabfnt///#2}\or\zcn{-3}{\tabfnt 4}\or\zcn{-3}{\tabfnt 5}\or\zcn{-3}{\tabfnt 6}\or\zcn{-3}{\tabfnt 7}\fi%
+\ifcase\numslashes\tabbox{#1}{#2}\or\zcn{-3}{\tabfnt/#2}\or\zcn{-3}{\tabfnt//#2}\or\zcn{-3}{\tabfnt///#2}\or\zcn{-3}{\tabfnt 4}\or\zcn{-3}{\tabfnt 5}\or\zcn{-3}{\tabfnt 6}\or\zcn{-3}{\tabfnt 7}\fi%
\else\tabbox{#1}{#2}\fi}
% left spilling \ztab
@@ -5600,8 +5616,9 @@
\ifnum\stringnum>\nblines
\nslashes=\stringnum
\advance\nslashes by -\nblines
+\iftabstylespace\advance\nslashes by -1\fi
\def\numslashes{\the\nslashes}
-\ifcase\numslashes\or\zcn{-3}{\tabfnt/#2}\or\zcn{-3}{\tabfnt//#2}\or\zcn{-3}{\tabfnt///#2}\or\zcn{-3}{\tabfnt 4}\or\zcn{-3}{\tabfnt 5}\or\zcn{-3}{\tabfnt 6}\or\zcn{-3}{\tabfnt 7}\fi%
+\ifcase\numslashes\ltabbox{#1}{#2}\or\zcn{-3}{\tabfnt/#2}\or\zcn{-3}{\tabfnt//#2}\or\zcn{-3}{\tabfnt///#2}\or\zcn{-3}{\tabfnt 4}\or\zcn{-3}{\tabfnt 5}\or\zcn{-3}{\tabfnt 6}\or\zcn{-3}{\tabfnt 7}\fi%
\else\ltabbox{#1}{#2}\fi}
% right spilling \ztab
@@ -5610,8 +5627,9 @@
\ifnum\stringnum>\nblines
\nslashes=\stringnum
\advance\nslashes by -\nblines
+\iftabstylespace\advance\nslashes by -1\fi
\def\numslashes{\the\nslashes}
-\ifcase\numslashes\or\zcn{-3}{\tabfnt/#2}\or\zcn{-3}{\tabfnt//#2}\or\zcn{-3}{\tabfnt///#2}\or\zcn{-3}{\tabfnt 4}\or\zcn{-3}{\tabfnt 5}\or\zcn{-3}{\tabfnt 6}\or\zcn{-3}{\tabfnt 7}\fi%
+\ifcase\numslashes\rtabbox{#1}{#2}\or\zcn{-3}{\tabfnt/#2}\or\zcn{-3}{\tabfnt//#2}\or\zcn{-3}{\tabfnt///#2}\or\zcn{-3}{\tabfnt 4}\or\zcn{-3}{\tabfnt 5}\or\zcn{-3}{\tabfnt 6}\or\zcn{-3}{\tabfnt 7}\fi%
\else\rtabbox{#1}{#2}\fi}
%
@@ -5633,7 +5651,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% tiny duration notes placed above tablature staff %
-% 1.34 RDT %
+% 1.33a RDT %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcount\tiny@hgt % = 2 * \nblines + 1
diff --git a/macros/musixtex/tfm/frenchtab.tfm b/macros/musixtex/tfm/frenchtab.tfm
new file mode 100644
index 0000000000..a072ef9172
--- /dev/null
+++ b/macros/musixtex/tfm/frenchtab.tfm
Binary files differ
diff --git a/macros/musixtex/type1/frenchtab.pfb b/macros/musixtex/type1/frenchtab.pfb
new file mode 100644
index 0000000000..99ea0e0354
--- /dev/null
+++ b/macros/musixtex/type1/frenchtab.pfb
Binary files differ