Cosas Interesantes

domingo, 30 de mayo de 2010

Cómo conseguir con RegEx un ebook ePUB con guiones largos (EM DASH) para Mi reader PAPYRE 6.1 (Cap. 01)

Coco profesorSiguiendo con las posibilidades que RegEx nos ofrece para mejorar nuestras libros electrónicos, hoy Coco va a ayudarnos a conseguir un texto con los guiones tipográficos cómo Dios manda. La verdad es que uno no se da cuenta de lo molesto que resulta para el ojo tener un texto con el “signo menos” (MINUS “-“) usado en lugar de los guiones propiamente dichos.
Podemos elegir entre el guión corto (“–“ “EN DASH” - combinación de teclas ALT+0150 bajo Windows) y el guión largo (“—“ “EM DASH” - combinación de teclas ALT+0151 bajo Windows).
La norma tipográfica consiste en

que el guion largo (“EM DASH”) sirve para indicar el cambio de interlocutor en un dialogo, detallar una observación dentro de una frase (es más estético que los paréntesis) o para presentar una enumeración. En relación a esto, a menudo es confundido con el guión corto o peor aún, con el signo “menos” (MINUS). Por lo tanto para las enumeraciones debemos utilizar el guion largo (“EM DASH”). Como r

eglaPAPYRE STREET general: debe dejarse un espacio antes y después del guion largo, pero no entre el guion largo y el texto a su interior.

El truco está en que debemos realizar la sustitución sin afectar a los guiones (“EN DASH”) o signos menos legítimos, como por ejemplo, los que separan las dos partes de un sustantivo compuesto (como en “hispano-romano”; p.ej.) o más importante aún en el caso que nos ocupa, los guiones que forman parte de la sintaxis de los estilos CSS (como en margin-bottom: 3px”). Si alteráramos este tipo de guión por error; podemos montar la marimorena en nuestro ePUB; nos quedamos sin libro electrónico.


Utilizando SIGIL vamos a depurar nuestro libro. Empezamos contabilizando las ocurrencias. En Buscar-Reemplazar” pulsamos “Count” y resulta que :

image
Tenemos 4793 “

signos menos” y la mayoría de ellos deberían ser guiones largos.



Comienzos de párrafo con cambio de interlocutor en el DIALOGO:


image Es la convención habitual indicar los diálogos de los personajes (a diferencia de los párrafos de narración) iniciándolos con un guión. Sustituiremos el “MINUS” seguido de espacio por un guión largo (“EM DASH”).


Como siempre podéis acceder al código para COPIAR y PEGAR pulsando encima de la imagen correspondiente.
Expresión de búsqueda y sustitución:

CLICK para CODELa gracia está en que utilizamos >- para asegurar que sólo encontramos los comienzos de párrafo. Y luego el espacio seguido de una expresión que cubra cualquier posible carácter que venga después en el párrafo completo; aunque bastaría para nuestro objetivo simplemente con el primer carácter del párrafo. Efectivamente:
EM DASH Uno  Pulsamos ENTER y ¡Voilá!…
image image

Guiones para detallar una observación dentro de una frase:


image Se utiliza en lugar del paréntesis “(“ porque resulta más elegante desde el punto de vista tipográfico. Tendremos un guión de inicio, el texto a resaltar y un guión de cierre.


El guión de inicio podremos encontrarlo con la siguiente expresión de búsqueda:
\s-(?!(\s))

Es decir, un espacio seguido de un “minus” QUE VAYA SEGUIDO DE UN CARACTER PERTENECIENTE A UNA PALABRA. Esto lo conseguimos con una negación: NO (?!(…)) CARATER ESPACIO \s

image   La expresión de sustitución es sencilla: un espacio y el guión largo (EM DASH) CLICK para CODE  
Pulsamos ENTER y ¡TA-CHÁN!…   image 
image




El guión de cierre podremos encontrarlo con la siguiente expresión de búsqueda:

([\w])-(?!([\w]))

Es decir, un final de palabra seguido de un “minus” NO QUE VAYA SEGUIDO DE UN CARACTER PERTENECIENTE A UNA PALABRA. Esto lo conseguimos con una negación: NO (?!(…)) CARATER PERTENECIENTE A UNA PALABRA \w


image 
La expresión de sustitución es sencilla: el final de palabra encontrado \1– y el guión largo (EM DASH)

CLICK para CODE 

Pulsamos ENTER y ¡Ale-Hop!…


image image

Únicamente nos quedarían los casos en que el guión de cierre viene después de un carácter de puntuación.
La expresión de búsqueda

([.;¿?’¡!…>])-(?!([\w]))
nos serviría para rematar esos casos. (22 ocurrencias en nuestro texto). La expresión de sustitución es la misma que para el caso anterior \1–

Por último, sólo nos quedarían algunos casos (generalmente errores) en los que el guión de cierre tiene delante un espacio. (5 ocurrencias en nuestro texto) que podemos buscar con la expresión de búsqueda: ([\s])-(?!([\w])) y procederemos a corregir eliminando el espacio con la expresión de sustitución guión largo (EM DASH)  
  
De esta forma hemos podido sustituir todos los MINUS por guiones largos propiamente dichos.


Y recordad, niños, ahora estoy CERCA image y ahora LEJOS image
© Cosas Interesantes