Cosas Interesantes

sábado, 27 de noviembre de 2010

Validando mis ePUBs cómo Dios manda con FlightCrew 0.7

Aunque no hemos hablado de ello en las BBPP LARdT (“Las Buenas Practicas de LARdT para un ePUB decente”) es de sentido común que después de crear nuestro archivo ePUB es muy recomendable pasarlo por alguna de las herramientas de validación que andan rondando por ahí. Pero como es habitual con los ePUB uno se lleva sorpresas.
Hasta ahora utilizaba epubcheck 1.05 ya fuera como ejecutable independiente o accediendo online a través de la página http://threepress.org/document/epub-validate. Y sinceramente, me sacaba un poco de quicio que el programa detectara falsos positivos como, por ejemplo, en los formatos de fecha  cuando después de pasar por CALIBRE y modificar la fecha de creación aparecían horas, minutos y segundos añadidos a la fecha; lo cual la última vez que lo comprobé me pareció entender que era perfectamente legítimo.
O cuando me dice que el atributo “file-as” en los metadatos (para guardar el nombre del autor como orden de autor: “Pepe Pérez; file-as “Pérez Pepe”) no es correcto.
Eso unido, a que cuando detecta un error “de verdad” los mensajes de reporte no suelen ser muy informativos, me había hecho ir abandonando la buena práctica de validar mis ePUBs después de hacerlos.
Pero leyendo el blog de desarrollo de SIGIL su autor, Strahinja Markovic comentaba que durante el desarrollo del programa advirtió este tipo de fallos y decidió como spin-off crear su propia aplicación de validación, llamada FlightCrew.

Como es FLIGHTCREW
Es una aplicación de código abierto hospedada en http://code.google.com/p/flightcrew/ muy sencilla y cómoda. Como siempre, podéis descargar la versión WINDOWS 64Bits (para Vista y Win7) desde la página de DESCARGAS – APPS - Nº25. Para otros sistemas operativos podéis acudir a la página de Googlecode indicada.
Lo mejor es que no sólo no detecta falsos positivos sino que además ayuda a implementar buenas prácticas en tu ePUB para que este tenga más calidad y funcione mejor.
Vamos a verlo con un ejemplo:
Pasamos el mismo archivo ePUB por epubcheck 1.05 y por FlightCrew 0.7b


epubcheck

A epubcheck 1.05 le parece estupendo; lo cual no esta mal; al menos no hemos tenido ningún falso positivo.



CLICK para IMAGESin embargo, FlightCrew muestra dos mensajes de alarma, codificados por colores según la gravedad y especificando DONDE (archivo dentro del ePUB y LINEA si aplica) y PORQUÉ.
El primer mensaje (de color amarillo) no es un error propiamente dicho sino un “warning”. FlightCrew ha detectado que dentro del ePUB he incluido un archivo gráfico que luego no ha sido utilizado, así que o se me ha olvidado usarlo o estoy llenando mi ePUB de basura innecesaria que lo hará más grande y más lento.
El segundo mensaje si es un error. Y me extrañaba porque el elemento “svg” si que es válido dentro de la especificación ePUB. Pero como se explica en las FAQs del programa, resulta que la práctica correcta es encerrarlo entre dos etiquetas <div> y no directamente suelto dentro del <body> como yo lo tenía.
Así pues, FlightCrew va mucho más allá de una mera validación formal del ePUB sino que ayuda, como ya hemos dicho a mejorar tus ePUBs aplicando criterios estrictos.

Así que ya sabéis, una nueva herramienta para validar vuestros ePUBs como Dios manda.

miércoles, 24 de noviembre de 2010

Cómo funcionan las notas al pie para un libro ePUB según las BBPP LARdT v.1.15

A diferencia del formato FB2 que si incluye en su implementación una funcionalidad específica para la gestión de las notas al pie (ya sean al pie de página o al pie de libro); en ePUB las notas se componen usando la funcionalidad de enlace (link o hipervínculo) típica del HTML.

