@cindex @code{\shiftOff}
@code{\shiftOff}.
+When LilyPond cannot cope, the @code{force-hshift}
+property of the @internalsref{NoteColumn} object and pitched rests can
+be used to override typesetting decisions.
+
+@lilypond[verbatim,raggedright]
+\relative <<
+{
+ <d g>
+ <d g>
+} \\ {
+ <b f'>
+ \once \override NoteColumn #'force-hshift = #1.7
+ <b f'>
+} >>
+@end lilypond
+
@seealso
@refbugs
-Resolving collisions is a intricate subject, and only a few situations
-are handled. When LilyPond cannot cope, the @code{force-hshift}
-property of the @internalsref{NoteColumn} object and pitched rests can
-be used to override typesetting decisions.
When using @code{merge-differently-headed} with an upstem eighth or a
shorter note, and a downstem half note, the eighth note gets the wrong
If you have multiple voices in a single staff, and you want a single
ambitus per staff rather than per each voice, add the
@internalsref{Ambitus_engraver} to the @internalsref{Staff} context
-rather than to the @internalsref{Voice} context.
+rather than to the @internalsref{Voice} context. Here is an example,
-It is possible to tune individual ambituses for multiple voices on a
-single staff, for example by erasing or shifting them horizontally. An
-example is in @inputfileref{input/test,ambitus-mixed.ly}.
+@lilypond[verbatim,raggedright]
+\new Staff <<
+ \new Voice \with {
+ \consists "Ambitus_engraver"
+ } \relative c'' {
+ \override Ambitus #'X-offset-callbacks
+ = #(list (lambda (grob axis) -1.0))
+ \voiceOne
+ c4 a d e f2
+ }
+ \new Voice \with {
+ \consists "Ambitus_engraver"
+ } \relative c' {
+ \voiceTwo
+ es4 f g as b2
+ }
+>>
+@end lilypond
+
+@noindent
+This example uses one advanced feature,
+
+@example
+ \override Ambitus #'X-offset-callbacks
+ = #(list (lambda (grob axis) -1.0))
+@end example
+
+@noindent
+This code moves the ambitus to the left. The same effect could have
+been achieved with @code{extra-offset}, but then the formatting system
+would not reserve space for the moved object.
@seealso
@internalsref{AmbitusLine}, @internalsref{AmbitusNoteHead},
@internalsref{AmbitusAccidental}.
-Examples: @inputfileref{input/regression,ambitus.ly},
-@inputfileref{input/test,ambitus-mixed.ly}.
+Examples: @inputfileref{input/regression,ambitus.ly}.
@refbugs
@lilypond[raggedright,verbatim]
\new ChordNames \with {
\override BarLine #'bar-size = #4
- \consists Bar_engraver
+ voltaOnThisStaff = ##t
+ \consists Bar_engraver
\consists "Volta_engraver"
}
\repeat volta 2 \chords {
f1:maj f:7 bes:7
- c:maj es
+ c:maj
+} \alternative {
+ es e
}
@end lilypond
(def-markup-command (postscript paper props str) (string?)
- "This inserts @var{str} directly into the output as a PostScript command string. For example,
+ "This inserts @var{str} directly into the output as a PostScript
+command string. Due to technicalities of the output backends,
+different scales should be used for the @TeX{} and PostScript backend,
+selected with @code{-f}.
+
+
+For the TeX backend, the following string prints a rotated text
@cindex rotated text
-@lilypond[verbatim]
-{ c^\\markup { \\postscript #\" /ecrm10 findfont 10 output-scale div scalefont 90 rotate (hello) show \" } }
-@end lilypond"
+@verbatim
+0 0 moveto /ecrm10 findfont
+1.75 scalefont setfont 90 rotate (hello) show
+@end verbatim
+
+@noindent
+The magical constant 1.75 scales from LilyPond units (staff spaces) to
+TeX dimensions.
+
+For the postscript backend, use the following
+
+@verbatim
+gsave /ecrm10 findfont
+ 10.0 output-scale div
+ scalefont setfont 90 rotate (hello) show grestore
+@end verbatim
+"
+ ;; FIXME
+
(ly:make-stencil
(list 'embedded-ps str)
'(0 . 0) '(0 . 0) ))