Sophie

Sophie

distrib > Mandriva > 2009.0 > i586 > by-pkgid > 3a7b4dfc766af1222d90c7f03a0844e6 > files > 6279

lilypond-doc-2.11.57-1mdv2009.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- header_tag -->
<html lang="en">
<head>
<title>Properties found in interfaces - GNU LilyPond Learning Manual</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="GNU LilyPond Learning Manual">
<meta name="generator" content="makeinfo 4.11">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="The-Internals-Reference-manual.html#The-Internals-Reference-manual" title="The Internals Reference manual">
<link rel="prev" href="Properties-of-layout-objects.html#Properties-of-layout-objects" title="Properties of layout objects">
<link rel="next" href="Types-of-properties.html#Types-of-properties" title="Types of properties">
<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="Properties-found-in-interfaces"></a>
Next:&nbsp;<a rel="next" accesskey="n" href="Types-of-properties.html#Types-of-properties">Types of properties</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Properties-of-layout-objects.html#Properties-of-layout-objects">Properties of layout objects</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="The-Internals-Reference-manual.html#The-Internals-Reference-manual">The Internals Reference manual</a>
<hr>
</div>

<h4 class="subsection">4.2.2 Properties found in interfaces</h4>

<p><a name="index-interface-properties-368"></a><a name="index-properties-in-interfaces-369"></a>
Suppose now that we wish to print the lyrics in italics.  What
form of <code>\override</code> command do we need to do this? 
We first look in the IR page listing &lsquo;All layout objects&rsquo;, as
before, and look for an object that might control lyrics.  We
find <code>LyricText</code>, which looks right.  Clicking on this shows
the settable properties for lyric text.  These include the
<code>font-series</code> and <code>font-size</code>, but nothing that might
give an italic shape. 
This is because the shape property is one that is common to all
font objects, so, rather than including it in every layout
object, it is grouped together with other similar common
properties and placed in an <strong>Interface</strong>, the
<code>font-interface</code>.

   <p>So now we need to learn how to find the properties of interfaces,
and to discover what objects use these interface properties.

   <p>Look again at the IR page which describes LyricText.  At the
bottom of the page is a list of clickable (in the html versions
of the IR) interfaces which LyricText supports.  The list has
seven items, including <code>font-interface</code>. 
Clicking on this brings up the properties associated
with this interface, which are also properties of all the objects
which support it, including LyricText.

   <p>Now we see all the user-settable properties which control fonts,
including <code>font-shape(symbol)</code>, where <code>symbol</code> can be
set to <code>upright</code>, <code>italics</code> or <code>caps</code>.

   <p>You will notice that <code>font-series</code> and <code>font-size</code>
are also listed there. 
This immediately raises the question: Why are the common font
properties <code>font-series</code> and <code>font-size</code> listed under
<code>LyricText</code> as well as under the interface
<code>font-interface</code> but <code>font-shape</code> is not?  The answer
is that <code>font-series</code> and <code>font-size</code> are changed
from their global default values when a <code>LyricText</code> object
is created, but <code>font-shape</code> is not.  The entries in
<code>LyricText</code> then tell you the values for those two
properties which apply to <code>LyricText</code>.  Other objects
which support <code>font-interface</code> will set these
properties differently when they are created.

   <p>Let's see if we can now construct the <code>\override</code> command
to change the lyrics to italics.  The object is <code>LyricText</code>,
the property is <code>font-shape</code> and the value is
<code>italic</code>.  As before, we'll omit the context.

   <p>As an aside, although it is an important one, note that because
the values of
<code>font-shape</code> are symbols they must be introduced with a
single apostrophe, <code>'</code>.  That is why apostrophes
are needed before <code>thickness</code> in the earlier example
and <code>font-shape</code>.  These are both symbols too. 
Symbols are special names which are known internally to
LilyPond.  Some of them are the names of properties,
like <code>thickness</code> or <code>font-shape</code>, others are in
effect special values that can be given to properties, like
<code>italic</code>.  Note the distinction from arbitrary
text strings, which would appear as <code>"a text string"</code>.

   <p>Ok, so the <code>\override</code> command we need to print the lyrics
in italics should be

<pre class="example">\override LyricText #'font-shape = #'italic
</pre>
   <p class="noindent">and this should be placed just in front of and close to the
lyrics which it should affect, like this:

   <blockquote>
<pre class="verbatim">     
     {
       \time 6/8
       {
         r4 b8 b[( g]) g |
         g[( e]) e d[( f]) a |
         a g
       }
       \addlyrics {
         \override LyricText #'font-shape = #'italic
         The man who feels love's sweet e -- mo -- tion
       }
     }
</pre>
     <p>
 <a href="../b6/lily-bede32cb.ly">
  <img align="middle"
    border="0" src="../b6/lily-bede32cb.png" alt="[image of music]">
 </a>
</p>

   </blockquote>

<p class="noindent">and the lyrics are all printed in italics.

<h4 class="subheading">Specifying the context in lyric mode</h4>

<p><a name="index-context_002c-specifying-in-lyric-mode-370"></a>
In the case of lyrics, if you try specifying the context in the
format given earlier the command will fail.  A syllable
entered in lyricmode is terminated by either a space,
a newline or a digit.  All other characters are included
as part of the syllable.  For this reason a space or newline
must appear before the terminating <code>}</code> to prevent it being
included as part of the final syllable.  Similarly,
spaces must be inserted before and after the
period or dot, &lsquo;.&rsquo;, separating the context name from the
object name, as otherwise the two names are run together and
the interpreter cannot recognize them.  So the command should be:

<pre class="example">\override Lyrics . LyricText #'font-shape = #'italic
</pre>
   <p><table class="cartouche" summary="cartouche" border="1"><tr><td>
<b>Note:</b> In lyrics always leave whitespace between the final
syllable and the terminating brace. 
</td></tr></table>

   <p><table class="cartouche" summary="cartouche" border="1"><tr><td>
<b>Note:</b> In overrides in lyrics always place spaces around
the dot between the context name and the object name. 
</td></tr></table>

   <!-- footer_tag --><br><hr>
<div class="node">
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Types-of-properties.html#Types-of-properties">Types of properties</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Properties-of-layout-objects.html#Properties-of-layout-objects">Properties of layout objects</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="The-Internals-Reference-manual.html#The-Internals-Reference-manual">The Internals Reference manual</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="Properties-found-in-interfaces.es.html">espaƱol</a>.
 <BR>
 
</P>
</BODY></html>