> Michel Caprace wrote:
> 
> Can somebody tell me how to write a barnumber on each staff only at
> the beginning of each system ?
> 
> It is supposed to be \staffnumbers following Daniel Taupin's
> documentation, but I do not know how to define it.

IMHO it is a misunderstanding that musixtex.tex already contains a
function doing the desired thing. Since outputting the bar number at the
system beginning is hard-coded in the \writ@staffs macro and this macro
does not contain any "user exit" for hooking in something like that,
you'll have to hack a \writ@staffs extension. The following draft works
for me (setting the bar number only on the topmost staff of multi-staff
instruments):

8<---------------------------------------------
\makeatletter
 % for switching on instrument-wise bar numbering 
 \def\staffnumbers{\nobarnumbers\let\lin@bar\tw@}

 % the \writ@staffs hack
 \let\writ@staffs@rig\writ@staffs
 \def\writ@staffs{%
   \writ@staffs@rig
   \n@loop
    \ifx\lin@bar\tw@
     \Comp@High
     \raise\altitude\hbox{%
       \raise\y@v\hbox{%
         \raise\raisebarno\rlap{\kern\shiftbarno\writebarno}}}%
    \fi
   \repeat}
\makeatother

% some customizing like this will be necessary
% to avoid collisions of bar numbers and clefs
\def\writebarno{\tenit\the\barno\barnoadd}
\def\raisebarno{3\internote}
\def\shiftbarno{5mm}

% do it
\staffnumbers
8<---------------------------------------------

Best regards,

Rainer

Reply via email to