Lilypond: управление видимостью ключа и ключа, выравнивание разметки
Мои усилия по созданию документа с шестью прорезями из разных частей натолкнулись на пару проблем. Кто-нибудь может помочь? Я вставляю свой код ниже (я несколько уменьшил пример, чтобы задать вопрос).
Проблема 1: Как я могу скрыть ключи и подписи ключей от концов линий? Команды в \ Score ведут себя не так, как я думал, основываясь на документации.
Проблема 2: Как я могу выровнять текстовую разметку по началу строк? Я хочу, чтобы "№ 1" и т. Д. Выровнялись по левому краю до самого начала работы персонала.
Дополнительный запрос: Кто-нибудь знает, почему использование \partal приводит к разрыву луча в мере, предшествующей частичной мере? Есть ли общее исправление для этого? (Если не считать жесткого кодирования правильного излучения с помощью [ ].)
Любая помощь с благодарностью получена!
=========================
\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 = ""
}
2 ответа
Вот решение обоих ваших вопросов:
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 {
}
}
О вашем дополнительном вопросе: я нашел следующую цитату в старой документации LilyPond (v2.12):
Команда \part предназначена для использования только в начале фрагмента. Если вы используете его после начала, могут появиться некоторые странные предупреждения.
Может быть, это причина, по которой вы сталкиваетесь с этими проблемами при работе с лучами. Я хотел бы предложить обходной путь, как с использованием невидимых остатков (вводится как sn
где n - продолжительность). Еще одна возможность для проблемы с излучением состоит в том, чтобы управлять излучением вручную. Это раздражает, но это делает работу:) Пример: замените музыкальный контент вашего № 1, который:
\partial 8 \once \stemUp d=8 |
g( d e) e([ c d)] |
\partial 8*5 d g d b g
за:
\partial 8 \once \stemUp d=8 |
g( d e) e([ c d)] |
\partial 8*5 d[ g d] b[ g]
Надеюсь, это поможет.
Таким образом, проблема здесь в том, что у вас есть один инструментальный штат, который разбивается на 6 частей, и это вызывает всевозможные проблемы с ключами, пикапами, ключевыми знаками. Хотя обходной путь, который я выложил выше, работает хорошо (кроме ключей), в идеале нужно рассматривать каждый из ваших шести примеров как маленькую оценку. Затем вы можете попросить LilyPond напечатать один под другим. Вот минимальный пример:
A = {c'4 d' e' f'}
B = {\clef bass c2 g c1}
C = {e'4 d' cis' fis' | e' d' cis' }
\score {\new Staff \A}
\score {\new Staff \B}
\markup {This text will be added between the scores...}
\score {\new Staff \C}
Что приводит к:
Обратите внимание, что последний бар C имеет только 3 четвертных ноты и, таким образом, остается открытым, без каких-либо \bar ""
команда. Кроме того, все проблемы с ключами, ключами и пикапами исчезли.
И вот ваш код переработан. Я думаю, что теперь это работает довольно хорошо:
\version "2.16.2"
A = {
\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) |
d g d b g
}
B = {
\mark\markup\normalsize{No. 2}
\clef bass
\time 3/8
\key d \minor
\partial 8 a'8 |
d,4 bes'8 |
cis,4
}
C = {
\mark\markup\normalsize{No. 3}
\clef bass
\time 3/8
\key c \major
\partial 8 g'8 |
c8 c,16( d e f) |
g8( a)
}
D = {
\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) |
}
E = {
\mark\markup\normalsize{No. 5}
\clef bass
\time 3/8
%\key c \minor
\partial 8 g'8 |
es8. f16 d8 |
es8.
}
F = {
\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 \A
\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
>>
\layout { }
}
\score {
\relative c <<
\new Staff \B
\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
>>
\layout { }
}
\score {
\relative c <<
\new Staff \C
\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
>>
\layout { }
}
\score {
\relative c <<
\new Staff \D
\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
>>
\layout { }
}
\score {
\relative c <<
\new Staff \E
\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
>>
\layout { }
}
\score {
\relative c <<
\new Staff \F
\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
>>
\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 = ""
}
Производство: