[tdsfrmath] Module disponible sur CTAN

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.

[tdsfrmath] Module disponible sur CTAN

Messagepar MB » Vendredi 15 Août 2008, 01:01

On peut trouver ici sur CTAN le module tdsfrmath de Yvon Henel qui propose un certain nombre de commandes utiles aux professeurs (de maths et francophones). Voir ici pour la documentation. Il y a des commandes intéressantes.
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 6774
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: [tdsfrmath] Module disponible sur CTAN

Messagepar pg » Mardi 19 Août 2008, 17:39

La commande à mon avis la plus utile est \derpart qui permet de taper \derpart{f}{xxyzzxz} pour obtenir $\frac{\partial^7f}{\partial x^2\partial y\partial z^2 \partial x \partial z}$.

On peut l'isoler si on ne veut pas utiliser le reste du package :

Code: Tout sélectionner
\documentclass{article}
%% commande recopiée avec de légères modifications depuis
%% le fichier taupe.sto du package tdsmath disponible sur
%% http://www.ctan.org/tex-archive/help/Catalogue/entries/tdsfrmath.html
\makeatletter
\newcommand\TdSMDerPartSepar{}% separateur entre les \partial
                              % vide par défaut
\newcommand\derpart[2]{{%
    \count@=1
    \def\TdSM@sentinelle{@@}%
    \def\TdSM@precedent{@@}%
    \def\TdSM@DenomAux{}%
    \def\TdSM@Denom{}%
    \def\TdSM@Puissance{%
      \ifnum\count0>1 ^{\the\count0}\fi}%
    \def\TdSM@FaireDenom##1{%
      \edef\TdSM@Denom{\TdSM@Denom \partial ##1}}
    \def\TdSM@derpartaux##1##2{%
      \ifx\@nil##2%
      \def\TdSM@actuel{##1}%
        \ifx\TdSM@actuel\TdSM@precedent
          \advance\count0 by 1
          \TdSM@FaireDenom{\TdSM@precedent\TdSM@Puissance}%
        \else
          \ifx\TdSM@precedent\TdSM@sentinelle
            \TdSM@FaireDenom{\TdSM@actuel}%
          \else
            \TdSM@FaireDenom{%
              \TdSM@precedent\TdSM@Puissance
              \TdSMDerPartSepar\partial\TdSM@actuel}%
          \fi
        \fi
      \else
      \def\TdSM@actuel{##1}%
      \ifx\TdSM@precedent\TdSM@sentinelle
        \count0=1
      \else
        \ifx\TdSM@actuel\TdSM@precedent
           \advance\count0 by 1
        \else
          \TdSM@FaireDenom{%
            \TdSM@precedent\TdSM@Puissance\TdSMDerPartSepar}%
          \count0=1
        \fi
      \fi
      \advance\count@ by 1
      \let\TdSM@precedent\TdSM@actuel%
      \TdSM@derpart@continue##2%
    \fi}%
\def\TdSM@derpart@continue##1\fi{\fi\TdSM@derpartaux##1}%
\TdSM@derpartaux#2\@nil%
\ensuremath{\frac%
              {\partial\ifnum\count@>1^{\the\count@}\fi #1}%
              {\TdSM@Denom}}%
}}
\makeatother
\begin{document}

$\derpart{f}{xxyzzxz}$

\end{document}

Noter que, malheuseusement, \derpart{f}{x_1x_2x_1} ne donne pas le résultat attendu (il y a même des erreurs de compilation si \TdSMDerPartSepar vaut \, au lieu d'être vide), mais on peut contourner ce problème en tapant \derpart{f}{{x_1}{{{x_2}}}{{{x_1}}}}, ce qui est un peu lourd, mais toujours plus pratique que de tout faire à la main avec des \frac et des \partial.
pg
Modérateur
 
Messages: 2583
Inscription: Jeudi 14 Juin 2007, 23:31

Re: [tdsfrmath] Module disponible sur CTAN

Messagepar MB » Mardi 19 Août 2008, 18:12

Pratique en effet. Il y a un certain nombre de commandes qui isolent automatiquement des arguments comme ça.
J'ai pas bien identifié dans le code comment était réalisée la détection, mais il doit bien y avoir moyen de le cas des variables à indices non ?
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 6774
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: [tdsfrmath] Module disponible sur CTAN

Messagepar pg » Mercredi 20 Août 2008, 16:28

Il explique un peu le détail dans la documentation (page 31). La commande regarde un à un les caractères de la chaine donc peut-être qu'en testant s'il y a un _ qui suit puis en adaptant la commande à appeler si tel est le cas on pourrait obtenir le bon résultat.

En fait, il est probablement plus simple d'essayer d'adapter le code à une syntaxe du type \derpart{f}{x_1,x_2,x_1} où le séparateur est une virgule (ce qui est un peu plus long à taper mais aussi plus simple à relire). À l'occasion, j'essaierai de regarder ça.
pg
Modérateur
 
Messages: 2583
Inscription: Jeudi 14 Juin 2007, 23:31

Re: [tdsfrmath] Module disponible sur CTAN

Messagepar MB » Jeudi 21 Août 2008, 13:16

pg a écrit:En fait, il est probablement plus simple d'essayer d'adapter le code à une syntaxe du type \derpart{f}{x_1,x_2,x_1} où le séparateur est une virgule (ce qui est un peu plus long à taper mais aussi plus simple à relire). À l'occasion, j'essaierai de regarder ça.


En effet, je suis assez d'accord avec ça.
Ou alors des espaces comme il utilise dans \nuplet par exemple.
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 6774
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: [tdsfrmath] Module disponible sur CTAN

Messagepar pg » Vendredi 17 Octobre 2008, 21:48

J'ai finalement eu le temps de regarder, et, en fait, c'est très simple à adapter : il suffit de remplacer \def\TdSM@derpartaux##1##2 par \def\TdSM@derpartaux##1,##2 et plus loin \TdSM@derpartaux#2\@nil par \TdSM@derpartaux#2,\@nil

Bien sûr, si on préfère les espaces aux virgules, il suffit de remplacer ces deux virgules par un espace (ou tout autre caractère de son choix d'ailleurs).

J'en ai aussi profité pour remplacer le \newcommand par un \DeclareRobustCommand, ce qui permet d'utiliser la commande dans les \section{...}

On peut alors utiliser sans problème

Code: Tout sélectionner
$\derpart{f}{x_1,x_1,x_2,x_3,x_3,x_1,x_3}$


pour obtenir $\frac{\partial^7f}{\partial x_1^2\partial x_2 \partial x_3^2 \partial x_1 \partial x_3}$.

Code: Tout sélectionner
\documentclass{article}
%% commande recopiée avec de légères modifications depuis
%% le fichier taupe.sto du package tdsmath disponible sur
%% http://www.ctan.org/tex-archive/help/Catalogue/entries/tdsfrmath.html
\makeatletter
\newcommand\TdSMDerPartSepar{}% separateur entre les \partial
                              % vide par défaut
\DeclareRobustCommand\derpart[2]{{%
    \count@=1
    \def\TdSM@sentinelle{@@}%
    \def\TdSM@precedent{@@}%
    \def\TdSM@DenomAux{}%
    \def\TdSM@Denom{}%
    \def\TdSM@Puissance{%
      \ifnum\count0>1 ^{\the\count0}\fi}%
    \def\TdSM@FaireDenom##1{%
      \edef\TdSM@Denom{\TdSM@Denom \partial ##1}}
    \def\TdSM@derpartaux##1,##2{%
      \ifx\@nil##2%
      \def\TdSM@actuel{##1}%
        \ifx\TdSM@actuel\TdSM@precedent
          \advance\count0 by 1
          \TdSM@FaireDenom{\TdSM@precedent\TdSM@Puissance}%
        \else
          \ifx\TdSM@precedent\TdSM@sentinelle
            \TdSM@FaireDenom{\TdSM@actuel}%
          \else
            \TdSM@FaireDenom{%
              \TdSM@precedent\TdSM@Puissance
              \TdSMDerPartSepar\partial\TdSM@actuel}%
          \fi
        \fi
      \else
      \def\TdSM@actuel{##1}%
      \ifx\TdSM@precedent\TdSM@sentinelle
        \count0=1
      \else
        \ifx\TdSM@actuel\TdSM@precedent
           \advance\count0 by 1
        \else
          \TdSM@FaireDenom{%
            \TdSM@precedent\TdSM@Puissance\TdSMDerPartSepar}%
          \count0=1
        \fi
      \fi
      \advance\count@ by 1
      \let\TdSM@precedent\TdSM@actuel%
      \TdSM@derpart@continue##2%
    \fi}%
\def\TdSM@derpart@continue##1\fi{\fi\TdSM@derpartaux##1}%
\TdSM@derpartaux#2,\@nil%
\ensuremath{\frac%
              {\partial\ifnum\count@>1^{\the\count@}\fi #1}%
              {\TdSM@Denom}}%
}}
\makeatother
\begin{document}

$\derpart{f}{x}$

$\derpart{f}{x,x,y,z,z,x,z}$

$\derpart{f}{x_1,x_1,x_2,x_3,x_3,x_1,x_3}$

\end{document}
pg
Modérateur
 
Messages: 2583
Inscription: Jeudi 14 Juin 2007, 23:31

Re: [tdsfrmath] Module disponible sur CTAN

Messagepar MB » Dimanche 19 Octobre 2008, 00:46

Merci pg, ça peut servir. :D
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 6774
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: [tdsfrmath] Module disponible sur CTAN

Messagepar rebouxo » Dimanche 19 Octobre 2008, 10:00

Il faudrait peut-être contacter Yvon pour lui soumettre cette possibilité, qui est quand même bien plus simple à taper ?

Olivier
rebouxo
Modérateur
 
Messages: 6756
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
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: DotBot [Crawler], Google Adsense [Bot], Proximic [Spider], Yahoo [Bot] et 13 invités