Sophie

Sophie

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

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- header_tag -->
<html lang="es">
<head>
<title>Visibilidad y color de los objetos - 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.es.html#Top">
<link rel="up" href="Appearance-of-objects.es.html#Appearance-of-objects" title="Apariencia de los objetos">
<link rel="next" href="Size-of-objects.es.html#Size-of-objects" title="Tamaño de los objetos">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
Copyright (C) 1999--2007 por los autores

_The translation of the following copyright notice is provided
for courtesy to non-English speakers, but only the notice in English
legally counts._

_La traducción de la siguiente nota de copyright se ofrece como
cortesía para las personas de habla no inglesa, pero únicamente la
nota en inglés tiene validez legal._

     Se otorga permiso para copiar, distribuir y/o modificar este
     documento bajo los términos de la Licencia de Documentación
     Libre de GNU, versión 1.1 o cualquier versión posterior
     publicada por la Free Software Foundation; sin ninguna de las
     secciones invariantes.  Se incluye una copia de esta licencia
     dentro de la sección titulada ``Licencia de Documentación Libre
     de GNU''.
     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="Visibility-and-color-of-objects"></a>
Siguiente:&nbsp;<a rel="next" accesskey="n" href="Size-of-objects.es.html#Size-of-objects">Tamaño de los objetos</a>,
Arriba:&nbsp;<a rel="up" accesskey="u" href="Appearance-of-objects.es.html#Appearance-of-objects">Apariencia de los objetos</a>
<hr>
</div>

<h4 class="subsection">4.3.1 Visibilidad y color de los objetos</h4>

<p>Dentro de un uso educativo de la música, podríamos desear imprimir una
partitura con ciertos elementos omitidos como ejercicio para el
alumno, a quien se le pide que los complete.  A la manera de ejemplo
sencillo, supongamos que el ejercicio es escribir las líneas
divisorias que faltan en un fragmento musical.  Pero las líneas
divisorias normalmente se insertan automáticamente. ¿Cómo hacemos para
que no se impriman?

   <p>Antes de enredarnos con esto, recordemos que las propiedades de los
objetos se agrupan en lo que hemos llamado <em>interfaces</em> (véase
<a href="Properties-found-in-interfaces.es.html#Properties-found-in-interfaces">Propiedades de los interfaces</a>).  Esto es simplemente agrupar
las propiedades que normalmente se necesitan juntas: si una de ellas
se necesita para un objeto, también las otras.  Así, ciertos objetos
necesitan las propiedades de algunos interfaces, otros necesitan las
de otros interfaces.  Los interfaces que contienen las propiedades que
un determinado grob necesita se encuentran relacionadas en el manual
RFI al final de la página que describe dicho grob, y esas propiedades
se pueden ver mirando dichos interfaces.

   <p>Hemos explicado cómo encontrar información sobre los grobs en
<a href="Properties-of-layout-objects.es.html#Properties-of-layout-objects">Propiedades de los objetos de presentación</a>.  Usando el mismo enfoque, vamos al
RFI para buscar el objeto de presentación que imprime las líneas
divisorias.  A través del enlace <em>Backend</em> y <em>All layout
objects</em> encontramos que hay un objeto de presentación llamado
<code>BarLine</code>.  Entre sus propiedades se encuentran dos que controlan
la visibilidad: <code>break-visibility</code> y <code>stencil</code>.  Las líneas
divisorias también contemplan un número de interfaces, entre ellos el
<code>grob-interface</code>, donde podemos encontrar las propiedades
<code>transparent</code> y <code>color</code>.  Todas ellas pueden afectar la
visibilidad de las barras de compás (y, por supuesto, por extensión,
también la de muchos otros objetos de presentación).  Vamos a
considerar cada uno de ellos por orden.

<h4 class="subheading">sello</h4>

<p><a name="index-stencil-_0028sello_0029_002c-propiedad-352"></a>
Esta propiedad controla la apariencia de las barras de compás mediante
la especificación del símbolo (o «glifo») que se debe imprimir.  Igual
que como otras muchas propiedades, se puede establecer de forma que no
imprima nada ajustando su valor a <code>#f</code>.  Vamos a probarlo, como
antes, omitiendo el Contexto implícito, <code>Voice</code>:

   <blockquote>
