Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: ingmar am Samstag, 2. Juli 2016, 11:36

Titel: \markup innerhalb von Lyrics?
Beitrag von: ingmar am Samstag, 2. Juli 2016, 11:36
Wie verbindet man lyrics mit \markup?

Hier ein Code, der nicht kompiliert. Ich habe alle möglichen Klammerungen innerhalb von \markup-Statements versucht, aber ohne Erfolg. Die Doku (etwa hier (http://lilypond.org/doc/v2.19/Documentation/notation/formatting-text)) hilft mir leider nicht, was sicher auch an mir liegen kann...

\version "2.19.37"

musix = \relative c' { c d e f g2 g }
lyrix = \lyricmode { Al- le mei- ne Ent- chen }

\score {
\new Staff { \musix }
\addlyrics { \markup \italic \bold \lyrix }
}

Ein kleiner Hinweis wäre nützlich.


Gruß, Danke!
--ingmar
Titel: Re: \markup innerhalb von Lyrics?
Beitrag von: iugin am Samstag, 2. Juli 2016, 12:25
Hallo Ingmar

hilft dir das (http://lilypond.org/doc/v2.18/Documentation/snippets/text#text-formatting-lyrics-syllables)?
Aber, wenn du den ganzen Text in einem \markup einpackst, wird ihn anscheinend als einzelne Lyric betrachtet.
Du solltest immer \markup vor jeder Silbe schreiben:
\version "2.18.2"

musix = \relative c' { c d e f g2 g }
lyrixOne = \lyricmode { \markup \italic { Al -- le mei -- ne Ent -- chen }}
lyrixTwo = \lyricmode { \markup \italic { Al } --
                        \markup \italic {le }
                        \markup \italic {mei } --
                        \markup \italic {ne }
                        \markup \italic {Ent } --
                        \markup \italic {chen }}
\score {
  <<
\new Staff { \new Voice = "melody" \musix }
\new Lyrics \lyricsto melody \lyrixOne
  >>
}

\score {
  <<
\new Staff { \new Voice = "melody" \musix }
\new Lyrics \lyricsto melody \lyrixTwo
  >>
}
Ah, das ist mit 2.18.2, sorry, ich habe noch diese Version :)
Lieber Gruss

Eugenio
Titel: Re: \markup innerhalb von Lyrics?
Beitrag von: harm6 am Samstag, 2. Juli 2016, 12:44
Hallo Ingmar,

um alle Lyrics italic und bold zu machen verwende overrides oder Du mußt das markup über alle Silben einzeln mappen, dazu gibt es ein neues feature, markupMap (http://lilypond.org/doc/v2.19/Documentation/notation/available-music-functions#index-markupMap-1).

Hier einige Möglichkeiten:

\version "2.19.37"

musix = \relative c' { c d e f g2 g }
lyrix =
\lyricmode {
  %% maybe add
  \override LyricHyphen.minimum-distance = 1
  %% better to use real LyricHyphen
  Al -- le mei -- ne Ent -- chen
}

\score {
\new Staff { \musix }
%% new feature since 2.19.26:
\addlyrics {
  \markupMap text \markup \italic \bold \etc
  \lyrix
}
%% the common way:
\addlyrics {
  \override LyricText.font-shape = #'italic
  \override LyricText.font-series = #'bold
  \lyrix
}
%% also possible with newer versions:
\addlyrics
  \with {
    \override LyricText.font-shape = #'italic
    \override LyricText.font-series = #'bold
  }
{ \lyrix }
}

Die overrides sind weniger belastend beim parsen und somit also vorzuziehen.

HTH,
  Harm
Titel: re: \markup innerhalb von Lyrics?
Beitrag von: ingmar am Samstag, 2. Juli 2016, 15:34
Danke, Eugen - allerdings möchte ich den Text ohne Markup in einer Variablen halten, daher kann die Auszeichnung erst später passieren, daher würde das so nicht gehen.

Harm - so funktionierts! Ich habe noch Probleme mit der Kursivschrift, wenn ich nicht die Defaultschrift verwende, aber das ist wohl erstmal vernachlässigbar. Gruß, Danke,

--ingmar