]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/notation/text.itely
Merge remote branch 'origin/master' into release/unstable
[lilypond.git] / Documentation / notation / text.itely
index 09b3d56ef15bdca32692a61361a3676277dff534..ac5436b94b6fcde8e9119c01396a6e4aef43f745 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.13.36"
+@c \version "2.17.6"
 
 @node Text
 @section Text
@@ -63,19 +63,18 @@ in @ref{Direction and placement}.
 a8^"pizz." g f e a4-"scherz." f
 @end lilypond
 
-This syntax is actually a shorthand; more complex text
-formatting may be added to a note by explicitly using a
-@code{\markup} block, as described in @ref{Formatting text}.
+This syntax is actually a shorthand; more complex text formatting may be
+added to a note by explicitly using a @code{\markup} block, as described
+in @ref{Formatting text}.
 
 @lilypond[quote,verbatim,relative=2]
 a8^\markup { \italic pizz. } g f e
 a4_\markup { \tiny scherz. \bold molto } f
 @end lilypond
 
-By default, text indications do not influence the note spacing.
-However, their widths can be taken into account:
-in the following example, the first text string does not affect
-spacing, whereas the second one does.
+By default, text indications do not influence the note spacing. However,
+their widths can be taken into account: in the following example, the
+first text string does not affect spacing, whereas the second one does.
 
 @lilypond[quote,verbatim,relative=2]
 a8^"pizz." g f e
@@ -99,14 +98,14 @@ articulations, see @rlearning{Placement of objects}.
 @code{\textLengthOff}.
 @endpredefined
 
-
 @seealso
 Learning Manual:
 @rlearning{Placement of objects}.
 
 Notation Reference:
 @ref{Formatting text},
-@ref{Direction and placement}.
+@ref{Direction and placement},
+@ref{Articulations and ornamentations}.
 
 Snippets:
 @rlsr{Text}.
@@ -114,22 +113,18 @@ Snippets:
 Internals Reference:
 @rinternals{TextScript}.
 
-
 @cindex text outside margin
 @cindex margin, text running over
 @cindex text, keeping inside margin
 @cindex lyrics, keeping inside margin
 
-
 @knownissues
-
 Checking to make sure that text scripts and lyrics are within the
-margins is a relatively large computational task.  To speed up
-processing, LilyPond does not perform such calculations by
-default; to enable it, use
+margins requires additonal calculations. In cases where slightly faster
+performance is desired, use
 
 @example
-\override Score.PaperColumn #'keep-inside-line = ##t
+\override Score.PaperColumn.keep-inside-line = ##f
 @end example
 
 
@@ -140,11 +135,12 @@ default; to enable it, use
 
 Some performance indications, e.g., @notation{rallentando} or
 @notation{accelerando}, are written as text and are extended over
-multiple notes with dotted lines.  Such objects, called @qq{spanners},
-may be created from one note to another using the following syntax:
+multiple notes with dotted lines.  Such objects, called
+@qq{spanners}, may be created from one note to another using the
+following syntax:
 
 @lilypond[verbatim,quote,relative=2]
-\override TextSpanner #'(bound-details left text) = "rit."
+\override TextSpanner.bound-details.left.text = "rit."
 b1\startTextSpan
 e,\stopTextSpan
 @end lilypond
@@ -155,11 +151,11 @@ e,\stopTextSpan
 @noindent
 The string to be printed is set through object properties.  By default
 it is printed in italic characters, but different formatting can be
-obtained using @code{\markup} blocks, as described in @ref{Formatting
-text}.
+obtained using @code{\markup} blocks, as described in
+@ref{Formatting text}.
 
 @lilypond[quote,relative=2,verbatim]
-\override TextSpanner #'(bound-details left text) =
+\override TextSpanner.bound-details.left.text =
   \markup { \upright "rit." }
 b1\startTextSpan c
 e,\stopTextSpan
