previous up next contents index
Previous: 11 Mathematica Up: Applyx 054 Next: 13 Html : latex2html   Contents   Index

Subsections

12 Maple

12.1 Installation

  1. Plan d'installation : MapleXX s'installe en /opt/mapleXX. Les batchs de lancement sont en /opt/mapleXX/bin. Placer un lien vers /opt/mapleXX/bin/maple et /opt/mapleXX/bin/xmaple dans un répertoire du PATH par défaut. En fait, ces liens s'appelleront xmaplez6, etc (cf infra).
  2. Intégration dans kde : ajouter les icônes décrites Listing 25 aux adresses /opt/kde3/share/mimelnk/text/x-maple.desktop, /usr/share/applications/x-maple.desktop. Bien entendu, il faut dupliquer cela pour s'il y a plusieurs versions (6 et 9 par exemple).


    \begin{algorithm}
% latex2html id marker 1800
[htbp]
\vskip 0.5 em
\par
\verbati...
...{Maple : intégration dans kde : magic, mimetype, applink.
}
\par
\end{algorithm}

  3. Prévoir le mécanisme update (utilitaires pldx et autres) : il faut un répertoire /opt/mapleXX/update, lisible par tous et inscriptible par l'utilisateur chargé de la maintenance (éviter root).
  4. Comme pour tout autre logiciel "propriétaire", Maple est prévu pour ne pas fonctionner tant que les mécanismes prévus n'autorisent pas. Et comme de juste, la première prévision est mieux soignée que la deuxième.
    Par exemple http://www.maplesoft.com/support/faqs/Maple8/Installation/12.aspx :
    Question : When I try starting Maple on my Red Hat 9.0 machine, I get the following errors:
    /usr/local/maple8/bin.IBM_INTEL_LINUX/mserver: relocation error:
    /usr/local/maple8/bin.IBM_INTEL_LINUX/libmaple.so: symbol errno, version GLIBC_2.0 not defined
    What can I do?
    Answer : Please note that since Red Hat 9.0 was released after Maple 7 and 8, it is not an officially tested and supported platform. However, we do have some Red Hat 9.0 users who have reported...
  5. Bricolage des bibliothèques. L'installation par défaut de maple61 ne fonctionne plus sous $ SuSE-9.3$ (et une machine 32 bits). Il faut indiquer la bonne version du noyau (Listing 26). Et recopier la "bonne version" de la bibliothèque ld-linux.so.2 dans le répertoire $Maple/bin.IBM_INTEL_LINUX22/.


    \begin{algorithm}
