Commit f3718893 authored by Roussey Catherine's avatar Roussey Catherine
Browse files

Update README.md

parent 6892004e
......@@ -428,42 +428,43 @@ initialisée à la première colonne (la colonne la plus à gauche).
La boucle principale de l'algorithme effectue les tâches suivantes :
- Recherche du bloc B1 le plus haut dont l'arête gauche est dans la zone ;
- Recherche du bloc **H** le plus haut dont l'arête gauche est dans la zone ;
Ce bloc va définir l'arête haute de la zone.
- si on n'en trouve pas, on élargit la zone vers la droite et on relance
une recherche,
- si on n'en trouve pas et que la zone comprend la dernière colonne,
- si aucun bloc n'est trouvé cela veut dire qu'il n'existe pas de bloc
dont l'arete gauche se trouve dans la zone. Alors, la zone est élargie
vers la droite et une nouvelle recherche est relancée.
- si aucun bloc n'est trouvé dans la zone et que la zone comprend la dernière colonne,
on élargit la zone (à gauche) à l'ensemble des colonnes.
Ceci est dû aux déplacements de la zone dans le processus de parcours,
qui peut avoir décalé la zone vers la droite en laissant des blocs
à gauche.
- Le cas où l'on ne trouve pas de bloc et que la zone comprend l'ensemble
des colonnes signifie la fin de l'algorithme.
des colonnes signifie la fin de l'algorithme. IL n'y a plus de blocs à traiter.
- Parmi tous les blocs dont l'arête haute est au même niveau que l'arête haute
de B1 (modulo un petit intervalle correspondant à la valeur de
de **H** (modulo un petit intervalle correspondant à la valeur de
VERTICAL_ALIGMENT_THRESHOLD), on cherche le bloc le plus à gauche intitulé
B2 (le bloc le plus haut et le plus à gauche de la zone). B2 peut être le
même bloc que B1.
- Étant donné B2, trois cas sont considérés :
'HG' (le bloc le plus haut et le plus à gauche de la zone). **HG** peut être le
même bloc que **H**.
- Étant donné **HG**, trois cas sont considérés :
* **A** : Dans le général, à l'exception des cas **B** et **C**,
B2 est ajouté à **ordered_blocks** et la zone
est ajustée à celle de B2 (pour que les blocs situés dans la même colonne
que B2 soient parcourus avant ceux, éventuellement plus hauts, de la colonne
HG est ajouté à **ordered_blocks** et la zone
est ajustée à celle de **HG** (pour que les blocs situés dans la même colonne
que **HG** soient parcourus avant ceux, éventuellement plus hauts, de la colonne
suivante).
- **B** : Si l'arête droite du bloc B2 est au delà de l'arête droite de
- **B** : Si l'arête droite du bloc **HG** est au delà de l'arête droite de
la zone. C'est par exemple le cas d'un titre sur toute la largeur de
la page. Dans ce cas, la zone est agrandie jusqu'à l'arête droite de B2.
Tous les blocs de la zone situé au dessus de B2 sont inséré dans la liste L
avant B2.
la page. Dans ce cas, la zone est agrandie jusqu'à l'arête droite de **HG**.
Tous les blocs de la zone situé au dessus de **HG** sont inséré dans la liste L
avant **HG**.
![figure B](images/CaseB.gif)
*Dans la figure, le bloc "B" doit être lu avant "T".*
- **C** : Si il existe un bloc non traité dans une colonne à gauche
de la zone à traiter, et dont le haut est au-dessus du bas de B2
(ce bloc est "au niveau de B2").
de la zone à traiter, et dont le haut est au-dessus du bas de **HG**
(ce bloc est "au niveau de **HG**").
Ceci se produit quand un titre sur plusieurs colonnes
ou un bloc situé à droite (à côté d'une photo par exemple) vient d'être
ajouté à la liste L.
ajouté à la liste **ordered_blocks**.
Dans ce cas, on réinitialise la zone à l'ensemble des
colonnes (ce qui aura pour effet de traiter en priorité les blocs
de gauche).
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment