]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/user/text.itely
Merge branch 'master' into dev/texi2html
[lilypond.git] / Documentation / user / text.itely
1 @c -*- coding: utf-8; mode: texinfo; -*-
2 @ignore
3     Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
4
5     When revising a translation, copy the HEAD committish of the
6     version that you are working on.  See TRANSLATION for details.
7 @end ignore
8
9 @c \version "2.11.51"
10
11 @node Text
12 @section Text
13
14 @lilypondfile[quote]{text-headword.ly}
15
16 This section explains how to include text (with various
17 formatting) in music scores.
18
19 @noindent
20 Some text elements that are not dealt with here are discussed in other
21 specific sections: @ref{Vocal music}, @ref{Titles and headers}.
22
23
24 @cindex Text, other languages
25 @warning{To write accented and special text (such as characters
26 from other languages), simply insert the characters directly into
27 the LilyPond file.  The file must be saved as UTF-8.  For more
28 information, see @ref{Text encoding}.}
29
30 @menu
31 * Writing text::                
32 * Formatting text::             
33 * Fonts::                       
34 @end menu
35
36
37 @node Writing text
38 @subsection Writing text
39
40 This section introduces different ways of adding text to a score.
41
42 @menu
43 * Text scripts::                
44 * Text spanners::               
45 * Text marks::                  
46 * Separate text::               
47 @end menu
48
49
50 @node Text scripts
51 @subsubsection Text scripts
52
53 @cindex Text scripts
54 @cindex text items, non-empty
55 @cindex non-empty texts
56 @cindex quoted text
57
58 Simple @q{quoted text} indications may be added
59 to a score, as demonstrated in the following example.
60 Such indications can be manually placed
61 above or below the staff, using the
62 syntax described in @ref{Direction and
63 placement}.
64
65 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
66 d8^"pizz." e f g a4-"scherz." f
67 @end lilypond
68
69 This syntax is actually a shorthand; more complex text
70 formatting may be added to a note by explicitly using a
71 @code{\markup} block, as described in @ref{Formatting text}.
72
73 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
74 d8^\markup { \italic pizz. } e f g 
75 a4_\markup { \tiny scherz. \bold molto } f
76 @end lilypond
77
78 By default, text indications do not influence the note spacing.
79 However, their widths can be taken into account:
80 in the following example, the first text string does not affect 
81 spacing, whereas the second one does.
82
83 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
84 d8^"pizz." e f g
85 \textLengthOn
86 a4_"scherzando" f
87 @end lilypond
88
89 @predefined
90
91 @funindex \textLengthOn
92 @code{\textLengthOn},
93 @funindex \textLengthOff
94 @code{\textLengthOff}
95
96
97 @seealso
98
99 Notation Reference: @ref{Formatting text},
100 @ref{Direction and placement}.
101
102 Snippets:
103 @rlsr{Text}.
104
105 Internals Reference: @rinternals{TextScript}.
106
107 @knownissues
108
109 Checking to make sure that text scripts and lyrics are within the
110 margins is a relatively large computational task.  To speed up
111 processing, LilyPond does not perform such calculations by
112 default; to enable it, use
113
114 @example
115 \override Score.PaperColumn #'keep-inside-line = ##t
116 @end example
117
118
119 @node Text spanners
120 @subsubsection Text spanners
121
122 @cindex Text spanners
123
124 Some performance indications, e.g., @notation{rallentando} or
125 @notation{accelerando}, are written as text and are extended over
126 multiple notes with dotted lines.
127 Such objects, called @q{spanners}, may be created
128 from one note to another using the following syntax:
129
130 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
131 \override TextSpanner #'bound-details #'left #'text = "rit." 
132 b1\startTextSpan 
133 e,\stopTextSpan
134 @end lilypond
135
136 @noindent
137 The string to be printed is set through
138 object properties.  By default it is printed in italic characters,
139 but different formatting can be obtained using
140 @code{\markup} blocks, as described in @ref{Formatting text}.
141
142 @lilypond[quote,ragged-right,fragment,relative=2,verbatim]
143 \override TextSpanner #'bound-details #'left #'text =
144   \markup { \upright "rit." } 
145 b1\startTextSpan c
146 e,\stopTextSpan
147 @end lilypond
148
149 The line style, as well as the text string, can be defined as an
150 object property.  This syntax is described in @ref{Line styles}.
151
152 @predefined
153
154 @funindex textSpannerUp
155 @code{\textSpannerUp},
156 @funindex textSpannerDown
157 @code{\textSpannerDown},
158 @funindex textSpannerNeutral
159 @code{\textSpannerNeutral}
160
161 @seealso
162
163 Notation Reference: @ref{Line styles}.
164
165 Snippets:
166 @rlsr{Text}.
167
168 Internals Reference: @rinternals{TextSpanner}.
169
170
171 @node Text marks
172 @subsubsection Text marks
173
174 @cindex coda on bar line
175 @cindex segno on bar line
176 @cindex fermata on bar line
177 @cindex bar lines, symbols on
178 @funindex \mark
179
180 Various text elements can be added to a score using
181 the syntax described in @ref{Rehearsal marks}:
182
183 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
184 c4\mark "Allegro" c c c
185 @end lilypond
186
187 This syntax makes it possible to put any text on a bar line;
188 more complex text formatting may be added using a @code{\markup}
189 block, as described in @ref{Formatting text}.  This can be used to print
190 signs like coda, segno or fermata, by specifying the appropriate
191 symbol name:
192
193 @lilypond[fragment,quote,ragged-right,verbatim,relative=2]
194 c1 \mark \markup { \musicglyph #"scripts.ufermata" }
195 c1
196 @end lilypond
197
198 @noindent
199 Such objects are only typeset above the top staff of the score; depending on
200 whether they are specified at the end or the middle of a bar, they 
201 can be placed above the bar line or between notes.  When specified at the
202 beginning of a score or at a line break, marks will be printed at
203 the beginning of the line (the next line, in case of a line break).
204
205 @lilypond[fragment,quote,ragged-right,verbatim,relative=2]
206 \mark "Allegro" c1
207 c\mark "assai" \break
208 c c
209 @end lilypond
210
211
212 @snippets
213
214 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
215 {printing-marks-at-the-end-of-a-line-or-a-score.ly}
216
217 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
218 {aligning-marks-with-various-notation-objects.ly}
219
220 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
221 {printing-marks-on-every-staff.ly}
222
223 @seealso
224
225 Notation Reference: @ref{Rehearsal marks},
226 @ref{Formatting text}, @ref{The Feta font}.
227
228 Snippets:
229 @rlsr{Text}.
230
231 Internals Reference: @rinternals{RehearsalMark}.
232
233 @knownissues
234 @c  To be removed when Issue 69 in the tracker gets fixed. -vv
235
236 If a mark is entered at the end of the last bar of the score (where
237 there is no next line), then the mark will not be printed at
238 all.
239
240 @node Separate text
241 @subsubsection Separate text
242
243 @cindex separate text
244 @cindex standalone text
245 @cindex top-level text
246 @cindex text, standalone
247 @funindex \markup
248
249 A @code{\markup} block can exist by itself, outside of any
250 any @code{\score} block, as a @qq{top-level
251 expression}.  This syntax is described in @ref{File structure}.
252
253 @lilypond[verbatim,quote]
254 \markup {
255   Tomorrow, and tomorrow, and tomorrow...
256 }
257 @end lilypond
258
259 @noindent
260 This allows printing text separately
261 from the music, which is particularly 
262 useful when the input file contains
263 several music pieces, as described in
264 @ref{Multiple scores in a book}.
265
266 @lilypond[quote,ragged-right,verbatim]
267 \score {
268   c'1
269 }
270 \markup {
271   Tomorrow, and tomorrow, and tomorrow...
272 }
273 \score {
274   c'1
275 }
276 @end lilypond
277
278 Using a specific syntax, text blocks can be spread
279 over multiple pages, making possible to print
280 text documents or books -- and therefore to
281 use LilyPond as a word processor.  This syntax is described in
282 @ref{Multi-page markup}.
283
284 @predefined
285
286 @code{\markup},
287 @funindex \markuplines
288 @code{\markuplines}
289
290 @ignore
291 @snippets
292
293 TODO: add convenient snippets in input/new -vv
294 @end ignore
295
296 @seealso
297
298 Notation Reference: @ref{Formatting text},
299 @ref{File structure}, 
300 @ref{Multiple scores in a book},
301 @ref{Multi-page markup}.
302
303 Snippets:
304 @rlsr{Text}.
305
306 Internals Reference: @rinternals{TextScript}.
307
308
309 @node Formatting text
310 @subsection Formatting text
311
312 This section presents basic and advanced text formatting,
313 using the @code{\markup} mode specific syntax.
314
315 @menu
316 * Text markup introduction::    
317 * Common markup commands::      
318 * Text alignment::              
319 * Graphic notation inside markup::  
320 * Music notation inside markup::  
321 * Multi-page markup::          
322 @end menu
323
324 @node Text markup introduction
325 @subsubsection Text markup introduction
326
327 @cindex markup
328 @cindex text markup
329 @cindex markup text
330 @cindex typeset text
331 @funindex \markup
332
333 A @code{\markup} block is used to typeset text with an extensible
334 specific syntax called @qq{markup mode}.
335
336 @cindex markup expressions
337 @cindex markup syntax
338
339 The markup syntax is similar to LilyPond's usual syntax: a
340 @code{\markup} expression is enclosed in curly braces @code{@{
341 @dots{} @}}.
342
343 Unlike simple @q{quoted text} indications, @code{\markup} blocks
344 may contain nested expressions or specific commands,
345 entered using the backslash @code{\} character.
346 Such commands only affect the first following expression.
347
348 @lilypond[quote,verbatim,fragment,relative=1]
349 e1-\markup "intenso"
350 a2^\markup { poco \italic più forte  }
351 c e1
352 d2_\markup { \italic "string. assai" }
353
354 b1^\markup { \bold { molto \italic  agitato } }
355 c
356 @end lilypond
357
358 @cindex special characters in markup mode
359 @cindex markup mode, special characters
360 @cindex reserved characters, printing
361 @cindex printing special characters
362 @cindex quoted text in markup mode
363
364 A @code{\markup} block may also contain quoted text, which
365 can be useful to print special characters (such as @code{\} and @code{#}).
366 Quoted text even allows to print double quotation marks, by preceding
367 them with backslashes:
368
369 @lilypond[quote,verbatim,fragment,relative=1]
370 \clef bass
371 a^\markup "##\ LEPORELLO \##"
372 a_\markup "Bravi! \"Cosa rara\"!"
373 r a8 d
374 cis a r4 r2
375 @end lilypond
376
377 The way markup expressions are defined affects 
378 how these expressions will stacked, centered and aligned
379 when using the commands explained in @ref{Text alignment}.
380
381 @lilypond[quote,verbatim,fragment,relative=1]
382 c1^\markup { \column { a bbbb \line { c d } } }
383 c1^\markup { \center-align { a bbbb c } }
384 c1^\markup { \line { a b c } }
385 @end lilypond
386
387 Lists of words that are not enclosed with double quotes
388 or preceded by a command are not kept distinct.  In
389 the following example, the first two @code{\markup} expressions
390 are equivalent:
391
392 @lilypond[quote,verbatim,fragment,relative=1]
393 c1^\markup { \center-align { a bbb c } }
394 c1^\markup { \center-align { a { bbb c } } }
395 c1^\markup { \center-align { a \line { bbb c } } }
396 @end lilypond
397
398
399 Markups can be stored in variables.  These variables may be
400 directly attached to notes:
401
402 @lilypond[quote,verbatim]
403 allegro = \markup { \bold \large Allegro }
404
405 {
406   d''8.^\allegro
407   d'16 d'4 r2
408 }
409 @end lilypond
410
411
412 @noindent
413 An exhaustive list of @code{\markup}-specific commands can be found in
414 @ref{Text markup commands}.
415
416
417 @seealso
418
419 This manual: @ref{Text markup commands}.
420
421 Snippets:
422 @rlsr{Text}.
423
424 Internals Reference: @rinternals{TextScript}.
425
426 Init files: @file{scm/@/new@/-markup@/.scm}.
427
428
429 @knownissues
430
431 Syntax errors for markup mode are confusing.
432
433
434 @node Common markup commands
435 @subsubsection Common markup commands
436
437 Markup text may be formatted in different ways.
438
439 @cindex font switching
440 @funindex \italic
441 @funindex \bold
442 @funindex \underline
443
444 Basic font switching is supported:
445
446 @lilypond[quote,verbatim,relative=2]
447 {
448   d1^\markup { 
449     \bold { Più mosso } 
450     \italic { non troppo \underline Vivo } 
451   }
452   r2 r4 r8
453   d,_\markup { \italic quasi \smallCaps Tromba }
454   f1 d2 r
455 }
456 @end lilypond
457
458 @cindex font size
459 @cindex text size
460 @funindex \fontsize
461 @funindex \smaller
462 @funindex \larger
463 @funindex \bigger
464 @funindex \magnify
465
466 The size of the characters can also be altered in different ways:
467 @itemize
468 @item
469 the font size can be defined to an absolute value,
470
471 @item
472 predefined commands allow to easily select standard sizes,
473
474 @item
475 other commands allow to change the size relatively to its previous value.
476 @end itemize
477
478 @noindent
479 The following example demonstrates these three methods:
480
481 @lilypond[quote,verbatim,relative=2]
482 {
483   f1^\markup { \fontsize #5 Sinfonia } 
484   a,_\markup { 
485     \tiny espressivo
486     \large e
487     \normalsize intenso 
488   }
489   bes^\markup { (con 
490     \larger grande 
491     \smaller emozione 
492     \magnify #0.6 { e sentimento } )
493   }
494   d c2 r8 c bes a g1
495 }
496 @end lilypond
497
498 @cindex subscript
499 @cindex superscript
500 @funindex \super
501 @funindex \sub
502
503 Text may be printed as subscript or superscript. By default
504 these are printed in a smaller size, but a normal size can be used as well:
505
506 @lilypond[quote,verbatim]
507 \markup {
508   \column {
509     \line { 1 \super st movement }
510     \line { 1 \normal-size-super st movement 
511       \sub { (part two) }  }
512   }
513 }
514 @end lilypond
515
516 The markup mode provides an easy way to select alternate
517 font families.  The default serif font, of roman type, is automatically
518 selected unless specified otherwise: on the last line of the following example,
519 there is no difference between the first word and the following words.
520
521 @lilypond[quote,verbatim]
522 \markup {
523   \column {
524     \line { Act \number 1 }
525     \line { \sans { Scene I. } }
526     \line { \typewriter { Verona. An open place. } }
527     \line { \roman Enter Valentine and Proteus. }
528   }
529 }
530 @end lilypond
531
532 @noindent
533 Some of these font families, used for specific items
534 such as numbers or dynamics, do not provide all
535 characters, as mentioned in @ref{New dynamic marks} and
536 @ref{Manual repeat marks}.
537
538
539 Defining custom font sets is also possible, as explained in
540 @ref{Fonts}.  An exhaustive list of font-switching, font-size
541 and font-families related commands can be found in @ref{Font}.
542
543 @predefined
544
545 @funindex \teeny
546 @funindex \tiny
547 @funindex \small
548 @funindex \normalsize
549 @funindex \large
550 @funindex \huge
551 @code{\teeny},
552 @code{\tiny},
553 @code{\small},
554 @code{\normalsize},
555 @code{\large},
556 @code{\huge}.
557
558
559 @c TODO: add @seealso
560
561 @knownissues
562 When used inside a word, some of these commands may produce an unwanted
563 blank space.  This can easily be solved by concatenating the text
564 elements together, using a specific command
565 described in @ref{Text alignment}.
566
567
568
569 @node Text alignment
570 @subsubsection Text alignment
571
572 @warning{This subsection discusses how to place text in markup mode,
573 inside a @code{\markup} block.  However, markup objects can also
574 be moved as a whole using the syntax described in
575 @rlearning{Moving objects}.}
576
577 Markup objects can be aligned in different ways.  By default,
578 a text indication is aligned on its left edge: in the following
579 example, there's no difference between the first and the second
580 markup.
581
582 @lilypond[quote,verbatim,fragment,relative=1]
583 a1-\markup { poco }
584 e'
585 a,-\markup { \left-align poco }
586 e'
587 a,-\markup { \center-align { poco } }
588 e'
589 a,-\markup { \right-align poco }
590 @end lilypond
591
592 @c FIXME: \center-align actually doesn't belong here
593 @c \center-align vs \column
594 @c \center-align vs \hcenter
595
596 Horizontal alignment:
597 \hcenter
598 \general-align
599 \halign 
600
601
602 \null
603 \hspace
604
605 \lower
606 \raise 
607 \translate 
608 \translate-scaled
609 \rotate
610 \transparent
611 \whiteout
612
613 Vertical alignment: 
614 \vcenter
615 \column 
616 \dir-column 
617
618 Building a "large" markup:
619
620 \line
621
622 \fill-line
623
624 \hcenter-in
625         
626 \pad-around
627 \pad-markup
628 \pad-to-box
629 \pad-x
630         
631 Alignment inside a "large" markup:
632
633 \justify-field 
634 \justify
635 \justify-string
636
637 \wordwrap-field
638 \wordwrap
639 \wordwrap-string
640
641
642 @ignore
643 TODO: here are some commands that could be described here.
644 I'm putting them in bulk, prior to working on this section. -vv
645
646 \simple
647
648 \char
649 \fraction
650
651 \combine
652 \concat
653 \put-adjacent
654
655
656 \page-ref (see also "Table of contents")
657 \fromproperty
658 \verbatim-file
659 \with-url
660
661 \on-the-fly 
662 \override
663
664
665
666 @end ignore
667
668
669 Some objects have alignment procedures of their own, which cancel
670 out any effects of alignments applied to their markup arguments as
671 a whole.  For example, the @rinternals{RehearsalMark} is
672 horizontally centered, so using @code{\mark \markup @{ \left-align
673 .. @}} has no effect.
674
675
676
677 @node Graphic notation inside markup
678 @subsubsection Graphic notation inside markup
679 Graphics around text:
680 \box
681 \circle
682
683 \bracket
684 \hbracket
685
686 "Standalone" graphics:
687
688 \arrow-head
689 \draw-line
690 \draw-circle
691 \filled-box
692 \triangle
693 \strut
694
695 \with-color
696
697
698 Advanced graphics:
699 \stencil
700
701 \postscript
702 \epsfile
703
704 \with-dimensions
705
706 @node Music notation inside markup
707 @subsubsection Music notation inside markup
708
709 Notes can be printed in markup mode blah blah:
710
711 \note   
712 \note-by-number
713
714 Accidental symbols can be obtained easily:
715
716 \doubleflat
717 \sesquiflat
718 \flat
719 \semiflat
720 \natural
721 \semisharp
722 \sharp
723 \sesquisharp
724 \doublesharp
725
726 Some other notation objects blah blah
727
728 \beam
729 \finger
730 \dynamic
731 \tied-lyric
732 \markalphabet
733 \markletter
734 @c TODO: add \text here? -vv
735
736 Any musical symbol can be printed
737
738 \musicglyph
739 @c TODO: add \lookup here? -vv
740
741
742 The markup mode has support for fret diagrams:
743
744 \fret-diagram 
745 \fret-diagram-terse
746 \fret-diagram-verbose
747
748 An entire @code{\score} block can even be nested in a @code{\markup}
749 block.  In such a case, the @code{\score} must contain a @code{\layout} block.
750
751
752 \score
753
754
755 @lilypond[quote,verbatim,ragged-right]
756 \relative {
757   c4 d^\markup {
758     \score {
759       \relative { c4 d e f }
760       \layout { }
761     }
762   }
763   e f
764 }
765 @end lilypond
766
767 @seealso
768
769 Snippets:
770 @rlsr{Text}.
771
772 @node Multi-page markup
773 @subsubsection Multi-page markup
774
775 Whereas @code{\markup} is used to enter a non-breakable block of
776 text, @code{\markuplines} can be used at top-level to enter lines
777 of text that can spread over multiple pages:
778
779 @verbatim
780 \markuplines {
781   \justified-lines {
782     A very long text of justified lines.
783     ...
784   }
785   \justified-lines {
786     An other very long paragraph.
787     ...
788   }
789   ...
790 }
791 @end verbatim
792
793 @code{\markuplines} accepts a list of markup, that is either the
794 result of a markup list command, or a list of markups or of markup
795 lists.  The built-in markup list commands are described in
796 @ref{Text markup list commands}.
797
798 @seealso
799
800 This manual: @ref{Text markup list commands}, @ref{New
801 markup list command definition}.
802
803 Snippets:
804 @rlsr{Text}.
805
806 @predefined
807
808 @funindex \markuplines
809 @code{\markuplines}
810
811
812 @node Fonts
813 @subsection Fonts
814
815 @menu
816 * Entire document fonts::       
817 * Single entry fonts::          
818 @end menu
819
820 @node Entire document fonts
821 @subsubsection Entire document fonts
822
823 It is also possible to change the default font family for the
824 entire document.  This is done by calling the
825 @code{make-pango-font-tree} from within the @code{\paper} block.
826 The function takes names for the font families to use for roman,
827 sans serif and monospaced text.  For example,
828
829 @cindex font families, setting
830 @cindex Pango
831
832
833 @lilypond[verbatim]
834 \paper  {
835   myStaffSize = #20
836
837   #(define fonts
838     (make-pango-font-tree "Times New Roman"
839                           "Nimbus Sans"
840                           "Luxi Mono"
841                            (/ myStaffSize 20)))
842 }
843
844 {
845   c'^\markup { roman: foo \sans bla \typewriter bar }
846 }
847 @end lilypond
848
849 @c we don't do Helvetica / Courier, since GS incorrectly loads
850 @c Apple TTF fonts
851
852
853 @node Single entry fonts
854 @subsubsection Single entry fonts
855
856 @cindex font selection
857 @cindex font magnification
858 @funindex font-interface
859
860 By setting the object properties described below, you can select a
861 font from the preconfigured font families.  LilyPond has default
862 support for the feta music fonts.  Text fonts are selected through
863 Pango/FontConfig.  The serif font defaults to New Century
864 Schoolbook, the sans and typewriter to whatever the Pango
865 installation defaults to.
866
867
868 @itemize
869 @item @code{font-encoding}
870 is a symbol that sets layout of the glyphs.  This should only be
871 set to select different types of non-text fonts, e.g.
872
873 @code{fetaBraces} for piano staff braces, @code{fetaMusic} the
874 standard music font, including ancient glyphs, @code{fetaDynamic}
875 for dynamic signs and @code{fetaNumber} for the number font.
876
877 @item @code{font-family}
878 is a symbol indicating the general class of the typeface.
879 Supported are @code{roman} (Computer Modern), @code{sans}, and
880 @code{typewriter}.
881
882 @item @code{font-shape}
883 is a symbol indicating the shape of the font.  There are typically
884 several font shapes available for each font family.  Choices are
885 @code{italic}, @code{caps}, and @code{upright}.
886
887 @item @code{font-series}
888 is a symbol indicating the series of the font.  There are
889 typically several font series for each font family and shape.
890 Choices are @code{medium} and @code{bold}.
891
892 @end itemize
893
894 Fonts selected in the way sketched above come from a predefined
895 style sheet.  If you want to use a font from outside the style
896 sheet, then set the @code{font-name} property,
897
898 @lilypond[fragment,verbatim]
899 {
900   \override Staff.TimeSignature #'font-name = #"Charter"
901   \override Staff.TimeSignature #'font-size = #2
902   \time 3/4
903   c'1_\markup {
904     \override #'(font-name . "Vera Bold")
905       { This text is in Vera Bold }
906   }
907 }
908 @end lilypond
909
910 @noindent
911 Any font can be used, as long as it is available to
912 Pango/FontConfig.  To get a full list of all available fonts, run
913 the command
914
915 @example
916 lilypond -dshow-available-fonts blabla
917 @end example
918
919 (the last argument of the command can be anything, but has to be
920 present).
921
922
923 The size of the font may be set with the @code{font-size}
924 property.  The resulting size is taken relative to the
925 @code{text-font-size} as defined in the @code{\paper} block.
926
927 @cindex font size
928 @cindex font magnification
929
930
931
932
933 @seealso
934
935 Snippets:
936 @rlsr{Text}.
937
938