LaTeX y compañía

Informacion sobre LaTeX y programas relacionados

20.12.07

Sutilezas para la división con guiones y el paquete spanish

A raíz de una consulta en la lista ES-TEX me entero de que la división de líneas de TeX no se comporta como debería ante ciertos signos que tienen forma de guión (o al menos no se comporta según las normas tipográficas españolas). Estos son sus comportamientos más chocantes:

  1. Cuando un guión (-) aparece en una expresión, la línea puede ser cortada en ese punto (comportamiento lógico), pero las palabras que van pegadas al guión no podrán ser divididas (comportamiento chocante). Así si ponemos supercalifraglístico-espialidoso, la línea podrá quedar cortada justo después del guión, dejando «espialidoso» para la línea siguiente, pero en cambio «supercalifragilístico» no será dividido. Como es una palabra muy larga, es muy posible que quede sobresaliendo del margen derecho. Si «supercalifragilístico-espilidoso» cabe completo en una línea, aún así el guión será visible, por lo que aparecerá como una palabra compuesta (un ejemplo más realista: «sistema lógico-matemático»).
  2. El comando \- inserta un guión opcional. Esto le dice a TeX que puede dividir la palabra por ese punto, si resulta conveniente. No obstante, al meter ese comando dentro de una palabra, se impide que la palabra pueda ser dividida por cualquier otro lugar. De nuevo el ejemplo podría ser supercalifragilístico\-espialidoso. Al usar \- en lugar de -, si la palabra cabe completa en una línea, el guión no aparece (no es palabra compuesta). Si no cabe, se cortará por el punto especificado en el guión y por ningún otro. El comando puede usarse varias veces dentro de la misma palabra, para especificar diferentes puntos de corte posibles. Es útil para reemplazar las reglas de guionado de TeX cuando está aplicando alguna mal.
  3. Los guiones largos, raya y semirraya, que se obtienen con los comandos TeX --- y -- se comportan igual que el guión corto - explicado más arriba. Esto es, se permite que la línea sea dividida después de ese guión, e impide la división de la palabra que va pegada a él. Este es un comportamiento ciertamente indeseado en castellano, puesto que es habitual usar el guión largo a modo de paréntesis para hacer incisos —como éste— y de acuerdo con las reglas de TeX cabe la posibilidad de que el guión que abre el inciso quede al final de una línea, mientras que la palabra que debería ir pegada a él pasa a la línea siguiente. Por la misma causa, si hay un signo de puntuación tras el guión de cierre, —como aquí—, ese signo podría quedar solo al principio de la línea siguiente.

Por suerte el paquete spanish de babel lo tiene todo previsto, como podemos leer en su documentación. En este paquete se definen una serie de atajos muy útiles para tratar con estos problemas, de forma que el comportamiento de TeX ante estos casos esté controlado por el autor.

Estos son los atajos que resuelven cada uno de los problemas anteriores:

  1. Atajo: "= Permite escribir una palabra compuesta, de modo que las palabras a los lados del guión también puedan ser cortadas. El manual de spanish desaconseja su uso (podrían generar un resultado antiestético), aunque creo que casos como supercalifragilístico"=espialidoso quedan justificados.
  2. Atajo: "- Permite añadir un punto de corte opcional a una palabra. Las palabras a la izquierda y derecha del "- aún podrán ser divididas usando las reglas que use TeX. Un ejemplo. La palabra «semiopaco» en principio podría ser dividida por TeX por diferentes puntos, según las reglas de los patrones de español: «se|mio|pa|co». Como vemos la división «semi|opaco» no aparece contemplada. Para corregir a TeX, podríamos poner semi\-opaco, pero entonces ése será el único punto de corte que TeX contemplará, como explicamos más arriba. Sin embargo, poniendo semi"-opaco, ahora TeX contemplará la posibilidad «semi|opaco» y también las que resulten de dividir «semi» y «opaco» por separado. Téngase en cuenta que «opaco» no permite la división «o|paco», porque dejaría una sola letra al final de la línea (en realidad depende de los valores de \lefthyphenmin y \righthyphenmin, que son configurables). En resumen, los posibles puntos de división contemplados por TeX ahora serían «se|mi|opa|co».
  3. Atajos: ~--- y ~-- Permiten insertar un guión largo (raya y semirraya) de modo que la línea no pueda ser cortada en ese punto si van pegados a otra palabra. No impide sin embargo que las palabras que van pegadas a ellos puedan ser cortadas. Así, si pongo ~---ejemplo~---, los puntos de corte considerados por TeX serán «—ejem|plo—,» Si en lugar de ~--- hubiera usado la forma estándar ---, los puntos de corte posibles habrían sido «—|ejem|plo—|,». Inadmisibles.
  4. Otros casos. Si queremos poner por ejemplo un rango de cifras como 45-60, pero impidiendo que TeX pueda dividir la línea por ese guión, spanish proporciona el atajo ~- para ese fin.
    Las palabras compuestas cuya segunda palabra empieza por «r» y la primera acaba en vocal (como «semi-raya»), si se escriben juntas sin el guión debería doblarse la «r» (y así dar lugar a «semirraya»). Aunque no hay acuerdo sobre esta norma (recomendada por la RAE), si queremos aplicarla, spanish proporciona el atajo "rr y así podríamos poner semi"rraya. Esto tiene el efecto de que si la palabra cabe junta en una línea, aparecerá como «semirraya» (con la «r» doble), pero si hay que partir tras «semi-», entonces en la siguiente línea aparecería «raya» (con la «r» sencilla).

Además de todo lo anterior, está el problema de la división de palabras acentuadas. Este problema aparece sólo si usamos fuentes con codificación OT1, ya que estas fuentes no tienen versiones acentuadas de las vocales, y entonces TeX «simula» estos caracteres por el método de insertar dos en el mismo punto (la vocal y su acento), pero esto confunde al mecanismo de guionado que deja de funcionar para esa palabra a partir del punto donde aparece el acento. El paquete spanish intenta también solucionar este problema, pero advierte de que la solución no es perfecta. En las fuentes T1 este problema ya no aparece puesto que estas fuentes sí tienen versiones acentuadas de cada vocal y no es necesario simularlas. Por tanto, si ves que LaTeX divide mal tus palabras acentuadas, asegurate de usar una fuente con codificación T1.

Comentarios:

  1. Si queremos deshabilitar saltos de página y línea al separar sílabas se puede color esto en el preámbulo

    \brokenpenalty=10000
    \hyphenpenalty=10000


    Esto nos generará algunos avisos: Underfull \hbox (badness 10000)... Ignorelos.
     
Publicar un comentario en la entrada
 
 

Powered by Blogger