domingo, 2 de febrero de 2020

Curiosidades sobre el uso de la raya (M-DASH)

La ortografía española define la raya como un signo parentético usado en los diálogos y para encerrar incisos. A diferencia de lo que sucede en inglés, en español la raya no se emplea así:

The man—at east, it looked as a man—arrived.

(Formato preferido por Grammarbook.com).

Ni así:

The man — at east, it looked as a man — arrived.

(Ese era el formato preferido por Project Gutenberg en la primera década del siglo; ahora parece que han cambiado de opinión;).

Sino que se emplea así:

El hombre —o al menos eso parecía— llegó

Obsérvese que en español la raya se trata como los paréntesis, es decir, se pega a las palabras que van dentro del inciso. Por eso mismo, es muy desagradable ver la línea dividida así

El hombre —o al menos eso parecía
— llegó

Del mismo modo que sería desagradable ver esto:

El hombre (o al menos eso parecía
) llegó.

Pero, mientras que con el paréntesis tenemos un segundo elemento que nos permite discernir si se trata de apertura o cierra (todo el mundo sabe qué lado del paréntesis es el de cierre y qué lado es el de apertura), no sucede lo mismo con la raya. Así que la razón de que el español divida las líneas sin separar la raya del texto al que va pegado no es solo estética, sino que tiene su razón de ser lingüística.

Esto lo recoge la norma Unicode en el apartado B2 del anexo 14. Sin embargo, dado que la regla descrita como texto es complicada de implementar, el algoritmo para ordenador ignora totalmente esto. De hecho, el único algoritmo correspondiente al carácter B2 (m-dash) es que B2 seguido de espacio seguido de B2 no se separa... ¡Cuando lo que dice reglas en lenguaje humano es que B2 se tiene que separar por el lado del espacio si va seguido de espacio!

Por eso, cuando usamos em-dash en nuestro blog se producen desagradables divisiones de línea como esta:

Texto con la raya de comienzo de inciso al final de línea.

Una manera de solucionar este problema es emplear la barra horizontal ― (―) en lugar de la raya &emdash; (—). Sin embargo, dependiendo del tipo de letra, la barra horizontal puede ser más corta o más larga que la raya, y su espaciado es distinto (a veces lleva un miniespacio a uno de los lados). Lo podéis observar aquí:

Texto con barra horizontal marcando comienzo de inciso; está en el sitio adecuado pero es más corta que la raya.

Otra manera (la que me recomendaron los cachondos mentales de LibreOffice cuando lo reporté como bug) es añadir un espacio de no separación sin anchura alrededor de la raya. Todo el mundo sabe que es muy fácil escribir ⁠&emdash;⁠ en lugar de &emdash;:

Texto formateado correctamente.

He de decir que esto no funciona con todos los programas. Por ejemplo, Microsoft Word 2013 ignora el carácter de unión de palabras cuando va entre símbolos. Además, es muy farragoso. Sí, puedes hacer un "buscar y reemplazar" de todas las rayas (y tratar de recordar si las escribiste como código o como símbolo) y añadirles estos espacios, pero en un diálogo esto añadiría al menos un carácter unicode (dos bytes) por línea. Dado que xml permite definir "entidades" que se traducen como texto, sería deseable poder incluir en la cabecera del html una entidad que incluyera los tres caracteres. Teóricamente, se puede hacer, cambiando la cabecera:

<!DOCTYPE html >

Por:

<!DOCTYPE html [ <!ENTITY mdash "&#8288;&#8212;&#8288;"> ]>

Sin embargo, esto no funciona en Blogger (que rechaza los cambios hechos en DOCTYPE) y es muy probable que tampoco funcione en otros DTD, como los correspondientes al formato EPUB (precisamente, el problema de la raya es muy preocupante en el mercado de los EPUB).

¿Alguien me sugiere alguna solución?

No hay comentarios: