2013-09-16 1 views
5

Мое стремление создать документ с шестью заглавными буквами из разных предметов - работает в нескольких проблемах. Может ли кто-нибудь помочь? Я вставляю свой код ниже (я несколько уменьшил этот пример, чтобы задать вопрос).Lilypond: контроль надписи на клавиатуре и ключевой подписи, выравнивание разметки

Задача 1: Как скрыть ключи и ключевые подписи с концов линий ? Команды в \ score не ведут себя так, как я думал, они будут основываться на документации .

Проблема 2: Как выровнять текстовую разметку до начала строк? Я хочу «№ 1» и т. Д. С выравниванием по левому краю до самого начала работы персонала.

Дополнительный запрос: Кто-нибудь знает, почему использование \ partial breaks the beaming в мера предшествует частичная мера? Есть ли общее решение для этого? (За исключением жесткого кодирования правильное сияние с помощью [].)

Любая помощь с благодарностью получена!

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

\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 с помощью clefs, а затем сдвинуть ее на горизонтальную величину.

Просто замените ваш \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):

\ парциальное команда предназначена для использования только в начале . Если вы используете его после начала, могут возникнуть некоторые нечетные предупреждения.

Возможно, именно по этой причине вы столкнулись с этими проблемами с сиянием. Я бы предложил некоторое обходное решение, используя невидимые остатки (введен как sn, где n - продолжительность). Еще одна возможность для проблемы симуляции - контролировать сияние вручную. Это раздражает, но он получает работу :) Ex: заменить музыкальное содержание вашей № 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] 

Я надеюсь, что это помогает.

+1

Благодарим Вас за решение разметки! Запуск версии 2.16.2 (в Windows), ключ все еще появляется (маленький ключ alto в конце пятой строки); это должно быть ошибкой. Кто-нибудь еще столкнулся с этой проблемой? – user2288772

+0

Хм, ты прав, все еще показывает ключ (извините, я его не замечаю). Я думаю, что мне удастся решить эту проблему удовлетворительно, поэтому я напишу полный ответ ниже: –

+0

@ user2288772 Если вы согласны с тем, что мой второй ответ ниже решает вашу проблему лучше, я бы удалил свой первый ответ (на мой взгляд это не совсем правильно и решает все проблемы в вашем исходном вопросе) вместе с этими комментариями здесь. Пожалуйста, дайте мне знать, что вы думаете об этом. –

2

Таким образом, проблема заключается в том, что у вас есть один инструментальный персонал, который разбивается на 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} 

Какие результаты в:

enter image description here

Обратите внимание, как последняя полоса 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 = "" 
} 

Производство:

enter image description here

Смежные вопросы