@@ -167,9 +163,6 @@ e,\stopTextSpan
 
 The line style, as well as the text string, can be defined as an
 object property.  This syntax is described in @ref{Line styles}.
-Text spanners are part of the @code{Dynamics} context; see
-@rinternals{Dynamics}.
-
 
 @funindex \textSpannerUp
 @funindex textSpannerUp
@@ -190,24 +183,24 @@ LilyPond is only able to handle one text spanner per voice.
 
 @snippets
 
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+@lilypondfile[verbatim,quote,texidoc,doctitle]
 {dynamics-text-spanner-postfix.ly}
 
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+@lilypondfile[verbatim,quote,texidoc,doctitle]
 {dynamics-custom-text-spanner-postfix.ly}
 
 @seealso
 Notation Reference:
 @ref{Line styles},
-@ref{Dynamics}.
+@ref{Dynamics},
+@ref{Formatting text}.
 
 Snippets:
 @rlsr{Text},
 @rlsr{Expressive marks}.
 
 Internals Reference:
-@rinternals{TextSpanner},
-@rinternals{Dynamics}.
+@rinternals{TextSpanner}.
 
 
 @node Text marks
@@ -227,8 +220,8 @@ Internals Reference:
 @funindex \markup
 @funindex markup
 
-Various text elements may be added to a score using
-the syntax described in @ref{Rehearsal marks}:
+Various text elements may be added to a score using the syntax described
+in @ref{Rehearsal marks}:
 
 @c \mark needs to be placed on a separate line (it's not
 @c attached to an object like \markup is). -vv
@@ -262,31 +255,37 @@ or fermata, by specifying the appropriate symbol name as explained in
 @end lilypond
 
 @noindent
-Such objects are only typeset above the top staff of the score; depending on
-whether they are specified at the end or the middle of a bar, they
-can be placed above the bar line or between notes.  When specified at a
-line break, the mark will be printed at the beginning of the next line.
+Such objects are only typeset above the top staff of the score;
+depending on whether they are specified at the end or the middle of a
+bar, they can be placed above the bar line or between notes.  When
+specified at a line break, the mark will be printed at the beginning of
+the next line.
 
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2,ragged-right]
 \mark "Allegro"
 c1 c
 \mark "assai" \break
 c  c
 @end lilypond
 
+@funindex \markLengthOn
+@funindex markLengthOn
+@funindex \markLengthOff
+@funindex markLengthOff
+
+@predefined
+@code{\markLengthOn},
+@code{\markLengthOff}.
+@endpredefined
 
 @snippets
 
-@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
 {printing-marks-at-the-end-of-a-line.ly}
 
-@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
-{aligning-marks-with-various-notation-objects.ly}
-
-@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
 {printing-marks-on-every-staff.ly}
 
-
 @seealso
 Notation Reference:
 @ref{Rehearsal marks},
@@ -351,21 +350,20 @@ requires, are described in @ref{Multi-page markup}.
 
 @funindex \markup
 @funindex markup
-@funindex \markuplines
-@funindex markuplines
+@funindex \markuplist
+@funindex markuplist
 
 @predefined
 @code{\markup},
-@code{\markuplines}.
+@code{\markuplist}.
 @endpredefined
 
 
 @snippets
 
-@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
 {stand-alone-two-column-markup.ly}
 
-
 @seealso
 Notation Reference:
 @ref{Formatting text},
@@ -415,8 +413,8 @@ syntax called @qq{markup mode}.
 @cindex syntax, markup
 
 The markup syntax is similar to LilyPond's usual syntax: a
-@code{\markup} expression is enclosed in curly braces @code{@{
-@dots{} @}}.  A single word is regarded as a minimal expression,
+@code{\markup} expression is enclosed in curly braces
+@code{@{@dots{} @}}.  A single word is regarded as a minimal expression,
 and therefore does not need to be enclosed with braces.
 
 Unlike simple @qq{quoted text} indications, @code{\markup} blocks may
