IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Distributions Discussion :

Tri alphabétique sous LaTeX


Sujet :

Distributions

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Tri alphabétique sous LaTeX
    Bonsoir à tous!

    Comme le titre l'indique, je cherche à trier alphabétiquement les éléments d'une liste.

    J'ai parcouru le web sans succès, les seuls éléments liés à un tri alphabétique tant des éléments d'un index ou d'une bibliographie; voilà pourquoi je me tourne vers vous un peu désarmé!

    Toutes les idées sont les bienvenues!

  2. #2
    Invité
    Invité(e)
    Par défaut
    Oulà, c'est le genre de programmation qui n'est pas triviale du tout... Il n'est pas dit que je me lance dans ce genre de trucs. Je ne sais pas si un package s'en occupe, j'ai eu la flemme de chercher. Le hasard veut que je suis en train de me frotter à un problème similaire bien que moins dur pour un petit package que je vais sortir dans quelques jours.

    Tu vois le problème comment, parce que ta question est très imprécise...

    Une commande \sortlist{bonjour, salut, hola, hello} qui doit afficher "bonjour,hello,hola,salut" ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Eh bien en fait, c'est pour trier des fragments de texte. L'idée ce serait d'avoir:
    - le nom de l'auteur qui sert à faire le tri
    - puis le fragment de texte

    J'ai cherché un package qui puisse trier, mais je n'ai rien trouvé!

    Du coup, j'essaierais bien moi-même, mais je ne suis qu'un sale "leecher" qui ne fait qu'utiliser ce que les autres créent...

    Dans l'idée, ce serait un peu comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    \begin{sort}
    \auteur{Zola}
    \texte{Dans la plaine rase, sous la nuit sans étoiles, d’une obscurité et d’une épaisseur d’encre, un homme suivait seul la grande route de Marchiennes à Montsou, dix kilomètres de pavé coupant tout droit, à travers les champs de betteraves.}
    \end{sort}
     
    \begin{sort}
    \auteur{Proust}
    \texte{Le pépiement matinal des oiseaux semblait insipide à Françoise.}
    \end{sort}
    Je pourrais trier directement, mais le projet est destiné à intégrer un grand nombre de fragments d'auteurs différents, donc ça a l'air un peu fastidieux...

    EDIT: peut-être du côté du paquet datatool (que je scrute présentement)?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par kalou6 Voir le message
    Je pourrais trier directement, mais le projet est destiné à intégrer un grand nombre de fragments d'auteurs différents, donc ça a l'air un peu fastidieux...
    Ce qui me fait peur, c'est le nombre de mots que tu veux trier à chaque fois. Mettons que le tri soit, au pire (je dis ça au cas où je me déciderais à coder ce projet comme un bourin) en o(n^3), ça va bougrement ralentir, non ?

    Et comment comptes-tu prendre en compte les majuscules, les lettres accentuées, les apostrophes, les cédilles, etc... ?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Ba en fait le tri se fait selon le nom de l'auteur, et éventuellement le nom de l'\oe uvre, mais pas par le texte qui suit; je viens de trouver quelquechose d'intéressant avec datatool.

    Je colle le code ici; ce qui me dérange un peu, c'est que ce soit sous forme de tableau en fait...

    \documentclass[a4paper,12pt]{report}
    \usepackage{datatool}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage{lmodern}
    \usepackage{color}
    \usepackage{amsmath, amssymb}
    \usepackage[left=1.00cm, right=0.85cm, top=1.25cm, bottom=1.50cm]{geometry}

    \newcommand{\sortitem}[4]{%
    \DTLnewrow{list}%
    \DTLnewdbentry{list}{firstname}{#1}%
    \DTLnewdbentry{list}{lastname}{#2}%
    \DTLnewdbentry{list}{title}{#3}%
    \DTLnewdbentry{list}{other}{#4}%


    }

    \newenvironment{sortedlist}%
    {%
    \DTLifdbexists{list}{\DTLcleardb{list}}{\DTLnewdb{list}}%
    }%
    {%
    \DTLsort{lastname,title,text}{list}%a
    \begin{description}%
    \DTLforeach*{list}{\theFirstname=firstname,\theLastname=lastname,\theTitle=title,\theText=other}{%
    \item \textit{\theTitle},~\theFirstname~\theLastname~\hfill \\~\theText
    }%
    \end{description}%
    }

    \begin{document}

    \begin{sortedlist}
    \sortitem{Émile}{Zola}{Germinal}{Dans la plaine rase, sous la nuit sans étoiles, d’une obscurité et d’une épaisseur d’encre, un homme suivait seul la grande route de Marchiennes à Montsou, dix kilomètres de pavé coupant tout droit, à travers les champs de betteraves.}
    \sortitem{Marcel}{Proust}{Du côté de Guermantes}{Le pépiement matinal des oiseaux semblait insipide à Françoise.}
    \sortitem{Marcel}{Proust}{Au côté de Guermantes}{Le pépiement matinal des oiseaux semblait insipide à Françoise.}
    \end{sortedlist}

    \end{document}
    Bon, le problème, c'est que le tri se fait selon le nom de l'auteur seulement (cf. Du côté\Au côté); je retourne à la lecture de la doc pour changer ça...

    EDIT:
    C'est bon, il suffisait de rajouter à la commande suivante ce que l'on veut trier (ici, par nom de famille, titre, puis éventuellement fragment):
    \DTLsort{lastname,title,text}{list}%a
    Du coup j'ai changé le code qui est correct.

    Il reste tout le temps ces problèmes:
    - on est dans un tableau (si je me trompe...). J'ai réussi à ruser en renvoyant la dernière colonne à la ligne, mais il reste toujours une indentation importante...
    - quand il y a deux extraits d'un même auteur, le nom est répété. Ce ne doit pas être grand chose à faire, mais pour l'instant, I'm stuck! (Au pire, je peux mettre le texte en blanc ; ok, je sors...)

  6. #6
    Invité
    Invité(e)
    Par défaut
    Ben il faudrait apprendre à s'exprimer correctement

    Tu cherches à trier une collection de 2 éléments selon le critère de l'ordre alphabétique du premier d'entre eux. Enfin, d'après ce que j'ai compris parce que je ne suis même plus sûr...

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Et bien du coup, oui; c'est mieux formulé...
    Mais je suis toujours en peine: je voudrais que l'élément trié n'apparaisse qu'une fois quand il est itératif (genre "Marcel Proust"), car il devient inutile à la lecture.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bon, j'arrête là pour l'instant, je suis désolé, je n'ai toujours pas compris ce que tu veux exactement.

    Je voudrais que tu exposes un code où je te laisse choisir le nom des commandes. Ce code serait ce qui est entré pour tri une collection de 2 éléments selon l'ordre alphabétique du premier. Et dire aussi quel affichage tu veux obtenir.

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Merci, j'ai trouvé une solution qui me convient, décrite plus haut! À plus tard, bon courage pour vos projets

Discussions similaires

  1. Réponses: 8
    Dernier message: 19/08/2013, 13h40
  2. Réponses: 5
    Dernier message: 22/04/2008, 13h53
  3. [VC++6][MFC]Tri alphabétique dans CEdit
    Par ben_popcorn dans le forum MFC
    Réponses: 5
    Dernier message: 03/10/2005, 09h39
  4. [JTable] tri alphabétique
    Par clairette dans le forum Composants
    Réponses: 1
    Dernier message: 27/07/2005, 11h09
  5. tri alphabétique dans un tableau deux dimensions
    Par *!!cocco!!* dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 06/12/2004, 21h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo