X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fuser%2Ftext.itely;h=3c2c2a4d20aa1a17a2b445ff5466ca705328c94d;hb=d73c2df4e7249f3b35c3528b0cc000186d67e7b3;hp=d1c02fba42af292adac1171370d94147a9960747;hpb=703bf9f756d270e1ea7bdf47eebe5f2fd2bcd4ee;p=lilypond.git diff --git a/Documentation/user/text.itely b/Documentation/user/text.itely index d1c02fba42..3c2c2a4d20 100644 --- a/Documentation/user/text.itely +++ b/Documentation/user/text.itely @@ -14,7 +14,7 @@ @lilypondfile[quote]{text-headword.ly} This section explains how to include text (with various -formatting) in your scores. +formatting) in music scores. @noindent Some text elements that are not dealt with here are discussed in other @@ -37,6 +37,8 @@ information, see @ref{Text encoding}.} @node Writing text @subsection Writing text +This section introduces different ways of adding text to a score. + @menu * Text scripts:: * Text spanners:: @@ -95,9 +97,10 @@ d8^"pizz." e f g \textLengthOn a4_"scherzando" f Notation Reference: @ref{Formatting text}, @ref{Controlling direction and placement}. -Snippets: @lsrdir{Text,Text} +Snippets: +@rlsr{Text}. -Internals Reference: @internalsref{TextScript}. +Internals Reference: @rinternals{TextScript}. @knownissues @@ -119,9 +122,8 @@ default; to enable it, use Some performance indications, e.g., @i{rallentando} or @i{accelerando}, are written as text and are extended over many measures with dotted lines. - Such objects, called @q{spanners}, may be created -from one note to another by using the following syntax: +from one note to another using the following syntax: @lilypond[verbatim,quote,ragged-right,fragment,relative=2] \override TextSpanner #'bound-details #'left #'text = "rit." @@ -131,9 +133,9 @@ e,\stopTextSpan @noindent The string to be printed is set through -object properties. By default it is printed in italic characters, +object properties. By default it is printed in italic characters, but different formatting can be obtained using -@code{\markup} blocks: +@code{\markup} blocks, as described in @ref{Formatting text}. @lilypond[quote,ragged-right,fragment,relative=2,verbatim] \override TextSpanner #'bound-details #'left #'text = @@ -143,7 +145,7 @@ e,\stopTextSpan @end lilypond The line style, as well as the text string, can be defined as an -object property. This syntax is described in @ref{Line styles}. +object property. This syntax is described in @ref{Line styles}. @predefined @@ -158,9 +160,10 @@ object property. This syntax is described in @ref{Line styles}. Notation Reference: @ref{Line styles}. -Snippets: @lsrdir{Text,Text} +Snippets: +@rlsr{Text}. -Internals Reference: @internalsref{TextSpanner}. +Internals Reference: @rinternals{TextSpanner}. @node Text marks @@ -176,7 +179,7 @@ Various text elements can be added to a score using the syntax described in @ref{Rehearsal marks}: @lilypond[verbatim,quote,ragged-right,fragment,relative=2] -c4\mark "dolce" c c c +c4\mark "Allegro" c c c @end lilypond This syntax makes possible to put any text on a bar line; @@ -191,14 +194,14 @@ c1 @end lilypond @noindent -Such objects are only typeset above the top staff of the score; they -can be placed above the bar line or between notes, depending on whether -you specify it at the end or the middle of a bar. When specified at the -beginning of a score or at a line break, the mark will be printed at +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 the +beginning of a score or at a line break, marks will be printed at the beginning of the line (the next line, in case of a line break). @lilypond[fragment,quote,ragged-right,verbatim,relative=2] -\mark "dolce" c1 +\mark "Allegro" c1 c\mark "assai" \break c c @end lilypond @@ -220,9 +223,10 @@ c c Notation Reference: @ref{Rehearsal marks}, @ref{Formatting text}, @ref{The Feta font}. -Snippets: @lsrdir{Text,Text} +Snippets: +@rlsr{Text}. -Internals Reference: @internalsref{RehearsalMark}. +Internals Reference: @rinternals{RehearsalMark}. @knownissues @c IMO this is a bug; hopefully it'll be fixed soon, so I can @@ -243,16 +247,14 @@ all. @funindex \markup A @code{\markup} block can exist by itself, outside of any -any @code{\score} block. This syntax is called a @q{top-level -expression}, and is described in @code{File structure}. - -@c TODO: turn this into a @lilypond example +any @code{\score} block, as a @qq{top-level +expression}. This syntax is described in @ref{File structure}. -@example -\markup @{ - @var{..} -@} -@end example +@lilypond[quote,ragged-right,verbatim] +\markup { + Tomorrow, and tomorrow, and tomorrow... +} +@end lilypond @noindent This allows to print text separately @@ -261,61 +263,63 @@ useful when the input file contains several music pieces, as described in @ref{Multiple scores in a book}. -@example -\score @{ - @var{..} -@} -\markup @{ - @var{..} -@} -\score @{ - @var{..} -@} -@end example +@lilypond[quote,ragged-right,verbatim] +\score { + c'1 +} +\markup { + Tomorrow, and tomorrow, and tomorrow... +} +\score { + c'1 +} +@end lilypond Using a specific syntax, text blocks can be spread over multiple pages, making possible to print text documents or books -- and therefore to use LilyPond as a word processor. This syntax is described in -@ref{Multi-pages markup}. +@ref{Multi-page markup}. + +@predefined + +@funindex \markup +@code{\markup}, +@funindex \markuplines +@code{\markuplines} @ignore @snippets -TODO: add convenient snippets, e.g. -"Inserting large plain text sections" -(this requires the LSR to be updated) -vv +TODO: add convenient snippets in input/new -vv @end ignore @seealso -Notation Reference: @code{Formatting text}, -@code{File structure}, +Notation Reference: @ref{Formatting text}, +@ref{File structure}, @ref{Multiple scores in a book}, -@ref{Multi-pages markup}. +@ref{Multi-page markup}. -Snippets: @lsrdir{Text,Text}. +Snippets: +@rlsr{Text}. -Internals Reference: @internalsref{TextScript}. - -@predefined - -@funindex \markup -@code{\markup}, -@funindex \markuplines -@code{\markuplines} +Internals Reference: @rinternals{TextScript}. @node Formatting text @subsection Formatting text +This section presents basic and advanced text formatting, +using the @code{\markup} mode specific syntax. + @menu * Text markup introduction:: * Common markup commands:: * Text alignment:: * Graphic notation inside markup:: * Music notation inside markup:: -* Multi-pages markup:: +* Multi-page markup:: @end menu @node Text markup introduction @@ -327,7 +331,7 @@ Internals Reference: @internalsref{TextScript}. @cindex typeset text A @code{\markup} block is used to typeset text with an extensible syntax, -called @q{markup mode}. +called @qq{markup mode}. Specific commands can be entered in this mode, using the backslash @code{\} character. @c TODO: move the following sentence (and add an example?) -vv @@ -346,8 +350,6 @@ c1_\markup { "\special {weird} #characters" } An exhaustive list of @code{\markup}-specific commands can be found in @ref{Text markup commands}. -@code{\markup} blocks can be used anywhere text is called, -and not only for @internalsref{TextScript}s objects. @lilypond[quote,verbatim] \header{ title = \markup{ \bold { foo \italic { bar! } } } } @@ -369,14 +371,7 @@ and not only for @internalsref{TextScript}s objects. } @end lilypond -A @code{\markup} block can also be printed on its own at the top-level -of the input file, away from -any @code{\score} block. This syntax is described in -@ref{Multiple scores in a book}. -@lilypond[quote,ragged-right,verbatim] -\markup{ Here is some text. } -@end lilypond @cindex font switching @@ -441,7 +436,7 @@ allegro = \markup @{ \bold \large @{ Allegro @} @} Some objects have alignment procedures of their own, which cancel out any effects of alignments applied to their markup arguments as -a whole. For example, the @internalsref{RehearsalMark} is +a whole. For example, the @rinternals{RehearsalMark} is horizontally centered, so using @code{\mark \markup @{ \left-align .. @}} has no effect. @@ -464,14 +459,50 @@ properties. If you are creating text in such situations, it is advisable to cancel those properties with @code{normal-text}. See @ref{Text markup commands}, for more details. +@ignore +TODO: here are some commands that could be described here. +I'm putting them in bulk, prior to working on this section. -vv + +\simple + +\char +\fraction + +\combine +\concat +\put-adjacent + + +\page-ref (see also "Table of contents") +\fromproperty +\verbatim-file +\with-url + +\on-the-fly +\override + + +\null +\hspace + +\lower +\raise +\translate +\translate-scaled +\rotate +\transparent +\whiteout + +@end ignore @seealso This manual: @ref{Text markup commands}. -Snippets: @lsrdir{Text,Text} +Snippets: +@rlsr{Text}. -Internals Reference: @internalsref{TextScript}. +Internals Reference: @rinternals{TextScript}. Init files: @file{scm/@/new@/-markup@/.scm}. @@ -487,24 +518,183 @@ Syntax errors for markup mode are confusing. @node Common markup commands @subsubsection Common markup commands -TODO: everything +Some basic formatting can be used blah blah + +\italic +\upright +\bold +\medium +\underline + + +@c TODO: what's the difference between the following commands? -vv +\smallCaps +\caps +\fontCaps + + +Some alternate font families can easily be selected: + +\sans +\typewriter +\roman +\number (only for numbers, such as fingerings and time signatures) +@c TODO: add \slashed-digit here? -vv + +The size can be blah blah blah + +\fontsize + +Some predefined font sizes can be used blah blah + +\teeny +\tiny +\small +\normalsize +\large +\huge + +Some shorcuts allow to change the font size relatively to its previous value + +\smaller +\bigger +\larger + +\magnify + +Text may be printed as subscript or superscript: + +\sub +\super + +To obtain subscripts or superscripts in a normal text size, use +\normal-size-sub +\normal-size-super + +All these settings (except the size) can be reverted to the default font: + +\normal-text + @node Text alignment @subsubsection Text alignment -TODO: everything +Alignment basics: +\left-align +\center-align +\right-align + +Horizontal alignment: +\hcenter +\general-align +\halign + + +Vertical alignment: +\vcenter +\column +\dir-column + +Building a "large" markup: + +\line + +\fill-line + +\hcenter-in + +\pad-around +\pad-markup +\pad-to-box +\pad-x + +Alignment inside a "large" markup: + +\justify-field +\justify +\justify-string + +\wordwrap-field +\wordwrap +\wordwrap-string @node Graphic notation inside markup @subsubsection Graphic notation inside markup +Graphics around text: +\box +\circle + +\bracket +\hbracket + +"Standalone" graphics: + +\arrow-head +\draw-line +\draw-circle +\filled-box +\triangle +\strut + +\with-color -TODO: everything + +Advanced graphics: +\stencil + +\postscript +\epsfile + +\with-dimensions @node Music notation inside markup @subsubsection Music notation inside markup -It is possible to nest music inside markups, by adding a -@code{\score} block to a markup expression. Such a score must -contain a @code{\layout} block. +Notes can be printed in markup mode blah blah: + +\note +\note-by-number + +Accidental symbols can be obtained easily: + +\doubleflat +\sesquiflat +\flat +\semiflat +\natural +\semisharp +\sharp +\sesquisharp +\doublesharp + +Some other notation objects blah blah + +\beam +\finger +\dynamic +\tied-lyric +\markalphabet +\markletter +@c TODO: add \text here? -vv + +Any musical symbol can be printed + +\musicglyph +@c TODO: add \lookup here? -vv + + +The markup mode has support for fret diagrams: + +\fret-diagram +\fret-diagram-terse +\fret-diagram-verbose + +An entire @code{\score} block can even be nested in a @code{\markup} +block. In such a case, the @code{\score} must contain a @code{\layout} block. + + +\score + @lilypond[quote,verbatim,ragged-right] \relative { @@ -520,10 +710,11 @@ contain a @code{\layout} block. @seealso -Snippets: @lsrdir{Text,Text} +Snippets: +@rlsr{Text}. -@node Multi-pages markup -@subsubsection Multi-pages markup +@node Multi-page markup +@subsubsection Multi-page markup Whereas @code{\markup} is used to enter a non-breakable block of text, @code{\markuplines} can be used at top-level to enter lines @@ -553,7 +744,8 @@ lists. The built-in markup list commands are described in This manual: @ref{Text markup list commands}, @ref{New markup list command definition}. -Snippets: @lsrdir{Text,Text} +Snippets: +@rlsr{Text}. @predefined @@ -687,6 +879,7 @@ property. The resulting size is taken relative to the @seealso -Snippets: @lsrdir{Text,Text} +Snippets: +@rlsr{Text}.