1.8.2 Donar format al text

Aquesta secció presenta els formats bàsics i avançats de text, usant la sintaxi específica del modo de \markup.


Introducció al marcatge de text

S’usa un bloc \markup per gravar text amb una sintaxi ampliable que es denomina “modo de marcatge”.

La sintaxi del marcatge és semblant a la sintaxi usual del LilyPond: una expressió \markup s’envolta entre claus { … }. Una sola paraula es considera com una expressió mínima, i per tant no li cal estar envoltada entre claus.

A diferència de les indicacions de “text entre cometes” simples, els blocs \markup poden contenir expressions niuades o ordres de marcatge, que s’introdueixen utilitzant el caràcter de barra invertida \ . Aquestes ordres sols afecten a l’expressió que segueix immediatament.

\relative {
  a'1-\markup intenso
  a2^\markup { poco \italic più forte  }
  c e1
  d2_\markup { \italic "string. assai" }
  e
  b1^\markup { \bold { molto \italic  agitato } }
  c
}

[image of music]

Un bloc \markup pot contenir també cadenes de text entre cometes. Aquestes cadenes es tracten com a expressions de text mínimes, i per tant qualsevol ordre de marcatge o caràcter especial (com \#) s’imprimeixen literalment sense afectar el fomat del text. Es poden fer que s’imprimeixin les pròpies cometes si se les anteposa una barra invertida.

\relative {
  a'1^"\italic markup..."
  a_\markup { \italic "... imprimeix lletres \"cursives\" !" }
  a a
}

[image of music]

Perquè es tractin com a una expressió diferent, cal que les llistes de paraules estiguin envoltades entre cometes o precedides d’una ordre. La forma en la qual estan definides les expressions de marcatge afecta com es sobreposen, se centren i s’alineen aquestes expressions; a l’exemple següent, la segona expressió \markup es tracta igual que la primera:

\relative c'' {
  c1^\markup { \center-column { a bbb c } }
  c1^\markup { \center-column { a { bbb c } } }
  c1^\markup { \center-column { a \line { bbb c } } }
  c1^\markup { \center-column { a "bbb c" } }
}

[image of music]

Els marcatges es poden emmagatzemar dins de variables. Aquests variables es poden adjuntar directament a les notes:

allegro = \markup { \bold \large Allegro }

{
  d''8.^\allegro
  d'16 d'4 r2
}

[image of music]

Es pot trobar una llista exhaustiva de les ordres específiques \markup a Ordres de marcatge de text.

Vegeu també

Referència de la notació: Ordres de marcatge de text.

Fragments de codi: Text.

Fitxers d’inici: ‘scm/markup.scm’.

Advertiments i problemes coneguts

Els missatges d’error de sintaxi per al mode de marcatge sovint produeixen confusió.


Selecció del tipus de lletra i la seva mida

Es pot canviar de forma bàsica el tipus de lletra al mode de marcatge:

\relative {
  d''1^\markup {
    \bold { Più mosso }
    \italic { non troppo \underline Vivo }
  }
  r2 r4 r8
  d,_\markup { \italic quasi \smallCaps Tromba }
  f1 d2 r
}

[image of music]

La mida del tipus de lletra es pot alterar en relació a la mida global del pentagrama de diverses maneres, com es veu a continuació.

Es pot fixar a una mida predefinida:

\relative b' {
  b1_\markup { \huge Sinfonia }
  b1^\markup { \teeny da }
  b1-\markup { \normalsize camera }
}

[image of music]

Es pot establir a un amida relativa a la mida anterior:

\relative b' {
  b1_\markup { \larger Sinfonia }
  b1^\markup { \smaller da }
  b1-\markup { \magnify #0.6  camera }
}

[image of music]

Es pot augmentar o disminuir de forma relativa al valor fixat per la mida global del pentagrama:

