W3C

Bert Bos | CSS pour des livres (numériques)

CSS pour des livres (numériques)

Cascading Style
   SheetsStatue de Gutenberg à Strasbourg (photo de AlteRimoldi)

Ce que CSS peut déjà ou bientôt faire pour la mise en page des livres (imprimés ou numériques)

Bert Bos (W3C) <bert@w3.org>

Presenté à : Kiwi Party 2013
Ville : Strasbourg, France
Date : 28 juin 2013

Gutenberg a habité longtemps ici, à Strasbourg. Regardons donc un peu si CSS permet déjà aux editeurs du Web d'être ses dignes successeurs…

HTML a été fait pour être independent des terminaux et de la mode de lecture : sur papier, sur écran, en synthèse vocale, en braille, sur un téléviseur… Et CSS aussi était prévu pour créer des styles pour chacun de ces « médias. » CSS a effectivement des propriétés pour la synthèse vocale, et quelques-uns pour des pages imprimés. Mais pour imprimés avec la même mise en page et la même qualité que Gutenberg au XVe siècle, il manque encore des fonctionalités.

Et pourtant les grands éditeurs utilisent de plus en plus CSS pour imprimés des livres. Et l'IDPF, l'organisation derrière la norme EPUB, aussi a choisi CSS pour la mise en pages des livres, des livres numériques (ou « e-books ») dans ce cas.

En fait, ils le font avec des fonctionalités encore en developpement, qui sont implementées expérimentalement.

Demo

Transformer un navigateur traditionnel en un lecteur de livres numeriques

Ce demo montre une fonctionalité prevue pour CSS, mais les propriétés et mots clés exacts sont encore en discussion. Ce demo utilise une implementation experimentale dans Opera 12 (« Scroll is Pan »).

La fin de la barre de défilement ?

De plus en plus de livres sont faits avec CSS

Les lecteurs de livres numériques utilisent CSS

On peut enfin imprimer une page d'HTML ?

Les navigateurs traditionnels, hors Opera, ne sont pas faits pour cette mode de lecture. Imprimer un document depuis un navigateur ne donne pas des résultats très convaincants. Mais les mondes ne sont pas si séparés que ça non plus : Opera implémente une propriété CSS en développement qui permet d'afficher un document (ou un élément) en mode livre. Et plusieurs fabricants de lecteurs de livres ont pu ajouter les fonctionnalités requises à Webkit.

Contexte historique: le début

Avant ±2010…

CSS :
des documents interactifs (navigateurs, aide en ligne…)
XSL (XSLT + XSL-FO) :
des documents et livres imprimés

→ CSS peu développé pour des documents imprimés ou des livres numériques

Contexte historique: aujourd'hui

Maintenant :

Media interactifs et statiques

Media (@media):

Quelques logiciels

Papier ou PDF

Lecteurs EPUB

Editors EPUB

Autres

* = Open Source

Cette liste montre quelques logiciels et terminaux qui utilisent CSS pour mettre en page des documents sur plusieurs pages, comme dans un livre.

Opera Reader n'est pas une version d'Opera, mais c'est le nom donné a cette fonctionalité d'Opera de montrer un document, ou un élément, sur plusieurs pages, comme un lecteur de livres numeriques. Une option permet à l'utilisateur d'associer un geste du doigt ou de la souris à l'action de tourner une page (en plus des touches du clavier).

Les fonctionalités existantes

Les colonnes : columns

Deux façons:

(Aussi sur écran, mais moins utile)

Sauts de page : page-break-*

page-break-before, page-break-after, page-break-inside

H2 { break-after: avoid }

Éviter des veuves & orphelines : widows/orphans

P {
 widows: 2;
 orphans: 2 }

« 2 » est la valeur par défaut

Les marges de la page : @page

@page { margin: 2cm 1.5cm 2.5cm 1.5cm }
@page {
 margin-top: 2cm;
 margin-right: 1.5cm;
 margin-bottom: 2.5cm;
 margin-left: 1.5cm }

(Aussi en media = projection)

Pages recto-verso

@page :left  { margin: 2cm 2.5cm 2.5cm 1.5cm }
@page :right { margin: 2cm 1.5cm 2.5cm 2.5cm }
@page :first { ... }

Numéro de page

@page {
  @page-bottom {
    content: counter(page) } }

« page » est defini par CSS

Les titres courants : @page-top etc.

@page:right {
  @top {
    content: string(chapter);
    font-style: italic }
  @bottom-right {
    content: counter(page, lower-roman) } }
h2 {
  string-set: chapter contents;
  page-break-before: right }

Fonctionalités en developpement

Césures : hyphens

hyphens : none :
supprime toute césure
hyphens : manual :
seulement U+00AD (&shy;), U+2010, U+002D (-)
hyphens : auto :
applique les règles pour chaque langue

Copier les titres courants

(En anglais : « running headers »

@page {
 @page-top-right {
  content: string(chap, first);
  font-style: italic;
 }
}
h1 { string-set: chap content }

Notes de bas de page

demo [PDF]

… and <ruby><rb>the March Hare and the Hatter</rb ><rt><rp> (</rp>From the two expressions “as mad as a march hare” and “as mad as a hatter.”<rp>)</rp></rt ></ruby> were having tea…

ou:

… and <a href="#n1">the March Hare and the Hatter</a > were having tea…

<p id=n1>From the two expressions “as mad as a march hare” and “as mad as a hatter.”

Des experimentations existent
… mais pas assez pour remplacer XSL-FO

Et aussi…

3eme atelier sur l'édition numérique : « W3C Workshop on workflow in publishing, » Paris, 16–17 sep 2013

Melanger les modalités

CSS dit que overflow : scroll donne « a scrolling mechanism »

… un ascenseur en est un,

… « marquee » aussi

… mais la pagination aussi !

Melanger les modalités : overflow

Le document:

<div class=chapter>
 <h2>Chapter 1…</h2>
 <p>…
 …
</div>
<div class=chapter>
 <h2>Chapter 2…</h2>
 …
</div>
…

Le CSS

.chapter {
 height: 35em
 overflow: paged-x }

[demo (edit)]

Avec ou sans barre visible

overflow (ou overflow-style ?)
horizontal vertical
invisible paged-x paged-y
visible paged-x-controls paged-y-controls

Gauche/droite ou droite/gauche dépend de direction

Fin

http://www.w3.org/Talks/2013/0628-CSS-Strasbourg

W3C

To Lead the Web to its full potential

To Anticipate the Trends

To Increase your company value

Join W3C

http://www.w3.org/Consortium/join

or contact: Bernard Gidon <bgidon@w3.org>

W3C

Pour Développer le potentiel du Web

Pour Anticiper les évolutions technologiques

Pour Augmenter la valeur et visibilité de votre organisation

Rejoigner le W3C

http://www.w3.org/Consortium/join

ou contacter : Bernard Gidon <bgidon@w3.org>

Bert Bos <bert@w3.org>
GPG fingerprint: 7744 0204 52A5 14D9 147D
2A13 2D7A E420 184B 5BA4