[Résolu] Environnement pour placer exposants et indices

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

[Résolu] Environnement pour placer exposants et indices

Messagepar projetmbc » Lundi 05 Janvier 2009, 19:51

Bonjour,
le package mathtools permet avec le code ci-dessous d'obtenir l'image qui suit.

Code: Tout sélectionner
\prescript{4}{3}{CENTRE}^{1}_{2}

${}_{3}^{4}{CENTRE}^{1}_{2}$


Je voudrais créer un environnent spécial qui s'appellerait par exemple param qui travaillerait avec 1,2,3 ou 4 paramètres de la façon suivante.

Code: Tout sélectionner
\param{CENTRE}{1}

${CENTRE}^{1}$


Code: Tout sélectionner
\param{CENTRE}{1}{2}

${CENTRE}^{1}_{2}$


Code: Tout sélectionner
\param{CENTRE}{1}{2}{3}

${}_{3}{CENTRE}^{1}_{2}$


Code: Tout sélectionner
\param{CENTRE}{1}{2}{3}{4}

${}_{3}^{4}{CENTRE}^{1}_{2}$


Quelqu'un serait-il faire cela car j'avoue que la programmation LaTeX me parait très obscure pour le moment ?
Dernière édition par projetmbc le Mercredi 07 Janvier 2009, 19:01, édité 2 fois.
projetmbc
Péta-utilisateur
 
Messages: 1895
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Environnement pour placer des exposants et des indices

Messagepar rebouxo » Lundi 05 Janvier 2009, 23:37

Comme tu le décris, je pense que ce n'est pas possible, par contre c'est tout à fait possible avec keyval (ou xkeyval ou pgfkeys).
Malheureusement, je n'ai toujours pas compris comment cela se programme :D

Ah et c'est une macro que tu demandes pas un environnement.

Olivier
A line is a point that went for a walk. Paul Klee
Par solidarité, pas de MP
rebouxo
Modérateur
 
Messages: 6931
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Re: Environnement pour placer des exposants et des indices

Messagepar fralie » Lundi 05 Janvier 2009, 23:42

bonsoir, voila une proposition
(obtenue à partir de l'adresse suivante ftp://ftp.inria.fr/pub/TeX/CTAN/macros/latex/contrib/mh/mathtools.pdf

Code: Tout sélectionner
\documentclass[10pt,a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{mathtools}
\begin{document}
\newcommand*\myisotope[5]{
\begingroup
\prescript{#5}{#4}{#1}^{#2}_{#3}%
\endgroup
}
\[
\myisotope{A}{Z}{X}{1}{2} \quad
\myisotope{A}{Z}{X}{1}{} \quad
\myisotope{A}{Z}{X}{}{} \quad
\myisotope{A}{Z}{}{}{}
\]
\end{document}
fralie
Déca-utilisateur
 
Messages: 38
Inscription: Mardi 11 Mars 2008, 09:47
Statut actuel: Actif et salarié | Enseignant

Re: Environnement pour placer des exposants et des indices

Messagepar projetmbc » Lundi 05 Janvier 2009, 23:50

J'ai lu la doc. de mathtools. Je me demandais juste s'il était possible de faire une macro qui accepte un nombre variable de paramètres.

Merci pour les infos, je me débrouillerais avec la méthode donnée dans la doc. de mathtools.
projetmbc
Péta-utilisateur
 
Messages: 1895
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: Environnement pour placer des exposants et des indices

Messagepar GMaths » Mardi 06 Janvier 2009, 00:16

Comme cela...

Code: Tout sélectionner
    \documentclass[10pt,a4paper]{article}
    \usepackage[latin1]{inputenc}
    \usepackage{amsmath}
    \usepackage{amsfonts}
    \usepackage{amssymb}
    \usepackage{mathtools}
    \usepackage{xargs}
    \begin{document}
    \newcommandx*\param[5][2,3,4,5]{
    \begingroup
    \prescript{#5}{#4}{#1}^{#2}_{#3}%
    \endgroup
    }
    \[
    \param{CENTRE}[1][2][3][4] \quad
    \param{CENTRE}[1][2][3] \quad
    \param{CENTRE}[1][2] \quad
    \param{CENTRE}[1]
    \]
    \end{document}


... non ?
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Environnement pour placer des exposants et des indices

Messagepar projetmbc » Mardi 06 Janvier 2009, 00:28

Génial ! Merci et bonne nuit. :clapping:

Pourrais-tu expliquer (quand tu auras 5 min) le bout de code ci-dessous ?

Code: Tout sélectionner
    \newcommandx*\param[5][2,3,4,5]{
    \begingroup
    \prescript{#5}{#4}{#1}^{#2}_{#3}%
    \endgroup
projetmbc
Péta-utilisateur
 
Messages: 1895
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: Environnement pour placer des exposants et des indices

Messagepar GMaths » Mardi 06 Janvier 2009, 00:43

projetmbc a écrit:Génial ! Merci et bonne nuit. :clapping:


Il n'y a pas de quoi.

projetmbc a écrit:Pourrais-tu expliquer (quand tu auras 5 min) le bout de code ci-dessous ?

Code: Tout sélectionner
    \newcommandx*\param[5][2,3,4,5]{
    \begingroup
    \prescript{#5}{#4}{#1}^{#2}_{#3}%
    \endgroup


En fait, les macros à plusieurs arguments optionnels ne sont pas prévus avec \newcommand.
Donc, l'idée, pour parer le problème, c'est d'imbriquer plusieurs commandes à un seul argument optionnel.

Et quelqu'un a développé le package xargs pour nous faciliter les choses et a défini \newcommandx.
[2,3,4,5], c'est pour préciser les valeurs par défaut... vides dans ton cas.
mais remplace par [2=a,3=b,4=c,5=d] et tu comprendras comment cela fonctionne.

Jette un coup d'oeil ici : http://tug.ctan.org/get/macros/latex/contrib/xargs/xargs-fr.pdf
Cela manque d'exemples mais il faut lire.
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Environnement pour placer des exposants et des indices

Messagepar projetmbc » Mardi 06 Janvier 2009, 10:00

Merci beaucoup pour les précisisons et la doc. que je vais lire tout de suite.
projetmbc
Péta-utilisateur
 
Messages: 1895
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot], Google [Bot], Google Adsense [Bot] et 11 invités