lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: svg font issue(bug?): can't change TimeSignature font (but markup fo


From: padovani
Subject: Re: svg font issue(bug?): can't change TimeSignature font (but markup fonts can be changed)
Date: Wed, 29 Apr 2015 17:48:44 -0300

So... I discovered that the TimeSignature issue is related to the fact that it is not being written as text to the svg file, but as a path.

If I use this code I can create a svg file with different fonts for the time signature, overriding the stencil with a text:

%%%%%% BEGIN CODE 1
\score {
\new Staff {

\once \override Staff.TimeSignature.stencil = #ly:text-interface::print
  \once \override Staff.TimeSignature.text = \markup {
  \override #'(font-name . "Helvetica")
  \override #'(baseline-skip . 0.2)
  \fontsize #4
 \column { "3" 
  "4" 
  }}
\time 2/4
c2
}
}
%%%%%% END CODE 1

It works, but I'm struggling here to change the text of the time signature automatically with a scheme function. Tried the code below, but it does not work (giving me exactly the same error dump of my previous message). Any suggestions?

%%%%%% BEGIN CODE 2
#(define-public (tsigastext grob)
   (let* ((frac (ly:grob-property grob 'fraction))
          (num (if (pair? frac) (car frac) 4))
          (den (if (pair? frac) (cdr frac) 4))
          (m (markup 
     #:override '(font-name . "Helvetica")      
     #:override '(baseline-skip . 0.5)
     #:fontsize 4
     #:center-column (#:number (number->string num)
      #:override '(style . default)
      #:number (number->string den)
    ))))
    (ly:grob-set-property! grob 'stencil ly:text-interface::print)
    (grob-interpret-markup grob m)))


\score {
\new Staff {

  \override Staff.TimeSignature.stencil = #tsigastext
\time 2/4
c2


%%% \override Staff.TimeSignature.stencil = #(lambda (grob)
%%%    (parenthesize-stencil (ly:time-signature::print grob) 0.1 0.4 0.4 0.1 ))

\time 3/4
c2
}
}
%%%%%% END CODE 2

thanks!

2015-04-28 14:37 GMT-03:00 padovani <address@hidden>:
Hi,  

This code compiles on .ps /.svg backends without problems:

%code 1
\score {
\new Staff {
\time 2/4
c2_\markup {
  \override #'(font-name . "Helvetica")
    "here it works"
}
}
}
%end code 1

But the code below one gives me an error if I compile with -dbackend=svg

%code2
\score {
\new Staff {
\override Staff.TimeSignature.font-name = #'"Helvetica"
\time 2/4
c2_\markup {
  \override #'(font-name . "Helvetica")
    "here it works"
}
}
}
% end code 2

here is the error:
%%error begin
Interpreting music...
Preprocessing graphical objects...
Finding the ideal number of pages...
Fitting music on 1 page...
Drawing systems...
Layout output to `teste.svg'...
warning: cannot find SVG font #f
/Applications/LilyPond.app/Contents/Resources/share/lilypond/current/scm/output-svg.scm:558:7: In procedure string-null? in _expression_ (string-null? expr):
/Applications/LilyPond.app/Contents/Resources/share/lilypond/current/scm/output-svg.scm:558:7: Wrong type argument in position 1 (expecting string): #<unspecified>
%%error end

(I'm using 2.19.19 on OSX 10.9.5.)

Is this a bug? It seems that something need to be changes in output-svg.scm... any idea?

Thank you!





reply via email to

[Prev in Thread] Current Thread [Next in Thread]