Cosas Interesantes

domingo, 14 de febrero de 2010

Cómo retocar con RegEx la conversión CALIBRE desde el formato PDF y conseguir mejores ebooks en ePUB para Mi reader PAPYRE 6.1 (Cap.02)

Coco profesorEn el capítulo anterior habíamos pedido ayuda a Coco para que nos enseñara cómo arreglar los errores que se producen en la conversión de un archivo PDF hacia ePUB en CALIBRE.
Vamos a continuar utilizando RegEx para retocar el texto paraPAPYRE STREET conseguir un archivo ePUB sin errores.

ARREGLANDO LOS ERRORES MÁS HABITUALES
Los errores más habituales tienen que ver con la interrupción del flujo de texto, partiendose frases y párrafos en donde no procede.

Párrafo interrumpido por un RETORNO DE CARRO:
Retorno de carro Vemos como la frase se corta y empieza un nuevo párrafo.
La expresión de búsqueda será:
CLICK para CODE  
20091020009

He incluido las vocales acentuadas con la expresión “\()
20091020008 La expresión de sustitución es: \1 \3 Es decir, la última letra del primer párrafo, un espacio y la primera letra del segundo párrafo.
Además de seleccionar el check de “Match Case” para asegurar la diferenciación entre MAYUSCULAS y MINUSCULAS, conviene seleccionar “Minimal Matching” que asegura que se seleccionan los “segmentos” de texto más pequeños de todos aquellos que cumplen la condición de búsqueda.
Pulsamos ENTER y ¡Voilá!…
20091020010 
Carácteres espúreos al final de una frase:
CARACTERES ESPÚREOS Son números, correspondientes a la paginación del archivo PDF. En este caso, la expresión de búsqueda es sencilla:
20091020012  
Buscamos un bloque de entre 1 y 3
números (el libro no tiene más de 999 páginas) situado entre un punto “.” con un espacio detrás y una etiqueta de cierre de párrafo.
Lo sustituimos simplemente por un punto “.” seguido de la etiqueta de cierre de párrafo.
Pulsamos ENTER y “Abra-ca-dabra”…

CORREGIDO 
MÁS párrafos interrumpidos por un RETORNO DE CARRO
20091020014 ¿Pero NO HABIAMOS RESUELTO ESTE TIPO DE ERROR antes? preguntareis. Pues sí, pero NO. Porque en la expresión de búsqueda anterior no incluimos caracteres especiales cómo la coma “,” y la interrogación “¿”. Así pues nos queda cubrir los casos en los que intervienen estos caracteres que son escasos pero que en un libro de 300 y pico páginas pueden darse cerca de 50 veces. Lo resolvemos sin necesidad de RegEx, simplemente copiando la cadena a sustituir:
20091020015  Le damos al ENTER y ¡Zas!…
20091020016 
Parrafos interrumpidos por un RETORNO DE CARRO después de un guión largo
CON GUIÓN LARGO Al incluir otro tipo de carácter especial, el guión largo “” (EM Dash) también se escapó de la primera expresión de sustitución. A veces no queda más remedio que realizar este tipo de depuración “por capas de cebolla”, desde lo más general hasta los casos particulares. Aquí la expresión de búsqueda es más compleja:
CLICK para CODE
20091020018Como siempre en este caso, debemos marcar el check de “Match Case” para asegurarnos de discriminar entre MAYUSCULAS y MINUSCULAS. Pulsamos ENTER para ver la magia de RegEx en acción:
RESUELTO 
Parrafos interrumpidos por un RETORNO DE CARRO después de un guión largo cuando es un COMIENZO de FRASE
20091020020 

Ya sólo nos queda por resolver el caso más enrevesado y dificil de diferenciar del texto correcto. Es cuando después de guión largo “” (EM Dash) se rompe el párrafo; y el primer carácter del párrafo siguiente es una MAYÚSCULA, lo cual hace que sea muy dificil de distinguir de un principio de frase legítimo.
Tendremos como expresión de busqueda:


CLICK para CODE
20091020021OJO! con el “Match Case” y “Minimal Matching”; Pero aquí el truco para comprobar que efectivamente se ha roto la frase de forma incorrecta es que existe un punto “.” justo antes del guión largo “” (EM Dash); lo que indica que el mismo es el primer caracter de una nueva frase y no el último de la corriente.
Como siempre despúés de pulsar ENTER:
20091020022 
Los casos que hemos resuelto con estos retoques han eliminado cerca de 800 errores del texto, lo que supone la diferencia entre un ebook decente y una chapuza.

sábado, 13 de febrero de 2010

Cómo retocar con RegEx la conversión CALIBRE desde el formato PDF y conseguir mejores ebooks en ePUB para Mi reader PAPYRE 6.1 (Cap.01)

Coco profesorCómo seguramente ya sabréis, el formato PDF es uno de los más complicados a la hora de conseguir buenos resultados en la conversión hacia otros formatos, como ePUB. Sin embargo, PDF ha sido y sigue siendo, el formato estándar de facto para los documentos facsímiles de contenidos en papel. Por ello, muchas veces no nos quedará otro remedio que partir de un PDF para la creación de nuestro ebook en otro formato. Y hemos pedido ayuda a Coco para que nos muestre cómo mejorar los resultados obtenidos en la conversión.

CÓMO REALIZAR LA CONVERSIÓN DESDE PDFPAPYRE STREET
Existen herramientas para pre-procesar el archivo PDF y conseguir un mejor resultado en la conversión, y hablaremos de ellos en alguna otra entrada. Sin embargo, los resultados obtenidos suelen ser bastante irregulares; por lo que generalmente procedo sin más a convertir el archivo en CALIBRE, sin más; y luego retoco el resultado. Porque en cualquier caso, para conseguir un ebook decente en el formato de destino, es inevitable pasarlo por una fase de pos-proceso. En este caso, el ebook que vamos a utilizar para los ejemplos (“La nave de un millón de años” de Poul Anderson, que tenéis en la BIBLIOTECA), fue preprocesado en ADOBE ACROBAT PROFESIONAL, recortando el extremo inferior de las páginas para eliminar los números de página; y se realizaron otras operaciones para intentar eliminar lo más posible códigos que contaminaran el flujo del texto. Pero cómo comprobareis a continuación, las operaciones de preproceso no produjeron el resultado deseado. 
Sin embargo, es interesante recordar un parámetro que puede mejorar el output final en CALIBRE, asegurando la integridad de las frases y párrafos, evitando que aparezcan cortadas sin venir a cuento:

Click para IMAGEN Como se muestra en la imagen, en el apartado de ENTRADA PDF podemos jugar con el parámetro “Factor para unir líneas divididas”. Nos encontraremos menos líneas divididas si reducimos el valor por defecto de 0,5 (la longitud más frecuente de frase dentro del texto) a 0,25 ó 0,30.

PERO AL FINAL TOCA RETOCAR EL TEXTO…
Abrimos el texto en nuestra herramienta de pos-prensa preferida, SIGIL y encontramos varios tipos de errores en el texto convertido:

Números de página o de título partiendo un párrafo:
20091020002 Esto se produce por la confusión entre el contenido de los pies de página y el texto en el archivo PDF. Y queda HORRIBLE. Para subsanarlo aprovecharemos nuestros (escasos) conocimientos de RegEx (Expresiones Regulares) y preparamos una expresión de búsqueda que seleccione todas las ocurrencias de este error en el texto:
20091020003
Necesitamos encontrar “un espacio seguido de un número al lado de una etiqueta de fin de párrafo que a continuación tenga una marca de inicio de párrafo seguida de una palabra que comienza por minúscula”.


image 
servirá para seleccionar todas las ocurrencias en el texto. Pero OJO! habrá que marcar el check “Match Case” para distinguir entre mayúsculas y minúsculas, ya que el signo distintivo de este error es que el segundo párrafo empieza por MINUSCULA, quedando claro que es una frase que se ha partido por la mitad.


La expresión de reemplazo es sencilla:
20091020004 \2

para indicar que queremos reemplazar por el segundo grupo de “caracteres variables”, en este caso la letra inicial de la primera palabra del segundo párrafo.
Le damos a ENTER y ¡ale-hop!…
20091020005 20091020006


De un golpe hemos arreglado 153 errores en el texto. Y como esta entrada ya está quedando un poco larga, continuaremos con más ejemplos en el próximo capítulo.

domingo, 7 de febrero de 2010

Seguimos preparando nuestros ebooks usando el RegEx de WORD OFFICE (Cap.02)

Coco profesorContinuando con la entrada anterior de este BLOG, seguimos en PAPYRE STREET, utilizando la ayuda de Coco para limpiar un poco nuestros textos antes de convertirlos a ePUB que es nuestro formato preferido. Veamos que trucos nos enseña PAPYRE STREETCoco para aprovechar la potencia del dialecto enrevesado de RegEx (Expresiones Regulares) que WORD OFFICE pone a nuestra disposición.



HACIENDO LIMPIEZA DEL TEXTO PARA CONSEGUIR UNA MEJOR CONVERSIÓN
Porque de eso se trata. Cuando más limpio esté el texto, sin códigos innecesarios, más probabilidades hay de una conversión exitosa. Así que me pongo a revisar el documento y…
Texto INCORRECTOme doy cuenta que al principio de todos los párrafos, la indentación incluye ESPACIOS además del código de tabulación. Eso no es bueno. Compruebo además que no es un ESPACIO “normal” sino un ESPACIO DE NO SEPARACIÓN; el famoso No-breaking space que encontráis mucho en el HTML de las páginas web cómo  

Vamos con la expresión de búsqueda.
Sabemos que buscamos un grupo de 3 ESPACIOS DE NO SEPARACIÓN: ^s{3;}
El código de ESPACIO DE NO SEPARACIÓN ^s y el número de coincidencias; queremos un intervalo desde a 3 a 3 que escribimos como {3;}. No hay expresión de reemplazo porque queremos eliminarlo. Pulsamos ENTER y….

image

image










vemos que hemos limpiado los espacios.

LOS GUIONES OPCIONALESimage
Los guiones opcionales son un gran invento. Aseguran que el texto se separe automáticamente por silabas

image

para su guionado al final de una línea de forma correcta aprovechando al máximo el espacio disponible. Sin embargo, a la hora de exportarlo para una conversión a un formato eBook nos pueden hacer que el ebook aparezcan con guiones en sitios improcedentes.

Los eliminaremos usando: ^~
 image image
¿Por qué tantos reemplazos? Porque hay un posible guión entre cada 2 sílabas contiguas del texto.

ARREGLANDO LOS GUIONES LARGOS
imageimage
Vemos que los guiones de diálogo no son apropiados. Cambiaremos un guión corto con un espacio intercalado por un guión largo: –^s por ^+
imageimage

También:
   
image

 

 

  image

  image  image 

 

 



image image image image 

TÍTULOS CON NUMEROS ROMANOS
Para acabar COCO nos cuenta cómo seleccionar títulos con números romanos:
Con ([IVXL]{1;9}) podréis seleccionar hasta el número 99 en caracteres romanos.

© Cosas Interesantes