Montando enlaces recíprocos
De lo que se trata es de que sea un mecanismo de ida y vuelta: pulsando el número de la nota en el texto te llevará a la entrada correspondiente en zona de notas; y recíprocamente; al pulsar en el número de la nota en el pie de libro te llevará de vuelta a la nota de la que partiste, dentro del texto. Es decir hay que crear un enlace desde A a B, y desde B a A. O dicho de otra forma, desde el texto al pie, y desde el pie al texto.
Vamos a analizar el código necesario. Como siempre podéis acceder al código haciendo click en la imagen.
Desde el texto hacia el pie
CLICK para IMAGE image  
<a title="[7]" href="../Text/Notas.xhtml#_ftn7" id="_ftnref7"><span class="MsoPieTXT">[ 7 ]</span></a>
Como veis es el típico enlace “anchor” (<a></a>) con algunos parámetros:
title="[7]" "title" nos sirve para indicar que queremos que se vea en la etiqueta flotante cuando el ratón se posiciona encima del vínculo. Evidentemente, esto sólo tiene aplicación cuando estamos leyendo el libro en un PC y no en un entorno de tinta electrónica.

href="../Text/Notas.xhtml#_ftn7" href , como siempre sirve para indicar la ruta del elemento a enlazar. Como veis es una ruta relativa ya que siempre se refiere al propio libro e indica el nombre del archivo xhtml donde estamos situando el bloque de notas a pie de libro. Siempre colgará del directorio "Text" (elemento obligatorio de la estructura interna del ePUB); y ojo con las mayúsculas/minúsculas. En nuestro caso, el archivo xhtml se llama "Notas". Vemos que además del nombre del archivo ("Notas.xhtml") viene un "#". Este es el indicador de "elemento", es decir que el enlace no va sólo hacia el archivo, sino hacia un elemento concreto dentro de ese archivo; en nuestro caso llamado "_ftn7". Estamos identificando el elemento HACIA el que vamos o HACIA el que enlazamos.

id="_ftnref7  id nos sirve para identificar nuestra nota insertada en el texto como un "elemento" concreto dentro del archivo xhtml en el que está incluido como parte del archivo ePUB. Como veis es un viaje de ida y vuelta que enlaza un elemento de un archivo xhtml con un elemento de otro archivo. Esto es lo que permite que podamos volver al punto exacto del libro (donde se encuentra la llamada de nota) desde el que partimos para ver la explicación de la nota. A nuestra nota dentro del texto le hemos dado el nombre "_ftnref7" para indicar que es la "referencia de la nota al pie (footnote) número 7" pero igualmente podríamos haberla llamado "pericodelospalotes"; nombre más gracioso pero mucho menos práctico. Estamos identificando el elemento DESDE el que vamos o DESDE el que enlazamos.

<span class="MsoPieTXT">[ 7 ]</span></a> Y por último, el texto del enlace desde el que partimos; que como es la nota número 7 pues lo indicamos con "[ 7 ]"; aunque podría ser "(7)", por ejemplo. El "span class" es simplemente el estilo de formato que hace que el texto de la llamada de la nota se vea en azul, negrita y con una fuente un poco más grande que el resto del texto, simplemente para que resalte más. Es importante que utilicemos elementos numerados (1,2,3...) o seriados (A,B,C...) que sean distintivos dentro de un mismo capítulo o página del libro. En los libros en papel, a veces se utiliza la marca "*" para todas las notas; sin diferenciar. No es recomendable porque algunos parsers de los e-readers (SONY, por ejemplo) no son capaces de enlazar desde elemento a elemento, sino desde archivo a archivo. De forma que uno vuelve desde la explicación de la nota al capítulo o parte del libro desde la que partió, pero no a línea exacta. Si encima todas las notas se llaman "*" puede ser difícil saber desde que nota salió uno.
En resumen, el código está diciendo “estoy en _ftnref7 y quiero ir al elemento _ftn7 de la página “Notas.xhtml” 

