summaryrefslogtreecommitdiff
path: root/macros/musixtex/tex/musixftab.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-07-25 03:00:49 +0000
committerNorbert Preining <norbert@preining.info>2021-07-25 03:00:49 +0000
commit70e05e80042e1e0b40202c65384883b446f03654 (patch)
treea245ddbfdcfbe4d7a24c5608e8399d759f72b3c7 /macros/musixtex/tex/musixftab.tex
parent9c5706814f2f593a9f52c51ad02b61e9bacd9ee4 (diff)
CTAN sync 202107250300
Diffstat (limited to 'macros/musixtex/tex/musixftab.tex')
-rw-r--r--macros/musixtex/tex/musixftab.tex148
1 files changed, 148 insertions, 0 deletions
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