Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: Manuela am Freitag, 23. September 2016, 12:33

Titel: Reine Include-Files, die sich weigern, kompiliert zu werden - geht das? (gelöst)
Beitrag von: Manuela am Freitag, 23. September 2016, 12:33
Hi,

gibt es eine Möglichkeit, Lily zu sagen, dass es ein File nicht kompilieren soll?

Der Hintergrund ist, dass ich eine Menge Dateien (=einzelene Lieder) bearbeite, die nicht kompilieren, da sie als Includes gedacht sind.
Es ist keine große Sache, nur ärgerlich, dass der Bildschirm mit Fehlermeldungen übersät wird, wenn ich versehentlich den Kompilierbutton oder Strg+M (ich verwende Frescobaldi) drücke.

Kann man irgendwas zu Beginn der Datei einfügen, dass Lilypond sagt, dass diese Datei nicht als standalone kompilierbar ist? Die Datei sollte als Include schon kompilieren...
Titel: Re: Reine Include-Files, die sich weigern, kompiliert zu werden - geht das?
Beitrag von: RobUr am Freitag, 23. September 2016, 12:52
Hallo Manuela,

dies betrifft nicht Lily, sondern Frescobaldi. Du kannst mit einer zusätzlichen Zeile im Dokument das Master-Dokument festlegen. Siehe http://frescobaldi.org/uguide#help_document_variables

Gruß, Robert
Titel: Re: Reine Include-Files, die sich weigern, kompiliert zu werden - geht das?
Beitrag von: fugenkomponist am Freitag, 23. September 2016, 13:05
Ich glaube nicht, dass das so geht in LilyPond. Es gibt aber Alternativen (ich nenne mal das Gesamtding gesamt.ly und das nicht zu kompilierende teil.ly):

• Frescobaldi kennt sog. „document variables“ (siehe Dokumentation (http://frescobaldi.org/uguide.html)). Füge am Anfang von teil.ly einen Kommentar% -*- master: gesamt.ly; ein, dann wird Strg+M gesamt.ly kompilieren, obwohl teil.ly offen ist. Edit: Das ist auch das, was RobUr vorgeschlagen hat, ich hab bloß länger für diesen Post gebraucht ;)
• Du kannst Frescobaldi per Rechtsklick auf den Tab mit gesamt.ly mitteilen, dass immer gesamt.ly kompiliert werden soll, egal, welcher Tab gerade offen ist.
• Überlege, ob du deine Dateien so strukturieren kannst, dass auch teil.ly ohne Probleme kompiliert und entweder gar nichts ausgibt (weil nur Variablen definiert werden) oder ein kleineres PDF mit nur diesem einen Lied. Wenn du z. B. gemeinsame Header brauchst, pack die per \include in teil.ly; wenn du genaueres über die Struktur deiner Dateien verrätst, kann man dir da vielleicht weitere Tips geben.
• Nicht speziell zu diesem Frescobaldi-Problem, aber vielleicht trotzdem hilfreich: Es ist halbwegs üblich, nicht allein zu kompilierende Dateien nicht .ly zu nennen, sondern .ily. Das macht nicht jeder so und es ändert an Frescobaldis und LilyPonds Verhalten auch erstmal nichts, aber es erleichtert dir selbst den Überblick oder in größeren Projekten auf dem Terminal (oder im Makefile) sowas wielilypond *.lyIch habe z. B. bei Kammermusik dann so Dinge wie I.ily, II.ily, III.ily (Noten der drei Sätze in Variablen), global.ily (\header, gemeinsame \includes, \layout für Context-mods), Partitur.ly, Stimmen.ly (mehrere \books, alternativ könnte man hier auch vlI.ly, vlII.ly, va.ly, vc.ly, … nehmen). Ach ja, und PartiturI.ly, PartiturII.ly, PartiturIII.ly, um das Kompilieren beim Komponieren kurz zu halten.
Titel: Re: Reine Include-Files, die sich weigern, kompiliert zu werden - geht das?
Beitrag von: Manuela am Freitag, 23. September 2016, 18:55
Danke, ich glaube, das hilft mir schon mal weiter  :)

Update: ich verwende jetzt den Rechtsklick. Den habe ich schon früher probiert, ich wusste bloß nicht, was "immer dieses Dokument setzen" bedeutet.

Jetzt weiß ich es  ;)
Titel: re: Reine Include-Files, die sich weigern, kompiliert zu werden - geht das?
Beitrag von: ingmar am Freitag, 23. September 2016, 22:00
hallo,


das meiste ist gesagt; ich hab aber noch zwei kleineTips.

Einmal nenne ich solche Files nicht *.ily, sondern *.ILY, weil mir die Großbuchstaben besser ins Auge fallen. Du kannst auch noch +++ an den Anfang setzen, hab ich auch ne Zeitlang gemacht.

Zweitens, meist hängen sie ja nur von wenigen Variablen ab; dann setze ich diese im File auf einen vernünftigen Wert:

#(if (not (defined? 'variablenname)) (define variablenname #{
       < l i l y p o n d c o d e >
#} ))

Das ist sowieso manchmal nützlich, wenn das Defaultwerte sind, und/oder zur Dokumentation, welche Variablen erwartet werden.


Gruß,
--ingmar
Titel: Re: Reine Include-Files, die sich weigern, kompiliert zu werden - geht das?
Beitrag von: Manuela am Samstag, 24. September 2016, 10:28
Danke für alle Hinweise.

Der Hinweis mit dem Rechtsklick auf den Reiter hat meinen Workflow wesentlich vereinfacht. Ich drücke nur noch Strg+S und Strg+M im Wechsel  :D , bin total happy.
Titel: Re: Reine Include-Files, die sich weigern, kompiliert zu werden - geht das?
Beitrag von: fugenkomponist am Samstag, 24. September 2016, 10:50
Ich drücke nur noch Strg+S und Strg+M im Wechsel  :D
Du kannst dir Strg+S sogar noch sparen ;)
Titel: Re: Reine Include-Files, die sich weigern, kompiliert zu werden - geht das?
Beitrag von: Manuela am Samstag, 24. September 2016, 11:30
Du kannst dir Strg+S sogar noch sparen ;)

Und jetzt brauche ich nur noch den Gehirnscan, der die gelesenen Noten automatisch in Lilypond-Code übersetzt  ;)

Falls jemand Interesse hat, könnte ich mein Werk hier einstellen (als Anhang, sodass es nur eingeloggte Mitglieder sehen). Obwohl, wen interessieren heutzutage noch Volkslieder?
Titel: Re: Reine Include-Files, die sich weigern, kompiliert zu werden - geht das?
Beitrag von: fugenkomponist am Samstag, 24. September 2016, 11:38
Obwohl, wen interessieren heutzutage noch Volkslieder?
Ich studier Schulmusik ;) Ist die Frage, wie viel Volkslied man im Unterricht nachher tatsächlich macht, aber im Schulpraktisches-Klavierspiel-Unterricht kommen die nicht zu kurz :)
Titel: Re: Reine Include-Files, die sich weigern, kompiliert zu werden - geht das?
Beitrag von: Manuela am Samstag, 24. September 2016, 12:13
Obwohl, wen interessieren heutzutage noch Volkslieder?
Ich studier Schulmusik ;) Ist die Frage, wie viel Volkslied man im Unterricht nachher tatsächlich macht, aber im Schulpraktisches-Klavierspiel-Unterricht kommen die nicht zu kurz :)

Ich interpretiere das mal als ja  ;)

Verbesserungsvorschläge werden natürlich gerne entgegen genommen. Vor allem würde ich gerne den Top-Level Markup Text vergrößern, ohne dass ich jedes einzelne Lied angreifen muss
Titel: kompiliert nicht..?
Beitrag von: ingmar am Samstag, 24. September 2016, 15:20
Hallo,

hab einzelne aufgemacht - ich krieg immer die Fehlermeldung, \indexItem sei nicht definiert..

Gruß,
--ingmar
Titel: Re: kompiliert nicht..?
Beitrag von: fugenkomponist am Samstag, 24. September 2016, 15:28
hab einzelne aufgemacht - ich krieg immer die Fehlermeldung, \indexItem sei nicht definiert..
Das ist genau das Problem, worum es in diesem Thread eigentlich ging ;) Etwas verwirrend (zumindest nach meinem Verständnis): ___header.ly ist die Datei, die die anderen einbindet.
Titel: Re: kompiliert nicht..?
Beitrag von: Manuela am Samstag, 24. September 2016, 15:39
___header.ly ist die Datei, die die anderen einbindet.

Mir ist einfach kein besserer Name eingefallen sry

Indexitem dürfte nicht das einzige Problem sein, wenn man ein einzelnes Lied kompilieren will  ;)
Titel: Re: Reine Include-Files, die sich weigern, kompiliert zu werden - geht das? (gelöst)
Beitrag von: ingmar am Samstag, 24. September 2016, 16:57
Zitat
fugenkomponist: Das ist genau das Problem, worum es in diesem Thread eigentlich ging ;)
ööhh... stümmt. : - )

Ich war etwas verwirrt, ich baue ähnliche Bücher nämlich etwas anders auf: In den Einzelliederfiles hab ich nur Musik und Text in Variablen, also was hier unter myTitle, firstvoice, secondvoice, songchords und den entsprechenden Lyrics-Variablen steht. Da ich dort nur Variablen definiere, gibt es keine Fehler beim Kompilieren (und es geht ganz fix, so dass der Fehlklick eigentlich nicht stört). Die Scores halte ich dann in dem gemeinsamen File; dort würde ich Änderungen vornehmen, die mit dem Markup, der Raumaufteilung und der Abfolge zu tun haben, dort mich also 90% der Zeit aufhalten. Und den Index, der etwas ganz eigenes ist, hab ich auch nochmal in einem eigenen File. Die Aufteilung hier hatte ich nicht sofort geblickt. Aber bei mir sind natürlich auch die Anforderungen etwas anders, ich sage nicht, dass mein Ansatz besser ist.

Interessant, mal bei jemand anders in die Werkstatt zu schauen...

--ingmar
Titel: Re: Reine Include-Files, die sich weigern, kompiliert zu werden - geht das? (gelöst)
Beitrag von: Manuela am Samstag, 24. September 2016, 17:12
Ich bin noch auf der Suche nach dem besten Aufbau. So wie ich es momentan gestaltet habe, passt es für mich ganz gut, ich bin zufrieden damit.

Ein grundlegender Umbau wäre inzwischen schon eine Menge Arbeit bei der Vielzahl der Lieder, die ich schon gesetzt habe.

Was mich interessieren würde, wäre, wie du den Index ausgelagert hast. Könntest du mal ein Beispiel posten?