dissabte, 6 de novembre del 2010

Configurar la visualización del Papyre

Hace poco menos de un mes empecé a editar los libros en formato FB2 con un editor de texto intentando mejorar un poco su aspecto con respecto a lo básico que hacen los distintos programas que andan circulando por internet (BookDesigner, calibre, etc...). No soy ningún experto pero a base de darme de cabezazos y leyendo aquí allí, he ido aprendiendo unas pocas cosas. He abierto este hilo con la intención (esperanza) de que lo que más saben de esto se animen a compartir sus conocimientos con los que menos sabemos y así mejorar entre todos nuestros eBooks. Pues eso, este es un hilo abierto a la participación de todos, los que no saben para preguntar, los que saben para contestar. Espero que os animéis a compartir vuestras dudas y conocimientos.
De momento ahí dejo unos cuantos parámetros para formatear los textos del FB2 para los que empecéis en esto. No pretende ser una recopilación exhaustiva de todos los atributos disponibles, sólo los más básicos. Cualquier error que detectéis y rectificación que queráis hacer a la tabla será bienvenido.

Página de estilos. Guía básica de referencia

Atributo Descripción Valores Ejemplo
font-size Establece el tamaño de letra. puntos (pt)
pulgadas (in)
centímetros (cm)
píxeles (px)
porcentaje (%)
{font-size: 12pt}
font-family Establece el tipo de letra. nombre tipo fuente
nombre de familia fuente
{font-family: courier}
font-weight Establece el grosor de letra. extra-light
light
demi-light
medium
demi-bold
bold
extra-bold
{font-weight: bold}
font-style Texto en cursiva. normal
italic
{font-style: italic}
line-height Establece la distancia entre las líneas de texto. puntos (pt)
pulgadas (in)
centímetros (cm)
píxeles (px)
porcentaje (%)
{line-height: 24pt}
color Establece el color del texto. nombre color*
código RGB
{color: blue}
text-decoration Subrayado y otras opciones de decoración de textos. none
underline
italic
line-through
{text-decoration: underline}
margin-left Establece la distancia del borde izquierdo de la página. puntos (pt)
pulgadas (in)
centímetros (cm)
píxeles (px)
porcentaje (%)
{margin-left: 1in}
margin-right Establece la distancia del borde derecho de la página. puntos (pt)
pulgadas (in)
centímetros (cm)
píxeles (px)
porcentaje (%)
{margin-right: 1in}
margin-top Establece la distancia del borde superior de la página. puntos (pt)
pulgadas (in)
centímetros (cm)
píxeles (px)
porcentaje (%)
{margin-top: -20px}
margin-bottom Establece la distancia del borde inferior de la página. puntos (pt)
pulgadas (in)
centímetros (cm)
píxeles (px)
porcentaje (%)
{margin- bottom: -20px}
text-align Establece la alineación del texto. left
center
right
{text-align: right}
text-indent Establece el margen al borde izquierdo del texto. puntos (pt)
pulgadas (in)
centímetros (cm)
píxeles (px)
porcentaje (%)
{text-indent: 0.5in}
background Establece el color de fondo. nombre color*
código RGB
{background: #33CC00}
*nombre color: Black, Maroon, Green, Olive, Navy, Purple, Teal, Gray, Silver, Red, Lime, Yellow, Blue, Fuchsia, Aqua, White

Aplicando formatos:

Sí vale, creo que ya he entendido para que sirven los atributos de la tabla pero, ¿cómo lo hago para usarlos?
Pues voy a intentar explicarlo un poco. El FB2 es un fichero escrito en lenguaje XML. El lenguaje XML tiene muchas opciones y muchas utilidades pero esto no va a ser un tutorial para aprender XML, sino para saber usar lo que necesitamos para dar formato a un FB2 utilizando las instrucciones necesarias. Voy a ir a lo practico y centrándome en las opciones de formatos de texto, que es lo que yo necesito para los FB2.

Lo primero es que hagáis un FB2 a partir de otro formato utilizando la aplicación a la que estéis acostumbrados (BookDesigner, Calibre, ooofbtools, etc...), estas aplicaciones os hacen el trabajo más gordo de dar formato a cada párrafo del eBook. Una vez tengáis ese FB2 podéis empezar a ajustar las cosas que os parezcan que no han quedado bien. Es probable que la mayoría de los libros no tengáis que retocar nada. No nos engañemos, lo que viene a continuación, en el 90% de los casos, no va a ser necesario y va a ser más una cosa de "dejarlo bonito" que porque realmente lo necesite el libro, pero.....
Para editar el fichero FB2 salido del paso anterior vais a necesitar un editor de texto plano, como el bloc de notas de windows, pero yo os recomiendo que uséis algo más complejo, preferentemente un editor que soporte el lenguaje XML. Hay muchos gratuitos disponibles en internet, yo voy alternando entre el Notepad++ y el XML Copy Editor, pero eso que cada uno use lo que encuentre que se adapte a su gusto.
Lo básico de XML es que es un lenguaje que funciona con etiquetas (tags). Esas etiquetas son una letra o un nombre que indican que debe de hacer con el texto que aparece "en medio" de las etiquetas. Las etiquetas van entre los símbolos <> y deben "abrirse" y "cerrarse", para cerrar una etiqueta se usa el símbolo /. Ejemplo: una etiqueta básica es la b que se usa para definir la negrita. Se usaría así: <b>Texto negrita</b> y lo que se vería sería: Texto negrita.

Y ahora que ya tenemos lo básico vamos con un ejemplo para usar los atributos que aparecen arriba y ver como se tienen que escribir.

Hay dos maneras de usarlos, de manera directa sobre el texto o dando de "alta" una etiqueta creada por nosotros. Ejemplo: vamos a darle a este texto "Texto centrado con cursiva y negrita" el formato centrado, cursiva y negrita.
De manera directa sería así:

Cita:
<tccn style="text-align: center; font-style: italic; font-weight: bold">Texto centrado con cursiva y negrita</tccn>
Esto está bien si solo lo vais a hacer en un sitio pero si tenéis que hacerlo en muchos párrafos, escribir todo eso cada vez es una burrada, por eso lo mejor es dar de "alta" la etiqueta al principio del fichero así:

Cita:
<stylesheet type="text/css">
tccn {text-align: center; font-style: italic; font-weight: bold;}
</stylesheet>
Y luego usarla así:

Cita:
<tccn>Texto centrado con cursiva y negrita</tccn>
El resultado será siempre el mismo:
Cita:
Texto centrado con cursiva y negrita
¿Que he ido muy rápido? Tranquilos ahora me explico.
El nombre de la etiqueta es el que vosotros queráis, yo la he llamado tccn, pero puede ser pepito, alubias o lo que os dé la gana, sólo procurad no usar símbolos raros o ñ, ç, etc...
Vamos a ver como se deben escribir las cosas:
Manera directa:
Como si fuese una etiqueta empezáis con < y acabáis con >, el nombre (tccn) seguido de para que lo queréis (definir un estilo: style) un = y, muy importante, entre comillas " " cada uno de los atributos que queréis dar con el valor correspondiente escrito atributo: valor con los : (dos puntos) en medio. Para separar atributos siempre ; (punto y coma) y no olvidéis cerrar la etiqueta al final del texto a formatear (</tccn>)

Dando de "alta" la etiqueta:
Empezáis declarando una pagina de estilos (<stylesheet type="text/css">), en esto no me voy a entretener mucho con lo que significa, solo decir que con esto le estáis diciendo al programa de lectura del eBook (má o meno y pá entendernos) que todo lo que va entre la etiqueta <stylesheet></stylesheet> son formatos que tiene que guardarse en memoria para aplicarlos luego en donde aparezca en el texto.
Definición de etiqueta: empezáis con el nombre que queráis darle (tccn) luego entre { } escribís con el mismo criterio que antes entre " ", pero en este caso no olvidéis acabar con un ; (punto y coma) después del último valor. A partir de ahí ya podéis utilizar el nombre de esa etiqueta (tccn) todas las veces que queráis en el texto y os dará el formato que habéis definido al texto contenido entre las etiquetas (<tccn>texto</tccn>).

Vamos al lío

Antes de empezar una especie de ficha técnica: los libros que uso de ejemplo vienen de un DOC (aunque como son escaneos míos podría haber escogido cualquier formato) pasados a FB2 con el programa Fiction Book Designer [FBD] (una versión del BookDesigner exclusiva para hacer FB2). Para editar los FB2 he usado, indistintamente, los programas Notepad++ y XML Copy Editor. Mi lector electrónico es un Papyre 6.1 1ª ed. con firmware basado en el de buggins/Lbook personalizado por Tirwal (v. 2.9) (con una página de estilos fb2.css personalizada por mí), con el Coolreader como software de lectura FB2, aunque para probar estos libros volví a instalar el último firmware oficial de Grammata con FBReader como software de lectura FB2 y todo funcionaba bien. Mis disculpas por la calidad de las imágenes pero nunca he sido aficionado ni me ha interesado la fotografía y no tengo cámara digital, por eso he usado el escáner para las imágenes, como la pantalla del Papyre está hundida unos milímetros en la carcasa esa distancia hace que el texto se vea borroso, pero creo que sobra para lo que quiero enseñar.

El libro de los primeros ejemplos lo podéis encontrar en este enlace Misterios abadía Hawkenlye I: La novicia asesinada - Alys Clare [FB2], y el de los últimos en éste Los tontos mueren en viernes - A. A. Fair (Erle S. Gardner) [FB2], por si queréis tenerlos a mano de referencia.

¿Ya estamos todos? Sí, pues nada: síganme que esto empieza. No se me apelotonen, que corra el aire.

Cita:
<?xml version="1.0" encoding="UTF-8"?>
<FictionBook xmlns:l="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.gribuser.ru/xml/fictionbook/2.0">
<stylesheet type="text/css">
jcrftnr {font-family: "Times New Roman";}
jcrfp40 { text-indent: 0em; margin-top: 40%;}
jcrfp20 { text-indent: 0em; margin-top: 20%;}
jcrfct1 {text-align:center; hyphenate: none; text-indent: 0em; font-size: 130%; margin-top: 35%;}
jcrfsang { margin-left: 50%; text-align: justify; text-indent: 0em;}
jcrfder {margin-right: 5%; text-align:right; text-indent: 0em;}
</stylesheet>
Aquí tenéis definidos todos los estilos que voy a ir aplicando en el texto de este libro. Todos aparecen usados antes del Capítulo uno, luego algunos se repiten a lo largo del libro, pero mirando las primeras páginas ya tendréis un ejemplo de todos los estilos aplicados. Las dos primeras líneas son comunes en todos los FB2, solo cambiaran los valores según el programa que hayáis usado para crearlo y los valores que hayáis aplicado. La etiqueta <stylesheet> debe colocarse justo después de esas primeras líneas y debe estar en el primer nivel de estructura XML, porque el XML es un lenguaje con una estructura en niveles que bla, bla, bla... y además tenéis eso de css que es el tipo más sencillo de hojas de estilo, también hay otro formato más complejo y completo (extendido) llamado XSL que bla, bla, bla... lo siento, esto no es un tutorial de lenguaje XML. Los nombres que he usado para las nuevas etiquetas son los que me ha dado la gana, como bien podéis ver. A la pregunta ¿por qué empiezan todas con las letras jcrf? Porque son mis iniciales. ¡Ah! Entonces lo haces para que se sepa que el fichero es tuyo... No (o sí, ¿por qué no?) la razón es que he visto que si un estilo está definido en la página externa de estilos (fb2.css) se impone al que hay definido en el propio FB2. La posibilidad de que alguien tenga una etiqueta p20 o ct1 es remota pero tampoco tan difícil, que alguien lo tenga con mis iniciales delante, no es imposible, pero que complicado me parece. Tened a mano las definiciones de las etiquetas, porque no las repito, voy a explicar las cosas dando por supuesto que las estáis viendo en todo momento.
¡Eh, señor guía! ¿Cuando se acaba este rollo? ¿Esto no venía con dibujitos? Ya va, ya va...

Los dibujitos, también conocidos como “pa que veas que funciona”



Cita:
<title>
<empty-line/>
<p><jcrftnr>Alys Clare</jcrftnr></p>
<empty-line/>
<p><jcrftnr>LA NOVICIA ASESINADA</jcrftnr></p>
<empty-line/>
<p><jcrftnr>(Fortune Like the Moon, 1999)</jcrftnr></p>
</title>
<section>
<jcrfct1><jcrftnr>Los misterios de la abadía Hawkenlye I</jcrftnr></jcrfct1>
</section>
Otra cosa que no voy a repetir, lo que “cito” es todo el código que hace referencia a la pantalla que se ve en la imagen, excepto cuando haya un texto largo del libro que lo recortaré usando [...], eso no es nada es sólo para dar a entender que el texto era más largo y que lo he cortado.
Etiqueta <jcrftnr>, ésta la explicaré con más detalle más adelante, pero de entrada con esto estoy obligando a que el texto con esta etiqueta use siempre el tipo de letra TNR (Times New Roman) independientemente del tipo de letra que estéis usando para leer.
<jcrfct1> Alineación centrada; (hyphenate: none)*; sin tabulación/sangría en la primera línea de párrafo; tamaño de letra un 30% más grande que la que se esté usando para leer; separación superior con respecto al párrafo anterior de un 35% del tamaño de la pantalla.
*hyphenate: none, éste no lo conocéis, no está en la tabla de arriba. Se usa para indicar que no queremos que ese texto se corte con un guión si no cabe en una sola línea. Como podéis ver en la 2ª imagen (con una letra de lectura más grande) Hawkenlye salta de línea, aunque hay sitio para cortar la palabra p. Ej. Hawken-lye, no lo hace.



Cita:
<p style="page-break-before: always"> </p>
<jcrfp20>
<jcrfder><emphasis>Para M. D.</emphasis></jcrfder>
<empty-line/>
<jcrfder><emphasis>Gracias</emphasis></jcrfder>
</jcrfp20>
Estilo habitual de las dedicatorias. En página propia, se usa la primera línea para forzar un salto de página.
<jcrfp20> margen superior 20%
<jrfder>margen derecho de un 5% del tamaño de pantalla, para que no quede pegado al borde; alineación derecha.
<emphasis> ésta etiqueta la ha puesto el programa FBD de manera automática, es para la cursiva.



Cita:
<p style="page-break-before: always"> </p>
<jcrfp40>
<jcrfsang><emphasis>O Fortuna!</emphasis></jcrfsang>
<jcrfsang><emphasis>Velut Luna</emphasis></jcrfsang>
<jcrfsang><emphasis>statu variabilis,</emphasis></jcrfsang>
<jcrfsang><emphasis>semper crescis</emphasis></jcrfsang>
<jcrfsang><emphasis>aut decrecis.</emphasis></jcrfsang>
<empty-line/>
<jcrfsang>De <emphasis>Carmina Burana,</emphasis></jcrfsang>
<jcrfsang>«Canciones profanas»</jcrfsang>
</jcrfp40>
Otro clásico: una cita. Salto para página propia.
<jcrfp40> margen superior 40%
<jcrfsang> margen al borde derecho de un 50% de la pantalla; alineación de texto izq./justificada; sin tabulación en la primera línea.



Cita:
<title>
<p><cite id="_Toc257297993">
</cite>
<jcrftnr>PRELUDIO</jcrftnr></p>
</title>
<empty-line/>
<p>Muerta, ofrecía una imagen negra, blanca y roja [...] que la muerta no vería.</p>
Lo de Toc... es una cuestión de pereza por mi parte, que tiene que ver con el uso de FBD y poder visualizar de un vistazo los títulos que ha cogido bien o mal, y luego no eliminar esto en el fichero FB2, no hace nada, bueno sí, es un enlace, pero no se ve ni afecta a la lectura.
<jcrftnr> En este fichero quería probar que tal se comportaba si le obligabas a usar un tipo de letra diferente a la de lectura, por eso he forzado que todos los títulos se vean con TNR (letra que viene por defecto en el Papyre y otros). He ampliado la letra con respecto a la que yo uso para leer para que se vea mejor el efecto. La letra de lectura es, por orden: Arial, Verdana, DejaVu Sans, todas ellas “sans serif” (sin serifa, palo seco, sin remate o como lo queráis llamar) pero el título siempre es TNR, letra serif. Problema de este truco: que no funciona si no tienes la fuente instalada. En el Papyre se limita a ignorar la etiqueta si es una fuente que no tiene instalada y utiliza la letra de lectura para el título. No sé que harán otros lectores. Tampoco sé si los FB2 permiten incrustar fuentes si alguien lo sabe, se agradecería la información.



Cita:
<p style="page-break-before: always"> </p>
<jcrfct1><jcrftnr><b>LA PRIMERA MUERTE</b></jcrftnr></jcrfct1>
Este libro está dividido en 3 partes, cada una lleva una portadilla como la que veis. Salto de página.
<jcrfct1> Lo mismo que el primer ejemplo. Como veis aquí el 35%, al no haber párrafo previo, es desde el borde superior de la pantalla.
<jcrftnr> Forzado TNR
<b> Negrita puesta automática por FBD

Y con esto acabo con este libro y voy con un par de ejemplos de otro libro.

Cita:
<?xml version="1.0" encoding="utf-8"?>
<FictionBook xmlns:l="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.gribuser.ru/xml/fictionbook/2.0">
<stylesheet type="text/css">
jcrfsang1 { margin-left: 5%; margin-right: 5%; text-align: justify; text-indent: 0em;}
jcrfsangd { margin-left: 5%; margin-right: 5%; text-align: right; text-indent: 0em;}
jcrfpsp { text-align: justify; text-indent: 1.3em; margin-top: 0em; margin-bottom: 0.3em }
</stylesheet>


Cita:
<title>
<p><cite id="_Toc256945048">
</cite>
Guía del lector</p>
</title>
<empty-line/>
<p><emphasis>En un orden alfabético convencional relacionamos a continuación los principales personajes que intervienen en esta obra</emphasis></p>
<empty-line/>
<jcrfpsp>BALLWIN (Gerald): Tío de Beatriz Ballwin.</jcrfpsp>
<jcrfpsp>BALLWIN (Beatriz): Cliente de Donald Lam y Bertha.</jcrfpsp>
[...]
<jcrfpsp>WILMONT (Mariville): Mayordomo de la casa Ballwin, y chofer.</jcrfpsp>
El código de la primera imagen (que es de otro libro) no lo pongo porque es lo mismo pero cambiando la etiqueta aplicada <jcrfpsp> por la de párrafo por defecto <p> (y el texto de los personajes son diferentes, claro). Me parecía que todo ese texto con los nombres de los personajes se veía muy apelotonado y por eso decidí dejar un poco de “aire” entre las líneas. Poner una línea en blanco entre párrafo era demasiado exagerado por eso definí un pequeño margen inferior a la línea de párrafo <jcrfpsp>, el resto, llegados a estas alturas, creo que se entiende.



Cita:
<p>Por lo que se deducía, la noticia había [...] compuesta con anterioridad.</p>
<empty-line/>
<jcrfsang1>«Cuando la muerte sorprendió inesperadamente a la señora de Gerald Ballwin esta mañana, la policía tuvo la seguridad de que se enfrentaba con uno de los crímenes más misteriosos de la década.</jcrfsang1>
<jcrfsang1>»Dafne Ballwin, que ingresó en [...] inmediatamente al hospital</jcrfsang1>
<empty-line/>
<jcrfsangd><emphasis>(continua en la página cuarta).</emphasis>»</jcrfsangd>
<empty-line/>
<p>Doblé el periódico y lo arrojé a la parte posterior del coche.</p>
Bueno aquí veis que en el código he cortado a las bravas para no llenar todo esto de texto. Sólo aparece una pequeña parte de lo que está con el efecto de “sangrado” y la línea anterior y posterior en el libro. Este texto está aprox. a la mitad del capítulo XIII (con mi tamaño de letra, en la págs. 205 y 206, el capítulo empieza en la 200 y acaba en la 213).
Aquí se reproduce una noticia de primera página de un periódico y lo que quería era dar un poco la impresión de columna periodística, sin exagerar tampoco con los márgenes. Os pongo la primera imagen en un tamaño de texto más pequeño de lo habitual para que se vea bien el efecto de sangrado a dos márgenes. Las otras dos serían con mi tamaño habitual de lectura.
<jcrfsang1> márgenes izq./der. 5% , alineación justificada y sin tabulación en primera línea de párrafo.
<jcrfsangd> Igual que la anterior pero alineada a la derecha.

Y hasta aquí hemos llegado.