@@ -444,7 +442,7 @@ c
 
 A @code{\markup} block may also contain quoted text strings.  Such
 strings are treated as minimal text expressions, and therefore any
-markup command or special character (such as @code{\} and @code{#})
+markup command or special character (such as @code{\} and@tie{}@code{#})
 will be printed verbatim without affecting the formatting of the text.
 Double quotation marks themselves may be printed by preceding them
 with backslashes.
@@ -485,7 +483,6 @@ allegro = \markup { \bold \large Allegro }
 An exhaustive list of @code{\markup}-specific commands can be found in
 @ref{Text markup commands}.
 
-
 @seealso
 Notation Reference:
 @ref{Text markup commands}.
@@ -493,12 +490,10 @@ Notation Reference:
 Snippets:
 @rlsr{Text}.
 
-Installed files:
-@file{scm/@/markup@/.scm}.
-
+Installed Files:
+@file{scm/markup.scm}.
 
 @knownissues
-
 Syntax errors for markup mode can be confusing.
 
 
@@ -531,6 +526,7 @@ f1 d2 r
 @cindex font size
 @cindex text size
 
+@funindex \abs-fontsize
 @funindex \fontsize
 @funindex fontsize
 @funindex \smaller
@@ -540,38 +536,41 @@ f1 d2 r
 @funindex \magnify
 @funindex magnify
 
-The size of the characters can also be altered in different ways:
-@itemize
-@item
-the font size can be set to predefined standard sizes,
+The font size can be altered, relative to the global staff size, in a
+number of different ways
 
-@item
-the font size can be set to an absolute value,
+It can be set to predefined size,
 
-@item
-the font size can also be changed relatively to its previous value.
-@end itemize
+@lilypond[quote,verbatim,relative=2]
+b1_\markup { \huge Sinfonia }
+b1^\markup { \teeny da }
+b1-\markup { \normalsize camera }
+@end lilypond
 
-@noindent
-The following example demonstrates these three methods:
+It can be set relative to its previous value,
 
-@lilypond[quote,verbatim,relative=1]
-f1_\markup {
-  \tiny espressivo
-  \large e
-  \normalsize intenso
-}
-a^\markup {
-  \fontsize #5 Sinfonia
-  \fontsize #2 da
-  \fontsize #3 camera
-}
-bes^\markup { (con
-  \larger grande
-  \smaller emozione
-  \magnify #0.6 { e sentimento } )
-}
-d c2 r8 c bes a g1
+@lilypond[quote,verbatim,relative=2]
+b1_\markup { \larger Sinfonia }
+b1^\markup { \smaller da }
+b1-\markup { \magnify #0.6  camera }
+@end lilypond
+
+It can be increased or decreased relative to the value set by the
+global staff size,
+
+@lilypond[quote,verbatim,relative=2]
+b1_\markup { \fontsize #-2 Sinfonia }
+b1^\markup { \fontsize #1 da }
+b1-\markup { \fontsize #3 camera }
+@end lilypond
+
+It can also be set to a fixed point-size, regardless of the global staff
+size,
+
+@lilypond[quote,verbatim,relative=2]
+b1_\markup { \abs-fontsize #20 Sinfonia }
+b1^\markup { \abs-fontsize #8 da }
+b1-\markup { \abs-fontsize #14 camera }
 @end lilypond
 
 @cindex subscript
@@ -581,6 +580,8 @@ d c2 r8 c bes a g1
 @funindex super
 @funindex \sub
 @funindex sub
+@funindex \normal-size-super
+@funindex normal-size-super
 
 Text may be printed as subscript or superscript.  By default these are
 printed in a smaller size, but a normal size can be used as well:
@@ -615,8 +616,8 @@ example, there is no difference between the first and the second word.
 
 @noindent
 Some of these font families, used for specific items such as numbers
-or dynamics, do not provide all characters, as mentioned in @ref{New
-dynamic marks} and @ref{Manual repeat marks}.
+or dynamics, do not provide all characters, as mentioned in
+@ref{New dynamic marks} and @ref{Manual repeat marks}.
 
 @c \concat is actually documented in Align (it is not
 @c a font-switching command).  But we need it here. -vv
@@ -675,7 +676,6 @@ Defining custom font sets is also possible, as explained in
 @code{\larger}.
 @endpredefined
 
-
 @seealso
 Notation Reference:
 @ref{Font},
@@ -683,14 +683,20 @@ Notation Reference:
 @ref{Manual repeat marks},
 @ref{Fonts}.
 
+Installed Files:
+@file{scm/define-markup-commands.scm}.
+
 Snippets:
 @rlsr{Text}.
 
 Internals Reference:
 @rinternals{TextScript}.
 
-Installed files:
-@file{scm/@/define@/-markup@/-commands@/.scm}.
+@knownissues
+Using the font sizing commands @code{\teeny}, @code{\tiny},
+@code{\small}, @code{\normalsize}, @code{\large}, and
+@code{\huge} will lead to inconsistent line spacing compared to
+using @code{\fontsize}.
 
 
 @node Text alignment
@@ -752,7 +758,8 @@ a,-\markup { \halign #2 poco }
 @noindent
 Some objects may have alignment procedures of their own, and therefore
 are not affected by these commands.  It is possible to move such
-markup objects as a whole, as shown for instance in @ref{Text marks}.
+markup objects as a whole, as shown for instance in
+@ref{Text marks}.
 
 @cindex text, vertical alignment
 @cindex vertical text alignment
@@ -930,7 +937,6 @@ as shown in the following example.
 An exhaustive list of text alignment commands can be found in
 @ref{Align}.
 
-
 @seealso
 Learning Manual:
 @rlearning{Moving objects}.
@@ -939,15 +945,15 @@ Notation Reference:
 @ref{Align},
 @ref{Text marks}.
 
+Installed Files:
+@file{scm/define-markup-commands.scm}.
+
 Snippets:
 @rlsr{Text}.
 
 Internals Reference:
 @rinternals{TextScript}.
 
-Installed files:
-@file{scm/@/define@/-markup@/-commands@/.scm}.
-
 
 @node Graphic notation inside markup
 @unnumberedsubsubsec Graphic notation inside markup
 An exhaustive list of graphics-specific commands can be found in
 @ref{Graphic}.
 
-
 @seealso
 Notation Reference:
-@ref{Graphic},
-@ref{Editorial annotations}.
+@ref{Align},
+@ref{Dimensions},
+@ref{Editorial annotations},
+@ref{Graphic}.
+
+Installed Files:
+@file{scm/define-markup-commands.scm},
+@file{scm/stencil.scm}.
 
 Snippets:
 @rlsr{Text}.
@@ -1126,10 +1137,6 @@ Snippets:
 Internals Reference:
 @rinternals{TextScript}.
 
-Installed files:
-@file{scm/@/define@/-markup@/-commands@/.scm},
-@file{scm/@/stencil@/.scm}.
-
 
 @node Music notation inside markup
 @unnumberedsubsubsec Music notation inside markup
@@ -1166,11 +1173,7 @@ in markup mode:
 
 @lilypond[quote,verbatim,relative=1]
 g1 bes
-ees-\markup {
-  \finger 4
-  \tied-lyric #"~"
-  \finger 1
-}
+ees\finger \markup \tied-lyric #"4~1"
 fis_\markup { \dynamic rf }
 bes^\markup {
   \beam #8 #0.1 #0.5
@@ -1184,8 +1187,8 @@ d-\markup {
 
 More generally, any available musical symbol may be included
 separately in a markup object, as demonstrated below; an exhaustive
-list of these symbols and their names can be found in @ref{The Feta
-font}.
+list of these symbols and their names can be found in
+@ref{The Feta font}.
 
 @lilypond[quote,verbatim,relative=2]
 c2
@@ -1196,8 +1199,9 @@ c16
 c2^\markup { \musicglyph #"timesig.neomensural94" }
 @end lilypond
 
-Another way of printing non-text glyphs is described in @ref{Fonts
-explained}.  This is useful for printing braces of various sizes.
+Another way of printing non-text glyphs is described in
+@ref{Fonts explained}.  This is useful for printing braces of various
+sizes.
 
 The markup mode also supports diagrams for specific
 instruments:
@@ -1245,24 +1249,23 @@ c d e f
 An exhaustive list of music notation related commands can be found in
 @ref{Music}.
 
-
 @seealso
 Notation Reference:
 @ref{Music},
 @ref{The Feta font},
 @ref{Fonts explained}.
 
+Installed Files:
+@file{scm/define-markup-commands.scm},
+@file{scm/fret-diagrams.scm},
+@file{scm/harp-pedals.scm}.
+
 Snippets:
 @rlsr{Text}.
 
 Internals Reference:
 @rinternals{TextScript}.
 
-Installed files:
-@file{scm/@/define@/-markup@/-commands@/.scm},
-@file{scm/@/fret@/-diagrams@/.scm},
-@file{scm/@/harp@/-pedals@/.scm}.
-
 
 @node Multi-page markup
 @unnumberedsubsubsec Multi-page markup
@@ -1272,8 +1275,8 @@ Installed files:
 @cindex markup text, multi-page
 @cindex text spread over multiple pages
 
-@funindex \markuplines
-@funindex markuplines
+@funindex \markuplist
+@funindex markuplist
 @funindex \justified-lines
 @funindex justified-lines
 @funindex \wordwrap-lines
@@ -1284,7 +1287,7 @@ makes it possible to enter lines of text that can spread over multiple
 pages:
 
 @lilypond[quote,verbatim]
-\markuplines {
+\markuplist {
   \justified-lines {
     A very long text of justified lines.
     ...
@@ -1310,29 +1313,27 @@ a list of markup lists.
 An exhaustive list of markup list commands can be found in
 @ref{Text markup list commands}.
 
-
 @seealso
 Notation Reference:
-@ref{Text markup list commands},
+@ref{Text markup list commands}.
+
+Extending LilyPond:
+@rextend{New markup list command definition}.
+
+Installed Files:
+@file{scm/define-markup-commands.scm}.
 
 Snippets:
 @rlsr{Text}.
 
-Extending:
-@rextend{New markup list command definition}.
-
 Internals Reference:
 @rinternals{TextScript}.
 
-Installed files:
-@file{scm/@/define@/-markup@/-commands@/.scm}.
-
-
-@funindex \markuplines
-@funindex markuplines
+@funindex \markuplist
+@funindex markuplist
 
 @predefined
-@code{\markuplines}.
+@code{\markuplist}.
 @endpredefined
 
 
@@ -1395,9 +1396,17 @@ left braces; right braces may be obtained by rotation, see
 @ref{Rotating objects}.
 
 Three families of text fonts are made available: the @emph{roman}
-(serif) font, that defaults to New Century Schoolbook, the @emph{sans}
-font and the monospaced @emph{typewriter} font -- these last two
-families are determined by the Pango installation.
+(serif) font, that defaults to New Century Schoolbook, the
+@emph{sans} font and the monospaced @emph{typewriter} font -- these
+last two families are determined by the Pango installation.
+
+@warning{There are no default fonts associated with the @emph{sans}
+and @emph{typewriter} font-families.  An input file that specifies
+either of these can lead to different output on different computers.
+To ensure consistent output among multiple platforms, fonts must be
+specified by name, and those fonts must be available on any system
+that processes the file.  See @ref{Single entry fonts} and
+@ref{Entire document fonts}.}
 
 Each family may include different shapes and series.  The following
 example demonstrates the ability to select alternate families, shapes,
@@ -1405,19 +1414,19 @@ series and sizes.  The value supplied to @code{font-size} is the
 required change from the default size.
 
 @lilypond[quote,verbatim,relative=2]
-\override Score.RehearsalMark #'font-family = #'typewriter
+\override Score.RehearsalMark.font-family = #'typewriter
 \mark \markup "Ouverture"
-\override Voice.TextScript #'font-shape = #'italic
-\override Voice.TextScript #'font-series = #'bold
+\override Voice.TextScript.font-shape = #'italic
+\override Voice.TextScript.font-series = #'bold
 d2.^\markup "Allegro"
-\override Voice.TextScript #'font-size = #-3
+\override Voice.TextScript.font-size = #-3
 c4^smaller
 @end lilypond
 
 @noindent
 A similar syntax may be used in markup mode; however in this case it
-is preferable to use the simpler syntax explained in @ref{Selecting
-font and font size}:
+is preferable to use the simpler syntax explained in
+@ref{Selecting font and font size}:
 
 @lilypond[quote,verbatim]
 \markup {
@@ -1445,11 +1454,11 @@ Although it is easy to switch between preconfigured fonts, it is also
 possible to use other fonts, as explained in the following sections:
 @ref{Single entry fonts} and @ref{Entire document fonts}.
 
-
 @seealso
 Notation Reference:
 @ref{The Feta font},
 @ref{Music notation inside markup},
+@ref{Rotating objects},
 @ref{Selecting font and font size},
 @ref{Font}.
 
@@ -1461,8 +1470,8 @@ Any font that is installed on the operating system and recognized by
 FontConfig may be used in a score, using the following syntax:
 
 @lilypond[quote,verbatim,relative=2]
-\override Staff.TimeSignature #'font-name = #"Bitstream Charter"
-\override Staff.TimeSignature #'font-size = #2
+\override Staff.TimeSignature.font-name = #"Bitstream Charter"
+\override Staff.TimeSignature.font-size = #2
 \time 3/4
 
 a1_\markup {
@@ -1478,14 +1487,13 @@ a1_\markup {
 
 @funindex show-available-fonts
 
-The following command displays a list of all available fonts on the
-operating system:
+Running lilypond with the following option displays a list of all
+available fonts on the operating system:
 
 @example
 lilypond -dshow-available-fonts x
 @end example
 
-
 @seealso
 Notation Reference:
 @ref{Fonts explained},
@@ -1495,8 +1503,8 @@ Snippets:
 @rlsr{Text}.
 
 @c A source file gets never installed...
-@c Installed files:
-@c @file{lily/@/font@/-config@/-scheme@/.cc}.
+@c Installed Files:
+@c @file{lily/font-config-scheme.cc}.
 
 
 @node Entire document fonts
@@ -1504,8 +1512,9 @@ Snippets:
 
 It is possible to change the fonts to be used as the default fonts in
 the @emph{roman}, @emph{sans} and @emph{typewriter} font families by
-specifying them, in that order, as shown in the example below.  For an
-explanation of fonts, see @ref{Fonts explained}.
+specifying them, in that order, as shown in the example below, which
+automatically scales the fonts with the value set for the global staff
+size.  For an explanation of fonts, see @ref{Fonts explained}.
 
 @cindex font families, setting
 @cindex fonts, changing for entire document
@@ -1514,12 +1523,11 @@ explanation of fonts, see @ref{Fonts explained}.
 
 @lilypond[verbatim,quote]
 \paper  {
-  myStaffSize = #20
   #(define fonts
     (make-pango-font-tree "Times New Roman"
                           "Nimbus Sans"
                           "Luxi Mono"
-                           (/ myStaffSize 20)))
+                          (/ staff-height pt 20)))
 }
 
 \relative c'{
@@ -1533,7 +1541,6 @@ explanation of fonts, see @ref{Fonts explained}.
 @c we don't do Helvetica / Courier, since GS incorrectly loads
 @c Apple TTF fonts
 
-
 @seealso
 Notation Reference:
 @ref{Fonts explained},