Le 19/05/2013 12:24, Fabrice a �crit :
> Le 19/05/2013 02:52, GL a �crit :
>> Le 18/05/2013 22:28, Fabrice a �crit :
>
> Merci GL (et n'oubliez pas de dormir, j'aurai pu attendre quelques heures),
> je vais utiliser la derni�re solution pour le d�but du pr�ambule ainsi :
C'�tait samedi soir... joker !
Mais j'ai bien dormi ce matin, merci.
> \RequirePackage{etex}
> \RequirePackage{iftex}
> \ifXeTeX
> \RequirePackage{xltxtra}
> \RequirePackage[francais]{babel}
> \else
> \ifPDFTeX
> \RequirePackage[utf8]{inputenc}
> \RequirePackage[T1]{fontenc}
> \RequirePackage[francais]{babel}
> \RequirePackage{auto-pst-pdf}
> \else
> \RequirePackage[utf8]{inputenc}
> \RequirePackage[T1]{fontenc}
> \RequirePackage[francais]{babel}
> \fi
> \fi
>
> (j'esp�re qu'on peut imbriquer les if ainsi)
Pas de probl�me.
> D'ailleurs, comment rajouter lualatex si l'un des futurs utilisateurs
> veut l'utiliser ? lualatex s'utilise plus comme xelatex ou comme
> pdflatex ? (je veux pouvoir utiliser utf8 et pstricks)
Si vous regardez rapidement la doc (ou le code) de iftex.sty, il y a
aussi : \ifLuaTeX qui est �gal � \iftrue si \directlua est d�fini.
> puis j'utiliserai l'une des deux m�thodes pr�c�dentes (la proprette ou
> kvoptions).
>
> kvoptions a l'air pas mal mais c'est mon premier package et je ne sais
> pas comment l'utiliser.
> Je n'ai pas compris la doc.
Si vous comprenez les options de LaTeX, celles de kvoptions s'en
d�duisent tr�s imm�diatement. kvoptions est un package... pour les
packages (en effet : il g�re les options de packages).
Mais si votre but est uniquement d'ex�cuter du code conditionnel
en fonction du moteur utilis�, kvoptions n'apportera rien.
Le seul truc un peu sioux de kvoptions est la d�claration :
\SetupKeyvalOptions {family=...,prefix=...,setkeys=\kvsetkeys}
Apr�s vous choisissez le type de vos options parmi :
string, void ou bool (il n'y a pas 36 possibilit�s ;-) )
et vous utilisez \ProcessKeyvalOptions � la place de \ProcessOptions.
> j'aimerai que l'utilisateur n'ait pas � faire un \usepackage{kvoptions}
> mais o� le mettre si je veux l'utiliser ?
\ProvidesPackage {monbeaupackage}[date version description]
\RequirePackage {kvoptions}
et c'est r�gl�.
> Dans mon pymath.sty ? Mais dans ce cas, les options sont d�j� entr�es
> avec le format keyval alors que le package kvoptions n'est pas en action !
kvoptions ne changera rien au m�canisme de gestion des options du noyau
LaTeX2e (sauf si vous chargez "kvoptions-patch" mais personne ne le fait
puisqu'alors il faudrait le charger avant m�me \documentclass...) donc
si vous appelez :
\usepackage [engine=pdftex]{monbeaupackage}
l'option, au sens de LaTeX, est "engine=pdftex" (qui est m�me e-deff�e)
mais \ProcessKeyvalOptions (qui sera donc ex�cut�e dans
"monbeaupackage" en lieu et place de \ProcessOptions, et donc apr�s le
chargement de kvoptions) fera le business n�cessaire pour partager
l'option (cl�) et sa modalit� (valeur).
Mais c'est � vous de voir ce dont vous avez besoin. Sachant que pour
un package "g�n�rique" (ie : qui charge d'autres packages) passer des
options � "monbeaupackage" pour les repasser ensuite aux packages
charg�s est un moyen tr�s s�r pour d'obtenir des "options clashes"...
> Merci encore pour cette premi�re r�ponse,
> cordialement,
> Fabrice.
Derien.
Pour info, kvoptions est surtout utile quand vous faites un package
qui comprend une commande de "setup" du type :
\hypersetup
\bookmarksetup
\geometry
\pdfcommentsetup
etc.
Dans ce cas la commande de "setup" est sous forme "cl�=valeur" et
les cl�s, ou certaines d'entre elles, peuvent �tre assign�e directement
au \usepackage.
Ainsi avec kvoptions et kvsetkeys vous g�rez tous les cas.
Si vous n'avez pas de commande de setup, l'int�r�t de kvoptions est
� mon avis discutable :
\usepackage [pdftex]{monbeaupackage}
est souvent pr�f�rable � un truc du style [engine=pdftex]...