Anda di halaman 1dari 23

Copyright IBM Corporation 2012 Marcas

Crear publicaciones con bastantes diseos en EPUB 3 con


HTML5, CSS3 y MathML
Pagina 1 de 23
Crear publicaciones con bastantes diseos en EPUB 3
con HTML5, CSS3 y MathML
Explore el estndar abierto de prxima generacin de eBook para
diseo avanzado y tipografa
Liza Daly
Vice-President of Engineering
Safari Books Online
24-07-2012
EPUB 3.0, la ms reciente revisin del estndar de formato XML de la industria para e-book,
salta a la moderna tecnologa web adoptando HTML5 y CSS3. Mantiene su enfoque en kits de
herramientas basados en XML al requerir serializacin de XHTML y aadir vocabularios XML
adicionales, como MathML y SVG. EPUB 3 ofrece una variedad de opciones para el desarrollo
de publicaciones nativas digitales avanzadas. En este artculo, aprenda a crear pginas ricas
en diseos utilizando algunos recursos nuevos en EPUB 3.
Introduccin
EPUB es el formato XML para libros digitales "reflowable" y publicaciones estandarizadas por el
International Digital Publishing Forum (IDPF). En 2009, EPUB 2 era el formato de eBook de hecho
utilizado por la mayora de los principales retailers de eBook y sistemas de lectura.
Los archivos EPUB ZIP se empaquetan bajo una estructura bien definida. Cada componente tiene
su propia especificacin, y se unen bajo la etiqueta EPUB comn:
Especificacin de contenedor
Define el mtodo por el cual se empaqueta un documento EPUB.
Publicacin EPUB
Incluye todos los metadatos acerca de los contenidos del eBook, incluyendo: manifiesto del
paquete, ttulo bsico, metadatos del autor y, en EPUB 3, definiciones sobre a cules
recursos avanzados la publicacin espera dar soporte, como JavaScript o MathML. Esto se
denomina archivo de Open Container Format.
Documentos de contenidos de EPUB
Los actuales archivos XHTML y CSS que componen el contenido de la publicacin. Los
documentos de contenidos tambin incluyen recursos binarios como imgenes, multimedios,
y, potencialmente, documentos XML definidos externamente.
developerWorks ibm.com/developerWorks/ssa/
Crear publicaciones con bastantes diseos en EPUB 3 con
HTML5, CSS3 y MathML
Pagina 2 de 23
Abreviaciones comnmente utilizadas
CSS: Cascading stylesheet
DTD: Document Type Definition
HTML: Hypertext Markup Language
JAR: Java archive
OPF: Open Packaging Format
SVG: Scalable Vector Graphics
XHTML: Extensible Hypertext Markup Language
XML: Extensible Markup Language
XSLT: Extensible Stylesheet Language Transformations
En este artculo se exploran algunos de los recursos de EPUB 3. Usted aprender acerca de la
validacin de documentos EPUB 3, navegacin, jerarqua y directrices de desarrollo. Un ejemplo
describe el proceso de adaptacin de una pgina de un libro para nios en EPUB 3.
Descargue los ejemplos de este artculo.
Prerrequisitos
El cdigo de muestra y los ejemplos de este artculo suponen un conocimiento bsico de la
especificacin EPUB 2 y, en general, de las publicaciones basadas en XML. Consulte Recursos
para detalles sobre EPUB 2.
Cambios en EPUB 3
EPUB 2 proporciona todas las capacidades de diseo y formato de HTML4 y CSS2, que son
ms que suficientes para publicaciones de texto pesadas. Sin embargo, editores y autores
encontraron que EPUB 2 no poda manejar muchos tipos de contenido y casos de uso, como
libros de multimedios, libros con diseo complejo, publicaciones matemticas y documentos
interactivos. IDPF y la comunidad de eBook publicaron la especificacin para EPUB 3 en octubre
de 2011.
Sistemas de lectura EPUB 3
Hasta diciembre de 2011 no existan sistemas de lectura con soporte oficial para EPUB
3. No obstante, muchos sistemas de lectura escritos utilizando motores de navegacin
compatibles con HTML5, como WebKit, dan soporte a la mayor parte de la especificacin
de Contenidos de Documentos de EPUB 3. Se recomienda que utilice un navegador
reciente basado en un moderno motor de procesamiento de HTML para probar y desarrollar
documentos EPUB 3.
Este artculo incluye tcnicas para crear polyfills (shims) inofensivos para producir resultados
compatibles con EPUB 3 aun sin un sistema de lectura EPUB 3 completo.
Los principales cambios de EPUB 2 a EPUB 3 son:
El esquema necesario para documentos de contenido de EPUB 3 cambi de XHTML 1.1 a la
serializacin XHTML de HTML5. Era un requerimiento fundamental incluir los elementos de
multimedios de HTML5 (<video>, <audio>y <canvas>).
ibm.com/developerWorks/ssa/ developerWorks
Crear publicaciones con bastantes diseos en EPUB 3 con
HTML5, CSS3 y MathML
Pagina 3 de 23
El rango permisible de CSS en documentos de contenido de EPUB 3 se ampli desde un
subconjunto de CSS2.1 a un conjunto de mdulos maduros de CSS3 pertinentes para
documentar autoras.
MathML se aadi a XHTML5 y SVG como un tipo de contenido de primer orden.
Soporte para fuentes incorporadas ahora es necesario para los sistemas de lectura con
un puerto de visualizacin de CSS. Web Open Font Format se aadi como un formato de
fuentes aceptable.
Soporte explcito para modos de escritura y scripts no occidentales, incluyendo diseo
vertical en scripts japoneses y otros asiticos.
Soporte opcional para la interactividad mediada por JavaScript mediante un modelo de
seguridad personalizado.
Los metadatos permisibles en documentos de publicacin se ampliaron, incluyendo algn
soporte para Resource Description Frameworkinattributes (RDFa).
El documento de la tabla de contenidos (TOC) de EPUB 2 Navigational Center eXtended
(NCX) se elimin en favor de un TOC basado en XHTML5. (El NCX an se permite para
compatibilidad con versiones anteriores.)
Validacin de documentos EPUB 3
Debido a que EPUB 3 se basa en serializaciones XML para la mayora de los tipos de contenido,
puede aprovecharse para validacin automtica. La herramienta EpubCheck es el mtodo
convencional para probar la validez y conformidad de los documentos EPUB. EpubCheck es
una biblioteca de fuente abierta (Berkeley Software Distribution-licensed) Java . Una versin
preliminar para desarrolladores est disponible para usar con documentos EPUB 3 y se utiliza en
todo este artculo. Consulte Recursos para obtener los enlaces a la versin ms reciente.
Se recomienda enfticamente que utilice la extensin .xhtml para todos los documentos de
contenido de EPUB. Los navegadores no interpretarn el contenido HTML como application/
xhtml+xml sin esa extensin. El modo de procesamiento de XML es necesario al trabajar con
muchos de los recursos demostrados en el presente artculo, como espacios de nombres de CSS.
Normalmente, usted interacta con EpubCheck a travs de la lnea de comandos, como se
muestra a continuacin.
$ java -jar epubcheck-3.0b3.jar sample.epub
Epubcheck Version 3.0b3
No errors or warnings detected.
Si obtiene el error java.lang.NoClassDefFoundError: com/thaiopensource/validate/
SchemaReader en respuesta, asegrese de que la biblioteca o directorio que vino con la
distribucin de EpubCheck est en el mismo directorio que el archivo JAR de EpubCheck.
EpubCheck 3 puede validar un nico subcomponente del paquete EPUB individualmente, como
en el Listado1. Este es un recurso muy til, utilizado en los ejemplos de este artculo, que puede:
Ayudar a aislar problemas.
developerWorks ibm.com/developerWorks/ssa/
Crear publicaciones con bastantes diseos en EPUB 3 con
HTML5, CSS3 y MathML
Pagina 4 de 23
Disminuir la necesidad del tedioso reempaquetado de EPUB en un nuevo ZIP solo para
validarlo.
Incorporarse en una infraestructura de prueba de unidad para una cadena de herramientas
que genera un tipo de archivo nico.
Listado 1. Ejecutando EpubCheck 3 contra un nico tipo de archivo
$ java -jar ~/src/epubcheck-3.0b3.jar sample-toc.xhtml -mode nav
Epubcheck Version 3.0b3
WARNING: sample-toc.xhtml: File is validated as a single file of type nav and version 3!
Only a subset of the available tests is run!
No errors or warnings detected.
Navegacin y jerarqua en documentos EPUB 3
Aunque el archivo NCX TOC en EPUB 2 daba soporte a un amplio conjunto de marcas para
navegacin jerrquica y asignacin de pginas, se derivaba del Digital Talking Book de Digital
Accessible Information System (DAISY) (una especificacin para producir eBooks accesibles
para personas con problemas de lectura). La dependencia en el correctamente especificado
formato DAISY pretenda facilitar el desarrollo de lectores de eBook que pudieran dar soporte
a una amplia accesibilidad. En ese sentido, el NCX funcionaba perfectamente. Sin embargo, el
DTD NCX es bastante grande e incluye recursos no pertinentes a EPUB 2. La confusin sobre
qu partes del NCX eran necesarias en EPUB result en fragmentacin indeseable y extensiones
propietarias por algunas empresas de retail de eBook y proveedores de sistemas de lectura.
EPUB 3 elimin el NCX y lo reemplaz por el EPUB Navigational Document (END). El Listado 2
muestra un ejemplo. El END utiliza XHTML5 en vez de un DTD personalizado, reduciendo as
la cantidad de formatos XML a implementar y validar. Los atributos personalizados de EPUB se
suministran mediante los espacios de nombres de EPUB (http://www.idpf.org/2007/ops).
Listado 2. Un END mnimo
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:epub="http://www.idpf.org/2007/ops">
<head>
<title>Example</title>
</head>
<body>
<section epub:type="frontmatter toc">
<header>
<h1>Contents</h1>
</header>
<nav epub:type="toc" id="toc">
<ol>
<li id="chapter_001">
<a href="chapter_001.html">Chapter 1</a>
</li>
</ol>
</nav>
</section>
</body>
</html>
El elemento <nav> de HTML5 es necesario (como lo es epub:type valor toc).
ibm.com/developerWorks/ssa/ developerWorks
Crear publicaciones con bastantes diseos en EPUB 3 con
HTML5, CSS3 y MathML
Pagina 5 de 23
Declarando el END
Incluir el END en una publicacin mediante declaracin del item en el manifiesto con el valor de
properties de nav, como en el Listado 3.
Listado 3. Incluyendo un END en un EPUB Package Document (OPF)
<manifest>
<item id="toc"
properties="nav"
href="toc.html"
media-type="application/xhtml+xml"/>
<item id="chapter_001"
href="chapter_001.html"
media-type="application/xhtml+xml"/>
...
</manifest>
La inclusin de un archivo END es necesaria en EPUB 3. Tambin se puede incluir un archivo
NCX para compatibilidad con versiones anteriores, pero los procesadores de EPUB 3 deben
ignorar el NCX en favor del END.
Presentacin visual del END
A diferencia del NCX, se puede incluir el END en el flujo del contenido del libro. En EPUB 2, si se
quera mostrar a los usuarios una TOC personalizada (en vez de depender del soporte integrado
de TOC en el eReader), se tena que producir dos copias del mismo contenido,una en el NCX
y una como un documento de contenido HTML. END elimina esta duplicacin y permite una gran
flexibilidad en la presentacin de alguna parte o todo el TOC en el flujo de contenido.
Para aadir el END al flujo de contenido, sencillamente inclyalo en spinede OPF, como en Listing
4.
Listado 4. Incluyendo el END en el flujo de lectura
<![CDATA[ <spine> <itemref idref="toc" /> <itemref idref="chapter_001" /> ... </spine>
En documentos con jerarquas profundas, como documentacin tcnica, tal vez desee incluir
todos los niveles de seccin en un TOC puramente funcional a la vez que muestra a los usuarios
solo las secciones de primer o segundo nivel en el flujo de contenido. Para ello, se utiliza el
atributo hidden de HTML5, como en el Listado 5, sobre los elementos que deben eliminarse de la
presentacin a los usuarios.
developerWorks ibm.com/developerWorks/ssa/
Crear publicaciones con bastantes diseos en EPUB 3 con
HTML5, CSS3 y MathML
Pagina 6 de 23
Listado 5. Eliminando subsecciones de la presentacin visual de un TOC
...
<nav xmlns:epub="http://www.idpf.org/2007/ops" epub:type="toc" id="toc">
<ol>
<li id="chapter_001">
<a href="chapter_001.html">Chapter 1</a> <ol hidden="hidden">
<li>
<a href="chapter_001.html#id1">Chapter 1 subsection</a>
<ol>
<li>
<a href="chapter_001.html#id1.1">Chapter 1 subsection 1</a>
...
Puede que se pregunte por qu no podra hacerlo mediante la propiedad de CSS display: none
. Debido a que EPUB se utiliza en una variedad de sistemas de lectura, incluidos los lectores de
pantalla no visuales o dispositivos Braille, no es necesario que todos los lectores den soporte a
CSS. La mayora de los navegadores web modernos dan soporte nativo a hidden . Es una buena
idea incluir CSS para configurar explcitamente la propiedad exhibir de estos elementos, como en
el Listado 6. Debido a que el archivo END es solo otro archivo HTML, se puede aadir CSS en el
headde HTML, al igual que con cualquier otra hoja de estilo.
Listado 6. Configurando la propiedad exhibir
/* Never display elements with the hidden attribute */ *[hidden] { display: none; }
En sistemas de lectura o navegadores no compatibles, la falta de estilo para el atributo hidden
resulta en todas las subsecciones que se muestran, como en la Figura 1.
Figura 1. TOC de END sin atributo oculto o CSS
En navegadores que dan soporte a hidden o despus de suministrar el shim CSS, la salida se
transforma, como en la Figura 2.
Figura 2. El TOC de END con atributo oculto aplicado
De manera predeterminada, la lista ordenada HTML genera un conjunto de listas numeradas.
Sin embargo, la especificacin de END define, " . . . el estilo de visualizacin predeterminado
ibm.com/developerWorks/ssa/ developerWorks
Crear publicaciones con bastantes diseos en EPUB 3 con
HTML5, CSS3 y MathML
Pagina 7 de 23
de elementos de la lista debe ser equivalente al CSS list-style: none." Para lograr esta
presentacin, aada otra regla al polyfill CSS de EPUB 3, como en el Listado 7.
Listado 7. Configurando el estilo de los elementos de lista
/* In a declared TOC list, never show list numbering */
nav#toc ol {
list-style-type: none;
}
Migrando de NCX a END mediante XSLT
Aunque el END de EPUB 3 ofrece ms opciones para el diseo y control, si migra desde un flujo
de trabajo EPUB 2 a uno EPUB 3, considere empezar la conversin desde los documentos NCX
existentes. Debido a que la entrada y salida de documentos son XML, esta es una aplicacin
perfecta para XSLT.
El Listado 8 proporciona la infraestructura bsica para la generacin de un documento HTML para
rellenar con el TOC.
Listado 8. Declarar los espacios de nombres necesarios para el NCX y END
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
exclude-result-prefixes="ncx xsl"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ncx="http://www.daisy.org/z3986/2005/ncx/"
xmlns:epub="http://www.idpf.org/2007/ops"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="ncx:ncx">
<html>
<head>
<title><xsl:apply-templates select="/ncx:ncx/ncx:docTitle/ncx:text"/></title>
</head>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
Observe la inclusin obligatoria del espacio de nombre http://www.idpf.org/2007/ops , que
normalmente tiene el prefijo epub. Este espacio de nombre se incluye principalmente para soporte
a la inflexin semntica de EPUB (adicional se refiere al propsito especfico que un elemento
tiene en un documento de contenido de EPUB). Si se utiliza EPUB 3, es recomendable usar
la expresividad disponible en el Vocabulario de Semntica Estructural para proporcionar un
contexto para el software de accesibilidad, as como para el procesamiento de mquina. Consulte
Recursos para obtener informacin sobre los valores incluidos en dicho vocabulario.
Para un ejemplo completo que muestre la conversin de otros tipos de mapa de pgina,
consulte la aplicacin nend de fuente abierta listada en Recursos.
Con el esquema bsico establecido, empiece a caminar por la jerarqua de TOC en los elementos
de NCX y salidas XHTML correspondientes. Aunque el NCX permite diferentes tipos de listas de
developerWorks ibm.com/developerWorks/ssa/
Crear publicaciones con bastantes diseos en EPUB 3 con
HTML5, CSS3 y MathML
Pagina 8 de 23
pginas, los libros EPUB normalmente incluyen solo el ncx:navMap. El extracto de plantilla en el El
Listado 9 muestra como producir un conjunto de nodos desde el ncx:navMap.
Listado 9. Produciendo el navMap
...
<!-- Generate a complete nav element and sub-list out of the navMap,
then recurse through the nodes -->
<xsl:template match="ncx:navMap">
<nav id="toc" epub:type="toc">
<xsl:copy-of select="@class"/>
<xsl:choose>
<xsl:when test="ncx:navLabel">
<xsl:apply-templates select="ncx:navLabel" mode="heading"/>
</xsl:when>
<xsl:otherwise>
<xsl:if test="self::ncx:navMap">
<h1>Table of Contents</h1>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
<ol>
<xsl:apply-templates select="ncx:navPoint|ncx:navLabel"/>
</ol>
</nav>
</xsl:template>
<xsl:template match="ncx:navPoint">
<xsl:text>
</xsl:text>
<li>
<xsl:copy-of select="@id|@class"/>
<!-- Every navPoint must have a navLabel and content -->
<a href="{ncx:content[1]/@src}">
<xsl:apply-templates select="ncx:navLabel"/>
</a>
<!-- Does this element have a sub-nav? -->
<xsl:if test="ncx:navPoint">
<ol>
<xsl:apply-templates select="ncx:navPoint"/>
</ol>
</xsl:if>
</li>
</xsl:template>
<!-- These nodes only contain text -->
<xsl:template match="ncx:navLabel|ncx:text">
<xsl:apply-templates/>
</xsl:template>
...
El Listado 10 proporciona un ejemplo de un NCX jerrquico.
Listado 10. Muestra de un NCX organizado jerrquicamente
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ncx PUBLIC "-//NISO//DTD ncx 2005-1//EN"
"http://www.daisy.org/z3986/2005/ncx-2005-1.dtd">
<ncx xmlns="http://www.daisy.org/z3986/2005/ncx/" version="2005-1" xml:lang="en">
ibm.com/developerWorks/ssa/ developerWorks
Crear publicaciones con bastantes diseos en EPUB 3 con
HTML5, CSS3 y MathML
Pagina 9 de 23
<head>
<meta name="dtb:uid" content="d989d60c-2302-40d1-9c85-1c028414342a" />
<meta name="dtb:depth" content="-1" />
<meta name="dtb:totalPageCount" content="-1" />
<meta name="dtb:maxPageNumber" content="-1" />
</head>
<docTitle>
<text>Middlemarch</text>
</docTitle>
<navMap>
<navPoint id="np1" playOrder="1">
<navLabel>
<text>Prelude</text>
</navLabel>
<content src="prelude.html"/>
</navPoint>
<navPoint id="np2" playOrder="2">
<navLabel>
<text>I: Miss Brooke</text>
</navLabel>
<content src="book1.html" />
<navPoint id="np3" playOrder="3">
<navLabel>
<text>Chapter 1</text>
</navLabel>
<content src="chapter1.html" />
</navPoint>
<navPoint id="np4" playOrder="4">
<navLabel>
<text>Chapter 2</text>
</navLabel>
<content src="chapter2.html" />
</navPoint>
...
La transformacin del archivo en el Listado 10 mediante el XSLT resulta en la salida en el Listado
11 a continuacin. Usted puede descargar los archivos de ejemplo.
Listado 11. Salida de la transformacin de NCX a END
<?xml version="1.0"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops">
<head>
<title>Middlemarch</title>
</head>
<body>
<nav id="toc" epub:type="toc">
<h1>Table of Contents</h1>
<ol>
<li id="np1">
<a href="prelude.html">Prelude</a>
</li>
<li id="np2">
<a href="book1.html">I: Miss Brooke</a>
<ol>
<li id="np3">
<a href="chapter1.html">Chapter 1</a>
</li>
<li id="np4">
<a href="chapter2.html">Chapter 2</a>
</li>
developerWorks ibm.com/developerWorks/ssa/
Crear publicaciones con bastantes diseos en EPUB 3 con
HTML5, CSS3 y MathML
Pagina 10 de 23
...
Debido a que los valores de @id se conservan desde el archivo original, usted debe ser capaz de
escribir herramientas de validacin para garantizar que todos los nodos originales son capturados.
Otras opciones para posteriores transformaciones incluyen:
Actualizacin de metadatos en el archivo OPF desde el antiguo esquema Dublin Core al
esquema meta de @property , como se define en la especificacin Publications 3.0 (consulte
Recursos).
Migrar el contenido obsoleto de la guide de OPF al recurso landmarks en el END.
Eliminar referencias en el spine de OPF en el archivo NCX (a menos que est produciendo
un documento compatible con versiones anteriores).
Normalmente, no es necesario modificar el contenido XHTML 1.1 para producir documentos de
contenido compatibles con EPUB 3. Sin embargo, cuando se disponga de informacin semntica,
como al tirar informacin de un sistema de administracin de contenido o de otro repositorio de
documentos, considere aplicar inflexin semntica a la salida. La especificacin EPUB 3 cuenta
con ms informacin sobre inflexin semntica (consulte Recursos).
Directrices de desarrollo EPUB 3
Hasta que los sistemas de lectura de EPUB 3 estn disponibles, es prematuro recomendar
mejores prcticas especficas. Sin embargo, EPUB 3 est basado en tecnologas web de rpida
maduracin. Ya hay suficiente informacin para hacer recomendaciones generales acerca de
cmo utilizar las tecnologas subyacentes y cundo utilizar las mejores prcticas existentes para
producir un marcado semntico slido y accesible.
Cundo producir EPUB 3
Debe usted utilizar EPUB 2 o EPUB 3 para eBooks producidos hoy? Afortunadamente, la
compatibilidad con versiones anteriores era un objetivo de diseo de EPUB 3. Usted debe
beneficiarse de las mejoras semnticas y de los metadatos enriquecidos en EPUB 3 mientras
que todava produce documentos que pueden leerse en eReaders ms antiguos. En la prctica,
tal vez no sea posible vender dichos contenidos en algunos mercados de eBooks; pueden no
aceptar EPUB 3 debido a reglas de negocio. Sin embargo, el "sideloading" de dichos contenidos
puede esperarse que funcione para la mayora de los sistemas de lectura en conformidad
con EPUB 2. EPUB 3 tambin fue diseado para ser compatible con versiones posteriores en
trminos de soporte para el sistema de lecturaun sistema de lectura EPUB 3 debe dar soporte a
documentos EPUB 2 vlidos.
Muchos sistemas de lectura ya dan soporte a un tipo de "EPUB 2.5," donde se permite el marcado
HTML5 (especialmente en relacin con elementos de video, audioy canvas ). Se debe esperar
que las plataformas eReading con motores de navegador web, como Apple iBooks, presenten
con xito muchos de los elementos permitidos en documentos de contenido de EPUB 3. Como
con cualquier contenido web innovador, pruebe su contenido en tantos lectores como sea posible
antes del release.
ibm.com/developerWorks/ssa/ developerWorks
Crear publicaciones con bastantes diseos en EPUB 3 con
HTML5, CSS3 y MathML
Pagina 11 de 23
Diseo de eBook adaptable
El mdulo Media Query de CSS3 es un interesante nuevo componente de EPUB 3. Media
Query permite a los autores especificar que un conjunto de reglas y propiedades se aplica solo
a una condicin particular de visualizacin, normalmente basada en el tamao del puerto de
visualizacin. Usted tambin puede utilizar Media Query para apuntar a proporciones especficas
de altura y ancho, como retrato vs paisaje.
Estos recursos ya son utilizados en algunos sitios web para proporcionar experiencias de usuario
mejoradas en dispositivos mviles. Tomados en conjunto, estos principios se denominan diseo
web adaptable. Las tcnicas han demostrado ser eficaces en la web y, de alguna manera, son
an ms aplicables a los diseadores de libros. Los diseadores de libros bosquejan desde hace
dcadas de investigacin y experimentacin cmo presentar eficazmente informacin visual
en diversos tamaos y orientaciones. (Consulte Recursos para obtener ms informacin sobre
diseo web adaptable.)
La mayor parte de los eBooks contienen exclusiva o principalmente texto. Sin embargo, muchos
tipos de publicaciones requieren un diseo ms rico por razones de marketing o por la naturaleza
esencial del contenido. Los libros que contienes muchos diseos han sido considerados malos
candidatos para la conversin de eBook, pero EPUB 3 y su uso de HTML5 y CSS3 permiten un
diseo avanzado. Con gran poder viene una gran responsabilidad, sin embargo. No se puede
descuidar a los usuarios de dispositivos mviles que quieren leer el contenido fcilmente y an
con diseos llamativos. Aqu es donde las tcnicas combinadas de diseo de CSS3 y el diseo
adaptable de eBook se juntan.
Diseo adaptable avanzado en EPUB 3
Libros ilustrados, libros de cocina, libros de texto y de poesa han sido difciles de convertir en
contenido "reflowable". En esta seccin, vea cmo adaptar la pgina de un libro de poesa para
nios, en la Figura 3, en EPUB 3. La palabra adapt es utilizada en lugar de convert, porque el
proceso es mucho ms artstico que tcnico.
developerWorks ibm.com/developerWorks/ssa/
Crear publicaciones con bastantes diseos en EPUB 3 con
HTML5, CSS3 y MathML
Pagina 12 de 23
Figura 3. Una pgina de Abroad por Thomas Crane (imagen de dominio
pblico del Archivo de Internet)
El enfoque consiste en capturar el texto como XHTML y luego extraer algunas de las imgenes
para evocarpero no reproducirel diseo original. Debido a que EPUB 3 supone un contexto de
procesamiento XHTML5/CSS3, puede utilizar un marcado semntico mnimo en vez de acomodar
muchos navegadores antiguos, como lo hara en la web abierta. El Listado 12 muestra el marcado
XHTML para el contenido.
Listado 12. Marcado de poesa
<?xml version="1.0"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops">
<head>
<title>Example of Media Query in EPUB 3</title>
<link rel="stylesheet" type="text/css" href="childrens-book-style.css" />
</head>
<body>
<div epub:type="chapter">
<h1>The Swans.</h1>
<p>
<span>"Ho! pretty swans,</span>
<span>Do you know, in our Zoo'</span>
<span>The swans of old England</span>
<span>Are just like you?"</span>
</p>
<p>
<span>"Don't tell me!"</span>
<span>Said a cross old bird;</span>
<span>"I know better,</span>
<span>The thing's quite absurd.</span>
</p>
<p>
<span>Their figures, I'm sure,</span>
<span>Are not worth a glance:</span>
<span>If you want to see style,</span>
<span>You <em>must</em> come to France."</span>
</p>
<p>
<span>With a scornful whisk</span>
<span>The swan turned tail,</span>
ibm.com/developerWorks/ssa/ developerWorks
Crear publicaciones con bastantes diseos en EPUB 3 con
HTML5, CSS3 y MathML
Pagina 13 de 23
<span>Spread its wings to the breeze</span>
<span>And was off full-sail.</span>
</p>
<p>
<span>"Ho! pretty swan,</span>
<span>Do you know, in our Zoo'</span>
<span>The swans are not half</span>
<span>So conceited as you?"</span>
</p>
</div>
</body>
</html>
No se especifican imgenes. Para hacer ms fcil el diseo adaptable, las imgenes se
proporcionarn en el CSS. Aunque muchos defensores del desarrollo web adaptable propugnan
una estrategia de "mvil primero", puede ser ms fcil empezar por adaptar el contenido de
impresin con una pantalla de tamao de escritorio o pizarra digital. Para el ejemplo, se supone
que la vista predeterminada es una pantalla de formato grande. El Listado 13 muestra el CSS, y la
Figura 4 muestra el eBook resultante como se presenta en iBooks en un iPad de Apple.
Listado 13. CSS para un diseo de tamao de pizarra digital
@namespace epub "http://www.idpf.org/2007/ops";
body {
font-family: Georgia, serif;
margin: 0;
padding: 0;
}
/* Select the entire <div epub:type> and apply the background
images at various positions relative to the text. */
div[epub|type="chapter"] {
background-image: url('childrens-book-swans.jpg'),
url('childrens-book-flowers.jpg');
background-position: 100% 50%, bottom center;
background-size: 50% auto, auto auto;
background-repeat: no-repeat, repeat-x;
background-color: #fdefc2;
padding: 2em;
}
p {
font-size: .75em;
text-align: left;
}
p:last-child {
padding-bottom: 2em;
}
h1 {
margin-top: 0;
text-transform: uppercase;
font-weight: 200;
}
p > span {
display: block;
}
developerWorks ibm.com/developerWorks/ssa/
Crear publicaciones con bastantes diseos en EPUB 3 con
HTML5, CSS3 y MathML
Pagina 14 de 23
/* Use the CSS Selector module to apply rule-based formatting to the
poetry content, generating alternating rows of indented text. */
p > span:nth-child(even) {
text-indent: 1em;
}
El ejemplo utiliza la sintaxis de @namespace del mdulo Espacios de nombres de CSS. Los
espacios de nombres de CSS permiten estilos de elementos y atributos de espacios de nombres
prefijados. Aunque no es necesario utilizar espacios de nombres de CSS en EPUB 3, es
conveniente adjuntar estilos a los elementos con flexin semntica EPUB aplicada (el atributo
@epub:type ) en vez de crear clases separadas solo para estilos. El documento HTML debe
usar una extensin .xhtml para que la mayora de los navegadores procesen correctamente los
espacios de nombre.
Figura 4. Pgina del libro Abroad presentado en una pantalla de tamao de
pizarra digital
Con la imagen alineada a la derecha y un borde decorativo grande, el diseo en la Figura 4 podra
decirse que evoca muy bien la pgina original. Sin embargo, esta disposicin no es adecuada
para un dispositivo mvil en modo retrato, donde el ancho ser insuficiente para la imagen y
el texto. Para dispositivos mviles, que suelen tener unos 480 pxeles de ancho, se pueden
reemplazar varios elementos, como en el Listado 14. Con el CSS en el Listado 14:
ibm.com/developerWorks/ssa/ developerWorks
Crear publicaciones con bastantes diseos en EPUB 3 con
HTML5, CSS3 y MathML
Pagina 15 de 23
La imagen de los cisnes se disminuye y aparece centrada antes del texto. La imagen
decorativa en la parte inferior se disminuye para evitar que sobrecargue el contenido del
poema.
El ttulo se disminuye y se centraliza.
El texto del poema va a estar ms centralizado en vez de muy alineado a la izquierda.
Listado 14. CSS para diseo de retrato tamao de telfono
@media screen and (max-width:480px) {
div[epub|type="chapter"] {
background-position: top center, bottom center;
background-size: 30% auto, 50% auto;
padding: 1em;
margin: auto;
text-align: center;
}
h1 {
margin: 50% auto 0 0;
font-size: 1em;
text-align: center;
}
p {
margin-left: 25%;
}
}
La anterior directriz sigue el CSS anterior, por lo que solo es necesario reemplazar las
propiedades cuyos valores han cambiado en el nuevo diseo. La Figura 5 muestra el resultado
distribuido en dos pginas.
developerWorks ibm.com/developerWorks/ssa/
Crear publicaciones con bastantes diseos en EPUB 3 con
HTML5, CSS3 y MathML
Pagina 16 de 23
Figura 5. Pgina del libro Abroad presentado en pantalla tamao de telfono
La presentacin angosta funciona bien en un diseo de retrato, pero un poema corto fcilmente
puede colocarse entero en la mayora de las pginas de paisaje. Usted puede aadir una consulta
de medios final para permitir a los dispositivos orientados a paisaje disear el poema en varias
columnas. Este recurso forma parte del mdulo de Texto de CSS y es parte esencial del soporte a
CSS de EPUB 3. El CSS para el diseo de paisaje de tamao de telfono est en el Listado 15.
Listado 15. CSS para diseo de paisaje de tamao de telfono
@media screen and (orientation:landscape and max-width:480px) {
div[epub|type="chapter"] {
background-position: 97% 40%, bottom center;
background-size: 20% auto, 50% auto;
/* For now we are required to use the vendor-prefixed versions in most browsers */
-webkit-column-count: 2;
-moz-column-count: 2;
column-count: 2;
-webkit-column-gap: 0;
-moz-column-count: 0;
column-gap: 0;
padding: 2em 4em 5em 4em;
}
}
La Figura 6 muestra el resultado presentado.
ibm.com/developerWorks/ssa/ developerWorks
Crear publicaciones con bastantes diseos en EPUB 3 con
HTML5, CSS3 y MathML
Pagina 17 de 23
Figura 6. Pgina del libro Abroad presentado en una pantalla tamao de
telfono en orientacin de paisaje
Incluyendo MathML en publicaciones
En EPUB 2, las publicaciones podan incluir contenido matemtico solo como imgenes
rasterizadas o SVG. Aunque la matemtica de SVG puede producir resultados llamativos,
resulta impenetrable para los lectores de pantalla, adems de una escritura difcil. Las imgenes
rasterizadas son peores; no proporcionan ni accesibilidad ni buena escala para las diferentes
fuentes y tamaos de pantalla.
EPUB 3 incluye MathML como un tipo de contenido nativo de EPUB. El marcado de MathML
puede proporcionarse sin cualquier retroceso a otro tipo, como una imagen rster. Los lectores
EPUB 3 son necesarios para dar soporte por lo menos a las presentaciones de MathML, en la
mayora de los casos.
Aunque MathML es un tipo de contenido esencial, es necesario que se declare cules pginas
XHTML tienen MathML en el archivo OPF, como en el Listado 16.
Listado 16. Declaracin de contenido MathML en el archivo OPF
<manifest>
<item href="mathml-style.css" id="css1" media-type="text/css"/>
<item href="mathml.xhtml" properties="mathml"
id="page1" media-type="application/xhtml+xml"/>
<item href="toc.ncx" id="ncx" media-type="application/x-dtbncx+xml"/>
<item id="toc" properties="nav"
href="toc.xhtml" media-type="application/xhtml+xml"/>
</manifest>
El Listado 17 muestra una ecuacin simple. Aunque algunos navegadores web ahora dan
soporte a MathML en un contexto de HTML5 (sin espacios de nombres), EPUB 3 requiere que el
contenido MathML sea declarado en el espacio de nombre correcto de http://www.w3.org/1998/
Math/MathML.
Listado 17. MathML en documento de contenido de EPUB 3
<?xml version="1.0"?>
developerWorks ibm.com/developerWorks/ssa/
Crear publicaciones con bastantes diseos en EPUB 3 con
HTML5, CSS3 y MathML
Pagina 18 de 23
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:epub="http://www.idpf.org/2007/ops"
xmlns:m="http://www.w3.org/1998/Math/MathML">
<head>
<title>Example of MathML in EPUB 3</title>
<link rel="stylesheet" type="text/css" href="mathml-style.css" />
</head>
<body>
<m:math display="block">
<m:mrow>
<m:mi>x</m:mi>
<m:mo>=</m:mo>
<m:mfrac>
<m:mrow>
<m:mo form="prefix">-</m:mo>
<m:mi>b</m:mi>
<m:mo></m:mo>
<m:msqrt>
<m:msup>
<m:mi>b</m:mi>
<m:mn>2</m:mn>
</m:msup>
<m:mo>-</m:mo>
<m:mn>4</m:mn>
<m:mo>#</m:mo>
<m:mi>a</m:mi>
<m:mo>#</m:mo>
<m:mi>c</m:mi>
</m:msqrt>
</m:mrow>
<m:mrow>
<m:mn>2</m:mn>
<m:mo>#</m:mo>
<m:mi>a</m:mi>
</m:mrow>
</m:mfrac>
</m:mrow>
</m:math>
</body>
</html>
La Figura 7 muestra el resultado en iBooks. Puede ser necesario incorporar una fuente que
incluya los smbolos matemticos apropiados para que todos los tipos de ecuaciones sean
correctamente presentados. Consulte Recursos para informacin adicional sobre Fuentes STIX
para publicaciones cientficas.
Figura 7. Ecuacin matemtica simple presentada en EPUB 3
Muchos sistemas que producen MathML pueden utilizar entidades nombradas que forman parte
del DTD de MathML 1.0, como &PlusMinus;. Es necesario convertir estas entidades en entidades
ibm.com/developerWorks/ssa/ developerWorks
Crear publicaciones con bastantes diseos en EPUB 3 con
HTML5, CSS3 y MathML
Pagina 19 de 23
numricas antes de incluirlas en una publicacin de EPUB 3. Como DTDs externos, aun para
tipos de contenidos esenciales, no deben incluirse en archivos EPUB.
Temas para seguir explorando
EPUB 3 ofrece muchas opciones para el desarrollo de publicaciones nativas digitales avanzadas.
Tal vez desee explorar los siguientes temas:
Utilizando canvas de HTML5 combinado con JavaScript para libros interactivos.
Si est interesado en la Web Semntica, familiarcese con las opciones de flexin semntica
en el Vocabulario de Semntica Estructural de EPUB 3.
La semntica de HTML5 y los roles de Accessible Rich Internet Applications Suite (WAI-
ARIA) ofrecen un mtodo atrayente para enriquecer contenidos para consumo mediante
dispositivos de ayuda o algoritmos de aprendizaje automtico.
EPUB 3 se est extendiendo de manera activa. Es probable que recursos de los nuevos mdulos
de CSS, como Regiones de CSS, se incorporen en futuras revisiones.
developerWorks ibm.com/developerWorks/ssa/
Crear publicaciones con bastantes diseos en EPUB 3 con
HTML5, CSS3 y MathML
Pagina 20 de 23
Descargas
Descripcin Nombre tamao
XSLT and sample files for NCX transformation ncx-to-end.zip 5KB
A sample EPUB 3 demonstrating advanced CSS3 layout childrens-book-epub.zip 139KB
A sample EPUB 3 demonstrating MathML mathml-epub.zip 3KB
ibm.com/developerWorks/ssa/ developerWorks
Crear publicaciones con bastantes diseos en EPUB 3 con
HTML5, CSS3 y MathML
Pagina 21 de 23
Recursos
Aprender
Build a digital book with EPUB (Liza Daly, developerWorks, julio de 2011). Aprenda sobre el
formato EPUB en detalle.
EPUB 3 specification: Obtenga una visin general de la actual revisin del estndar de
EPUB.
EPUB Publications 3.0 Recommended Specification: Lea sobre la semntica en nivel de
publicacin y los requerimientos de conformidad para EPUB 3, incluyendo el formato
del Paquete de Documentos y reglas para cmo este documento y otros Recursos de
Publicaciones sea asocian para crear una Publicacin en conformidad con EPUB.
EPUB 3 Structural Semantics Vocabulary: Aprenda ms sobre el conjunto de propiedades
relacionadas a la descripcin de semntica estructural de trabajos escritos.
HTML5 for Publishers (Sanders Kleinfeld, O'Reilly Media, 2011): Obtenga este libro EPUB
gratuito que demuestra el uso de la interactividad basada en canvas y otros interesantes
recursos de EPUB 3.
Responsive Web Design por Ethan Marcotte: Explore las tcnicas y los principios de diseo
de CSS, incluyendo cuadrculas fluidas, imgenes flexibles y consultas de medios.
New to XML? Obtenga los recursos necesarios para aprender XML.
XML area on developerWorks: Encuentre los recursos que necesita para avanzar en la
arena de XML, incluyendo DTDs, esquemas y XSLT. Consulte XML technical library donde
encontrar una amplia variedad de artculos tcnicos, consejos, tutoriales, estndares y
Redbooks de IBM.
Certificacin IBM XML: Conozca cmo puede usted convertirse en un Desarrollador
Certificado IBM en XML y en tecnologas relacionadas.
developerWorks technical events and webcasts: Mantngase actualizado con la tecnologa
en estas sesiones.
developerWorks on-demand demos: Asista a demostraciones que van desde instalacin
y configuracin de productos para principiantes hasta funcionalidades avanzadas para
desarrolladores experimentados.
developerWorks on Twitter: nase hoy para seguir los tweets de developerWorks.
developerWorks podcasts: Escuche interesantes entrevistas y discusiones para
desarrolladores de software.
developerWorks on-demand demos: Observe demostraciones que van desde la instalacin
de productos y configuracin para principiantes hasta funcionalidades avanzadas para
desarrolladores experimentados.
Obtener los productos y tecnologas
EpubCheck: Descargue la versin reciente del validador para trabajar con documentos de
EPUB 2 y EPUB 3.
nend: Obtenga la suite completa de las herramientas XSLT y Python para convertir archivos
NCX en ENDs.
STIX Fonts: Utilice el conjunto completo de fuentes que sirve a la comunidad cientfica y de
ingeniera.
developerWorks ibm.com/developerWorks/ssa/
Crear publicaciones con bastantes diseos en EPUB 3 con
HTML5, CSS3 y MathML
Pagina 22 de 23
IBM product evaluation versions: Descargue o vaya a explore the online trials in the IBM
SOA Sandbox y obtenga experiencia prctica en herramientas de desarrollo de aplicaciones
y en productos de middleware de DB2, Lotus, Rational, Tivoli y WebSphere.
Comentar
developerWorks profile: Cree hoy su perfil y vaya a set up a watchlist.
XML zone discussion forums: Participe en cualquiera de las diferentes discusiones
relacionadas con XML.
En comunidad developerWorks: Conctese con otros usuarios developerWorks mientras
explora los blogs, foros, grupos y wikis dirigidos a desarrolladores.
ibm.com/developerWorks/ssa/ developerWorks
Crear publicaciones con bastantes diseos en EPUB 3 con
HTML5, CSS3 y MathML
Pagina 23 de 23
Sobre el autor
Liza Daly
Liza Daly ocupa el cargo de Vice-President of Engineering en Safari Books Online
y es una experiente ingeniera de software en aplicaciones web y publicaciones
digitales. Es fundadora de Threepress Consulting, una empresa editora de software;
en 2010 public Ibis Reader, el primer eReader mvil en HTML5. Es miembro del
consejo directivo del International Digital Publishing Forum (FIAM), la organizacin
que patrocina y desarrolla la especificacin de eBook de EPUB.
Copyright IBM Corporation 2012
(www.ibm.com/legal/copytrade.shtml)
Marcas
(www.ibm.com/developerworks/ssa/ibm/trademarks/)

Anda mungkin juga menyukai