\relative b' {
  b1_\markup { \fontsize #-2 Sinfonia }
  b1^\markup { \fontsize #1 da }
  b1-\markup { \fontsize #3 camera }
}

[image of music]

També es pot establir a una mida de punts fix, independentment de la mida global del pentagrama:

\relative b' {
  b1_\markup { \abs-fontsize #20 Sinfonia }
  b1^\markup { \abs-fontsize #8 da }
  b1-\markup { \abs-fontsize #14 camera }
}

[image of music]

Si el text inclou espais, és millor escriure tot entre cometes, de forma que la mida de cada espai sigui correcte per a la mida dels altres caràcters.

\markup \fontsize #6 \bold { Sinfonia da camera }
\markup \fontsize #6 \bold { "Sinfonia da camera" }

[image of music]

El text es pot imprimir com subíndex o com superíndex. De forma predeterminada s’imprimeix en una mida menor, però també es pot usar una mida normal:

\markup {
  \column {
    \line { 1 \super st movement }
    \line { 1 \normal-size-super st movement
      \sub { (part two) }  }
  }
}

[image of music]

El mode de marcatge ofereix una manera fàcil d’escollir famílies de tipus de lletra alternatives. A no ser que s’especifiqui d’un altre mode, se selecciona automàticament el tipus de lletra predeterminada amb serifa, de tipus romà: en l’última línia de l’exemple següent, no hi ha diferència entre la primera i la segona paraula.

\markup {
  \column {
    \line { Act \number 1 }
    \line { \sans { Scene I. } }
    \line { \typewriter { Verona. An open place. } }
    \line { Enter \roman Valentine and Proteus. }
  }
}

[image of music]

Algunes d’aquestes famílies, usades per elements específics com números o matisos, no ofereixen tots els caràcters, com s’explica a Indicacions dinàmiques contemporànies i Marques de repetició manual.

Si s’usen dins d’una paraula, algunes instruccions de canvi de tipus de lletra o de format poden produir un espai buit no desitjat. Això es pot solucionar concatenant a un de sol els diferents elements de text:

\markup {
  \column {
    \line {
      \concat { 1 \super st }
      movement
    }
    \line {
      \concat { \dynamic p , }
      \italic { con dolce espressione }
    }
  }
}

[image of music]

Es pot trobar una llista exhaustiva d’ordres de canvi i utilització personalitzada dels tipus de lletres a Tipus de lletra.

També es possible definir conjunts personalitzats de tipus de lletra, tal i com s’explica a Explicació dels tipus de lletra.

Instruccions predefinides

\teeny, \tiny, \small, \normalsize, \large, \huge, \smaller, \larger.

Vegeu també

Referència de la notació: Tipus de lletra, Indicacions dinàmiques contemporànies, Marques de repetició manual, Tipus de lletra.

Fitxers d’inici: ‘scm/define-markup-commands.scm’.

Fragments de codi: Text.

Referència de funcionament intern: TextScript.

Advertiments i problemes coneguts

La utilització de les ordres de mida de text \teeny, \tiny, \small, \normalsize, \large i \huge condueixen a un espaiat de les línies inconsistent comparat amb l’ús de \fontsize.


Alineació de text

Aquesta subsecció tracta sobre com col·locar text al mode de marcatge. Els objecte de marcatge també es poden moure com un tot, usant la sintaxi que es descriu a Moviment d'objectes.

Els objectes de marcatge es poden alinear de diferents maneres. De forma predeterminada, una indicació de text s’alinea sobre la vora esquerra: a l’exemple següent, no hi ha diferència entre els marcatges primer i segon.

\relative {
  d''1-\markup { poco }
  f
  d-\markup { \left-align poco }
  f
  d-\markup { \center-align { poco } }
  f
  d-\markup { \right-align poco }
}

[image of music]

Es pot realitzar un ajust fi de l’alineació horitzontal usant un valor numèric:

\relative {
  a'1-\markup { \halign #-1 poco }
  e'
  a,-\markup { \halign #0 poco }
  e'
  a,-\markup { \halign #0.5 poco }
  e'
  a,-\markup { \halign #2 poco }
}

[image of music]

Certs objectes poden posseir els seus propis procediments d’alineació, i per tant no resulten afectats per aquestes ordres. És possible moure aquests objectes de marcatge com un tot, com es mostra per exemple a Indicacions de text.

L’alineació vertical és una mica més complexa. Com s’ha dit més a dalt, els objectes de marcatge es poden moure com un tot; tanmateix, també és possible moure element específics dins d’un bloc de marcatge. En aquest cas, l’element a moure s’ha de precedir d’un punt d’ancoratge, que pot ser un altre element de marcatge o un objecte invisible. L’exemple següent exemplifica aquestes dues possibilitats; l’últim marcatge en aquest exemple no té punt d’ancoratge i per això no resulta mogut.

\relative {
  d'2^\markup {
    Acte I
    \raise #2 { Scène 1 }
  }
  a'
  g_\markup {
    \null
    \lower #4 \bold { Très modéré }
  }
  a
  d,^\markup {
    \raise #4 \italic { Une forêt. }
  }
  a'4 a g2 a
}

[image of music]

Algunes ordres poden afectar tant a l’alineació horitzontal com a la vertical dels objectes de text en el mode de marcatge. Qualsevol objecte afectat per aquestes instruccions s’han de precedir d’un punt d’ancoratge:

\relative {
  d'2^\markup {
    Acte I
    \translate #'(-1 . 2) "Scène 1"
  }
  a'
  g_\markup {
    \null
    \general-align #Y #3.2 \bold "Très modéré"
  }
  a
  d,^\markup {
    \null
    \translate-scaled #'(-1 . 2) \teeny "Une forêt."
  }
  a'4 a g2 a
}

[image of music]

Un objecte de marcatge pot incloure diverses línies de text. A l’exemple següent, cada element o expressió se situa a la seva pròpia línia, ja sigui alineada per l’esquerra o centrada:

\markup {
  \column {
    a
    "b c"
    \line { d e f }
  }
  \hspace #10
  \center-column {
    a
    "b c"
    \line { d e f }
  }
}

[image of music]

De forma semblant, una llesta d’elements o expressions es pot repartir de forma que ompli per complet l’amplada de la línia horitzontal (si hi ha un sol element, se centra al paper). Al seu cop, aquestes expressions poden incloure text de diverses línies o qualsevol altre expressió de marcatge:

\markup {
  \fill-line {
    \line { William S. Gilbert }
    \center-column {
      \huge \smallCaps "The Mikado"
      or
      \smallCaps "The Town of Titipu"
    }
    \line { Sir Arthur Sullivan }
  }
}
\markup {
  \fill-line { 1885 }
}

[image of music]

Les indicacions de text llargues es poden també ajustar automàticament segons una amplada de línia donada. Estaran alineades per l’esquerra o justificades, com es mostra a l’exemple següent:

\markup {
  \column {
    \line  \smallCaps { La vida breve }
    \line \bold { Acto I }
    \wordwrap \italic {
      (La escena representa el corral de una casa de
      gitanos en el Albaicín de Granada.  Al fondo una
      puerta por la que se ve el negro interior de
      una Fragua, iluminado por los rojos resplandores
      del fuego.)
    }
    \hspace #0

    \line \bold { Acto II }
    \override #'(line-width . 50)
    \justify \italic {
      (Calle de Granada.  Fachada de la casa de Carmela
      y su hermano Manuel con grandes ventanas abiertas
      a través de las que se ve el patio
      donde se celebra una alegre fiesta)
    }
  }
}

[image of music]

Hi ha una llista exhaustiva d’ordres d’alineació de text a Align.

Vegeu també

Manual d’aprenentage: Moviment d'objectes.

Referència de la notació: Align, Indicacions de text.

Fitxers d’inici: ‘scm/define-markup-commands.scm’.

Fragments de codi: Text.

Referència de funcionament intern: TextScript.


Notació gràfica dins d’elements de marcatge

Es poden afegir diversos objectes gràfics a una partitura, utilitzant ordres de marcatge.

Certes ordres de marcatge permeten la decoració d’elements de text amb gràfics, com es mostra a l’exemple següent.

\markup \fill-line {
  \center-column {
    \circle Jack
    \box "in the box"
    \null
    \line {
      Erik Satie
      \hspace #3
      \bracket "1866 - 1925"
    }
    \null
    \rounded-box \bold Prelude
  }
}

[image of music]

Algunes poden requerir un augment del farciment al voltant del text: això es pot aconseguir amb algunes instruccions de marcatge descrites exhaustivament a Align.

\markup \fill-line {
  \center-column {
    \box "Charles Ives (1874 - 1954)"
    \null
    \box \pad-markup #2 "THE UNANSWERED QUESTION"
    \box \pad-x #8 "A Cosmic Landscape"
    \null
  }
}
\markup \column {
  \line {
    \hspace #10
    \box \pad-to-box #'(-5 . 20) #'(0 . 5)
      \bold "Largo to Presto"
  }
  \pad-around #3
      "String quartet keeps very even time,
Flute quartet keeps very uneven time."
}

[image of music]

Es poden imprimir altres símbols o elements gràfics sense que es requereixi cap altre text. De igual manera que al cas de les expressions de marcatge, aquests objectes es poden combinar:

\markup {
  \combine
    \draw-circle #4 #0.4 ##f
    \filled-box #'(-4 . 4) #'(-0.5 . 0.5) #1
  \hspace #5

  \center-column {
    \triangle ##t
    \combine
      \draw-line #'(0 . 4)
      \arrow-head #Y #DOWN ##f
  }
}

[image of music]

Entre les funcionalitats gràfiques avançades es troben la possibilitat d’incloure fitxers d’imatge externs convertits als format PosScript Encapsulat (eps), i la inclusió directa de gràfics dins del fitxer d’entrada, usant codi PostScript nadiu. En tal cas pot ser d’utilitat l’especificació explícita de la mida del dibuix, com s’exemplifica a continuació:

c'1^\markup {
  \combine
    \epsfile #X #10 "./context-example.eps"
    \with-dimensions #'(0 . 6) #'(0 . 10)
    \postscript "
      -2 3 translate
      2.7 2 scale
      newpath
      2 -1 moveto
      4 -2 4 1 1 arct
      4 2 3 3 1 arct
      0 4 0 3 1 arct
      0 0 1 -1 1 arct
      closepath
      stroke"
  }
c'

[image of music]

Hi una llista exhaustiva d’ordres específiques de gràfics a Graphic.

Vegeu també

Referència de la notació: Align, Dimensions, Anotacions editorials, Graphic.

Fitxers d’inici: ‘scm/define-markup-commands.scm’, ‘scm/stencil.scm’.

Fragments de codi: Text.

Referència de funcionament intern: TextScript.


Notació musical dins d’elements de marcatge

Es poden afegir a la partitura diversos elements de notació musical, dins d’una objecte de marcatge.

Les notes i les alteracions es poden escriure utilitzant ordres de marcatge:

a'2 a'^\markup {
  \note {4} #1
  =
  \note-by-number #1 #1 #1.5
}
b'1_\markup {
  \natural \semiflat \flat
  \sesquiflat \doubleflat
}
\glissando
a'1_\markup {
  \natural \semisharp \sharp
  \sesquisharp \doublesharp
}
\glissando b'

[image of music]

Altres objectes de notació es poden també imprimir al mode de marcatge:

\relative {
  g1 bes
  ees\finger \markup \tied-lyric "4~1"
  fis_\markup { \dynamic rf }
  bes^\markup {
    \beam #8 #0.1 #0.5
  }
  cis
  d-\markup {
    \markalphabet #8
    \markletter #8
  }
}

[image of music]

De forma més general, qualsevol símbol musical disponible es pot incloure per separat dins d’un objecte de marcatge, com s’exemplifica a continuació; hi ha una llista exhaustiva d’aquests símbols i els seus noms a El tipus de lletra Emmentaler.

\relative {
  c''2
  c'^\markup { \musicglyph "eight" }
  c,4
  c,8._\markup { \musicglyph "clefs.G_change" }
  c16
  c2^\markup { \musicglyph "timesig.neomensural94" }
}

[image of music]

Una altra forma d’imprimir glifs que no són de text es troba descrita a Explicació dels tipus de lletra. Serveix per imprimir claus de diferents mides.

El mode de marcatge també contempla diagrames per a instruments específics:

\relative {
  c''1^\markup {
    \fret-diagram-terse "x;x;o;2;3;2;"
  }
  c^\markup {
    \harp-pedal "^-v|--ov^"
  }
  c
  c^\markup {
    \combine
      \musicglyph "accordion.discant"
      \combine
	\raise #0.5 \musicglyph "accordion.dot"
	\raise #1.5 \musicglyph "accordion.dot"
  }
}

[image of music]

Aquests diagrames es troben documentats a Instrument Specific Markup.

Es pot incloure fins i tot una partitura completa dins d’un objecte de marcatge. En tal cas, el bloc niuat \score ha de contenir un bloc \layout, com es mostra aquí:

\relative {
  c'4 d^\markup {
    \score {
      \relative { c'4 d e f }
      \layout { }
    }
  }
  e f |
  c d e f
}

[image of music]

Hi ha una llista exhaustiva d’ordres relacionades amb la notació musical a Music.

Vegeu també

Referència de la notació: Music, El tipus de lletra Emmentaler, Explicació dels tipus de lletra.

Fitxers d’inici: ‘scm/define-markup-commands.scm’, ‘scm/fret-diagrams.scm’, ‘scm/harp-pedals.scm’.

Fragments de codi: Text.

Referència de funcionament intern: TextScript.


Elements de marcatge de diverses pàgines

Tot i que els objectes de marcatge estàndard no es poden dividir, una sintaxi específica fa possible la introducció de línies de text que poden abastar diverses pàgines:

\markuplist {
  \justified-lines {
    Un text molt llarg de línies justificades.
    ...
  }
  \wordwrap-lines {
    Un altre paràgraf molt llarg.
    ...
  }
  ...
}

[image of music]

Aquesta sintaxi accepta una llista d’elements de marcatge, que poden ser

Hi una llista exhaustiva de les ordres de llista de marcage a Ordres de llistes de marcatge de text.

Vegeu també

Referència de la notació: Ordres de llistes de marcatge de text.

Fitxers d’inici: ‘scm/define-markup-commands.scm’.

Manual de extensió: Definició de noves ordres de llista de marcatge.

Fragments de codi: Text.

Referència de funcionament intern: TextScript.

Instruccions predefinides

\markuplist.


LilyPond — Referència de la notació v2.23.82 (branca de desenvolupament).