<pre class="verbatim">     
     {
       \time 12/16
       \override BarLine #'stencil = ##f
       c4 b8 c d16 c d8 |
       g, a16 b8 c d4 e16 |
       e8
     }
</pre>
     <p>
 <a href="../23/lily-62cf82cd.ly"> <img align="middle" border="0" src="../23/lily-62cf82cd.png" alt="[image of music]"> </a>
</p>

   </blockquote>

   <p>Las barras de compás todavía se imprimen.  ¿Qué es lo que está mal? 
Vuelva al RFI y mire de nuevo la página que ofrece las propiedades del
objeto BarLine.  Al principio de la página dice &ldquo;Barline objects
are created by: Bar_engraver&rdquo; (los objetos Barline se crean por el
grabador Bar_engraver).  Vaya a la página del grabador
<code>Bar_engraver</code> siguiendo el enlace.  Al final da una lista de
contextos en los que el grabador de líneas divisorias opera.  Todos
ellos son del tipo <code>Staff</code>, y así la razón de que la instrucción
<code>\override</code> no funcionara como esperábamos, es porque
<code>Barline</code> no se encuentra en el contexto predeterminado
<code>Voice</code>.  Si el contexto se especifica mal, la instrucción
simplemente no funciona.  No se produce ningún mensaje de error, y no
se registra nada en el archivo log de registro.  Vamos a intentar
corregirlo escribiendo el contexto correcto:

   <blockquote>
<pre class="verbatim">     
     {
       \time 12/16
       \override Staff.BarLine #'stencil = ##f
       c4 b8 c d16 c d8 |
       g, a16 b8 c d4 e16 |
       e8
     }
</pre>
     <p>
 <a href="../4e/lily-f9ac0581.ly"> <img align="middle" border="0" src="../4e/lily-f9ac0581.png" alt="[image of music]"> </a>
</p>

   </blockquote>

   <p>Ahora las barras de compás han desaparecido.

<h4 class="subheading">break-visibility (visibilidad en el salto)</h4>

<p><a name="index-break_002dvisibility-property-353"></a>
Vemos en las propiedades de <code>BarLine</code> que aparecen en el RFI que
la propiedad <code>break-visibility</code> requiere un vector de tres
valores booleanos.  Controlan respectivamente si las barras de compás
se imprimen al final de una línea, en mitad de una línea, y al
principio de las líneas.  Para nuestro ejemplo, queremos que todas las
barras de compás se supriman, por lo que el valor que necesitamos es
<code>#(#f #f #f)</code>.  Vamos a probarlo, recordando incluir el contexto
de <code>Staff</code>.  Observa también que al escribir este valor tenemos
dos símbolos de almohadilla antes del paréntesis de apertura.  Se
necesita uno como parte del valor para introducir un vector, y se
necesita otro más, como siempre, para preceder el propio valor dentro
de la instrucción <code>\override</code>.

   <blockquote>
<pre class="verbatim">     
     {
       \time 12/16
       \override Staff.BarLine #'break-visibility = #'#(#f #f #f)
       c4 b8 c d16 c d8 |
       g, a16 b8 c d4 e16 |
       e8
     }
</pre>
     <p>
 <a href="../bd/lily-77d8b3d7.ly"> <img align="middle" border="0" src="../bd/lily-77d8b3d7.png" alt="[image of music]"> </a>
</p>

   </blockquote>

   <p>Y podemos ver que esto también quita todas las líneas divisorias.

<h4 class="subheading">transparente</h4>

<p><a name="index-transparente_002c-propiedad-354"></a>
En la relación de propiedades que se especifican en la página del
<code>grob-interface</code> del RFI podemos ver que la propiedad
<code>transparent</code> es un valor booleano.  Esto se debe establecer a
<code>#t</code> para hacer que el grob sea transparente.  En el ejemplo
siguiente vamos a hacer que la indicación de compás, y no las líneas
divisorias, sea transparente.  Para hacerlo tenemos que buscar el
nombre del grob de la indicación de compás.  Volviendo a la página
&lsquo;All layout objects&rsquo; del RFI, buscamos las propiedades del objeto de
presentación <code>TimeSignature</code>.  Se produce por parte del grabador
<code>Time_signature_engraver</code> que como puede comprobar vive dentro
del contexto de <code>Staff</code> y también contempla el interface
<code>grob-interface</code>.  Así pues, la instrucción que hace transparente
a la indicación de compás es:

   <blockquote>
