diff --git a/.gitattributes b/.gitattributes
index cb0a3e3e6a3dab6f6d6abdcd0a4f12a33d80a348..e03e3bd47a31e24aed42250093afe15cea72905c 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -11,6 +11,8 @@ dist/inc-pied.html -text
 dist/inc-rubriques.html -text
 dist/modeles/pagination_dist.html -text
 dist/modeles/pagination_page.html -text
+dist/modeles/pagination_precedent_suivant.html -text
+dist/modeles/paginationitem.html -text
 dist/polices/dustismo-license.txt -text svneol=unset#application/octet-stream
 dist/polices/dustismo.ttf -text
 dist/polices/dustismo_bold.ttf -text
diff --git a/dist/modeles/pagination_dist.html b/dist/modeles/pagination_dist.html
index 39f4bd472ef9b7554bc5a7ca0af7ceb461be4c61..1054fe8cda1474f88a9f2e24d766065b993ecf1f 100644
--- a/dist/modeles/pagination_dist.html
+++ b/dist/modeles/pagination_dist.html
@@ -1,74 +1,44 @@
 #ENV{bloc_ancre}
 [<a href='[(#ENV{url}|parametre_url{#ENV{debut},''})]##ENV{ancre}' class='lien_pagination'>(#ENV{premiere}|>{1}|?{'...',''})</a> |]
 
-[(#ENV{premiere}|<={#ENV{derniere}}|?{' ',''})[
-	(#ENV{premiere}|=={#ENV{page_courante}}|?{' ',''})
-		[<span class="on">(#ENV{premiere}|moins{1}|mult{#ENV{pas}})</span>]
-	][(#ENV{premiere}|=={#ENV{page_courante}}|?{'',' '})
-		[<a href='[(#ENV{url}|parametre_url{#ENV{debut},#ENV{premiere}|moins{1}|mult{#ENV{pas}} })]##ENV{ancre}' class='lien_pagination'>(#ENV{premiere}|moins{1}|mult{#ENV{pas}})</a>]
-	][(#ENV{premiere}|<{#ENV{derniere}}|?{'|',''})]
+[(#SET{i,#ENV{premiere}}|<={#ENV{derniere}}|?{' ',''})[
+	(#SET{item, #GET{i}|moins{1}|mult{#ENV{pas}} }|rien)
+	][(#INCLURE{fond=modeles/paginationitem}{num=#GET{i}}{texte=#GET{item}}{separateur='|'}{url=#ENV{url}|parametre_url{#ENV{debut},#GET{item}}|ancre_url{#ENV{ancre}}}{page_courante=#ENV{page_courante}}{derniere=#ENV{derniere}})]
 ]
-[(#ENV{premiere}|plus{1}|<={#ENV{derniere}}|?{' ',''})[
-	(#ENV{premiere}|plus{1}|=={#ENV{page_courante}}|?{' ',''})
-		[<span class="on">(#ENV{premiere}|plus{1}|moins{1}|mult{#ENV{pas}})</span>]
-	][(#ENV{premiere}|plus{1}|=={#ENV{page_courante}}|?{'',' '})
-		[<a href='[(#ENV{url}|parametre_url{#ENV{debut},#ENV{premiere}|plus{1}|moins{1}|mult{#ENV{pas}} })]##ENV{ancre}' class='lien_pagination'>(#ENV{premiere}|plus{1}|moins{1}|mult{#ENV{pas}})</a>]
-	][(#ENV{premiere}|plus{1}|<{#ENV{derniere}}|?{'|',''})]
+[(#SET{i,#GET{i}|plus{1}}|<={#ENV{derniere}}|?{' ',''})[
+	(#SET{item, #GET{i}|moins{1}|mult{#ENV{pas}} }|rien)
+	][(#INCLURE{fond=modeles/paginationitem}{num=#GET{i}}{texte=#GET{item}}{separateur='|'}{url=#ENV{url}|parametre_url{#ENV{debut},#GET{item}}|ancre_url{#ENV{ancre}}}{page_courante=#ENV{page_courante}}{derniere=#ENV{derniere}})]
 ]
-[(#ENV{premiere}|plus{2}|<={#ENV{derniere}}|?{' ',''})[
-	(#ENV{premiere}|plus{2}|=={#ENV{page_courante}}|?{' ',''})
-		[<span class="on">(#ENV{premiere}|plus{2}|moins{1}|mult{#ENV{pas}})</span>]
-	][(#ENV{premiere}|plus{2}|=={#ENV{page_courante}}|?{'',' '})
-		[<a href='[(#ENV{url}|parametre_url{#ENV{debut},#ENV{premiere}|plus{2}|moins{1}|mult{#ENV{pas}} })]##ENV{ancre}' class='lien_pagination'>(#ENV{premiere}|plus{2}|moins{1}|mult{#ENV{pas}})</a>]
-	][(#ENV{premiere}|plus{2}|<{#ENV{derniere}}|?{'|',''})]
+[(#SET{i,#GET{i}|plus{1}}|<={#ENV{derniere}}|?{' ',''})[
+	(#SET{item, #GET{i}|moins{1}|mult{#ENV{pas}} }|rien)
+	][(#INCLURE{fond=modeles/paginationitem}{num=#GET{i}}{texte=#GET{item}}{separateur='|'}{url=#ENV{url}|parametre_url{#ENV{debut},#GET{item}}|ancre_url{#ENV{ancre}}}{page_courante=#ENV{page_courante}}{derniere=#ENV{derniere}})]
 ]
-[(#ENV{premiere}|plus{3}|<={#ENV{derniere}}|?{' ',''})[
-	(#ENV{premiere}|plus{3}|=={#ENV{page_courante}}|?{' ',''})
-		[<span class="on">(#ENV{premiere}|plus{3}|moins{1}|mult{#ENV{pas}})</span>]
-	][(#ENV{premiere}|plus{3}|=={#ENV{page_courante}}|?{'',' '})
-		[<a href='[(#ENV{url}|parametre_url{#ENV{debut},#ENV{premiere}|plus{3}|moins{1}|mult{#ENV{pas}} })]##ENV{ancre}' class='lien_pagination'>(#ENV{premiere}|plus{3}|moins{1}|mult{#ENV{pas}})</a>]
-	][(#ENV{premiere}|plus{3}|<{#ENV{derniere}}|?{'|',''})]
+[(#SET{i,#GET{i}|plus{1}}|<={#ENV{derniere}}|?{' ',''})[
+	(#SET{item, #GET{i}|moins{1}|mult{#ENV{pas}} }|rien)
+	][(#INCLURE{fond=modeles/paginationitem}{num=#GET{i}}{texte=#GET{item}}{separateur='|'}{url=#ENV{url}|parametre_url{#ENV{debut},#GET{item}}|ancre_url{#ENV{ancre}}}{page_courante=#ENV{page_courante}}{derniere=#ENV{derniere}})]
 ]
-[(#ENV{premiere}|plus{4}|<={#ENV{derniere}}|?{' ',''})[
-	(#ENV{premiere}|plus{4}|=={#ENV{page_courante}}|?{' ',''})
-		[<span class="on">(#ENV{premiere}|plus{4}|moins{1}|mult{#ENV{pas}})</span>]
-	][(#ENV{premiere}|plus{4}|=={#ENV{page_courante}}|?{'',' '})
-		[<a href='[(#ENV{url}|parametre_url{#ENV{debut},#ENV{premiere}|plus{4}|moins{1}|mult{#ENV{pas}} })]##ENV{ancre}' class='lien_pagination'>(#ENV{premiere}|plus{4}|moins{1}|mult{#ENV{pas}})</a>]
-	][(#ENV{premiere}|plus{4}|<{#ENV{derniere}}|?{'|',''})]
+[(#SET{i,#GET{i}|plus{1}}|<={#ENV{derniere}}|?{' ',''})[
+	(#SET{item, #GET{i}|moins{1}|mult{#ENV{pas}} }|rien)
+	][(#INCLURE{fond=modeles/paginationitem}{num=#GET{i}}{texte=#GET{item}}{separateur='|'}{url=#ENV{url}|parametre_url{#ENV{debut},#GET{item}}|ancre_url{#ENV{ancre}}}{page_courante=#ENV{page_courante}}{derniere=#ENV{derniere}})]
 ]
-[(#ENV{premiere}|plus{5}|<={#ENV{derniere}}|?{' ',''})[
-	(#ENV{premiere}|plus{5}|=={#ENV{page_courante}}|?{' ',''})
-		[<span class="on">(#ENV{premiere}|plus{5}|moins{1}|mult{#ENV{pas}})</span>]
-	][(#ENV{premiere}|plus{5}|=={#ENV{page_courante}}|?{'',' '})
-		[<a href='[(#ENV{url}|parametre_url{#ENV{debut},#ENV{premiere}|plus{5}|moins{1}|mult{#ENV{pas}} })]##ENV{ancre}' class='lien_pagination'>(#ENV{premiere}|plus{5}|moins{1}|mult{#ENV{pas}})</a>]
-	][(#ENV{premiere}|plus{5}|<{#ENV{derniere}}|?{'|',''})]
+[(#SET{i,#GET{i}|plus{1}}|<={#ENV{derniere}}|?{' ',''})[
+	(#SET{item, #GET{i}|moins{1}|mult{#ENV{pas}} }|rien)
+	][(#INCLURE{fond=modeles/paginationitem}{num=#GET{i}}{texte=#GET{item}}{separateur='|'}{url=#ENV{url}|parametre_url{#ENV{debut},#GET{item}}|ancre_url{#ENV{ancre}}}{page_courante=#ENV{page_courante}}{derniere=#ENV{derniere}})]
 ]
-[(#ENV{premiere}|plus{6}|<={#ENV{derniere}}|?{' ',''})[
-	(#ENV{premiere}|plus{6}|=={#ENV{page_courante}}|?{' ',''})
-		[<span class="on">(#ENV{premiere}|plus{6}|moins{1}|mult{#ENV{pas}})</span>]
-	][(#ENV{premiere}|plus{6}|=={#ENV{page_courante}}|?{'',' '})
-		[<a href='[(#ENV{url}|parametre_url{#ENV{debut},#ENV{premiere}|plus{6}|moins{1}|mult{#ENV{pas}} })]##ENV{ancre}' class='lien_pagination'>(#ENV{premiere}|plus{6}|moins{1}|mult{#ENV{pas}})</a>]
-	][(#ENV{premiere}|plus{6}|<{#ENV{derniere}}|?{'|',''})]
+[(#SET{i,#GET{i}|plus{1}}|<={#ENV{derniere}}|?{' ',''})[
+	(#SET{item, #GET{i}|moins{1}|mult{#ENV{pas}} }|rien)
+	][(#INCLURE{fond=modeles/paginationitem}{num=#GET{i}}{texte=#GET{item}}{separateur='|'}{url=#ENV{url}|parametre_url{#ENV{debut},#GET{item}}|ancre_url{#ENV{ancre}}}{page_courante=#ENV{page_courante}}{derniere=#ENV{derniere}})]
 ]
-[(#ENV{premiere}|plus{7}|<={#ENV{derniere}}|?{' ',''})[
-	(#ENV{premiere}|plus{7}|=={#ENV{page_courante}}|?{' ',''})
-		[<span class="on">(#ENV{premiere}|plus{7}|moins{1}|mult{#ENV{pas}})</span>]
-	][(#ENV{premiere}|plus{7}|=={#ENV{page_courante}}|?{'',' '})
-		[<a href='[(#ENV{url}|parametre_url{#ENV{debut},#ENV{premiere}|plus{7}|moins{1}|mult{#ENV{pas}} })]##ENV{ancre}' class='lien_pagination'>(#ENV{premiere}|plus{7}|moins{1}|mult{#ENV{pas}})</a>]
-	][(#ENV{premiere}|plus{7}|<{#ENV{derniere}}|?{'|',''})]
+[(#SET{i,#GET{i}|plus{1}}|<={#ENV{derniere}}|?{' ',''})[
+	(#SET{item, #GET{i}|moins{1}|mult{#ENV{pas}} }|rien)
+	][(#INCLURE{fond=modeles/paginationitem}{num=#GET{i}}{texte=#GET{item}}{separateur='|'}{url=#ENV{url}|parametre_url{#ENV{debut},#GET{item}}|ancre_url{#ENV{ancre}}}{page_courante=#ENV{page_courante}}{derniere=#ENV{derniere}})]
 ]
-[(#ENV{premiere}|plus{8}|<={#ENV{derniere}}|?{' ',''})[
-	(#ENV{premiere}|plus{8}|=={#ENV{page_courante}}|?{' ',''})
-		[<span class="on">(#ENV{premiere}|plus{8}|moins{1}|mult{#ENV{pas}})</span>]
-	][(#ENV{premiere}|plus{8}|=={#ENV{page_courante}}|?{'',' '})
-		[<a href='[(#ENV{url}|parametre_url{#ENV{debut},#ENV{premiere}|plus{8}|moins{1}|mult{#ENV{pas}} })]##ENV{ancre}' class='lien_pagination'>(#ENV{premiere}|plus{8}|moins{1}|mult{#ENV{pas}})</a>]
-	][(#ENV{premiere}|plus{8}|<{#ENV{derniere}}|?{'|',''})]
+[(#SET{i,#GET{i}|plus{1}}|<={#ENV{derniere}}|?{' ',''})[
+	(#SET{item, #GET{i}|moins{1}|mult{#ENV{pas}} }|rien)
+	][(#INCLURE{fond=modeles/paginationitem}{num=#GET{i}}{texte=#GET{item}}{separateur='|'}{url=#ENV{url}|parametre_url{#ENV{debut},#GET{item}}|ancre_url{#ENV{ancre}}}{page_courante=#ENV{page_courante}}{derniere=#ENV{derniere}})]
 ]
-[(#ENV{premiere}|plus{9}|<={#ENV{derniere}}|?{' ',''})[
-	(#ENV{premiere}|plus{9}|=={#ENV{page_courante}}|?{' ',''})
-		[<span class="on">(#ENV{premiere}|plus{9}|moins{1}|mult{#ENV{pas}})</span>]
-	][(#ENV{premiere}|plus{9}|=={#ENV{page_courante}}|?{'',' '})
-		[<a href='[(#ENV{url}|parametre_url{#ENV{debut},#ENV{premiere}|plus{9}|moins{1}|mult{#ENV{pas}} })]##ENV{ancre}' class='lien_pagination'>(#ENV{premiere}|plus{9}|moins{1}|mult{#ENV{pas}})</a>]
-	][(#ENV{premiere}|plus{9}|<{#ENV{derniere}}|?{'|',''})]
+[(#SET{i,#GET{i}|plus{1}}|<={#ENV{derniere}}|?{' ',''})[
+	(#SET{item, #GET{i}|moins{1}|mult{#ENV{pas}} }|rien)
+	][(#INCLURE{fond=modeles/paginationitem}{num=#GET{i}}{texte=#GET{item}}{separateur='|'}{url=#ENV{url}|parametre_url{#ENV{debut},#GET{item}}|ancre_url{#ENV{ancre}}}{page_courante=#ENV{page_courante}}{derniere=#ENV{derniere}})]
 ]
 [| <a href='[(#ENV{url}|parametre_url{#ENV{debut},#ENV{nombre_pages}|moins{1}|mult{#ENV{pas}}})]##ENV{ancre}' class='lien_pagination'>(#ENV{derniere}|<{#ENV{nombre_pages}}|?{'...',''})</a>]
diff --git a/dist/modeles/pagination_page.html b/dist/modeles/pagination_page.html
index 7cab2f7fa4fc3dd5cbb2c684d0a1e7e2ff74f794..231f88747c02438f9aa150b0822781b0f1754e47 100644
--- a/dist/modeles/pagination_page.html
+++ b/dist/modeles/pagination_page.html
@@ -1,74 +1,44 @@
 #ENV{bloc_ancre}
 [<a href='[(#ENV{url}|parametre_url{#ENV{debut},''})]##ENV{ancre}' class='lien_pagination'>(#ENV{premiere}|>{1}|?{'...',''})</a> |]
 
-[(#ENV{premiere}|<={#ENV{derniere}}|?{' ',''})[
-	(#ENV{premiere}|=={#ENV{page_courante}}|?{' ',''})
-		[<span class="on">(#ENV{premiere})</span>]
-	][(#ENV{premiere}|=={#ENV{page_courante}}|?{'',' '})
-		[<a href='[(#ENV{url}|parametre_url{#ENV{debut},#ENV{premiere}|moins{1}|mult{#ENV{pas}} })]##ENV{ancre}' class='lien_pagination'>(#ENV{premiere})</a>]
-	][(#ENV{premiere}|<{#ENV{derniere}}|?{'|',''})]
+[(#SET{i,#ENV{premiere}}|<={#ENV{derniere}}|?{' ',''})[
+	(#SET{item, #GET{i}|moins{1}|mult{#ENV{pas}} }|rien)
+	][(#INCLURE{fond=modeles/paginationitem}{num=#GET{i}}{texte=#GET{i}}{separateur='|'}{url=#ENV{url}|parametre_url{#ENV{debut},#GET{item}}|ancre_url{#ENV{ancre}}}{page_courante=#ENV{page_courante}}{derniere=#ENV{derniere}})]
 ]
-[(#ENV{premiere}|plus{1}|<={#ENV{derniere}}|?{' ',''})[
-	(#ENV{premiere}|plus{1}|=={#ENV{page_courante}}|?{' ',''})
-		[<span class="on">(#ENV{premiere}|plus{1})</span>]
-	][(#ENV{premiere}|plus{1}|=={#ENV{page_courante}}|?{'',' '})
-		[<a href='[(#ENV{url}|parametre_url{#ENV{debut},#ENV{premiere}|plus{1}|moins{1}|mult{#ENV{pas}} })]##ENV{ancre}' class='lien_pagination'>(#ENV{premiere}|plus{1})</a>]
-	][(#ENV{premiere}|plus{1}|<{#ENV{derniere}}|?{'|',''})]
+[(#SET{i,#GET{i}|plus{1}}|<={#ENV{derniere}}|?{' ',''})[
+	(#SET{item, #GET{i}|moins{1}|mult{#ENV{pas}} }|rien)
+	][(#INCLURE{fond=modeles/paginationitem}{num=#GET{i}}{texte=#GET{i}}{separateur='|'}{url=#ENV{url}|parametre_url{#ENV{debut},#GET{item}}|ancre_url{#ENV{ancre}}}{page_courante=#ENV{page_courante}}{derniere=#ENV{derniere}})]
 ]
-[(#ENV{premiere}|plus{2}|<={#ENV{derniere}}|?{' ',''})[
-	(#ENV{premiere}|plus{2}|=={#ENV{page_courante}}|?{' ',''})
-		[<span class="on">(#ENV{premiere}|plus{2})</span>]
-	][(#ENV{premiere}|plus{2}|=={#ENV{page_courante}}|?{'',' '})
-		[<a href='[(#ENV{url}|parametre_url{#ENV{debut},#ENV{premiere}|plus{2}|moins{1}|mult{#ENV{pas}} })]##ENV{ancre}' class='lien_pagination'>(#ENV{premiere}|plus{2})</a>]
-	][(#ENV{premiere}|plus{2}|<{#ENV{derniere}}|?{'|',''})]
+[(#SET{i,#GET{i}|plus{1}}|<={#ENV{derniere}}|?{' ',''})[
+	(#SET{item, #GET{i}|moins{1}|mult{#ENV{pas}} }|rien)
+	][(#INCLURE{fond=modeles/paginationitem}{num=#GET{i}}{texte=#GET{i}}{separateur='|'}{url=#ENV{url}|parametre_url{#ENV{debut},#GET{item}}|ancre_url{#ENV{ancre}}}{page_courante=#ENV{page_courante}}{derniere=#ENV{derniere}})]
 ]
-[(#ENV{premiere}|plus{3}|<={#ENV{derniere}}|?{' ',''})[
-	(#ENV{premiere}|plus{3}|=={#ENV{page_courante}}|?{' ',''})
-		[<span class="on">(#ENV{premiere}|plus{3})</span>]
-	][(#ENV{premiere}|plus{3}|=={#ENV{page_courante}}|?{'',' '})
-		[<a href='[(#ENV{url}|parametre_url{#ENV{debut},#ENV{premiere}|plus{3}|moins{1}|mult{#ENV{pas}} })]##ENV{ancre}' class='lien_pagination'>(#ENV{premiere}|plus{3})</a>]
-	][(#ENV{premiere}|plus{3}|<{#ENV{derniere}}|?{'|',''})]
+[(#SET{i,#GET{i}|plus{1}}|<={#ENV{derniere}}|?{' ',''})[
+	(#SET{item, #GET{i}|moins{1}|mult{#ENV{pas}} }|rien)
+	][(#INCLURE{fond=modeles/paginationitem}{num=#GET{i}}{texte=#GET{i}}{separateur='|'}{url=#ENV{url}|parametre_url{#ENV{debut},#GET{item}}|ancre_url{#ENV{ancre}}}{page_courante=#ENV{page_courante}}{derniere=#ENV{derniere}})]
 ]
-[(#ENV{premiere}|plus{4}|<={#ENV{derniere}}|?{' ',''})[
-	(#ENV{premiere}|plus{4}|=={#ENV{page_courante}}|?{' ',''})
-		[<span class="on">(#ENV{premiere}|plus{4})</span>]
-	][(#ENV{premiere}|plus{4}|=={#ENV{page_courante}}|?{'',' '})
-		[<a href='[(#ENV{url}|parametre_url{#ENV{debut},#ENV{premiere}|plus{4}|moins{1}|mult{#ENV{pas}} })]##ENV{ancre}' class='lien_pagination'>(#ENV{premiere}|plus{4})</a>]
-	][(#ENV{premiere}|plus{4}|<{#ENV{derniere}}|?{'|',''})]
+[(#SET{i,#GET{i}|plus{1}}|<={#ENV{derniere}}|?{' ',''})[
+	(#SET{item, #GET{i}|moins{1}|mult{#ENV{pas}} }|rien)
+	][(#INCLURE{fond=modeles/paginationitem}{num=#GET{i}}{texte=#GET{i}}{separateur='|'}{url=#ENV{url}|parametre_url{#ENV{debut},#GET{item}}|ancre_url{#ENV{ancre}}}{page_courante=#ENV{page_courante}}{derniere=#ENV{derniere}})]
 ]
-[(#ENV{premiere}|plus{5}|<={#ENV{derniere}}|?{' ',''})[
-	(#ENV{premiere}|plus{5}|=={#ENV{page_courante}}|?{' ',''})
-		[<span class="on">(#ENV{premiere}|plus{5})</span>]
-	][(#ENV{premiere}|plus{5}|=={#ENV{page_courante}}|?{'',' '})
-		[<a href='[(#ENV{url}|parametre_url{#ENV{debut},#ENV{premiere}|plus{5}|moins{1}|mult{#ENV{pas}} })]##ENV{ancre}' class='lien_pagination'>(#ENV{premiere}|plus{5})</a>]
-	][(#ENV{premiere}|plus{5}|<{#ENV{derniere}}|?{'|',''})]
+[(#SET{i,#GET{i}|plus{1}}|<={#ENV{derniere}}|?{' ',''})[
+	(#SET{item, #GET{i}|moins{1}|mult{#ENV{pas}} }|rien)
+	][(#INCLURE{fond=modeles/paginationitem}{num=#GET{i}}{texte=#GET{i}}{separateur='|'}{url=#ENV{url}|parametre_url{#ENV{debut},#GET{item}}|ancre_url{#ENV{ancre}}}{page_courante=#ENV{page_courante}}{derniere=#ENV{derniere}})]
 ]
-[(#ENV{premiere}|plus{6}|<={#ENV{derniere}}|?{' ',''})[
-	(#ENV{premiere}|plus{6}|=={#ENV{page_courante}}|?{' ',''})
-		[<span class="on">(#ENV{premiere}|plus{6})</span>]
-	][(#ENV{premiere}|plus{6}|=={#ENV{page_courante}}|?{'',' '})
-		[<a href='[(#ENV{url}|parametre_url{#ENV{debut},#ENV{premiere}|plus{6}|moins{1}|mult{#ENV{pas}} })]##ENV{ancre}' class='lien_pagination'>(#ENV{premiere}|plus{6})</a>]
-	][(#ENV{premiere}|plus{6}|<{#ENV{derniere}}|?{'|',''})]
+[(#SET{i,#GET{i}|plus{1}}|<={#ENV{derniere}}|?{' ',''})[
+	(#SET{item, #GET{i}|moins{1}|mult{#ENV{pas}} }|rien)
+	][(#INCLURE{fond=modeles/paginationitem}{num=#GET{i}}{texte=#GET{i}}{separateur='|'}{url=#ENV{url}|parametre_url{#ENV{debut},#GET{item}}|ancre_url{#ENV{ancre}}}{page_courante=#ENV{page_courante}}{derniere=#ENV{derniere}})]
 ]
-[(#ENV{premiere}|plus{7}|<={#ENV{derniere}}|?{' ',''})[
-	(#ENV{premiere}|plus{7}|=={#ENV{page_courante}}|?{' ',''})
-		[<span class="on">(#ENV{premiere}|plus{7})</span>]
-	][(#ENV{premiere}|plus{7}|=={#ENV{page_courante}}|?{'',' '})
-		[<a href='[(#ENV{url}|parametre_url{#ENV{debut},#ENV{premiere}|plus{7}|moins{1}|mult{#ENV{pas}} })]##ENV{ancre}' class='lien_pagination'>(#ENV{premiere}|plus{7})</a>]
-	][(#ENV{premiere}|plus{7}|<{#ENV{derniere}}|?{'|',''})]
+[(#SET{i,#GET{i}|plus{1}}|<={#ENV{derniere}}|?{' ',''})[
+	(#SET{item, #GET{i}|moins{1}|mult{#ENV{pas}} }|rien)
+	][(#INCLURE{fond=modeles/paginationitem}{num=#GET{i}}{texte=#GET{i}}{separateur='|'}{url=#ENV{url}|parametre_url{#ENV{debut},#GET{item}}|ancre_url{#ENV{ancre}}}{page_courante=#ENV{page_courante}}{derniere=#ENV{derniere}})]
 ]
-[(#ENV{premiere}|plus{8}|<={#ENV{derniere}}|?{' ',''})[
-	(#ENV{premiere}|plus{8}|=={#ENV{page_courante}}|?{' ',''})
-		[<span class="on">(#ENV{premiere}|plus{8})</span>]
-	][(#ENV{premiere}|plus{8}|=={#ENV{page_courante}}|?{'',' '})
-		[<a href='[(#ENV{url}|parametre_url{#ENV{debut},#ENV{premiere}|plus{8}|moins{1}|mult{#ENV{pas}} })]##ENV{ancre}' class='lien_pagination'>(#ENV{premiere}|plus{8})</a>]
-	][(#ENV{premiere}|plus{8}|<{#ENV{derniere}}|?{'|',''})]
+[(#SET{i,#GET{i}|plus{1}}|<={#ENV{derniere}}|?{' ',''})[
+	(#SET{item, #GET{i}|moins{1}|mult{#ENV{pas}} }|rien)
+	][(#INCLURE{fond=modeles/paginationitem}{num=#GET{i}}{texte=#GET{i}}{separateur='|'}{url=#ENV{url}|parametre_url{#ENV{debut},#GET{item}}|ancre_url{#ENV{ancre}}}{page_courante=#ENV{page_courante}}{derniere=#ENV{derniere}})]
 ]
-[(#ENV{premiere}|plus{9}|<={#ENV{derniere}}|?{' ',''})[
-	(#ENV{premiere}|plus{9}|=={#ENV{page_courante}}|?{' ',''})
-		[<span class="on">(#ENV{premiere}|plus{9})</span>]
-	][(#ENV{premiere}|plus{9}|=={#ENV{page_courante}}|?{'',' '})
-		[<a href='[(#ENV{url}|parametre_url{#ENV{debut},#ENV{premiere}|plus{9}|moins{1}|mult{#ENV{pas}} })]##ENV{ancre}' class='lien_pagination'>(#ENV{premiere}|plus{9})</a>]
-	][(#ENV{premiere}|plus{9}|<{#ENV{derniere}}|?{'|',''})]
+[(#SET{i,#GET{i}|plus{1}}|<={#ENV{derniere}}|?{' ',''})[
+	(#SET{item, #GET{i}|moins{1}|mult{#ENV{pas}} }|rien)
+	][(#INCLURE{fond=modeles/paginationitem}{num=#GET{i}}{texte=#GET{i}}{separateur='|'}{url=#ENV{url}|parametre_url{#ENV{debut},#GET{item}}|ancre_url{#ENV{ancre}}}{page_courante=#ENV{page_courante}}{derniere=#ENV{derniere}})]
 ]
 [| <a href='[(#ENV{url}|parametre_url{#ENV{debut},#ENV{nombre_pages}|moins{1}|mult{#ENV{pas}}})]##ENV{ancre}' class='lien_pagination'>(#ENV{derniere}|<{#ENV{nombre_pages}}|?{'...',''})</a>]
diff --git a/dist/modeles/pagination_precedent_suivant.html b/dist/modeles/pagination_precedent_suivant.html
new file mode 100644
index 0000000000000000000000000000000000000000..76b33cb0853913c63958d724c8e7d1cae6d9811f
--- /dev/null
+++ b/dist/modeles/pagination_precedent_suivant.html
@@ -0,0 +1,10 @@
+#ENV{bloc_ancre}
+[(#SET{i,#ENV{page_courante}|moins{1}}|>{0}|?{' ',''})[
+	(#SET{item, #GET{i}|moins{1}|mult{#ENV{pas}} }|rien)
+	][(#INCLURE{fond=modeles/paginationitem}{num=#GET{i}}{texte=<:public:page_precedente:>}{separateur=''}{url=#ENV{url}|parametre_url{#ENV{debut},#GET{item}}|ancre_url{#ENV{ancre}}}{page_courante=#ENV{page_courante}}{derniere=#ENV{derniere}})]
+	[(#SET{i,#GET{i}|plus{2}}|<{#ENV{nombre_pages}}|?{'|',''})]
+]
+[(#SET{i,#ENV{page_courante}|plus{1}}|<{#ENV{nombre_pages}}|?{' ',''})[
+	(#SET{item, #GET{i}|moins{1}|mult{#ENV{pas}} }|rien)
+	][(#INCLURE{fond=modeles/paginationitem}{num=#GET{i}}{texte=<:public:page_suivante:>}{separateur=''}{url=#ENV{url}|parametre_url{#ENV{debut},#GET{item}}|ancre_url{#ENV{ancre}}}{page_courante=#ENV{page_courante}}{derniere=#ENV{derniere}})]
+]
diff --git a/dist/modeles/paginationitem.html b/dist/modeles/paginationitem.html
new file mode 100644
index 0000000000000000000000000000000000000000..8fad4071e6c8c0537c578f1161a515f6c2acdbcf
--- /dev/null
+++ b/dist/modeles/paginationitem.html
@@ -0,0 +1,5 @@
+[(#ENV{num}|=={#ENV{page_courante}}|?{' ',''})
+		[<span class="on">(#ENV{texte})</span>]
+	][(#ENV{num}|=={#ENV{page_courante}}|?{'',' '})
+		[<a href='#ENV{url}' class='lien_pagination'>(#ENV*{texte})</a>]
+	][(#ENV{num}|<{#ENV{derniere}}|?{#ENV{separateur},''})]
\ No newline at end of file
diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index b84259f82599ca1419d822d4d832a167cb3a4c57..042205d8660eb250ceae553b67f20af40f2ddc03 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -313,6 +313,16 @@ function parametre_url($url, $c, $v=NULL, $sep='&amp;') {
 	return $a . $ancre;
 }
 
+//
+// Prend une URL et lui ajoute/retire une ancre.
+function ancre_url($url, $ancre) {
+	// lever l'#ancre
+	if (preg_match(',^([^#]*)(#.*)$,', $url, $r)) {
+		$url = $r[1];
+	}
+	return $url .'#'. $ancre;
+}
+
 //
 // pour calcul du nom du fichier cache et autres
 //