Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: Manuela am Sonntag, 8. Mai 2016, 23:41
-
Ich hoffe, ich werde nicht lästig ;)
Ich möchte No. schreiben so wie es früher üblich war (ist nur eine Marotte von mir).
Ich kriege es einigermaßen hin, ich möchte das "o" und den "." noch näher beim "N" haben.
\version "2.19.37"
\new PianoStaff \with {
instrumentName =
\markup {
\center-column {
\line {
\bold \huge { N } \column {
\translate #'(-2.7 . 0.8) \line { \super \fontsize #+2.5 o }
\translate #'(-2.5 . 3)
\line { \bold . }
}
\fontsize #-4 " " \number 2.
}
\line \large { F Dur }
\italic \line { Fa majeur. }
}
}
} \relative c''
{ c }
Wahrscheinlich gibt es noch eine wesentlich elegantere Lösung, aber ich komme in absehbarer Zeit nicht drauf...
-
Das Zeichen № ist im Unicode-Standard enthalten; auch der Standard-LilyPond-Font (TeX Gyre Schola) enthält dieses Zeichen, du kannst es also direkt verwenden:
\version "2.19.37"
\new PianoStaff \with {
instrumentName =
\markup {
\center-column {
\bold \huge "№ 2."
\large "F-Dur"
\italic "Fa majeur."
}
}
} \relative c''
{ c }
Zwei Anmerkungen dazu: \line ist für einfache Strings nicht notwendig, wenn man sie in "" packt. Und F-Dur schreibt sich mit Bindestrich ;)
-
Wie fugenkomponist schon sagte, es ist ein standard.
Du kannst natürlich verschiedene fonts ausprobieren:
%% sometimes needed:
\paper { #(include-special-characters) }
\markup
\column {
\override #'(font-name . "Century Schoolbook L Roman")
\line { "№" "№" }
\override #'(font-name . "Courier New")
\line { "№" "№" }
}
Gruß,
Harm
-
Danke! Auf die Idee mit dem Font bin ich erst gekommen, nachdem ich die Anfrage bereits abgeschickt hatte.
Aber ich lerne ständig dazu. :)
Und F-Dur schreibt sich mit Bindestrich ;)
Die Notenstecher waren früher anderer Ansicht ;)
-
Und F-Dur schreibt sich mit Bindestrich ;)
Die Notenstecher waren früher anderer Ansicht ;)
Achso, ok. Die schreiben Dur auch klein, war mir nicht klar, dass du das so weit übernehmen willst ;) Clarinetten, Hoboen und Violoncell sind auch dabei?
-
Achso, ok. Die schreiben Dur auch klein, war mir nicht klar, dass du das so weit übernehmen willst ;) Clarinetten, Hoboen und Violoncell sind auch dabei?
Das ist mir gar nicht aufgefallen.
Nein, nur Klavier (Czerny Op. 840) http://imslp.org/wiki/50_Exercises_progressifs_dans_tous_les_tons_majeurs_et_mineurs,_Op.840_%28Czerny,_Carl%29 (http://imslp.org/wiki/50_Exercises_progressifs_dans_tous_les_tons_majeurs_et_mineurs,_Op.840_%28Czerny,_Carl%29)
-
> ich möchte das "o" und den "." noch näher beim "N" haben.
Unabhängig davon, dass es bereits ein fertiges Symbol für "Numero" (Nummero?) gibt, der Befehl \overlay (und evtl. \combine) eignet sich statt \column besser, da er nicht versucht, Kollisionen zu verhindern. So sind beliebige Abstände möglich.
\set Staff.instrumentName=\markup\overlay{\huge\bold"N"\translate#'(2.2 . 1.0)"o"\translate#'(2.4 . 0)\huge\bold". 2."}
oder kürzer
\set Staff.instrumentName=\markup\overlay{\huge\bold"N. 2."\translate#'(2.2 . 1.0)"o"}
oder
\set Staff.instrumentName=\markup\overlay{\huge\bold"N 2."\translate#'(2.2 . 1.0)"o"\translate#'(2.4 . 0.3)"-"}
Manuela, Dein Programmierstil und Deine Herangehensweise gefallen mir ;-)
-
Manuela, Dein Programmierstil und Deine Herangehensweise gefallen mir ;-)
Danke :D :D :D
-
Sry dass ich diesen alten Thread wieder hervorhole.
Ich habe das im Code-Snippet-Repository gefunden, das wollte ich noch ergänzen.
%% http://lsr.di.unimi.it/LSR/Item?id=614
%LSR modified by P.P.Schneider on Feb.2014 for v2.18
% "\No" markup: create stylized movement number for the instrumentName field.
% syntax example: instrumentName = \markup \No #"14a"
#(define-markup-command (No layout props n) (string?)
(define (format-char c)
(let ((s (string c)))
(if (number? (string->number s))
(markup #:hspace 0.125 #:number s #:hspace 0.125)
(markup #:hspace 0 #:fontsize 2 s))))
(define (format-string s i)
(let ((n (string-length s)))
(if (= n 0)
(markup #:null)
(markup (format-char (string-ref s i))
(if (= (1+ i) n)
(markup #:null)
(format-string s (1+ i)))))))
(let ((i (string-length n)))
(interpret-markup layout props
(markup
#:concat
(#:concat
(#:fontsize 2
"N"
#:hspace 0
#:override '(baseline-skip . 0.825)
#:override '(direction . 1)
#:dir-column (#:fontsize 2 #:center-align "."
#:fontsize 1 #:center-align "o"))
#:hspace 0.5
#:concat ((format-string n 0)
#:hspace -.8
#:fontsize 2 "."))
#:hspace -2))))
\markup \No #"7"
\markup \No #"14a"
\relative c' {
\override Score.InstrumentName.padding = #3 % a simple workaround against LSR bug: not needed.
\set Staff.instrumentName = \markup { \No #"8" }
% or:
%\set Staff.instrumentName = \markup\magnify #1.3 \concat { № \hspace#.4 8. \hspace#-2 }
\time 6/8
c8 e g c g e
c2.
}