<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!-- header_tag --> <html lang="en"> <head> <title>Layout interfaces - 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.html#Top"> <link rel="up" href="Explaining-the-Internals-Reference.html#Explaining-the-Internals-Reference" title="Explaining the Internals Reference"> <link rel="prev" href="Navigating-the-program-reference.html#Navigating-the-program-reference" title="Navigating the program reference"> <link rel="next" href="Determining-the-grob-property.html#Determining-the-grob-property" title="Determining the grob property"> <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="Layout-interfaces"></a> Next: <a rel="next" accesskey="n" href="Determining-the-grob-property.html#Determining-the-grob-property">Determining the grob property</a>, Previous: <a rel="previous" accesskey="p" href="Navigating-the-program-reference.html#Navigating-the-program-reference">Navigating the program reference</a>, Up: <a rel="up" accesskey="u" href="Explaining-the-Internals-Reference.html#Explaining-the-Internals-Reference">Explaining the Internals Reference</a> <hr> </div> <h4 class="subsection">5.2.2 Layout interfaces</h4> <p><a name="index-interface_002c-layout-2660"></a><a name="index-layout-interface-2661"></a><a name="index-grob-2662"></a> The HTML page that we found in the previous section describes the layout object called <a name="index-Fingering-2663"></a><a href="../lilypond-internals/Fingering.html#Fingering">Fingering</a>. Such an object is a symbol within the score. It has properties that store numbers (like thicknesses and directions), but also pointers to related objects. A layout object is also called a <em>Grob</em>, which is short for Graphical Object. For more details about Grobs, see <a name="index-grob_002dinterface-2664"></a><a href="../lilypond-internals/grob_002dinterface.html#grob_002dinterface">grob-interface</a>. <p>The page for <code>Fingering</code> lists the definitions for the <code>Fingering</code> object. For example, the page says <blockquote> <code>padding</code> (dimension, in staff space): <p><code>0.5</code> </blockquote> <p class="noindent">which means that the number will be kept at a distance of at least 0.5 of the note head. <p>Each layout object may have several functions as a notational or typographical element. For example, the Fingering object has the following aspects <ul> <li>Its size is independent of the horizontal spacing, unlike slurs or beams. <li>It is a piece of text. Granted, it is usually a very short text. <li>That piece of text is typeset with a font, unlike slurs or beams. <li>Horizontally, the center of the symbol should be aligned to the center of the note head. <li>Vertically, the symbol is placed next to the note and the staff. <li>The vertical position is also coordinated with other superscript and subscript symbols. </ul> <p>Each of these aspects is captured in so-called <em>interface</em>s, which are listed on the <a name="index-Fingering-2665"></a><a href="../lilypond-internals/Fingering.html#Fingering">Fingering</a> page at the bottom <blockquote> This object supports the following interfaces: <a name="index-item_002dinterface-2666"></a><a href="../lilypond-internals/item_002dinterface.html#item_002dinterface">item-interface</a>, <a name="index-self_002dalignment_002dinterface-2667"></a><a href="../lilypond-internals/self_002dalignment_002dinterface.html#self_002dalignment_002dinterface">self-alignment-interface</a>, <a name="index-side_002dposition_002dinterface-2668"></a><a href="../lilypond-internals/side_002dposition_002dinterface.html#side_002dposition_002dinterface">side-position-interface</a>, <a name="index-text_002dinterface-2669"></a><a href="../lilypond-internals/text_002dinterface.html#text_002dinterface">text-interface</a>, <a name="index-text_002dscript_002dinterface-2670"></a><a href="../lilypond-internals/text_002dscript_002dinterface.html#text_002dscript_002dinterface">text-script-interface</a>, <a name="index-font_002dinterface-2671"></a><a href="../lilypond-internals/font_002dinterface.html#font_002dinterface">font-interface</a>, <a name="index-finger_002dinterface-2672"></a><a href="../lilypond-internals/finger_002dinterface.html#finger_002dinterface">finger-interface</a>, and <a name="index-grob_002dinterface-2673"></a><a href="../lilypond-internals/grob_002dinterface.html#grob_002dinterface">grob-interface</a>. </blockquote> <p>Clicking any of the links will take you to the page of the respective object interface. Each interface has a number of properties. Some of them are not user-serviceable (‘Internal properties’), but others can be modified. <p>We have been talking of <em>the</em> <code>Fingering</code> object, but actually it does not amount to much. The initialization file (see <a name="index-Other-sources-of-information-2674"></a><a href="../lilypond-learning/Other-sources-of-information.html#Other-sources-of-information">Other sources of information</a>) <samp><span class="file">scm/define-grobs.scm</span></samp> shows the soul of the ‘object’, <pre class="example">(Fingering . ((padding . 0.5) (avoid-slur . around) (slur-padding . 0.2) (staff-padding . 0.5) (self-alignment-X . 0) (self-alignment-Y . 0) (script-priority . 100) (stencil . ,ly:text-interface::print) (direction . ,ly:script-interface::calc-direction) (font-encoding . fetaNumber) (font-size . -5) ; don't overlap when next to heads. (meta . ((class . Item) (interfaces . (finger-interface font-interface text-script-interface text-interface side-position-interface self-alignment-interface item-interface)))))) </pre> <p class="noindent">As you can see, the <code>Fingering</code> object is nothing more than a bunch of variable settings, and the webpage in the Internals Reference is directly generated from this definition. <!-- footer_tag --><br><hr> <div class="node"> <p> Next: <a rel="next" accesskey="n" href="Determining-the-grob-property.html#Determining-the-grob-property">Determining the grob property</a>, Previous: <a rel="previous" accesskey="p" href="Navigating-the-program-reference.html#Navigating-the-program-reference">Navigating the program reference</a>, Up: <a rel="up" accesskey="u" href="Explaining-the-Internals-Reference.html#Explaining-the-Internals-Reference">Explaining the Internals Reference</a> </div> <div style="background-color: #e8ffe8; padding: 2; border: #c0ffc0 1px solid;"> <p> <font size="-1"> This page is for LilyPond-2.11.57 (development-branch). <br> <address> Report errors to <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> Your <a href="http://lilypond.org/web/devel/participating/documentation-adding">suggestions for the documentation</a> are welcome. </font> </p> </div> <P> Other languages: <a href="Layout-interfaces.fr.html">français</a>, <a href="Layout-interfaces.es.html">español</a>. <BR> </P> </BODY></html>