Vuelta desde el pie hacia el texto

CLICK para IMAGE



CLICK para CODE


<a title="[7]" href="../Text/009.xhtml#_ftnref7" id="_ftn7"><span class="MsoPieTXT">[ 7 ]</span></a> Como podéis comprobar el código es el mismo con la salvedad de que el enlace apunta HACIA la ubicación de la nota dentro del texto; en este caso al archivo "009.xhtml"; y dentro de él a la etiqueta identificadora que utilizamos para distinguir el enlace desde el que vinimos "_ftnref7". Por supuesto, el enlace está definido con el id="_ftn7" que es adonde apuntaba el enlace situado dentro del cuerpo del texto.


En resumen, tenemos la IDA desde la llamada de nota el interior del texto a la explicación correspondiente situada en la zona de notas al final de libro; y la VUELTA desde la explicación situada al final del libro a la llamada situada en el interior del texto. Con esto tenemos asegurada la parte más importante de cara a la experiencia de lectura del usuario: la comodidad de consultar de forma sencilla el contenido de la nota y volver al punto exacto de partida para retomar la lectura.
miércoles, 17 de noviembre de 2010

La calidad de los ePUBs realizados según las BBPP LARdT v1.15 vistos en un dispositivo iOS (iPad, iPhone) con iBooks

BBPP_epub_logo_4c_hires copiaEra un reto conseguir que los ePUBs fueran lo más interoperables o compatibles posible, ya que si algo hemos aprendido es que el ePUB es un estándar; pero las implementaciones sobre él en los distintos e-readers NO.

Viendo los ePUBs en un iPhone
Aunque no es la opción óptima de momento nos servirá para comprobar cómo quedan nuestros ePUBs realizados según las BBPP LARdT v1.15.

CLICK para IMAGELo primero es lo primero: el BOOKSHELF
Como se puede comprobar, la portada es detectada correctamente en iBooks ofreciendo una imagen correcta en el bookshelf de iBooks; tanto si se ha realizado el traspaso directamente desde iTunes o mediante CALIBRE. Los metadatos también son interpretados y traspasados correctamente.CLICK para IMAGE
















En la portada es interesante comprobar que pese a que se ha alterado la proporción de la misma (desde 600x800 del e-reader e-ink típico de 6” a los 640x960 de la pantalla “retina” del iPhone 4G en el que estamos haciendo la prueba); el cover se redimensiona y queda centrado perfectamente. La única diferencia es que aumenta el porcentaje de superficie  dedicado al margen de alrededor como es lógico en función del mayor numero de puntos en la pantalla.

Entramos en el libro: la página de título y de metadatos


Con la salvedad de que no existen fuentes incrustadas la página de título se ve correctamente.

CLICK para IMAGECLICK para IMAGELa página de metadatos también se lee correctamente incluyendo la funcionalidad del enlace a nuestra biblioteca. Una vez aceptada la opción de “Abrir”, el programa iBooks deja su lugar al browser Safari, donde se accede al URL indicado. El resto de enlaces, como por ejemplo las notas al pie, son perfectamente funcionales.

CLICK para IMAGE









El INDICE o TOC y las partes del libro
El índice o tabla de contenido se genera correctamente con sus distintos niveles y jerarquías intactas, haciendo posible la navegación de forma rápida y sencilla.









Los encabezados de capítulos y “partes” o “libros” resultan bastante bien.






Los gráficos insertados en el texto
Al haber cambiado el tamaño de pantalla, y sobre todo, el programa lector entre otros factores, la problemática de los gráficos es completamente diferente; resultando en el iPad mucho más sencilla

CLICK para IMAGECLICK para IMAGE
pero en este caso hemos perdido la capacidad de incrustar un gráfico sin interrumpir el flujo del texto por completo como veíamos en el Tratamiento de gráficos según BBPP LARdT v1.15.

