Mar*_*ler 6 lilypond music-notation
在Lilypond中,我可以用一条线来改变一种类型物体的颜色
\override Staff.Clef #'color = #(rgb-color 0.4 0.5 0.6)
我希望所有的东西都是相同的(非默认)颜色,但是我既没有找到我可以着色的所有对象的列表,也没有找到一次更改所有颜色的命令.有人可以指点我吗?
小智 7
该LilyPond的片段库有一个通过的对象列表迭代包含在解决方案all-grob-descriptions:
#(define (override-color-for-all-grobs color)
(lambda (context)
(let loop ((x all-grob-descriptions))
(if (not (null? x))
(let ((grob-name (caar x)))
(ly:context-pushpop-property context grob-name 'color color)
(loop (cdr x)))))))
% Example of usage:
\relative c' {
\applyContext #(override-color-for-all-grobs (x11-color 'blue))
c4\pp\< d e f
\grace { g16[( a g fis]) } g1\ff\!
}
Run Code Online (Sandbox Code Playgroud)
请注意,这将改变每个图形对象的颜色,只有在适当的上下文中运行它(Score我认为通常就足够了),所以如果你处于中间位置,可能需要执行以下操作:Voice背景:
\stopStaff
\context Score
\applyContext #(override-color-for-all-grobs (x11-color 'blue))
\startStaff
Run Code Online (Sandbox Code Playgroud)
您需要的图形对象列表位于此页面的底部。因此,一个简单但乏味的方法是迭代您使用的所有对象,例如
\override Staff.Clef #'color = #(rgb-color 0.4 0.5 0.6)
\override Staff.NoteHead #'color = #(rgb-color 0.4 0.5 0.6)
\override Staff.Beam #'color = #(rgb-color 0.4 0.5 0.6)
\override Staff.Slur #'color = #(rgb-color 0.4 0.5 0.6)
Run Code Online (Sandbox Code Playgroud)
ETC。
可能有更好的方法,但我无法弄清楚。或者,正如之前所建议的,您可以考虑对 Lilypond 的输出进行一些后处理,这可能会更简单,具体取决于您可用的工具。
我强烈建议您阅读优秀的文档,特别是如何浏览学习手册和符号参考中涵盖的内部参考
您也可以从lilypond-user 邮件列表中获得更好的答案。
| 归档时间: |
|
| 查看次数: |
1315 次 |
| 最近记录: |