Lilypond:控制谱号和键签名可见性,对齐标记

use*_*772 5 lilypond

我努力创建一个包含六个不同部分的文档的文档遇到了一些问题.有人可以帮忙吗?我正在粘贴下面的代码(为了提出问题,我已经稍微减少了示例).

问题1:如何隐藏线末端的谱号和键签名?\ score中的命令不符合我认为的基于文档的行为.

问题2:如何将文本标记与行的开头对齐?我希望"1号"等在工作人员的一开始就左对齐.

额外查询:有没有人知道为什么使用\ partial会破坏部分度量之前的度量中的波束?对此有一般性的解决方法吗?(没有使用[]对正确的光束进行硬编码.)

任何帮助感激不尽!

=========================

\version "2.16.2"

notes = {
  \bar""\mark\markup\normalsize{No. 1}
  \clef bass
  \time 6/8
  \key g \major
  \partial 8 \once \stemUp d=8 |
  g( d e) e( c d) |
  \partial 8*5 d g d b g
  \bar""
  \break

  \mark\markup\normalsize{No. 2}
  \clef bass
  \time 3/8
  \key d \minor
  \partial 8 a=8 |
  d,4 bes'8 | 
  \partial 4 cis,4
  \bar""
  \break

  \mark\markup\normalsize{No. 3}
  \clef bass
  \time 3/8
  \key c \major
  \partial 8 g=8 |
  c8 c,16( d e f) |
  \partial 4 g8( a)
  \bar""
  \break

  \mark\markup\normalsize{No. 4}
  \clef bass
  \time 12/8
  \key es \major
  \partial 8 es8 |
  es( d es) bes( c d) es( d es) g( f g) |
  \break

  \mark\markup\normalsize{No. 5}
  \clef bass
  \time 3/8
  %\key c \minor
  \partial 8 g=8 |
  es8. f16 d8 |
  \partial 16*3 es8.
  \bar""
  \break

  \mark\markup\normalsize{No. 6}
  \clef alto
  \time 6/8
  \key d \major
  \partial 8 a='8 |
  << { d,4. e8 fis g |\noBreak
       fis d a' \stemDown a16( g fis g) a8 \stemUp |\noBreak
       d, a d e fis g |\noBreak } \\
     { fis,4. a8 s s |
       d, s8*5 |
       fis8 s s a s s | } \\
     { s2. |
       a8 s8*5 |
       s2. | } >>
  fis'8 d a d,4
}

\score {
  \relative c <<
    \new Staff \notes
    \override Score.TextScript #'font-family = #'sans
    \override Score.RehearsalMark #'font-family = #'sans
    \override Staff.Clef #'break-visibility = #begin-of-line-visible
    \override Staff.Clef #'explicitClefVisibility = #begin-of-line-visible
    \override Staff.TimeSignature #'break-visibility = #begin-of-line-
visible
    \override Staff.KeySignature #'break-visibility = #begin-of-line-visible
    \override Staff.KeySignature #'explicitKeySignatureVisibility = #begin-
of-line-visible
    \override Staff.KeyCancellation #'break-visibility = #all-invisible
    \override Staff.KeyCancellation #'explicitKeySignatureVisibility = #all-
invisible
  >>
  \layout {
  }
}

\paper {
  paper-height = 250\pt%7in=504pt max.
  line-width = 432\pt
  paper-width = 432\pt
  left-margin = 0\pt
  top-margin = 0\pt
  bottom-margin = 0\pt
  indent = 0
  head-separation = 0\pt
  page-top-space = 0\pt
  after-title-space = 0\pt
  before-title-space = 0\pt
  between-system-padding = 0\pt
  between-system-space = 0\pt
  between-title-space = 0\pt
  foot-separation = 0\pt
  ragged-bottom = ##f
  ragged-right = ##t
}

\book {
  #(set-global-staff-size 13)
}

\header {
  tagline = ""%removed
  title = ""
}
Run Code Online (Sandbox Code Playgroud)

gil*_*ofb 3

以下是您的两个问题的解决方案:

1)我在上面编译了您的代码,并且警告谱号已经对我隐藏了。拍号问题将通过使用 来解决\set Staff.explicitKeySignatureVisibility = #begin-of-line-visible

2)要解决这个问题,您可以将\mark\markup文本与谱号对齐,然后将其水平移动。

只需将您的替换\score为这个:

\score {
  \relative c <<
    \new Staff \notes
    \override Score.RehearsalMark.break-align-symbols = #'(clef) %this will put the \mark\markup texts above the clefs
    \override Score.Clef.break-align-anchor-alignment = #0.3 % %this controls its horizontal displacement. In my test, 0.3 was the ideal value to have the No. x exactly at the beginning of each system
    \override Score.TextScript #'font-family = #'sans
    \override Score.RehearsalMark #'font-family = #'sans
    \override Staff.Clef #'break-visibility = #begin-of-line-visible
    \override Staff.Clef #'explicitClefVisibility = #begin-of-line-visible
    \override Staff.TimeSignature #'break-visibility = #begin-of-line-visible
    \set Staff.explicitKeySignatureVisibility = #begin-of-line-visible % this will do the job with the time signatures
    \override Staff.KeyCancellation #'break-visibility = #all-invisible
    \override Staff.KeyCancellation #'explicitKeySignatureVisibility = #all-invisible
  >>
  \layout {
  }
}
Run Code Online (Sandbox Code Playgroud)

关于你的额外问题:我在 LilyPond (v2.12) 的旧文档中找到了以下引用:

\partial 命令仅用于片段的开头。如果您在开始后使用它,可能会出现一些奇怪的警告。

也许这就是您遇到这些喜气洋洋问题的原因。我建议一些解决方法,例如使用不可见的休止符(输入为sn,其中 n 是持续时间)。发射问题的另一种可能性是手动控制发射。这很烦人,但它完成了工作:) 例如:替换您的 No.1 的音乐内容,即:

  \partial 8 \once \stemUp d=8 |
  g( d e) e([ c d)] |
  \partial 8*5 d g d b g
Run Code Online (Sandbox Code Playgroud)

为了:

  \partial 8 \once \stemUp d=8 |
  g( d e) e([ c d)] |
  \partial 8*5 d[ g d] b[ g]
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助。