Biblatex - problème de tri chronologique (5>25)

Bonjour,

J’ai à vous soumettre un problème qui me gêne depuis plusieurs mois déjà et pour lequel malgré de longues heures de recherche je n’ai pas réussi à trouver de solution (en disant ça, je suis sûr que la solution va être tellement évidente que je vais regretter d’avoir posé la question mais bon, tant pis).
J’utilise LaTeX pour rédiger des documents et le paquet Biblatex pour gérer la bibliographie. Pour information, je suis sous Debian Squeeze et la version du paquet biblatex est 0.9a-1.

Le problème que je rencontre est le suivant.
Je trie la bibliographie par auteur puis par année puis par titre.
Seulement, le tri par année ne se fait pas à ma convenance. J’ai à utiliser soit des documents anciens (avant l’an mil), soit je triche et met à la place de l’année un numéro de livre. J’en donne de suite un exemple pour que être plus clair. Choisissons comme auteur Pline l’Ancien qui a écrit une Histoire Naturelle. J’ai à citer les livres 5 et 25 ; je voudrai donc qu’ils apparaissent comme tels :

Pline l’Ancien (5), Histoire Naturelle 5, 1-46, L’Afrique du Nord, sous la dir. de Jehan Desanges, Paris, Les Belles Lettres, 1980.
Pline l’Ancien (25), Histoire Naturelle 25, sous la dir. de Jacques André, Paris, Les Belles Lettres, 1975.

Seulement, si je rentre dans le champ year 5 (year={5}), le tri ne s’effectuera pas comme il faut, et le livre 25 apparaîtra avant le livre 5. Ce qui m’oblige à utiliser 05 (year={05}) à la place de 5 pour avoir un tri chronologique, ce qui n’est vraiment pas joli et a fait tilter plus d’une personne qui a pu voir ceci.
J’ai par ailleurs eu beau essayer de changer le tri et de le faire par titre, le fait que j’ai écrit Histoire Naturelle 5 et non 05 me crée le même soucis.

La question que je pose est donc comment faire comprendre à Biblatex que 5 est bien plus petit que 25 et qu’il doit prendre en compte l’ensemble pour effectuer le tri et non commencer par le premier chiffre puis le second et ainsi de suite ? Je pense que c’est de là que vient le soucis.
Sinon je me demande si il n’y a pas moyen, mais c’est en trichant là aussi, d’insérer avant le 5 un symbole invisible qui serait pris en compte mais ne serait pas visible (logique vu qu’il est invisible) et dans le tri serait placé avant les chiffres.

J’espère avoir été clair et si ça n’est pas le cas n’hésitez pas à demander plus d’explications ou d’informations.

[quote=“baldrick”]
J’ai à vous soumettre un problème qui me gêne depuis plusieurs mois déjà et pour lequel malgré de longues heures de recherche je n’ai pas réussi à trouver de solution (en disant ça, je suis sûr que la solution va être tellement évidente que je vais regretter d’avoir posé la question mais bon, tant pis).[/quote]

J’en étais sûr !
En recherchant aujourd’hui, j’ai enfin trouvé comment faire. Je donne donc la solution si jamais quelqu’un veut tricher comme je le fais avec Bibtex (contrairement à ce que je laisse entendre dans le premier message, c’est Bibtex qui gère le tri).
J’ai trouvé la solution sur fr.comp.text.tex dans un message de 2000. Je recopie les informations données dans le lien.
Dans le fichier .bib, il faut ajouter cette ligne : @preamble{ "\newcommand{\SortNoop}[1]{} " }
Ensuite j’ai utilisé la nouvelle commande comme ce qui suit pour avoir le classement souhaité.

[code]@BOOK{plineancien5a,
keywords = {auteur},
author = {\textnormal{Pline l’Ancien}},
title = {Histoire Naturelle \textnormal{5, 1-46, L’Afrique du Nord}},
editor = {Jehan Desanges},
address = {Paris},
publisher = {Les Belles Lettres, 1980},
year = {\SortNoop{0}5},
}

@BOOK{plineancien25a,
keywords = {auteur},
author = {\textnormal{Pline l’Ancien}},
title = {Histoire Naturelle \textnormal{25}},
editor = {Jacques André},
address = {Paris},
publisher = {Les Belles Lettres, 1975},
year = {\SortNoop{1}25}
}[/code]

C’est une info très intéressante aussi pour Technique.fr

Cependant, je ne trouve pas la documentation correspondante dans biblatex (texdoc biblatex), mais seulement dans bibtex.

Dans la question vous évoquez biblatex, et dans la réponse bibtex: est-ce à dire, comme je le crains, que votre solution nécessite ce sacrifice ?

baldrick, tu viens de découvrir les joies du tri lexicographique.
Essaie en Python les deux lignes suivantes :

>>> "5"<"25"
False
>>> 5<25
True