<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!-- header_tag --> <html lang="en"> <head> <title>New markup list command definition - GNU LilyPond Notation Reference</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="description" content="GNU LilyPond Notation Reference"> <meta name="generator" content="makeinfo 4.11"> <link title="Top" rel="start" href="index.es.html#Top"> <link rel="up" href="Markup-programmer-interface.es.html#Markup-programmer-interface" title="Markup programmer interface"> <link rel="prev" href="New-markup-command-definition.es.html#New-markup-command-definition" title="New markup command definition"> <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> <!-- Copyright (C) 1999--2007 by the authors Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections. A copy of the license is included in the section entitled ``GNU Free Documentation License''. --> <meta http-equiv="Content-Style-Type" content="text/css"> <style type="text/css"><!-- pre.display { font-family:inherit } pre.format { font-family:inherit } pre.smalldisplay { font-family:inherit; font-size:smaller } pre.smallformat { font-family:inherit; font-size:smaller } pre.smallexample { font-size:smaller } pre.smalllisp { font-size:smaller } span.sc { font-variant:small-caps } span.roman { font-family:serif; font-weight:normal; } span.sansserif { font-family:sans-serif; font-weight:normal; } hr { border:0; height:1; color: #000000; background-color: #000000; } /* hr { border: none; height: 1px; color: #666666; background-color: #666666; } body { border-left: 1px solid #666666; border-right: 1px solid #666666; color: #332d28; margin-right: auto; margin-left: auto; width: 60em; list-style-type: square; font-family: Arial,Helvetica,sans-serif; padding-right: 1em; padding-left: 1em; } a { border-bottom: 1px dashed #344242; text-decoration: none; color: #344242; } a:link { text-decoration: none; } a:visited { border-bottom: 1px dashed #666666; color: #666666; } a:active { border-bottom: 1px solid #00cccc; color: #00cccc; } a:hover { border-bottom: 1px solid #1d7b85; color: #1d7b85; } blockquote { border: 1px solid #cccccc; padding: 3px; width: 40em; } .node { border-left: 1px solid #666666; margin: -0.5em 0px 1em; padding: 2px 1px 0px; font-style: italic; } .node a { border: none; text-decoration: underline; font-style: normal; font-weight: bold; } .verbatim { font-family: "Courier New",Courier,monospace; } .unnumberedsubsubsec { font-size: large; color: #1d7b85; } .subsubheading { font-size: large; color: #3b220d; } .contents { border: 1px dashed #339999; margin: 3px 2em; list-style-type: square; padding-right: 1em; width: 40em; background-color: #fcfff9; } .contents a { border-bottom: 1px dashed #423d34; text-decoration: none; color: #423d34; } .contents a:visited { border-bottom: 1px dashed #666666; color: #666666; } .contents a:active { border-bottom: 1px solid #f0d86d; color: #f0d86d; } .contents a:hover { border-bottom: 1px solid #3b220d; color: #3b220d; } .menu { border-left: 1px dashed #339999; margin: 3px 2em 1em; list-style-type: square; padding-left: 1.4em; width: 40em; } .unnumbered { } h2 { font-size: x-large; color: #1d7b85; } */ --></style> </head> <BODY BGCOLOR=WHITE TEXT=BLACK> <div class="node"> <p> <a name="New-markup-list-command-definition"></a> Previous: <a rel="previous" accesskey="p" href="New-markup-command-definition.es.html#New-markup-command-definition">New markup command definition</a>, Up: <a rel="up" accesskey="u" href="Markup-programmer-interface.es.html#Markup-programmer-interface">Markup programmer interface</a> <hr> </div> <h4 class="subsection">6.4.4 New markup list command definition</h4> <p>Markup list commands are defined with the <code>define-markup-list-command</code> Scheme macro, which is similar to the <code>define-markup-command</code> macro described in <a href="New-markup-command-definition.es.html#New-markup-command-definition">New markup command definition</a>, except that where the latter returns a single stencil, the former returns a list stencils. <p>In the following example, a <code>\paragraph</code> markup list command is defined, which returns a list of justified lines, the first one being indented. The indent width is taken from the <code>props</code> argument. <pre class="example">#(define-markup-list-command (paragraph layout props args) (markup-list?) (let ((indent (chain-assoc-get 'par-indent props 2))) (interpret-markup-list layout props (make-justified-lines-markup-list (cons (make-hspace-markup indent) args))))) </pre> <p>Besides the usual <code>layout</code> and <code>props</code> arguments, the <code>paragraph</code> markup list command takes a markup list argument, named <code>args</code>. The predicate for markup lists is <code>markup-list?</code>. <p>First, the function gets the indent width, a property here named <code>par-indent</code>, from the property list <code>props</code> If the property is not found, the default value is <code>2</code>. Then, a list of justified lines is made using the <code>make-justified-lines-markup-list</code> function, which is related to the <code>\justified-lines</code> built-in markup list command. An horizontal space is added at the beginning using the <code>make-hspace-markup</code> function. Finally, the markup list is interpreted using the <code>interpret-markup-list</code> function. <p>This new markup list command can be used as follows: <pre class="example">\markuplines { \paragraph { The art of music typography is called \italic {(plate) engraving.} The term derives from the traditional process of music printing. Just a few decades ago, sheet music was made by cutting and stamping the music into a zinc or pewter plate in mirror image. } \override-lines #'(par-indent . 4) \paragraph { The plate would be inked, the depressions caused by the cutting and stamping would hold ink. An image was formed by pressing paper to the plate. The stamping and cutting was completely done by hand. } } </pre> <!-- footer_tag --><br><hr> <div class="node"> <p> Previous: <a rel="previous" accesskey="p" href="New-markup-command-definition.es.html#New-markup-command-definition">New markup command definition</a>, Up: <a rel="up" accesskey="u" href="Markup-programmer-interface.es.html#Markup-programmer-interface">Markup programmer interface</a> </div> <div style="background-color: #e8ffe8; padding: 2; border: #c0ffc0 1px solid;"> <p> <font size="-1"> Esta página corresponde a LilyPond-2.11.57 (rama de desarrollo). <br> <address> Informe de los fallos a través de la lista en español <a href="http://es.groups.yahoo.com/group/lilypond-es/">lilypond-es</a>, o en inglés a través de <a href="http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs">http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs</a>. </address> <br> Se agradecen las <a href="http://lilypond.org/web/devel/participating/documentation-adding">sugerencias para la documentación</a>. </font> </p> </div> </BODY></html>