Deutschsprachiges LilyPond-Forum

Allgemeine Fragen und Probleme => Fragen und Probleme aller Art => Thema gestartet von: Elke am Montag, 3. Juni 2024, 20:37

Titel: Liedtitel und Liednummer [Gelöst]
Beitrag von: Elke am Montag, 3. Juni 2024, 20:37
Hallo,
ich bin neu hier und möchte mir für meine Chorlieder eine Musterseite anlegen. Dabei soll der Liedtitel mit Subtitle und Subsubtitle zentriert stehen und die Liednummer (mit Opus ?)rechts, allerdings über dem Titel. Als Schnipsel hab ich schonmal das gefunden und es mir etwas zurechtgestutzt:

\sourcefileline 695
\book {
  \header {
      % The following fields are centered

    subtitle = "Subtitle"
    subsubtitle = "Subsubtitle"
      }
  \score {
    { s1 }
    \header {
      opus = "Opus 1"
    }
  }
 
}

Vielen Dank schon mal für eure Hilfe
Gruß Elke
Titel: Antw:Liedtitel und Liednummer
Beitrag von: Manuela am Dienstag, 4. Juni 2024, 15:46
Hallo, willkommen im Forum.

Was genau ist dein Problem, worin besteht deine Frage? Hast du hier schon mal nachgelesen: Helfern helfen helfen (https://lilypondforum.de/index.php/topic,5.0.html)

Stichwort: kompilierbares Minimalbeispiel ;)
Titel: Antw:Liedtitel und Liednummer
Beitrag von: Elke am Dienstag, 4. Juni 2024, 18:26
Hallo,

Version ist 2.24.3. Mit dem Einfügen von Code hier komm ich nicht klar, deshalb:

Minimalbeispiel:

Version "2.24.3"

\sourcefileline 695
\book {
  \header {
      % The following fields are centered
 
    subtitle = "Subtitle"
    subsubtitle = "Subsubtitle"
      % The following fields are centered at the bottom
    copyright = "copyright goes at the bottom of the first page"
  }
  \score {
    { c'4 d' e' f' }
    \header {
      opus = "Opus 1"
    }
  }
}

Es soll so sein, daß Opus1 über der Subtitle-Zeile rechts steht. Da das ja unser erstes Ordnungskriterium ist.

Vielen Dank für die Geduld und die Hilfe.

Elke
Titel: Antw:Liedtitel und Liednummer
Beitrag von: Manuela am Dienstag, 4. Juni 2024, 22:39
Kennst du das LSR (https://lsr.di.unimi.it/LSR/)? Dort gibt es viele nützliche Codesnippets, z.B. dieses hier
Demonstrating all headers (https://lsr.di.unimi.it/LSR/Item?id=279)

Diesem Snippet habe ich folgenden Code entnommen

\version "2.24.3"

\book {
  \header {
    % The following fields are centered
    title ="Titel"
    subtitle = "Subtitle"
    subsubtitle = "Subsubtitle"
    composer = "localcomposer"
    arranger = "localarranger"
    instrument = "localinstrument"
    metre = "localmetre"
    opus = "localopus"
    piece = "localpiece"
    poet = "localpoet"
    copyright = "copyright goes at the bottom of the first page"
  }
  \score {
    { c'4 d' e' f' }
  }
}

Damit kannst du alle möglichen Texte links oder rechts schreiben.

Code kannst du einfügen, indem du auf den Code-Button drückst. Der ist ein wenig schwer zu finden, in der dritten Gruppe von rechts das mittlere Symbol, ich füge einen Screenshot ein
Titel: Antw:Liedtitel und Liednummer
Beitrag von: Malte am Mittwoch, 5. Juni 2024, 07:48
Das Snippet reicht nicht aus für das, was Elke vor hat, weil es die Reihenfolge der Informationen nicht ändert, sondern nur demonstriert. Man kann aber ändern, wie LilyPond die eingegebenen Daten formatiert, und zwar, indem man die in der Datei titling-init.ly definierten scoreTitleMarkup und ggf. bookTitleMarkup in einem \paper-Block neu definiert.

Hier die Originale:
bookTitleMarkup = \markup {
  \override #'(baseline-skip . 3.5)
  \column {
    \fill-line { \fromproperty #'header:dedication }
    \override #'(baseline-skip . 3.5)
    \column {
      \fill-line {
        \huge \larger \larger \bold
        \fromproperty #'header:title
      }
      \fill-line {
        \large \bold
        \fromproperty #'header:subtitle
      }
      \fill-line {
        \smaller \bold
        \fromproperty #'header:subsubtitle
      }
      \fill-line {
        \fromproperty #'header:poet
        { \large \bold \fromproperty #'header:instrument }
        \fromproperty #'header:composer
      }
      \fill-line {
        \fromproperty #'header:meter
        \fromproperty #'header:arranger
      }
    }
  }
}

scoreTitleMarkup = \markup { \column {
  \if \should-print-all-headers { \bookTitleMarkup \hspace #1 }
  \fill-line {
    \fromproperty #'header:piece
    \fromproperty #'header:opus
  }
}
}

Ich habe jetzt #'header:opus in bookTitleMarkup an die beschriebene Stelle verschoben:
\paper {
 
bookTitleMarkup = \markup {
  \override #'(baseline-skip . 3.5)
  \column {
    \fill-line { \fromproperty #'header:dedication }
    \override #'(baseline-skip . 3.5)
    \column {
      \fill-line {
        \huge \larger \larger \bold
        \fromproperty #'header:title
      }
      \fill-line {
        \null
        \fromproperty #'header:opus
      }
      \fill-line {
        \large \bold
        \fromproperty #'header:subtitle
      }
      \fill-line {
        \smaller \bold
        \fromproperty #'header:subsubtitle
      }
      \fill-line {
        \fromproperty #'header:poet
        { \large \bold \fromproperty #'header:instrument }
        \fromproperty #'header:composer
      }
      \fill-line {
        \fromproperty #'header:meter
        \fromproperty #'header:arranger
      }
    }
  }
}

scoreTitleMarkup = \markup { \column {
  \if \should-print-all-headers { \bookTitleMarkup \hspace #1 }
  \fill-line {
    \fromproperty #'header:piece
    \null
  }
}
}

}

Wenn ich mal die ganzen nicht erwähnten Informationen rauslasse, geht es noch kompakter (falls du Dinge wie Instrumentangaben brauchst, müssen die natürlich drinbleiben), hier als Minimalbeispiel mit Noten:
\version "2.24.3"

\paper {
 
bookTitleMarkup = \markup {
    \override #'(baseline-skip . 3.5)
    \column {
      \fill-line {
        \huge \larger \larger \bold
        \fromproperty #'header:title
      }
      \fill-line {
        \null
        \fromproperty #'header:opus
      }
      \fill-line {
        \large \bold
        \fromproperty #'header:subtitle
      }
      \fill-line {
        \smaller \bold
        \fromproperty #'header:subsubtitle
      }
    }
  }

scoreTitleMarkup = \markup { \column {
  \if \should-print-all-headers { \bookTitleMarkup \hspace #1 }
}
}

}


\book {
  \header {
    subtitle = "Subtitle"
    subsubtitle = "Subsubtitle"
    copyright = "copyright goes at the bottom of the first page"
    opus = "Opus 1"
  }
  \score {
    { c'4 d' e' f' }
  }
}
Titel: Antw:Liedtitel und Liednummer
Beitrag von: Elke am Mittwoch, 5. Juni 2024, 08:19
Hallo,
super, das ist genau das, was ich wollte.

Vielen Dank für die schnelle Hilfe.

Gruß Elke