Comment résoudre certaines incompatibilités de packages ?

Il arrive parfois lorsque plusieurs packages sont utilisés simultanément que des macros différentes portent le même nom, ou que certaines macros perturbent le fonctionnement d'autres macros. Dans certains cas le problème peut se résoudre en changeant l'ordre d'appel des packages. Exemple (J.P. Drucbert) : Le paquetage psboxit définit des commandes \psboxit qui engendrent \special{ps: ...}. Le problème vient de ce deux-points. Si vous chargez psboxit.sty AVANT babel (option french), pas de problème, le deux-points est un caractère ordinaire (other) lors de la déclaration de la macro \psboxit et donc le \special écrira bien un ":". Par contre si psboxit.sty est chargé APRES babel (option french), le deux-points est alors un caractère actif au moment de la déclaration de la macro \psboxit, et le \special n'écrira pas un deux-points, mais un espace insécable (en fait une macro interne de babel) et un :, d'où les erreurs. C'est un cas classique de catcodes pas très bien gérés (en fait psboxit.sty devrait sauver le catcode de : , donner la catégorie other au caractère :, définir \psboxit, puis restaurer le catcode). %%%% fin exemple %%%%