% latex2html id marker 1824
[htbp]
\vskip 0.5 em
\par
\begin{m...
...caption{Maple : lanceurs en mode texte et mode graphique
}
\par
\end{algorithm}

  6. Maple9.5 : installer deux icônes, l'une pour cw (classical worksheet), l'autre pour le nouveau style.
  7. Maple 9.5 (notes à inclure). Nécessite les corrections suivantes

    1. 10.2 et 9.3 : changer la ligne #! /bin/sh en #! /bin/bash dans installMapleLinuxSU. Sinon le batch plante immédiatement.
    2. 10.2 et 9.3 : Supprimer les lignes LD_ASSUME_KERNEL dans Linux/Disk1/InstData/VM/LinuxInstaller.bin. Nécessaire pour que l'installation ait lieu. Sinon, grep échoue.
    3. 10.2 : il faut installer les ''deprecated libs''. Sinon l'installation échoue (ne trouve pas certaines librairies). N'est pas utile pour 9.3.
    4. 10.2 et 9.3 : il faut modifier /etc/hosts pour que 127.0.0.1 soit la seule référence à localhost (commenting out the ipV6 line). Sinon : ''connection to kernel lost'' lors de l'exécution.
    5. Installer les *.desktop dans /opt/kde3/share/applications/kde et les icones licq.png et licq9.png dans /opt/kde3/share/icons/crystalsvg.

12.2 Récupération de résultats Maple vers LYX

  1. Méthode générale : la commande Maple : latex fournit la traduction en Maple-latex d'un objet Maple. On peut rediriger cela vers un fichier
  2. En fait, il est intéressant de disposer des commandes latexx, latexy, latexz qui -respectivement- écrivent la première ligne du fichier, ajoute une ligne au fichier, ajoute la dernière ligne et recompile vers un autre fichier *.tex.
  3. Encore mieux : une commande latexq agissant sur une séquence et appliquant les trois commandes précédents, dans le bon ordre.
  4. Une recompilation est nécessaire pour se débarrasser des accolades superflues (qui apparaissent en mode ERT), mais aussi pour retranscrire des quantités qu'il est préférable de programmer sans indice, comme ra, s1, et que l'on veut néanmoins afficher comme $ r_{a},\, s_{1}$ etc.
  5. Il est en outre utile d'organiser les "futurs changement de notations" en utilisant des macros pour coder l'affichage des variables : ainsi utiliser \mpsi pour coder une variable qui s'écrit aujourd'hui $ \psi$ permettra d'en renommer toutes les occurences par la modification d'une seule ligne.
  6. Pour finir, on importe le fichier *.tex ainsi compilé dans une nouvelle feuille LYX par buffer-import latex /full-path/azor.tex.

12.3 Récupération d'une procédure Maple vers LYX

12.3.1 Principe

Maple peut exporter les fichiers *.mws en fichiers *.tex. Évidemment, il s'agit de maple_tex c'est à dire d'un truc hybride et verrouillé, et le problème consiste à en faire du LYX utilisable. Avant toute autre chose, il faut régler au maximum (24 pouces) la largeur de page de la sortie latex de Maple. Sans quoi, un grand nombre d'équations sortent en "multiline" et les ennuis ne sont pas loin.

Pour gérer les empilements d'accolades (etc.) il faudrait une analyse syntaxique. Or écrire un tel analyseur reviendrait à réécrire tex. Les désaccoladations périlleuses seront donc réalisées par LYX lui-même, car un prétraitement du texte est entrepris au chargement. Il reste à le préparer, par exemple en utilisant le fait que l'encapsulation \mathnormal{..} est supprimée lors de ce prétraitement.

  1. Ancienne version. Le traitement de texte était sur une machine (KLYX), et Maple sur une autre machine (winxx). Il y avait "beaucoup" de petits fichiers Maple, que l'on dirigeait vers autant de sous-répertoires différents.

    smbmount //work98/hasard /home/douillet/w98 -N 
    mkdir /home/douillet/docs/simul_book/$1 
    cp /home/douillet/w98/$1/* /home/douillet/docs/simul_book/$1 
    smbumount /home/douillet/w98  
    cd /home/douillet/docs/simul_book ; mk_part5 $1 

  2. Nouvelle version. Le contexte est celui d'un "gros" fichier Maple, dont on récupère divers morceaux à divers moments (dans un seul et même répertoire temporaire). Dans les deux cas, il est indispensable de faire compiler le fichier *.lyx résultant par un nouveau processus LYX... car il arrive que le transcodage se passe mal, et plante le LYX en cours.


    \begin{algorithm}
% latex2html id marker 1892
[htbp]
\vskip 0.5 em\verbatiminput...
...\par
\caption{Lancement simplifié (écriture d'un article).}
\par
\end{algorithm}

12.3.2 Le batch principal

Le traitement (Listing 28) se déroule en quatre passages.


\begin{algorithm}
% latex2html id marker 1899
[htbp]
\vskip 0.5 em\verbatiminput{Inclu_c_applyx/mk_part6}
\par
\caption{Le batch principal.
}
\par
\end{algorithm}

  1. Traitement des fin de lignes (différentes selon la machine sur laquelle tourne Maple), puis redécoupage pour faciliter le traitement principal.
  2. Un traitement spécial des "multiline".
  3. Le traitement principal, avec une modification préalable du filtre sed (gestion des noms des graphiques).
  4. Le traitement des images *.eps. On constate qu'elles ne sont pas codées de la même manière sous u*ix et sous winxx.

12.3.3 Traitement des fins de ligne, et redécoupage

Le but du batch sed_coupe Listing 29 est de découper le fichier en "lignes logiques", et en particulier d'être certain que les deux accolades d'un même couples soient bien sur la même ligne, pouvant ainsi être traitées par reconnaissance de motifs (sed est un filtre portant sur des lignes). Pour améliorer la lisibilité, les "retours à la ligne" faisant partie d'un motif de substitution sont décrits par \£ dans les encadrés de ce document.


\begin{algorithm}
% latex2html id marker 1916
[htbp]
\vskip 0.5 em\verbatiminput...
...u_c_applyx/sed_coupe}
\par
\caption{Le filtre sed\_coupe.
}
\par
\end{algorithm}

12.3.4 Le cas spécial des multiline

S'il reste encore des "multiline" malgré le réglage de la largeur de page en exportation, le filtre Listing 30 les recode en une matrice. Et on laisse une trace (MULTILINE) de la chose dans le fichier final. Ne pas confondre les divers "à la ligne", en particulier \newline qui est une commande LYX et \£ qui est un retour chariot.


\begin{algorithm}
% latex2html id marker 1930
[htbp]
\vskip 0.5 em\verbatiminput...
...yx/sed_multiline}
\par
\caption{Le filtre sed\_multiline.
}
\par
\end{algorithm}

12.3.5 Le filtre principal

Le filtre principal peut alors être lancé. La première partie du filtre (Listing 31) transcode les environnements correspondant à des commentaires. Le titre, les sections et sous sections, les zones mapleinert sont décrits en autant de paragraphes LYX.


\begin{algorithm}
% latex2html id marker 1937
[htbp]
\vskip 0.5 em\verbatiminput...
...d_tex6_1}
\par
\caption{Le filtre sed\_multiline (début).
}
\par
\end{algorithm}

La deuxième partie du filtre (Listing 32) transcode les parties actives du code Maple. L'objectif est évidemment d'automatiser le plus grand nombre possible de manoeuvres et la limitation est la difficulté de trouver la bonne description de ces manoeuvres par des motifs regex. Être très attentif à la bonne synchronisation des ouvreurs et des fermeurs, ainsi que celle des accolades.


\begin{algorithm}
% latex2html id marker 1942
[htbp]
\vskip 0.5 em\verbatiminput...
...sed_tex6_2}
\par
\caption{Le filtre sed\_multiline (fin).
}
\par
\end{algorithm}


previous up next contents index
Previous: 11 Mathematica Up: Applyx 054 Next: 13 Html : latex2html   Contents   Index


douillet@ensait.fr
2010-03-01