<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!-- header_tag --> <html lang="es"> <head> <title>Modificar las propiedades de los contextos - 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="Contexts-and-engravers.es.html#Contexts-and-engravers" title="Contextos y grabadores"> <link rel="prev" href="Engravers-explained.es.html#Engravers-explained" title="Explicación de los grabadores"> <link rel="next" href="Adding-and-removing-engravers.es.html#Adding-and-removing-engravers" title="Añadir y eliminar grabadores"> <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="Modifying-context-properties"></a> Siguiente: <a rel="next" accesskey="n" href="Adding-and-removing-engravers.es.html#Adding-and-removing-engravers">Añadir y eliminar grabadores</a>, Anterior: <a rel="previous" accesskey="p" href="Engravers-explained.es.html#Engravers-explained">Explicación de los grabadores</a>, Arriba: <a rel="up" accesskey="u" href="Contexts-and-engravers.es.html#Contexts-and-engravers">Contextos y grabadores</a> <hr> </div> <h4 class="subsection">3.3.4 Modificar las propiedades de los contextos</h4> <p><a name="index-contexto_002c-propiedades-de-287"></a><a name="index-contexto_002c-propiedades-de_002c-modificaci_00c3_00b3n-288"></a><a name="index-modificar-las-propiedades-de-contexto-289"></a><a name="index-g_t_005cset-290"></a><a name="index-g_t_005cset-291"></a> <a name="index-g_t_005cunset-292"></a><a name="index-g_t_005cunset-293"></a> <p>Los contextos se responsabilizan de mantener los valores de un cierto número de <em>properties</em> de contexto. Muchas de ellas se pueden cambiar para influir en la interpretación del código de entrada y cambiar así la apariencia de la salida impresa. Se modifican mediante la instrucción <code>\set</code>. Esta instrucción toma la forma siguiente: <pre class="example">\set <em>NombreDelContexto</em>.<em>nombreDeLaPropiedad</em> = #<em>valor</em> </pre> <p>Donde el <em>NombreDelContexto</em> es normalmente <code>Score</code>, <code>Staff</code> o <code>Voice</code>. Se puede omitir, en cuyo caso se supone que es <code>Voice</code>. <p>Los nombres de las propiedades de contexto consisten en palabras unidas sin ningún guión o barra baja, y donde todas las palabras excepto la primera empiezan en mayúscula. A continuación podemos ver algunos ejemplos de nombres de propiedades utilizadas con frecuencia. Hay muchas más que las que se muestran aquí. <!-- attempt to force this onto a new page --> <p><table summary=""><tr align="left"><th valign="top" width="25%">nombreDeLaPropiedad </th><th valign="top" width="15%">Tipo </th><th valign="top" width="45%">Función </th><th valign="top" width="15%">Valor de ejemplo <br></th></tr><tr align="left"><td valign="top" width="25%">extraNatural </td><td valign="top" width="15%">Booleano </td><td valign="top" width="45%">Si es verdadero, poner becuadros adicionales antes de las alteraciones </td><td valign="top" width="15%"><code>#t</code>, <code>#f</code> <br></td></tr><tr align="left"><td valign="top" width="25%">currentBarNumber </td><td valign="top" width="15%">Entero </td><td valign="top" width="45%">Ajustar el número del compás actual </td><td valign="top" width="15%"><code>50</code> <br></td></tr><tr align="left"><td valign="top" width="25%">doubleSlurs </td><td valign="top" width="15%">Booleano </td><td valign="top" width="45%">Si es verdadero, imprimir ligaduras de expresión por encima y por debajo de las notas </td><td valign="top" width="15%"><code>#t</code>, <code>#f</code> <br></td></tr><tr align="left"><td valign="top" width="25%">instrumentName </td><td valign="top" width="15%">Texto </td><td valign="top" width="45%">Establecer el nombre del pentagrama, situado a la izquierda </td><td valign="top" width="15%"><code>"Cello I"</code> <br></td></tr><tr align="left"><td valign="top" width="25%">fontSize </td><td valign="top" width="15%">Real </td><td valign="top" width="45%">Aumentar o disminuir el tamaño de la fuente tipográfica </td><td valign="top" width="15%"><code>2.4</code> <br></td></tr><tr align="left"><td valign="top" width="25%">stanza </td><td valign="top" width="15%">Texto </td><td valign="top" width="45%">Establecer el texto que se imprime antes del comienzo de una estrofa </td><td valign="top" width="15%"><code>"2"</code> <br></td></tr></table> <p class="noindent">donde un valor Booleano es verdadero (<code>#t</code>, True) o falso (<code>#f</code>, False), un Entero es un número entero positivo, un número Real es un número decimal positivo o negativo, y el texto se encierra entre comillas dobles. Observe la aparición de signos de cuadradillo, (<code>#</code>), en dos lugares diferentes: como parte del valor Booleano antes de la <code>t</code> o la <code>f</code>, y antes del <em>valor</em> dentro de la sentencia <code>\set</code>. Así pues, cuando se está escribiendo un valor Booleano, hay que escribir dos signos de cuadradillo, por ejemplo: <code>##t</code>. <p>Antes de poder establecer cualquiera de estas propiedades, tenemos que saber en qué contexto operan. A veces es algo obvio, pero en ocasiones puede ser algo enrevesado. Si especificamos un contexto equivocado, no se produce ningún mensaje de error, pero el funcionamiento esperado no tendrá lugar. Por ejemplo, la propiedad <code>instrumentName</code> (nombre del instrumento) vive claramente dentro del contexto de Staff, puesto que es el pentagrama el que debe ser nombrado. En este ejemplo, el primer pentagrama resulta etiquetado, pero no el segundo, porque hemos omitido el nombre del contexto. <blockquote> <pre class="verbatim"> << \new Staff \relative c'' { \set Staff.instrumentName = #"Soprano" c4 c } \new Staff \relative c' { \set instrumentName = #"Alto" % ¡Mal! d4 d } >> </pre> <p> <a href="../f3/lily-3a71780a.ly"> <img align="middle" border="0" src="../f3/lily-3a71780a.png" alt="[image of music]"> </a> </p> </blockquote> <p>Recuerde que el nombre del contexto predeterminado es Voice, así que la segunda instrucción <code>\set</code> establece la propiedad <code>instrumentName</code> del contexto Voice a “Alto”, pero como LilyPond no busca esta propiedad en el contexto <code>Voice</code>, no se realiza ninguna acción. Esto no es un error, y no se registra ningún mensaje en el archivo Log de registro de errores. <p>De forma parecida, si el nombre de la propiedad se escribe con alguna falta, no se produce ningún mensaje de error, y claramente la acción esperada no puede tener lugar. De hecho, se puede establecer cualquier ‘property’ (ficticia) usando cualquier nombre que queramos en cualquier contexto que exista, mediante el uso de la instrucción <code>\set</code>. Pero si el nombre no es conocido para LilyPond, no producirá ninguna acción. Esta es una de las razones por las que es muy recomendable usar un editor que sea sensible al contexto y con resaltado de la sintaxis para la edición de archivos de LilyPond, como por ejemplo Vim, Jedit, ConTEXT o Emacs, ya que los nombres de propiedades desconocidas se resaltarán de forma distinta. <p>La propiedad <code>instrumentName</code> tendrá efecto solamente si se establece dentro del contexto <code>Staff</code>, pero algunas propiedades se pueden establecer en más de un contexto. Por ejemplo, la propiedad <code>extraNatural</code> está establecida por defecto al valor ##t (verdadero) para todos los pentagramas. Si se establece a ##f (falso) en un contexto de <code>Staff</code> determinado, se aplicará solamente a las alteraciones de ese pentagrama. Si se establece a falso en el contexto de la partitura, <code>Score</code>, se aplicará a todos los pentagramas. <p>Así, esto desactivará los becuadros adicionales en un pentagrama: <blockquote> <pre class="verbatim"> << \new Staff \relative c'' { ais4 aes } \new Staff \relative c'' { \set Staff.extraNatural = ##f ais4 aes } >> </pre> <p> <a href="../58/lily-ebcd81e3.ly"> <img align="middle" border="0" src="../58/lily-ebcd81e3.png" alt="[image of music]"> </a> </p> </blockquote> <p class="noindent">y esto los desactivará en todos los pentagramas: <blockquote> <pre class="verbatim"> << \new Staff \relative c'' { ais4 aes } \new Staff \relative c'' { \set Score.extraNatural = ##f ais4 aes } >> </pre> <p> <a href="../d5/lily-767072b1.ly"> <img align="middle" border="0" src="../d5/lily-767072b1.png" alt="[image of music]"> </a> </p> </blockquote> <p>Como un ejemplo más, si se establece <code>clefOctavation</code> dentro del contexto de <code>Score</code>, éste cambia inmediatamente el valor de la octavación en todos los pentagramas en curso y establece un nuevo valor predeterminado que se aplicará a todos los pentagramas. <p>La instrucción opuesta, <code>\unset</code>, tiene el efecto de suprimir la propiedad del contexto, lo que ocasiona que la mayoría de las porpiedades vuelvan a su valor predeterminado. Normalmente no es necesario el uso de <code>\unset</code>, pues una nueva instrucción <code>\set</code> hará el ajuste deseado. <p>Las instrucciones <code>\set</code> y <code>\unset</code> pueden aparecer en cualquier lugar del archivo de entrada y tendrán efecto a partir del tiempo en que se encuentran y hasta el final de la partitura o hasta que la propiedad se establezca de nuevo mediante <code>\set</code> o <code>\unset</code>. Probemos a modificar el tamaño de la fuente tipográfica, lo que afecta al tamaño de las cabezas de las notas (entre otras cosas) varias veces. El cambio se toma a partir del valor predeterminado, no el valor en curso. <blockquote> <pre class="verbatim"> c4 % cabezas más pequeñas \set fontSize = #-4 d e % cabezas más grandes \set fontSize = #2.5 f g % return to original size \unset fontSize a b </pre> <p> <a href="../7e/lily-64ebcb29.ly"> <img align="middle" border="0" src="../7e/lily-64ebcb29.png" alt="[image of music]"> </a> </p> </blockquote> <p>Hemos podido ver cómo establecer los valores de diversos tipos de propiedad diferentes. Observe que los números enteros y reales van siempre precedidos de un símbolo de cuadradillo, <code>#</code>, mientras que un valor booleano verdadero o falso se especifica mediante ##t y ##f, con dos cuadradillos. Una propiedad de texto se debe encerrar entre comillas dobles, como antes, aunque veremos más adelante que el texto realmente se puede especificar de una forma mucho más general utilizando la potentísima instrucción <code>markup</code>. <p><a name="index-g_t_005cwith-294"></a><a name="index-g_t_005cwith-295"></a> <a name="index-contexto_002c-propiedades-de_002c-establecimiento-con-_005cwith-296"></a> Las propiedades de contexto también se pueden establecer en el momento en que se crea el contexto. A veces esta forma de establecer el valor de una propiedad es mucho más clara, si ha de quedar fijo durante todo el tiempo que dure el contexto. Cuando se crea un contexto con una instrucción <code>\new</code> puede ir inmediatamente seguido de un bloque <code>\with { .. }</code> en el que se establecen los valores de las propiedades. Por ejemplo, si queremos suprimir la impresión de becuadros adicionales para toda la duración de un pentagrama, podemos escribir: <pre class="example">\new Staff \with { extraNatural = ##f } </pre> <p class="noindent">de la siguiente forma: <blockquote> <pre class="verbatim"> << \new Staff \relative c'' { gis ges aes ais } \new Staff \with { extraNatural = ##f } \relative c'' { gis ges aes ais } >> </pre> <p> <a href="../60/lily-b6cbcf03.ly"> <img align="middle" border="0" src="../60/lily-b6cbcf03.png" alt="[image of music]"> </a> </p> </blockquote> <p>Las propiedades ajustadas de esta manera aún pueden cambiarse dinámicamente utilizando <code>\set</code> y ser devueltas a sus valores predeterminados mediante <code>\unset</code>. <p>La propiedad <code>fontSize</code> se trata de forma distinta. Si se ajusta dentro de una cláusula <code>\with</code>, tiene el efecto de reiniciar el valor predeterminado del tamaño de la fuente tipográfica. Si más tarde se modifica con <code>\set</code>, este nuevo valor predeterminado puede restablecerse con la instrucción <code>\unset fontSize</code>.xs <!-- footer_tag --><br><hr> <div class="node"> <p> Siguiente: <a rel="next" accesskey="n" href="Adding-and-removing-engravers.es.html#Adding-and-removing-engravers">Añadir y eliminar grabadores</a>, Anterior: <a rel="previous" accesskey="p" href="Engravers-explained.es.html#Engravers-explained">Explicación de los grabadores</a>, Arriba: <a rel="up" accesskey="u" href="Contexts-and-engravers.es.html#Contexts-and-engravers">Contextos y grabadores</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="Modifying-context-properties.html">English</a>, <a href="Modifying-context-properties.fr.html">français</a>. <BR> </P> </BODY></html>