Une macro pour remplir des champs

Tout ce qui concerne le langage LaTeX et ses variantes. Ce langage est supporté sur le forum via les balises tex.

Modérateur : gdm_tex

Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
ThomP
Utilisateur confirmé
Utilisateur confirmé
Messages : 21
Inscription : mardi 19 mai 2020, 14:51
Statut actuel : Enseignant
Localisation : Rhône Alpes

Une macro pour remplir des champs

Message par ThomP »

Bonjour,

Dans mon autre fil je posais la question mais c'est un peu trop fouillis alors je lui dédie un message spécifique.

J'ai créé un tableau de type "cartouche d'examen" en LaTeX.
Ce tableau contient des champs à remplir selon l'épreuve, je vais potentiellement le partager avec des néophytes de LaTeX (ce que je suis aussi)

Disons que mes champs sont :
Type d'épreuve - Numéro - Nom de l'épreuve - Durée - Groupement - Date - ville - prof - etablissement

J'ai une solution qui fonctionne mais je la trouve laide au possible

Pourriez vous m'aider à la rendre plus jolie (voire plus pratique si c'est possible ?)

(Plutôt que de mettre un tableau pour l'exemple j'ai créé une commande \truc qui affiche juste les champs
838a9ee0bd82057972e1aeb10fce9a6ddf2753c6.svg

un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 809
Inscription : vendredi 12 juin 2009, 22:35
Localisation : Chambéry

Re: Une macro pour remplir des champs

Message par un bon petit »

ThomP a écrit :
jeudi 30 juillet 2020, 15:14
J'ai une solution qui fonctionne mais je la trouve laide au possible
Vous avez une solution, tant mieux pour vous.

Si vous exposiez votre problème, plutôt : qu'est ce que vous voulez, quel doit être le comportement de votre macro ? Car je n'ai absolument pas compris ce que vous cherchez à faire. Pas plus dans ce message que dans l'autre (que j'ai d'ailleurs laissé tomber) !!!

ThomP
Utilisateur confirmé
Utilisateur confirmé
Messages : 21
Inscription : mardi 19 mai 2020, 14:51
Statut actuel : Enseignant
Localisation : Rhône Alpes

Re: Une macro pour remplir des champs

Message par ThomP »

Je ne dois pas être super clair, désolé

:shock:


J'ai un tableau ou un texte qui contient des champs : prenons un exemple simplifié :

Le petit \animal est plutôt habitué à manger \nourriture et il déteste l'hiver.


Dans cette phrase j'ai deux champs : animal et nourriture que j'aimerai pouvoir remplir via une macro (parceque ces champs sont amenés à être perdus dans un code latex plus conséquent voir appelés plusieurs fois!) du type


\champs{lapin}{carotte}


La solution que je propose le fait mais la macro doit sûrement être simplifiable et pour la remplir j'utilise des accolades.
Si j'ai 9 champs comme c'est le cas dans mon tableau voila ce que je (ou un collègue) devrai taper pour les rmeplir :

\champs{Type d'épreuve}{Numéro du CCF}{Matière}{Durée}{Groupement}{Date}{Ville}{Prof}{Etab}

Sans parler du code pour créer la macro champs

Après, bon, ça fonctionne, je cherche à améliorer car je ne suis pas satisfait du rendu :o

un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 809
Inscription : vendredi 12 juin 2009, 22:35
Localisation : Chambéry

Re: Une macro pour remplir des champs

Message par un bon petit »

ThomP a écrit :
jeudi 30 juillet 2020, 22:02
Je ne dois pas être super clair, désolé
Je n'ai toujours pas vraiment compris ce que sont les champs, désolé. Vous voulez dire des macros ???
ThomP a écrit :
jeudi 30 juillet 2020, 22:02
je ne suis pas satisfait du rendu
Je ne vois aucun rendu, donc j'imagine que vous parlez de votre tableau et qu'il n'est pas comme vous le voulez ?

Sinon, d'après le peu que je saisi du problème, un système de clés/valeurs semble faire le job. Je prends ici simplekv que j'ai écrit et que je connais bien, mais n'importe quel autre fait l'affaire.

Code : Tout sélectionner

\documentclass{article}
\usepackage{simplekv}
\defKV[champs]{
	animal     = \def\animal{#1},
	nourriture = \def\nourriture{#1}
}
\setKVdefault[champs]{animal={},nourriture={}}% par défaut
\def\setfields#{\setKV[champs]}
\begin{document}
Par défaut : (animal/nourriture) = (\animal/\nourriture)\medbreak

\setfields{animal=lapin, nourriture=carotte}
1er essai : (animal/nourriture) = (\animal/\nourriture)\medbreak

\setfields{nourriture=herbe}
2e essai : (animal/nourriture) = (\animal/\nourriture)\medbreak

\setfields{nourriture=fromage, animal=souris}
3e essai : (animal/nourriture) = (\animal/\nourriture)\medbreak

\restoreKV[champs]
Retour aux valeurs par défaut : (\animal/\nourriture)
\end{document}

ThomP
Utilisateur confirmé
Utilisateur confirmé
Messages : 21
Inscription : mardi 19 mai 2020, 14:51
Statut actuel : Enseignant
Localisation : Rhône Alpes

Re: Une macro pour remplir des champs

Message par ThomP »

Non, champs = fields du coup le package proposé fonctionne comme je le souhaitais et je te remercie, c'est plus ergonomique