summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/conditext/CondiTeXt.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/conditext/CondiTeXt.sty')
-rw-r--r--macros/latex/contrib/conditext/CondiTeXt.sty813
1 files changed, 813 insertions, 0 deletions
diff --git a/macros/latex/contrib/conditext/CondiTeXt.sty b/macros/latex/contrib/conditext/CondiTeXt.sty
new file mode 100644
index 0000000000..d069e56665
--- /dev/null
+++ b/macros/latex/contrib/conditext/CondiTeXt.sty
@@ -0,0 +1,813 @@
+%////////////////////////////////////////////////////////////////////////////////
+%//// IDENTIFICATION ////////////////////////////////////////////////////////////
+%////////////////////////////////////////////////////////////////////////////////
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{conditext}[2020/06/01 Extension personnelle, V1.5%
+ (Jean-Louis Brabant), released under the LaTeX Project Public License %
+ v1.3c or later]
+
+%////////////////////////////////////////////////////////////////////////////////
+%//// CODE PRÉLIMINAIRE /////////////////////////////////////////////////////////
+%////////////////////////////////////////////////////////////////////////////////
+\RequirePackage{simplekv} % Gestion des options clé-valeur
+\setKVdefault[display]{%
+ defaultdisplayall=false,%
+ condispaceenabled=false}
+\setKVdefault[icf]{%
+ icf=none}
+
+%////////////////////////////////////////////////////////////////////////////////
+%//// DECLARATION DES OPTIONS ///////////////////////////////////////////////////
+%////////////////////////////////////////////////////////////////////////////////
+\DeclareOption{defaultdisplayall}{%
+ \setKV[display]{defaultdisplayall=true}}
+
+%////////////////////////////////////////////////////////////////////////////////
+%//// EXÉCUTION DES OPTIONS /////////////////////////////////////////////////////
+%////////////////////////////////////////////////////////////////////////////////
+\ProcessOptions
+
+%////////////////////////////////////////////////////////////////////////////////
+%//// CHARGEMENT DES PAQUETS ////////////////////////////////////////////////////
+%////////////////////////////////////////////////////////////////////////////////
+\RequirePackage{xifthen} % Gestion des conditions
+\RequirePackage{xparse}
+
+%////////////////////////////////////////////////////////////////////////////////
+%//// COMMANDES /////////////////////////////////////////////////////////////////
+%////////////////////////////////////////////////////////////////////////////////
+
+%////////////////////////////////////////////////////////////////////////////////
+%//// Commandes : gestion conditionnelle ////////////////////////////////////////
+%////////////////////////////////////////////////////////////////////////////////
+
+%//// Commandes : gestion conditionnelle : domaine de condition implicite ///////
+%////////////////////////////////////////////////////////////////////////////////
+\NewDocumentCommand\setimplicitcondifield{m}{% % Interface pour définir un domaine de condition implicite
+ \ifcfemptythenelse{#1} % dc renseigné ?
+ {\errorifcfempty{setimplicitcondifield}} % non : message d'erreur sur dc
+ {\ifcfokthenelse{#1} % oui : dc valide [créé] ?
+ {\setKV[icf]{icf=#1} \edef\icf{\useKV[icf]{icf}}} % oui : définit le dc comme dc implicite
+ {\errorifcfnoncreated{setimplicitcondifield}{#1}}}} % non : message d'erreur sur dc
+
+%//// Commandes : gestion conditionnelle : domaines de condition ////////////////
+%////////////////////////////////////////////////////////////////////////////////
+\NewDocumentCommand\newcondifield{s m}{% % Interface pour créer un domaine de condition
+ \ifcfemptythenelse{#2} % dc renseigné ?
+ {\errorifcfempty{newcondifield}} % non : message d'erreur sur dc
+ {\ifcfalreadycreatedthenelse{#2} % oui : dc déjà créé ?
+ {\errorifcfalreadycreated{newcondifield}{#2}} % oui : message d'erreur sur dc
+ {\setKVdefault[cf#2]{cf=#2}% % non : crée le dc
+ \IfBooleanTF{#1} % étoile ?
+ {\ifcpalreadycreatedthenelse{#2}{#2} % oui : pc de même nom déjà créée pour le même dc ?
+ {\errorifcpalreadycreated{newcondifield*}{#2}} % oui : message d'erreur sur pc
+ {\setKVdefault[cp#2#2]{cp=#2#2}}} % non : crée la pc
+ {}}}} % non : ne fait rien
+
+%//// Commandes : gestion conditionnelle : domaines de condition : tests ////////
+\NewDocumentCommand\ifcfalreadycreatedthenelse{m m m}{% Teste si le domaine de condition existe déjà
+ \ifthenelse{\equal{\useKV[cf#1]{cf}}{#1}}
+ {#2}
+ {#3}}
+
+\NewDocumentCommand\ifcfokthenelse{m m m}{% % Teste si le domaine de condition est valide
+ \ifthenelse{\equal{\useKV[cf#1]{cf}}{#1}}%
+ {#2}
+ {#3}}
+
+\NewDocumentCommand\ifcfemptythenelse{m m m}{% % Teste si le domaine de condition est renseigné
+ \ifthenelse{\equal{#1}{}}
+ {#2}
+ {#3}}
+
+%//// Commandes : gestion conditionnelle : propriétés de condition //////////////
+%////////////////////////////////////////////////////////////////////////////////
+\NewDocumentCommand\newcondiprop{m m}{% % Interface pour créer une propriété de condition
+ \ifcfemptythenelse{#1} % dc renseigné ?
+ {\errorifcfempty{newcondiprop}} % non : message d'erreur sur dc
+ {\ifcfokthenelse{#1} % oui : dc valide [créé] ?
+ {\ifcpemptythenelse{#2} % oui : pc renseignée ?
+ {\errorifcpempty{newcondiprop}} % non : message d'erreur sur pc
+ {\ifcpalreadycreatedthenelse{#1}{#2} % oui : pc déjà créée ?
+ {\errorifcpalreadycreated{newcondiprop}{#2}} % oui : message d'erreur sur pc
+ {\setKVdefault[cp#1#2]{cp=#1#2}}}} % non : crée la pc
+ {\errorifcfnoncreated{newcondiprop}{#1}}}} % non : message d'erreur sur dc
+
+%//// Commandes : gestion conditionnelle : propriétés de condition : tests //////
+\NewDocumentCommand\ifcpalreadycreatedthenelse{m m m m}{% % Teste si la propriété de condition existe déjà
+ \ifthenelse{\equal{\useKV[cp#1#2]{cp}}{#1#2}}
+ {#3}
+ {#4}}
+
+\NewDocumentCommand\ifcpokthenelse{m m m m}{% % Teste si la propriété de condition est valide
+ \ifthenelse{\equal{\useKV[cp#1#2]{cp}}{#1#2}}%
+ {#3}
+ {#4}}
+
+\NewDocumentCommand\ifcpemptythenelse{m m m}{% % Teste si la propriété de condition est renseignée
+ \ifthenelse{\equal{#1}{}}
+ {#2}
+ {#3}}
+
+%//// Commandes : gestion conditionnelle : espaces de condition /////////////////
+%////////////////////////////////////////////////////////////////////////////////
+\NewDocumentCommand\setcondispace{s O{} m}{% % Interface pour définir un espace de condition
+ \ifcfemptythenelse{#2}% % dc renseigné ?
+ {\ifcpemptythenelse{#3} % non : pc renseignée ?
+ {\errorifcpempty{setcondispace}} % non : message d'erreur sur pc
+ {\ifcpokthenelse{\icf}{#3} % oui : (dc implicite) pc valide ?
+ {\ifcsalreadydefinedthenelse{\icf}{#3} % oui : ec déjà défini ?
+ {\errorifcsalreadydefined{setcondispace}{\icf}{#3}} % oui : message d'erreur sur ec
+ {\setKVdefault[cs\icf#3]{cs=\icf#3}% % non : définit l'ec
+ \setKV[display]{condispaceenabled=true} % indique qu'un ec est défini
+ \IfBooleanT{#1} % étoile ?
+ {\ifthenelse{\equal{\icf}{language}} % oui : contexte de sémantique linguistique ?
+ {\setminicondispace{#3}} % oui : définit un mini-ec correspondant à la langue
+ {}}}} % non : ne fait rien
+ {\errorifcpnonok{setcondispace}{#3}}}} % non : message d'erreur sur pc
+ {\ifcfokthenelse{#2} % oui : dc valide [créé] ?
+ {\ifcpemptythenelse{#3} % oui : pc renseignée ?
+ {\ifcsalreadydefinedthenelse{#2}{all} % non : ec global déjà défini ?
+ {\errorifcsalreadydefined{setcondispace}{#2}{all}} % oui : message d'erreur sur ec
+ {\setKVdefault[cs#2all]{cs=#2all} % non : définit l'ec global
+ \setKV[display]{condispaceenabled=true}}} % indique qu'un ec est défini
+ {\ifcpokthenelse{#2}{#3} % oui : pc valide ?
+ {\ifcsalreadydefinedthenelse{#2}{#3} % oui : ec déjà défini ?
+ {\errorifcsalreadydefined{conditext}{#2}{#3}} % oui : message d'erreur sur ec
+ {\setKVdefault[cs#2#3]{cs=#2#3}% % non : définit l'ec
+ \setKV[display]{condispaceenabled=true} % indique qu'un ec est défini
+ \IfBooleanT{#1} % étoile ?
+ {\ifthenelse{\equal{\#2}{language}} % oui : contexte de sémantique linguistique ?
+ {\setminicondispace{#3}} % oui : définit un mini-ec correspondant à la langue
+ {}}}} % non : ne fait rien
+ {\errorifcpnonok{setcondispace}{#3}}}} % non : message d'erreur sur pc
+ {\errorifcfnoncreated{setcondispace}{#2}}}} % non : message d'erreur sur dc
+
+%//// Commandes : gestion conditionnelle : espaces de condition : tests /////////
+\NewDocumentCommand\ifcsalreadydefinedthenelse{m m m m}{% % Teste si l'espace de condition est déjà défini
+ \ifthenelse{\equal{\useKV[cs#1#2]{cs}}{#1#2}}
+ {#3}
+ {#4}}
+
+\NewDocumentCommand\ifmatchingcsthenelse{m m m m}{% % Teste s'il existe un espace de condition correspondant au domaine de condition et à la propriété de condition renseignés
+ \ifthenelse{\equal{\useKV[cs#1#2]{cs}}{#1#2}}
+ {#3}
+ {#4}}
+
+%//// Commandes : gestion conditionnelle : contenu conditionnel /////////////////
+%////////////////////////////////////////////////////////////////////////////////
+\NewDocumentEnvironment{conditext}{O{} m s +b}{% % Interface pour contenu conditionnel
+ \ifthenelse{\equal{\useKV[display]{condispaceenabled}}{true}} % Au moins un ec défini ?
+ {\ifcfemptythenelse{#1} % oui : dc renseigné ?
+ {\ifcpemptythenelse{#2} % non : pc renseignée ?
+ {\errorifcpempty{conditext}} % non : message d'erreur sur pc
+ {\ifcpokthenelse{\icf}{#2} % oui : (dc implicite) pc valide ?
+ {\ifmatchingcsthenelse{\icf}{all} % oui : ec global correspondant ?
+ {\IfBooleanTF{#3} % oui : étoile ?
+ {} % oui : n'affiche rien
+ {\textdisplay{\icf}{#2}{#4}}} % non : affiche le contenu
+ {\ifmatchingcsthenelse{\icf}{#2} % non : ec correspondant ?
+ {\IfBooleanTF{#3} % oui : étoile ?
+ {} % oui : n'affiche rien
+ {\textdisplay{\icf}{#2}{#4}}} % non : affiche le contenu
+ {\IfBooleanTF{#3} % non : étoile ?
+ {\textdisplay{\icf}{#2}{#4}} % oui : affiche le contenu
+ {}}}} % non : n'affiche rien
+ {\errorifcpnonok{conditext}{#2}}}} % non : message d'erreur sur pc
+ {\ifcfokthenelse{#1} % oui : dc valide ?
+ {\ifcpemptythenelse{#2} % oui : pc renseignée ?
+ {\errorifcpempty{conditext}} % non : message d'erreur sur pc
+ {\ifcpokthenelse{#1}{#2} % oui : pc valide ?
+ {\ifmatchingcsthenelse{#1}{all} % oui : ec global correspondant ?
+ {\IfBooleanTF{#3} % oui : étoile ?
+ {} % oui : n'affiche rien
+ {\textdisplay{#1}{#2}{#4}}} % non : affiche le contenu
+ {\ifmatchingcsthenelse{#1}{#2} % non : ec correspondant ?
+ {\IfBooleanTF{#3} % oui : étoile ?
+ {} % oui : n'affiche rien
+ {\textdisplay{#1}{#2}{#4}}} % non : affiche le contenu
+ {\IfBooleanTF{#3} % non : étoile ?
+ {\textdisplay{#1}{#2}{#4}} % oui : affiche le contenu
+ {}}}} % non : n'affiche rien
+ {\errorifcpnonok{conditext}{#2}}}} % non : message d'erreur sur pc
+ {\errorifcfnoncreated{conditext}{#1}}}} % non : message d'erreur sur dc
+ {\ifthenelse{\equal{\useKV[display]{defaultdisplayall}}{true}} % non : affichage total par défaut ?
+ {\ifcfemptythenelse{#1} % oui : dc renseigné ?
+ {\ifcpemptythenelse{#2} % non : pc renseignée ?
+ {\errorifcpempty{conditext}} % non : message d'erreur sur pc
+ {\ifcpokthenelse{\icf}{#2} % oui : (dc implicite) pc valide ?
+ {\IfBooleanTF{#3} % oui : étoile ?
+ {} % oui : n'affiche rien
+ {\textdisplay{\icf}{#2}{#4}}} % non : affiche le contenu
+ {\errorifcpnonok{conditext}{#2}}}} % non : message d'erreur sur pc
+ {\ifcfokthenelse{#1} % oui : dc valide ?
+ {\ifcpemptythenelse{#2} % oui : pc renseignée ?
+ {\errorifcpempty{conditext}} % non : message d'erreur sur pc
+ {\ifcpokthenelse{#1}{#2} % oui : pc valide ?
+ {\IfBooleanTF{#3} % oui : étoile ?
+ {} % oui : n'affiche rien
+ {\textdisplay{#1}{#2}{#4}}} % non : affiche le contenu
+ {\errorifcpnonok{conditext}{#2}}}} % non : message d'erreur sur pc
+ {\errorifcfnoncreated{conditext}{#1}}}} % non : message d'erreur sur dc
+ {\ifcfemptythenelse{#1} % non : dc renseigné ?
+ {\ifcpemptythenelse{#2} % non : pc renseignée ?
+ {\errorifcpempty{conditext}} % non : message d'erreur sur pc
+ {\ifcpokthenelse{\icf}{#2} % oui : (dc implicite) pc valide ?
+ {\IfBooleanTF{#3} % oui : étoile ?
+ {\textdisplay{\icf}{#2}{#4}} % oui : affiche le contenu
+ {}} % non : n'affiche rien
+ {\errorifcpnonok{conditext}{#2}}}} % non : message d'erreur sur pc
+ {\ifcfokthenelse{#1} % oui : dc valide ?
+ {\ifcpemptythenelse{#2} % oui : pc renseignée ?
+ {\errorifcpempty{conditext}} % non : message d'erreur sur pc
+ {\ifcpokthenelse{#1}{#2} % oui : pc valide ?
+ {\IfBooleanTF{#3} % oui : étoile ?
+ {\textdisplay{#1}{#2}{#4}} % oui : affiche le contenu
+ {}} % non : n'affiche rien
+ {\errorifcpnonok{conditext}{#2}}}} % non : message d'erreur sur pc
+ {\errorifcfnoncreated{conditext}{#1}}}}}} % non : message d'erreur sur dc
+
+
+\NewDocumentCommand\textdisplay{m m m}{% % Affiche une forme substituable selon que le domaine de condition est linguistique ou autre
+ \ifthenelse{\equal{#1}{language}}%
+ {\begin{otherlanguage}{#2}#3\end{otherlanguage}}%
+ {#3}}
+
+%////////////////////////////////////////////////////////////////////////////////
+%//// Commandes : mini-gestion conditionnelle ///////////////////////////////////
+%////////////////////////////////////////////////////////////////////////////////
+
+%//// Commandes : mini-gestion conditionnelle : propriétés de condition /////////
+%////////////////////////////////////////////////////////////////////////////////
+\setKVdefault[mncpi]{mncpi=french}
+\setKVdefault[mncpii]{mncpii=english}
+\setKVdefault[mncpiii]{mncpiii=german}
+\setKVdefault[mncpiv]{mncpiv=spanish}
+\setKVdefault[mncpv]{mncpv=italian}
+\setKVdefault[mncpvi]{mncpvi=portuguese}
+\setKVdefault[mncpvii]{mncpvii=dutch}
+\setKVdefault[mncpviii]{mncpviii=danish}
+\setKVdefault[mncpix]{mncpix=norsk}
+\setKVdefault[mncplanguage]{mncplanguage=true}
+\setKVdefault[mncpreset]{mncpreset=false}
+
+\NewDocumentCommand\resettingminicondiprops{s}{% % Interface pour réinitialiser les propriétés de condition
+ \IfBooleanTF{#1}
+ {\setKV[mncpi]{mncpi=french}
+ \setKV[mncpii]{mncpii=english}
+ \setKV[mncpiii]{mncpiii=german}
+ \setKV[mncpiv]{mncpiv=spanish}
+ \setKV[mncpv]{mncpv=italian}
+ \setKV[mncpvi]{mncpvi=portuguese}
+ \setKV[mncpvii]{mncpvii=dutch}
+ \setKV[mncpviii]{mncpviii=danish}
+ \setKV[mncpix]{mncpix=norsk}
+ \setKV[mncplanguage]{mncplanguage=true}
+ \setKV[mncpreset]{mncpreset=true}}
+ {\setKV[mncpi]{mncpi=none}
+ \setKV[mncpii]{mncpii=none}
+ \setKV[mncpiii]{mncpiii=none}
+ \setKV[mncpiv]{mncpiv=none}
+ \setKV[mncpv]{mncpv=none}
+ \setKV[mncpvi]{mncpvi=none}
+ \setKV[mncpvii]{mncpvii=none}
+ \setKV[mncpviii]{mncpviii=none}
+ \setKV[mncpix]{mncpix=none}
+ \setKV[mncplanguage]{mncplanguage=false}
+ \setKV[mncpreset]{mncpreset=true}}}
+
+\NewDocumentCommand\setminicondiprop{m m}{% % Interface générale pour redéfinir une propriété de condition pour mini-gestion conditionnelle
+ \ifmncpnoresettingthenelse % réinitialisation préalable ?
+ {\errorifmncpnoresetting{setminicondiprop-}} % non : message d'erreur
+ {\ifmncpemptythenelse{#2} % oui : pc renseignée ?
+ {\errorifmncpempty{setminicondiprop#1}} % non : message d'erreur sur pc
+ {\ifmncpalreadyredefinedthenelse{#1}{#2} % oui : pc déjà redéfinie ?
+ {\errorifmncpalreadyredefined{setminicondiprop#1}{#2}} % oui : message d'erreur sur pc
+ {\setKV[mncp#1]{mncp#1=#2}}}}} % non : redéfinit la pc
+
+\NewDocumentCommand\setminicondipropi{m}{% % Interface pour redéfinir une propriété de condition pour la forme substituable n° 1 de la mini-gestion conditionnelle
+ \setminicondiprop{i}{#1}}
+\NewDocumentCommand\setminicondipropii{m}{% % Interface pour redéfinir une propriété de condition pour la forme substituable n° 2 de la mini-gestion conditionnelle
+ \setminicondiprop{ii}{#1}}
+\NewDocumentCommand\setminicondipropiii{m}{% % Interface pour redéfinir une propriété de condition pour la forme substituable n° 3 de la mini-gestion conditionnelle
+ \setminicondiprop{iii}{#1}}
+\NewDocumentCommand\setminicondipropiv{m}{% % Interface pour redéfinir une propriété de condition pour la forme substituable n° 4 de la mini-gestion conditionnelle
+ \setminicondiprop{iv}{#1}}
+\NewDocumentCommand\setminicondipropv{m}{% % Interface pour redéfinir une propriété de condition pour la forme substituable n° 5 de la mini-gestion conditionnelle
+ \setminicondiprop{v}{#1}}
+\NewDocumentCommand\setminicondipropvi{m}{% % Interface pour redéfinir une propriété de condition pour la forme substituable n° 6 de la mini-gestion conditionnelle
+ \setminicondiprop{vi}{#1}}
+\NewDocumentCommand\setminicondipropvii{m}{% % Interface pour redéfinir une propriété de condition pour la forme substituable n° 7 de la mini-gestion conditionnelle
+ \setminicondiprop{vii}{#1}}
+\NewDocumentCommand\setminicondipropviii{m}{% % Interface pour redéfinir une propriété de condition pour la forme substituable n° 8 de la mini-gestion conditionnelle
+ \setminicondiprop{viii}{#1}}
+\NewDocumentCommand\setminicondipropix{m}{% % Interface pour redéfinir une propriété de condition pour la forme substituable n° 9 de la mini-gestion conditionnelle
+ \setminicondiprop{ix}{#1}}
+
+%//// Commandes : mini-gestion conditionnelle : propriétés de condition : tests /
+\NewDocumentCommand\ifmncpnoresettingthenelse{m m}{% % Teste s'il y a eu réinitialisation des propriétés de condition
+ \ifthenelse{\equal{\useKV[mncpreset]{mncpreset}}{false}}
+ {#1}
+ {#2}}
+
+\NewDocumentCommand\ifmncpemptythenelse{m m m}{% % Teste si la propriété de condition est renseignée
+ \ifthenelse{\equal{#1}{}}
+ {#2}
+ {#3}}
+
+\NewDocumentCommand\ifmncpnonethenelse{m m m}{% % Teste si la propriété de condition est neutre
+ \ifthenelse{\equal{\useKV[mncp#1]{mncp#1}}{none}}
+ {#2 \errmsgifmncpnone{#1}}
+ {#3}}
+
+\NewDocumentCommand\ifmncpokthenelse{m m m}{% % Teste si la propriété de condition est valide
+ \ifthenelse{\equal{\useKV[mncpi]{mncpi}}{#1}
+ \AND \not\equal{\useKV[mncpi]{mncpi}}{none}}
+ {#2}
+ {\ifthenelse{\equal{\useKV[mncpii]{mncpii}}{#1}
+ \AND \not\equal{\useKV[mncpii]{mncpii}}{none}}
+ {#2}
+ {\ifthenelse{\equal{\useKV[mncpiii]{mncpiii}}{#1}
+ \AND \not\equal{\useKV[mncpiii]{mncpiii}}{none}}
+ {#2}
+ {\ifthenelse{\equal{\useKV[mncpiv]{mncpiv}}{#1}
+ \AND \not\equal{\useKV[mncpiv]{mncpiv}}{none}}
+ {#2}
+ {\ifthenelse{\equal{\useKV[mncpv]{mncpv}}{#1}
+ \AND \not\equal{\useKV[mncpv]{mncpv}}{none}}
+ {#2}
+ {\ifthenelse{\equal{\useKV[mncpvi]{mncpvi}}{#1}
+ \AND \not\equal{\useKV[mncpvi]{mncpvi}}{none}}
+ {#2}
+ {\ifthenelse{\equal{\useKV[mncpvii]{mncpvii}}{#1}
+ \AND \not\equal{\useKV[mncpvii]{mncpvii}}{none}}
+ {#2}
+ {\ifthenelse{\equal{\useKV[mncpviii]{mncpviii}}{#1}
+ \AND \not\equal{\useKV[mncpviii]{mncpviii}}{none}}
+ {#2}
+ {\ifthenelse{\equal{\useKV[mncpix]{mncpix}}{#1}
+ \AND \not\equal{\useKV[mncpix]{mncpix}}{none}}
+ {#2}
+ {#3}}}}}}}}}}
+
+\NewDocumentCommand\ifmncpalreadyredefinedthenelse{m m m m}{% % Teste si une propriété de condition de même nom existe déjà
+ \ifthenelse{\equal{#1}{i}}
+ {\ifthenelse{%
+ \equal{\useKV[mncpii]{mncpii}}{#2} \OR%
+ \equal{\useKV[mncpiii]{mncpiii}}{#2} \OR%
+ \equal{\useKV[mncpiv]{mncpiv}}{#2} \OR%
+ \equal{\useKV[mncpv]{mncpv}}{#2} \OR%
+ \equal{\useKV[mncpvi]{mncpvi}}{#2} \OR%
+ \equal{\useKV[mncpvii]{mncpvii}}{#2} \OR%
+ \equal{\useKV[mncpviii]{mncpviii}}{#2} \OR%
+ \equal{\useKV[mncpix]{mncpix}}{#2}}
+ {#3}
+ {#4}}
+ {\ifthenelse{\equal{#1}{ii}}
+ {\ifthenelse{%
+ \equal{\useKV[mncpi]{mncpi}}{#2} \OR%
+ \equal{\useKV[mncpiii]{mncpiii}}{#2} \OR%
+ \equal{\useKV[mncpiv]{mncpiv}}{#2} \OR%
+ \equal{\useKV[mncpv]{mncpv}}{#2} \OR%
+ \equal{\useKV[mncpvi]{mncpvi}}{#2} \OR%
+ \equal{\useKV[mncpvii]{mncpvii}}{#2} \OR%
+ \equal{\useKV[mncpviii]{mncpviii}}{#2} \OR%
+ \equal{\useKV[mncpix]{mncpix}}{#2}}
+ {#3}
+ {#4}}
+ {\ifthenelse{\equal{#1}{iii}}
+ {\ifthenelse{%
+ \equal{\useKV[mncpi]{mncpi}}{#2} \OR%
+ \equal{\useKV[mncpii]{mncpii}}{#2} \OR%
+ \equal{\useKV[mncpiv]{mncpiv}}{#2} \OR%
+ \equal{\useKV[mncpv]{mncpv}}{#2} \OR%
+ \equal{\useKV[mncpvi]{mncpvi}}{#2} \OR%
+ \equal{\useKV[mncpvii]{mncpvii}}{#2} \OR%
+ \equal{\useKV[mncpviii]{mncpviii}}{#2} \OR%
+ \equal{\useKV[mncpix]{mncpix}}{#2}}
+ {#3}
+ {#4}}
+ {\ifthenelse{\equal{#1}{iv}}
+ {\ifthenelse{%
+ \equal{\useKV[mncpi]{mncpi}}{#2} \OR%
+ \equal{\useKV[mncpii]{mncpii}}{#2} \OR%
+ \equal{\useKV[mncpiii]{mncpiii}}{#2} \OR%
+ \equal{\useKV[mncpv]{mncpv}}{#2} \OR%
+ \equal{\useKV[mncpvi]{mncpvi}}{#2} \OR%
+ \equal{\useKV[mncpvii]{mncpvii}}{#2} \OR%
+ \equal{\useKV[mncpviii]{mncpviii}}{#2} \OR%
+ \equal{\useKV[mncpix]{mncpix}}{#2}}
+ {#3}
+ {#4}}
+ {\ifthenelse{\equal{#1}{v}}
+ {\ifthenelse{%
+ \equal{\useKV[mncpi]{mncpi}}{#2} \OR%
+ \equal{\useKV[mncpii]{mncpii}}{#2} \OR%
+ \equal{\useKV[mncpiii]{mncpiii}}{#2} \OR%
+ \equal{\useKV[mncpiv]{mncpiv}}{#2} \OR%
+ \equal{\useKV[mncpvi]{mncpvi}}{#2} \OR%
+ \equal{\useKV[mncpvii]{mncpvii}}{#2} \OR%
+ \equal{\useKV[mncpviii]{mncpviii}}{#2} \OR%
+ \equal{\useKV[mncpix]{mncpix}}{#2}}
+ {#3}
+ {#4}}
+ {\ifthenelse{\equal{#1}{vi}}
+ {\ifthenelse{%
+ \equal{\useKV[mncpi]{mncpi}}{#2} \OR%
+ \equal{\useKV[mncpii]{mncpii}}{#2} \OR%
+ \equal{\useKV[mncpiii]{mncpiii}}{#2} \OR%
+ \equal{\useKV[mncpiv]{mncpiv}}{#2} \OR%
+ \equal{\useKV[mncpv]{mncpv}}{#2} \OR%
+ \equal{\useKV[mncpvii]{mncpvii}}{#2} \OR%
+ \equal{\useKV[mncpviii]{mncpviii}}{#2} \OR%
+ \equal{\useKV[mncpix]{mncpix}}{#2}}
+ {#3}
+ {#4}}
+ {\ifthenelse{\equal{#1}{vii}}
+ {\ifthenelse{%
+ \equal{\useKV[mncpi]{mncpi}}{#2} \OR%
+ \equal{\useKV[mncpii]{mncpii}}{#2} \OR%
+ \equal{\useKV[mncpiii]{mncpiii}}{#2} \OR%
+ \equal{\useKV[mncpiv]{mncpiv}}{#2} \OR%
+ \equal{\useKV[mncpv]{mncpv}}{#2} \OR%
+ \equal{\useKV[mncpvi]{mncpvi}}{#2} \OR%
+ \equal{\useKV[mncpviii]{mncpviii}}{#2} \OR%
+ \equal{\useKV[mncpix]{mncpix}}{#2}}
+ {#3}
+ {#4}}
+ {\ifthenelse{\equal{#1}{viii}}
+ {\ifthenelse{%
+ \equal{\useKV[mncpi]{mncpi}}{#2} \OR%
+ \equal{\useKV[mncpii]{mncpii}}{#2} \OR%
+ \equal{\useKV[mncpiii]{mncpiii}}{#2} \OR%
+ \equal{\useKV[mncpiv]{mncpiv}}{#2} \OR%
+ \equal{\useKV[mncpv]{mncpv}}{#2} \OR%
+ \equal{\useKV[mncpvi]{mncpvi}}{#2} \OR%
+ \equal{\useKV[mncpviii]{mncpvii}}{#2} \OR%
+ \equal{\useKV[mncpix]{mncpix}}{#2}}
+ {#3}
+ {#4}}
+ {\ifthenelse{\equal{#1}{ix}}
+ {\ifthenelse{%
+ \equal{\useKV[mncpi]{mncpi}}{#2} \OR%
+ \equal{\useKV[mncpii]{mncpii}}{#2} \OR%
+ \equal{\useKV[mncpiii]{mncpiii}}{#2} \OR%
+ \equal{\useKV[mncpiv]{mncpiv}}{#2} \OR%
+ \equal{\useKV[mncpv]{mncpv}}{#2} \OR%
+ \equal{\useKV[mncpvi]{mncpvi}}{#2} \OR%
+ \equal{\useKV[mncpvii]{mncpvii}}{#2} \OR%
+ \equal{\useKV[mncpviii]{mncpvii}}{#2}}
+ {#3}
+ {#4}}
+ {}}}}}}}}}}
+
+%//// Commandes : mini-gestion conditionnelle : espaces de condition ////////////
+%////////////////////////////////////////////////////////////////////////////////
+\NewDocumentCommand\setminicondispace{m}{% % Interface pour définir l'espace de condition relatif à la mini-gestion conditionnelle
+ \ifmncsemptythenelse{#1} % pc renseignée ?
+ {\errorifmncsempty{setminicondispace}} % non : message d'erreur sur ec
+ {\ifmncpokthenelse{#1} % oui : pc valide ?
+ {\ifmncsalreadydefinedthenelse{#1} % oui : ec déjà défini ?
+ {\errorifmncsalreadydefined{setminicondispace}{#1}} % oui : message d'erreur sur ec
+ {\setKVdefault[mncs]{cs=#1}}} % non : définit l'ec
+ {\errorifmncpnonok{setminicondispace}}}} % non : message d'erreur sur pc
+
+\NewDocumentCommand\ifmncsemptythenelse{m m m}{% % Teste si l'espace de condition relatif à la mini-gestion conditionnelle est renseigné
+ \ifthenelse{\equal{#1}{}}
+ {#2 \errmsgifmncsempty{}}
+ {#3}}
+
+%//// Commandes : mini-gestion conditionnelle : espaces de condition : test /////
+\NewDocumentCommand\ifmncsalreadydefinedthenelse{m m m}{% % Teste si l'espace de condition relatif à la mini-gestion conditionnelle est déjà défini
+ \ifthenelse{\equal{\useKV[mncs]{cs}}{#1}}
+ {#2}
+ {#3}}
+
+%//// Commandes : mini-gestion conditionnelle : formes substituables ////////////
+%////////////////////////////////////////////////////////////////////////////////
+\NewDocumentCommand\minidisplay{m m m}{% % Affiche une forme substituable en mini-gestion conditionnelle
+ \ifmncpnonethenelse{#1} % pc neutre ?
+ {} % oui : n'affiche rien
+ {\ifmatchingmncsthenelse{#1} % non : ec correspondant ?
+ {#2} % oui
+ {#3}}} % non
+
+\NewDocumentCommand\ifmatchingmncsthenelse{m m m}{% % Teste s'il existe un espace de condition pour mini-gestion condit. correspondant à la propriété de condition renseignée
+ \ifthenelse{\equal{\useKV[mncs]{cs}}{\useKV[mncp#1]{mncp#1}}}
+ {#2}
+ {#3}}
+
+\NewDocumentCommand\minidisplayi{m m}{\minidisplay{i}{#1}{#2}} % Affiche la forme substituable n° 1 de la mini-gestion conditionnelle
+\NewDocumentCommand\minidisplayii{m m}{\minidisplay{ii}{#1}{#2}} % Affiche la forme substituable n° 2 de la mini-gestion conditionnelle
+\NewDocumentCommand\minidisplayiii{m m}{\minidisplay{iii}{#1}{#2}} % Affiche la forme substituable n° 3 de la mini-gestion conditionnelle
+\NewDocumentCommand\minidisplayiv{m m}{\minidisplay{iv}{#1}{#2}} % Affiche la forme substituable n° 4 de la mini-gestion conditionnelle
+\NewDocumentCommand\minidisplayv{m m}{\minidisplay{v}{#1}{#2}} % Affiche la forme substituable n° 5 de la mini-gestion conditionnelle
+\NewDocumentCommand\minidisplayvi{m m}{\minidisplay{vi}{#1}{#2}} % Affiche la forme substituable n° 6 de la mini-gestion conditionnelle
+\NewDocumentCommand\minidisplayvii{m m}{\minidisplay{vii}{#1}{#2}} % Affiche la forme substituable n° 7 de la mini-gestion conditionnelle
+\NewDocumentCommand\minidisplayviii{m m}{\minidisplay{viii}{#1}{#2}} % Affiche la forme substituable n° 8 de la mini-gestion conditionnelle
+\NewDocumentCommand\minidisplayix{m m}{\minidisplay{xi}{#1}{#2}} % Affiche la forme substituable n° 9 de la mini-gestion conditionnelle
+
+\NewDocumentCommand\miniconditext{m O{} O{} O{} O{} O{} O{} O{} O{}}{% % Interface pour contenus substituables en mini-gestion conditionnelle
+ \minidisplayi{#1}{%
+ \minidisplayii{#2}{%
+ \minidisplayiii{#3}{%
+ \minidisplayiv{#4}{%
+ \minidisplayv{#5}{%
+ \minidisplayvi{#6}{%
+ \minidisplayvii{#7}{%
+ \minidisplayviii{#8}{%
+ \minidisplayix{#9}{}}}}}}}}}}
+
+%////////////////////////////////////////////////////////////////////////////////
+%//// MESSAGES D'ERREUR /////////////////////////////////////////////////////////
+%////////////////////////////////////////////////////////////////////////////////
+
+%////////////////////////////////////////////////////////////////////////////////
+%//// Messages d'erreur : gestion conditionnelle ////////////////////////////////
+%////////////////////////////////////////////////////////////////////////////////
+
+%//// Messages d'erreur : gestion conditionnelle : domaines de condition ////////
+%////////////////////////////////////////////////////////////////////////////////
+
+%//// Messages d'erreur : gestion conditionnelle : domaines de condition : non renseigné
+\edef\errtxtifcfempty{no condition field entered} % Message d'erreur en cas de domaine de condition non renseigné
+\edef\hlptxtifcfempty{You must not leave the argument empty : % % Message d'aide en cas de domaine de condition non renseigné
+ a condition field must be entered}
+
+\NewDocumentCommand\errorifcfempty{m}{% % Erreur déclenchée en cas de domaine de condition non renseigné
+ \PackageError{conditext}%
+ {#1 statement failed --> \errtxtifcfempty}%
+ {\hlptxtifcfempty.}}
+
+%//// Messages d'erreur : gestion conditionnelle : domaines de condition : non créé
+\edef\errtxtifcfnoncreated{condition field not created} % Message d'erreur en cas de domaine de condition non créé
+\edef\hlptxtifcfnoncreated{You may not have created the condition field % % Message d'aide en cas de domaine de condition non créé
+ whose name is entered : use a newcondifield %
+ statement to make it}
+
+\NewDocumentCommand\errorifcfnoncreated{m m}{% % Erreur déclenchée en cas de domaine de condition non créé
+ \PackageError{conditext}%
+ {#1 statement with "#2" failed --> \errtxtifcfnoncreated}%
+ {\hlptxtifcfnoncreated.}}
+
+%//// Messages d'erreur : gestion conditionnelle : domaines de condition : déjà créé
+\edef\errtxtifcfalreadycreated{condition field already created} % Message d'erreur en cas de domaine de condition déjà créé
+\edef\hlptxtifcfalreadycreated{There must not be two condition fields with % % Message d'aide en cas de domaine de condition déjà créé
+ the same name : you should check in the preamble %
+ if there is not another newcondifield statement %
+ already defined with the same name as argument}
+
+\NewDocumentCommand\errorifcfalreadycreated{m m}{% % Erreur déclenchée en cas de domaine de condition déjà créé
+ \PackageError{conditext}%
+ {#1 statement with "#2" failed --> \errtxtifcfalreadycreated}%
+ {\hlptxtifcfalreadycreated.}}
+
+%//// Messages d'erreur : gestion conditionnelle : propriétés de condition //////
+%////////////////////////////////////////////////////////////////////////////////
+
+%//// Messages d'erreur : gestion conditionnelle : propriétés de condition : non renseignée
+\edef\errtxtifcpempty{no condition property entered} % Message d'erreur en cas de propriété de condition non renseignée
+\edef\hlptxtifcpempty{You must not leave the argument empty : % % Message d'aide en cas de propriété de condition non renseignée
+ a condition property must be entered}
+
+\NewDocumentCommand\errorifcpempty{m}{% % Erreur déclenchée en cas de propriété de condition non renseignée
+ \PackageError{conditext}%
+ {#1 statement failed --> \errtxtifcpempty}%
+ {\hlptxtifcpempty.}}
+
+%//// Messages d'erreur : gestion conditionnelle : propriétés de condition : non créée
+\edef\errtxtifcpnoncreated{condition property non created} % Message d'erreur en cas de propriété de condition non créée
+\edef\hlptxtifcpnoncreated{You may not have created the condition property % % Message d'aide en cas de propriété de condition non créée
+ whose name you have entered : use a newcondiprop %
+ statement to make it}
+
+\NewDocumentCommand\errorifcpnoncreated{m m}{% % Erreur déclenchée en cas de propriété de condition non créée
+ \PackageError{conditext}%
+ {#1 statement with "#2" failed --> \errtxtifcpnoncreated}%
+ {\hlptxtifcpnoncreated.}}
+
+%//// Messages d'erreur : gestion conditionnelle : propriétés de condition : non créée ou inapproprié
+\edef\errtxtifcpnonok{\errtxtifcpnoncreated, or unsuitable} % Message d'erreur en cas de propriété de condition non créée ou inappropriée
+\edef\hlptxtifcpnonok{\hlptxtifcpnoncreated. Or maybe, you should look for % % Message d'aide en cas de propriété de condition non créée ou inappropriée
+ a suitable condition property among the ones created %
+ with link to the condition field entered in the first argument}
+
+\NewDocumentCommand\errorifcpnonok{m m}{% % Erreur déclenchée en cas de propriété de condition non créée ou inappropriée
+ \PackageError{conditext}%
+ {#1 statement with "#2" failed --> \errtxtifcpnonok}%
+ {\hlptxtifcpnonok.}}
+
+%//// Messages d'erreur : gestion conditionnelle : propriétés de condition : déjà créée
+\edef\errtxtifcpalreadycreated{condition property already created} % Message d'erreur en cas de propriété de condition déjà créée
+\edef\hlptxtifcpalreadycreated{There must not be two condition properties with % % Message d'aide en cas de propriété de condition déjà créée
+ the same name when linked to the same condition field : %
+ you should check in the preamble if there is not %
+ another newcondiprop statement already defined %
+ with the same names of condition field and %
+ condition property as arguments}
+
+\NewDocumentCommand\errorifcpalreadycreated{m m}{% % Erreur déclenchée en cas de propriété de condition déjà créée
+ \PackageError{conditext}%
+ {#1 statement with "#2" failed --> \errtxtifcpalreadycreated}%
+ {\hlptxtifcpalreadycreated.}}
+
+%//// Messages d'erreur : gestion conditionnelle : espaces de condition /////////
+%////////////////////////////////////////////////////////////////////////////////
+
+%//// Messages d'erreur : gestion conditionnelle : espaces de condition : déjà défini
+\edef\errtxtifcsalreadydefined{condition space already defined} % Message d'erreur en cas d'espace de condition déjà défini
+\edef\hlptxtifcsalreadydefined{You should check if there is not another % % Message d'aide en cas d'espace de condition déjà défini
+ setcondispace statement already defined %
+ with the same names of condition field and %
+ condition property as arguments}
+
+\NewDocumentCommand\errorifcsalreadydefined{m m m}{% % Erreur déclenchée en cas d'espace de condition déjà défini
+ \PackageError{conditext}%
+ {#1 statement with "#2" et "#3" failed --> \errtxtifcsalreadydefined}%
+ {\hlptxtifcsalreadydefined.}}
+
+%////////////////////////////////////////////////////////////////////////////////
+%//// Messages d'erreur : mini-gestion conditionnelle ///////////////////////////
+%////////////////////////////////////////////////////////////////////////////////
+
+%//// Messages d'erreur : mini-gestion conditionnelle : propriétés de condition /
+%////////////////////////////////////////////////////////////////////////////////
+
+%//// Messages d'erreur : mini-gestion conditionnelle : propriétés de condition : non réinitialisation
+\edef\errtxtifmncpnoresetting{no resetting of the condition properties % % Message d'erreur en cas de non réinitialisation
+ has been made}
+\edef\hlptxtifmncpnoresetting{You must use a resettingminicondiprops statement % % Message d'aide en cas de propriété de non réinitialisation
+ before redefining the condition properties}
+
+\NewDocumentCommand\errorifmncpnoresetting{m}{% % Erreur déclenchée en cas de propriété de non réinitialisation
+ \PackageError{conditext}%
+ {#1 statement failed --> \errtxtifmncpnoresetting}%
+ {\hlptxtifmncpnoresetting.}}
+
+%//// Messages d'erreur : mini-gestion conditionnelle : propriétés de condition : non renseignée
+\edef\errtxtifmncpempty{no condition property entered} % Message d'erreur en cas de propriété de condition non renseignée
+\edef\hlptxtifmncpempty{You must not leave the argument empty : % % Message d'aide en cas de propriété de condition non renseignée
+ a condition property must be entered}
+
+\NewDocumentCommand\errorifmncpempty{m}{% % Erreur déclenchée en cas de propriété de condition non renseignée
+ \PackageError{conditext}%
+ {#1 statement failed --> \errtxtifmncpempty}%
+ {\hlptxtifmncpempty.}}
+
+%//// Messages d'erreur : mini-gestion conditionnelle : propriétés de condition : déjà redéfinie
+\edef\errtxtifmncpalreadyredefined{condition property already redefined} % Message d'erreur en cas de propriété de condition déjà redéfinie
+\edef\hlptxtifmncpalreadyredefined{There must not be two condition properties % % Message d'aide en cas de propriété de condition déjà redéfinie
+ with the same name in a mini conditional management : %
+ you should check in the preamble if there is not %
+ another setminicondiprop- statement already defined %
+ with the same name as argument}
+
+\NewDocumentCommand\errorifmncpalreadyredefined{m m}{% % Erreur déclenchée en cas de propriété de condition déjà redéfinie
+ \PackageError{conditext}%
+ {#1 statement with "#2" failed --> \errtxtifmncpalreadyredefined}%
+ {\hlptxtifmncpalreadyredefined.}}
+
+%//// Messages d'erreur : mini-gestion conditionnelle : propriétés de condition : neutre
+\edef\errtxtifmncpnone{condition property with "none" status} % Message d'erreur en cas de propriété de condition neutre
+\edef\hlptxtifmncpnone{You must not use a condition property with a "none" status : % Message d'aide en cas de propriété de condition neutre
+ redefine it using a setminicondiprop- statement}
+
+\NewDocumentCommand\errorifmncpnone{m m}{% % Erreur déclenchée en cas de propriété de condition neutre
+ \PackageError{conditext}%
+ {#1 statement failed --> \errtxtifmncpalreadyredefined}%
+ {\hlptxtifmncpalreadyredefined.}}
+
+%//// Messages d'erreur : mini-gestion conditionnelle : propriétés de condition : valide
+\edef\errtxtifmncpnonok{\errtxtifmncpnone, or unknown} % Message d'erreur en cas de propriété de condition neutre ou saisie erronément
+\edef\hlptxtifmncpnonok{\hlptxtifmncpnone. Or you should check if % % Message d'aide en cas de propriété de condition neutre ou saisie erronément
+ the condition property is correctly entered}
+
+\NewDocumentCommand\errorifmncpnonok{m}{% % Erreur déclenchée en cas de propriété de condition neutre ou saisie erronément
+ \PackageError{conditext}%
+ {#1 statement failed --> \errtxtifmncpnonok}%
+ {\hlptxtifmncpnonok.}}
+
+%//// Messages d'erreur : mini-gestion conditionnelle : espaces de condition ////
+%////////////////////////////////////////////////////////////////////////////////
+
+%//// Messages d'erreur : mini-gestion conditionnelle : espaces de condition : non renseigné
+\edef\errtxtifmncsempty{no condition space entered} % Message d'erreur en cas d'espace de condition non renseigné
+\edef\hlptxtifmncsempty{You must not leave the argument empty : % % Message d'aide en cas d'espace de condition non renseigné
+ a condition space must be entered}
+
+\NewDocumentCommand\errorifmncsempty{m}{% % Erreur déclenchée en cas d'espace de condition non renseigné
+ \PackageError{conditext}%
+ {#1 statement failed --> \errtxtifmncsempty}%
+ {\hlptxtifmncsempty.}}
+
+%//// Messages d'erreur : mini-gestion conditionnelle : espaces de condition : déjà défini
+\edef\errtxtifmncsalreadydefined{condition space already defined} % Message d'erreur en cas d'espace de condition déjà défini
+\edef\hlptxtifmncsalreadydefined{You should check if there is not % % Message d'aide en cas d'espace de condition déjà défini
+ another setminicondispace statement already defined %
+ with the same name as argument}
+
+\NewDocumentCommand\errorifmncsalreadydefined{m m}{% % Erreur déclenchée en cas d'espace de condition déjà défini
+ \PackageError{conditext}%
+ {#1 statement with "#2" failed --> \errtxtifmncsalreadydefined}%
+ {\hlptxtifmncsalreadydefined.}}
+
+%////////////////////////////////////////////////////////////////////////////////
+%//// Valeurs d'éléments prédéfinis /////////////////////////////////////////////
+%////////////////////////////////////////////////////////////////////////////////
+
+%//// Valeurs d'éléments prédéfinis : domaine de condition linguistique /////////
+%////////////////////////////////////////////////////////////////////////////////
+\newcondifield{language}
+
+%//// Valeurs d'éléments prédéfinis : domaine de condition implicite ////////////
+%////////////////////////////////////////////////////////////////////////////////
+\setimplicitcondifield{language}
+
+%//// Valeurs d'éléments prédéfinis : domaines de condition génériques //////////
+%////////////////////////////////////////////////////////////////////////////////
+\newcondifield{fieldi}
+\newcondifield{fieldii}
+\newcondifield{fieldiii}
+
+%//// Valeurs d'éléments prédéfinis : propriétés de condition linguistiques /////
+%////////////////////////////////////////////////////////////////////////////////
+\newcondiprop{language}{albanian}
+\newcondiprop{language}{american}
+\newcondiprop{language}{arabic}
+\newcondiprop{language}{armenian}
+\newcondiprop{language}{bosnian}
+\newcondiprop{language}{brazilian}
+\newcondiprop{language}{breton}
+\newcondiprop{language}{canadian}
+\newcondiprop{language}{cantonese}
+\newcondiprop{language}{catalan}
+\newcondiprop{language}{chinese}
+\newcondiprop{language}{croatian}
+\newcondiprop{language}{czech}
+\newcondiprop{language}{danish}
+\newcondiprop{language}{dutch}
+\newcondiprop{language}{english}
+\newcondiprop{language}{esperanto}
+\newcondiprop{language}{estonian}
+\newcondiprop{language}{finnish}
+\newcondiprop{language}{french}
+\newcondiprop{language}{georgian}
+\newcondiprop{language}{german}
+\newcondiprop{language}{greek}
+\newcondiprop{language}{hebrew}
+\newcondiprop{language}{hungarian}
+\newcondiprop{language}{icelandic}
+\newcondiprop{language}{irish}
+\newcondiprop{language}{italian}
+\newcondiprop{language}{japanese}
+\newcondiprop{language}{lithuanian}
+\newcondiprop{language}{luxemburgish}
+\newcondiprop{language}{macedonian}
+\newcondiprop{language}{mexican}
+\newcondiprop{language}{norsk}
+\newcondiprop{language}{occitan}
+\newcondiprop{language}{portuguese}
+\newcondiprop{language}{romanian}
+\newcondiprop{language}{romansh}
+\newcondiprop{language}{russian}
+\newcondiprop{language}{sanskrit}
+\newcondiprop{language}{serbian}
+\newcondiprop{language}{slovenian}
+\newcondiprop{language}{spanish}
+\newcondiprop{language}{swedish}
+\newcondiprop{language}{tibetan}
+\newcondiprop{language}{turkish}
+\newcondiprop{language}{ukrainian}
+\newcondiprop{language}{vietnamese}
+
+%//// Valeurs d'éléments prédéfinis : propriétés de condition génériques ////////
+%////////////////////////////////////////////////////////////////////////////////
+\newcondiprop{fieldi}{propa}
+\newcondiprop{fieldi}{propb}
+\newcondiprop{fieldi}{propc}
+\newcondiprop{fieldi}{propd}
+\newcondiprop{fieldi}{prope}
+\newcondiprop{fieldi}{propf}
+\newcondiprop{fieldi}{propg}
+\newcondiprop{fieldi}{proph}
+\newcondiprop{fieldi}{propi}
+
+\newcondiprop{fieldii}{propaa}
+\newcondiprop{fieldii}{propbb}
+\newcondiprop{fieldii}{propcc}
+\newcondiprop{fieldii}{propdd}
+\newcondiprop{fieldii}{propee}
+\newcondiprop{fieldii}{propff}
+\newcondiprop{fieldii}{propgg}
+\newcondiprop{fieldii}{prophh}
+\newcondiprop{fieldii}{propii}
+
+\newcondiprop{fieldiii}{propaaa}
+\newcondiprop{fieldiii}{propbbb}
+\newcondiprop{fieldiii}{propccc}
+\newcondiprop{fieldiii}{propddd}
+\newcondiprop{fieldiii}{propeee}
+\newcondiprop{fieldiii}{propfff}
+\newcondiprop{fieldiii}{propggg}
+\newcondiprop{fieldiii}{prophhh}
+\newcondiprop{fieldiii}{propiii}