<pre class="verbatim">     
     {
       \time 12/16
       \override Staff.TimeSignature #'transparent = ##t
       c4 b8 c d16 c d8 |
       g, a16 b8 c d4 e16 |
       e8
     }
</pre>
     <p>
 <a href="../94/lily-af1cfd91.ly"> <img align="middle" border="0" src="../94/lily-af1cfd91.png" alt="[image of music]"> </a>
</p>

   </blockquote>

<p class="noindent">El compás ya no está, pero esta instrucción deja una separación en el
lugar donde antes estaba la indicación de compás.  Quizá esto es lo
que queremos para un ejercicio en que el alumno deba escribirlo, pero
en otras circunstancias esta separación podría no ser deseable.  En
vez de eso, para quitarla, el stencil o «sello» de la indicación de
compás se debe establecer al valor <code>#f</code>:

   <blockquote>
<pre class="verbatim">     
     {
       \time 12/16
       \override Staff.TimeSignature #'stencil = ##f
       c4 b8 c d16 c d8 |
       g, a16 b8 c d4 e16 |
       e8
     }
</pre>
     <p>
 <a href="../72/lily-9905bb54.ly"> <img align="middle" border="0" src="../72/lily-9905bb54.png" alt="[image of music]"> </a>
</p>

   </blockquote>

<p class="noindent">y la diferencia es obvia: al establecer el sello al valor <code>#f</code>
quitamos el objeto por completo; al hacer el objeto <code>transparent</code>
lo dejamos donde está, pero lo hacemos invisible.

<h4 class="subheading">color</h4>

<p><a name="index-color_002c-propiedad-355"></a>
Para finalizar, podríamos hacer invisibles las barras de compás
pintándolas de color blanco.  El interface <code>grob-interface</code>
especifica que la propiedad del color es una lista, pero no hay
ninguna explicación sobre lo que debe ir en esa lista.  La lista que
requiere es realmente una lista de valores en unidades internas, pero
para evitar tener que saber cuáles son, se ofrecen varias vías para la
especificación de los colores.  La primera forma es utilizar uno de
los colores &lsquo;normales&rsquo; que están relacionados en la primera tabla de
la <a name="index-List-of-colors-356"></a><a href="../lilypond/List-of-colors.es.html#List-of-colors">Lista de colores</a>.  Para poner las líneas divisorias de color
blanco, escribimos:

   <blockquote>
<pre class="verbatim">     
     {
       \time 12/16
       \override Staff.BarLine #'color = #white
       c4 b8 c d16 c d8 |
       g, a16 b8 c d4 e16 |
       e8
     }
</pre>
     <p>
 <a href="../36/lily-5d1ecfa9.ly"> <img align="middle" border="0" src="../36/lily-5d1ecfa9.png" alt="[image of music]"> </a>
</p>

   </blockquote>

<p class="noindent">y de nuevo podemos comprobar que las barras de compás no son visibles. 
Observe que <em>white</em> no viene precedido de un apóstrofe: no es un
símbolo, sino una <em>función</em>.  Cuando se invoca, proporciona la
lista de valores internos que se requieren para establecer el color a
blanco.  Los otros colores de la lista normal también son funciones. 
Para convencerse de que esto funciona, quizá quiera cambiar el color a
una de las otras funciones de la lista.

   <p><a name="index-colores-de-X11-357"></a><a name="index-X11_002c-colores-de-358"></a>
La segunda forma de cambiar el color es utilizar la lista de nombres
de colores de X11 que aparecen en la segunda lista de <a name="index-List-of-359"></a>colors
<a href="../lilypond/List-of-colors.es.html#List-of-colors">Lista de colores</a>.  Sin embargo, éstos deben ir precedidos de otra función, que
convierte los nombres de colores de X11 en la lista de valores
internos, <code>x11-color</code>, de la siguiente manera:

   <blockquote>
