Forum Programmation.autre [Latex] Création de liste dans un template

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
7
oct.
2019

Bonjour,
petit problème de latex, j'essaie de faire un template de cv, il me faut une fonction pour générer une liste, le but est d'avoir:

fruit
- poire
- pomme
légume
- carotte
poison
- cyanure
- curare

Bon, ensuite je mettrait ça dans un tableau tout joli, mais pour l'instant je bloque sur la récupération des éléments.

Mon fichier tex contient:

\comp{
    {fruit, {{poire}, {pomme}}},
    {légume, {carotte}},
    {poison, {{cyanure}, {currare}}}
}

Et mon template.cls

% settings comp
\newcommand{\comp}[1]{
    \renewcommand{\givencomp}{
        \foreach \type in {#1} {
            toto \type \\
            \foreach \ncomp in {\type} {
                titi \ncomp \\
            }
        }
    }
}
\newcommand{\givencomp}{}

Vu le résultat je pense que je m'y suis mal pris sur la structure dans mon fichier tex (je comprend mal les structures de données latex), mais j'ai du mal à voir par où aller.
Si avez de quoi m'éclairer :)

  • # Latex, des séparateurs et des espaces

    Posté par  (site web personnel) . Évalué à 4.

    Je suppose qu'il s'agit du foreach de tikz.

    D'une part, évitez d'indenter, le compilateur va la reproduire, gardez à l'esprit que vous n'avez pas là un langage stricto sensu, ceux sont des macros.

    Ensuite, pour déterminer in liste dans une liste, il vous un autre séparateur, par exemple: /.

    % settings comp
    \newcommand{\comp}[1]{%
    % get both id and nested list 
    \foreach \t/\u in {#1} {%
    \t:%
    \foreach \r in \u { (\r) }\newline%
    }}

    Notez les % pour terminer une ligne. Ça évite que LaTex interprète les retours à la ligne de travers.

    Attention, c'est important: il n'y a aucun espace superflu. La macro foreach risque de zapper confondre liste et élément sinon.

    Et voilà:

    \comp{%
    {fruit/{poire,pomme}},%
    {légume/{carotte}},%
    {poison/{cyanure,currare}}%
    }

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.