Y algunos fallos…

la foto (2)la foto (1)

Pero todo no podía ser perfecto. Hemos detectado con el zoom de texto se produce un rebosamiento de los encabezados de capítulo largos que no es controlado por el “clear floats” como hacíamos en ADOBE MOBILE READER. Habrá que investigar y realizar pruebas con un iPad real para poder realizar el ajuste fino de alguna de estas disfunciones.
Pero en conjunto, la compatibilidad con iBooks-iPad-iPhone es bastante buena.

lunes, 15 de noviembre de 2010

El tratamiento de los gráficos según las BBPP de LARdT v1.15 (Cap.05)

Siguiendo esta serie desde el CAP. 04; vamos a describir las modificaciones realizadas para el tratamiento de los gráficos incluidos en el texto del libro. El conjunto de modificaciones realizadas lo hemos agrupado en lo que hemos llamado versión 1.15 de las BBPP de LARdT para un ePUB decente.

El tratamiento de los gráficos según la v1.15
El objetivo ha sido integrar los gráficos lo mejor posible en la narración del libro y que las modificaciones en el nivel de zoom del texto no “desorganicen” la maquetación del libro. Lo vemos de una forma sencilla en los siguientes ejemplos:



Imagen flotante a la izquierda: como podéis comprobar, independientemente del nivel de zoom del texto circundante la imagen no varía de tamaño (50% de la anchura. Además está anclada al contexto significativo: la ilustración de “Tomás Miranda” queda siempre al lado del encabezado que le corresponde; e insertada dentro del texto que fluye a su alrededor sin ser interrumpido por la imagen.



Imagen centrada de anchura completa: tenemos la imagen centrada y ocupando la totalidad del ancho del libro (100%). En caso de que se leyera en un dispositivo de tamaño distinto (5” ó superior a 6”) la imagen se redimensionará adecuadamente. Sin embargo, no se ve alterada por el cambio del nivel de zoom del texto. Tiene un pie de texto asociado centrado y en negrita.



Imagen flotante a la derecha: la imagen está incrustada en el texto que fluye a su CLICK para IMAGEalrededor independientemente del nivel de zoom del mismo, manteniéndose en un 50% de la anchura de la página. Está anclada a su pié de texto en negrita que, lógicamente aparece a su izquierda.

Imagen a página completa: la imagen ocupa al página completa sin variar su visualización independientemente del nivel de zoom del texto. Muy adecuado para planos y similares. Con su pie de texto centrado y en negrita correspondiente.




Imagen flotante con proporciones longitudinales: si el largo de la imagen es muy superior al ancho requiere un tratamiento distinto para conseguir el mismo efecto que en las imágenes flotantes anteriores.

domingo, 14 de noviembre de 2010

La calidad de los ePUBs hechos conforme a las BBPP LARdT 1.14 (Cap. 04)

BBPP_epub_logo_4c_hires copiaContinuamos con lo veníamos comentando en la tercera entrega sobre la calidad de los ePUBs generados conforme a las BBPP LARdT.

Las divisiones del libro: PARTES y “LIBROS”
Es una parte que cuidamos especialmente no sólo por la estética sino porque creemos que hay que compensar de alguna forma la diferencia en la experiencia de lectura con el original en papel.
En la versión Gutenberg, la maquetación y el formato están pensados para su aplicación sobre una entidad: la página física. Pero en el libro electrónico esa unidad no existe, se rompe constantemente con la alteración del tamaño de fuentes y la conservación del flujo del texto. Esto hace que visualmente hablando, la maquetación resulte menos significativa, menos visible. Y en tanto en cuanto forma parte del contenido del libro, podemos concluir que una parte del mismo se pierde en su conversión al formato digital. Una forma de compensar está “dilución” del contenido puede ser mediante la repetición de estructuras reconocibles visualmente hablando. Por eso, intentamos mantener y conservar de forma repetitiva ciertas composiciones visuales y de formato.
CLICK para IMAGEAsí, como podéis ver en el gráfico adjunto; en la división del libro superior al capítulo; que suele llamarse “Parte” o “Libro” (lo cual siempre me ha parecido un poco confuso) siempre mantenemos la misma estructura sencilla: Numerador del encabezamiento y texto del encabezamiento en líneas separadas y con un salto de página a continuación para que esté contenida en su propia “página”, y diferenciada del resto del texto, ya que suele ser un elemento importante y diferenciado en la estructura que el autor le ha querido dar al libro.

El capítulo, nuestro amigo
El capítulo es la forma de división del libro más frecuente, sobre todo en los textos de narrativa. Y por esta razón resulta uno de los elementos más prácticos a la hora de darle realce visual al texto. Y por eso le hemos dedicado más atención. Desde la “caja” sencilla tipo “feedbooks” hemos ido tipificando las distintas clases de formato que hemos ido encontrando, para hacerlos lo más parecido posible al libro original; y para convertirlos en fórmulas reconocibles para el lector del formato digital. Hay que tener en cuenta que el formato de los encabezamientos y títulos de los capítulos determina cómo se va a generar el índice o TOC (Tabla de contenido) del  libro.




En la presentación adjunta tenemos como ejemplo:


- Numeral romano con texto de título (además, en este caso concreto, con cita al inicio del texto de capítulo)
- Texto (Epílogo) con texto de título
- Numeral con texto de título y texto de “subcapítulo” (división de orden inferior al capítulo)
- Numeral con texto de título en 2 líneas


- Texto sólo (“Agradecimientos”)

Ver álbum
Más Tipologías de capítulos


- Indicativo “Capítulo” con numeral romano


- Numeral sólo
- Indicativo “Capítulo” con numeral arábigo y texto de título
- Indicativo “Capítulo” con numeral arábigo


Ver álbum
Todavía más tipos de encabezados de capítulo


- Numeral romano con texto adjunto (“393-373 a.C.”) más texto de título
- Texto sólo más texto de título
- Indicativo “Capítulo” con Ordinal/Numeral en letra


Cuando NO existen los capítulos

CLICK para  IMAGEsnapshot_2Un caso interesante se produce cuando no existen los capítulos porque el autor del libro ha decidido presentar la narración sin solución de continuidad.
Dado que hacemos que la división de la estructura interna del archivo ePUB coincida con la división externa en capítulos (cada fichero XHTML de los que componen el ePUB coincide con el contenido de cada capítulo) se podría producir el problema de que nos encontráramos con un ePUB no valido porque rebasara la limitación de tamaño máximo recomendado de 260Kb. Y además un ePUB sin índice-TOC (tabla de contenido) resulta un poco incomodo de navegar.
La forma de resolverlo es partir el libro en varias partes haciéndolo coincidir con 1/4 parte, la mitad, y las 3/4 partes aproximadamente; lo que suele ser suficiente para que no se produzcan problemas de excesivo tamanaco de los archivos XHTML resultantes. Y en esas divisiones colocamos una etiqueta de h3 (como si fuera un capítulo) “invisible”, que no altera el texto del libro pero si sirve para generar una entrada de índice en la tabla de contenido. De esta forma, cumplimos los principios generales de la “BBPP LARdT para un ePUB decente”:


- Mantener la máxima fidelidad al texto original


- Procurar la máxima comodidad en la experiencia de lectura digital.
Como veis en el ejemplo, utilizamos parte de la primera frase después de la división como ancla del “falso capítulo”. 

Controlando el desbordamiento de los encabezados de capítulo

CLICK para IMAGECLICK para IMAGE
Los encabezados con textos largos pueden desbordar la caja cuando se aplica el máximo nivel de zoom. Sin embargo, aplicando un “clear floats” al primer párrafo del texto del capítulo se evita que el título se solape encima del cuerpo del texto.

© Cosas Interesantes