<pre class="verbatim">     
     {
       \time 12/16
       \override Staff.BarLine #'color = #(x11-color 'white)
       c4 b8 c d16 c d8 |
       g, a16 b8 c d4 e16 |
       e8
     }
</pre>
     <p>
 <a href="../8d/lily-4ec6a6e7.ly"> <img align="middle" border="0" src="../8d/lily-4ec6a6e7.png" alt="[image of music]"> </a>
</p>

   </blockquote>

<p class="noindent">Observe que en este caso la función <code>x11-color</code> toma un símbolo
como argumento, así que el símbolo debe ir precedido de un apóstrofe y
los dos deben ir entre paréntesis.

   <p><a name="index-rgb_002c-colores-360"></a><a name="index-color_002c-rgb-361"></a>
Aún hay una tercera función, que convierte valores RGB en colores
internos: la función <code>rgb-color</code>.  Toma tres argumentos que dan
las intensidades de rojo, verde y azul.  Cada uno de ellos puede tomar
valores entre 0 y 1.  Por lo tanto, para establecer el color a rojo el
valor debe ser <code>(rgb-color 1 0 0)</code> y para blanco debe ser
<code>(rgb-color 1 1 1)</code>:

   <blockquote>
<pre class="verbatim">     
     {
       \time 12/16
       \override Staff.BarLine #'color = #(rgb-color 1 1 1)
       c4 b8 c d16 c d8 |
       g, a16 b8 c d4 e16 |
       e8
     }
</pre>
     <p>
 <a href="../59/lily-26b4a44d.ly"> <img align="middle" border="0" src="../59/lily-26b4a44d.png" alt="[image of music]"> </a>
</p>

   </blockquote>

   <p>Finalmente, existe también una escala de grises como parte del
conjunto de colores de X11.  Varían desde el negro, <code>'grey0'</code>,
hasta el blanco, <code>'grey100</code>, en pasos de 1.  Vamos a ilustrar esto
estableciendo todos los objetos de presentación de nuestro ejemplo a
varias gradaciones de gris:

   <blockquote>
<pre class="verbatim">     
     {
       \time 12/16
       \override Staff.StaffSymbol   #'color = #(x11-color 'grey30)
       \override Staff.TimeSignature #'color = #(x11-color 'grey60)
       \override Staff.Clef          #'color = #(x11-color 'grey60)
       \override Voice.NoteHead      #'color = #(x11-color 'grey85)
       \override Voice.Stem          #'color = #(x11-color 'grey85)
       \override Staff.BarLine       #'color = #(x11-color 'grey10)
       c4 b8 c d16 c d8 |
       g, a16 b8 c d4 e16 |
       e8
     }
</pre>
     <p>
 <a href="../78/lily-1319851f.ly"> <img align="middle" border="0" src="../78/lily-1319851f.png" alt="[image of music]"> </a>
</p>

   </blockquote>

<p class="noindent">Observe los contextos asociados con cada uno de los objetos de
presentación.  Es importante que estén correctamente escritos, o las
instrucciones ¡no funcionarán!  Recuerde que el contexto es aquel en
que se encuentra el grabador correspondiente.  El contesto
predeterminado para los grabadores puede encontrarse empezando por el
objeto de presentación, de ahí al grabador que lo produce, y en la
página del grabador del RFI aparece en qué contexto se puede encontrar
normalmente el grabador.

   <!-- footer_tag --><br><hr>
<div class="node">
<p>
Siguiente:&nbsp;<a rel="next" accesskey="n" href="Size-of-objects.es.html#Size-of-objects">Tamaño de los objetos</a>,
Arriba:&nbsp;<a rel="up" accesskey="u" href="Appearance-of-objects.es.html#Appearance-of-objects">Apariencia de los objetos</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>


<P>
 Otros idiomas: <a href="Visibility-and-color-of-objects.html">English</a>.
 <BR>
 
</P>
</BODY></html>