• Willkommen im Forum „Archiviertes Lilypond Forum (2017)“.
 

Dies ist das Archiv des alten Forums (bis März 2017). Das aktuelle Forum ist unter lilypondforum.de zu finden.
This is the archive of the old forum (until March 2017). You can find the current forum at lilypondforum.de.

Hauptmenü

No wie in alter Manier schreiben (GELÖST)

Begonnen von Manuela, Sonntag, 8. Mai 2016, 23:41

Vorheriges Thema - Nächstes Thema

Manuela

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...

fugenkomponist

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 ;)

harm6

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

Manuela

#3
Danke! Auf die Idee mit dem Font bin ich erst gekommen, nachdem ich die Anfrage bereits abgeschickt hatte.
Aber ich lerne ständig dazu.  :)

Zitat von: fugenkomponist am Montag,  9. Mai 2016, 00:08

Und F-Dur schreibt sich mit Bindestrich ;)

Die Notenstecher waren früher anderer Ansicht  ;)

fugenkomponist

Zitat von: Manuela am Montag,  9. Mai 2016, 10:06
Zitat von: fugenkomponist am Montag,  9. Mai 2016, 00:08
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?

Manuela

Zitat von: fugenkomponist am Montag,  9. Mai 2016, 11:07

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

Lilysetter

#6
> 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

Zitat von: Lilysetter am Montag, 16. Mai 2016, 10:30

Manuela, Dein Programmierstil  und Deine Herangehensweise gefallen mir ;-)

Danke  :D :D :D

Manuela

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.
}