Asymptote et LatexL’incompréhension provient de ma méconnaissance de Latex , de ses règles et usages.
Si on s’autorise à écrire du texte à l’aide de tabular en utilisant un tableau d’une seule colonne , il est facile de créer une fonction Asymptote avec deux paramètres qui contiendra le code Latex de tabular. (cf.exemple)
L’exécution de l’écriture devient alors très simple par l’appel d’une fonction Asymptote et tient en deux lignes.
L’intérêt : Une rapidité d’édition sans qu’il soit nécessaire de passer par l’écriture Latex permettant également d’insérer le texte où l’on veut sur la page.
Si on a l’habitude de présenter ses résultats dans un tableau compliqué avec des lignes de séparation en double, des lignes sans séparation de colonne etc..etc..
Il suffit de rentrer une seule fois l’écriture Latex dans une fonction, de bien choisir les paramètres et l’édition s’effectuera de même en deux lignes de code.
Ma question serait plutôt :
Est-ce que toutes les écritures Latex peuvent s’intégrer dans des fonctions Asymptote ?
je serais tenté de répondre oui… sans le savoir !
Code : Tout sélectionner
settings.outformat="pdf";
usepackage("fourier"); //pour les accents
string edition0(
string sdepart , //texte initial éventuellement sur plusieurs lignes
string cadrage="l" , //les alignements c,r,l ; ""=sans colonnes aligntxt
string lignehz="", // ""= PAS de lignes ; "hz" lignes dessous et dessus
string sep="\\"
)
{
string s, q=sep+'\x0A';
string lcr,hz, dbantis="\\";
string deb_mat,fin_mat,fin_mat=" \end{tabular} ";
//on enlève les " "
lcr=replace (cadrage,' ',''); hz=replace (lignehz,' ','');
//sdepart en tableau
//==================
s=replace(sdepart,'\x0A', q);
string[] tabinit0=split(s,sep);//la chaîne en tableau
int ii, nb_lig=tabinit0.length;
//Le cadrage choisi
deb_mat=" \begin{tabular}{"+lcr+"} ";
//AJOUT des \ hline + CONTENU de A + les \\ de tabular
//====================================================
string lig="",s="";
if(hz=="hz"){lig=" \hline "; } ;
for (int i=0;i<nb_lig;++i){s= tabinit0[ii]+dbantis ;++ii;
lig=lig+s;
};
//le dernier hline
//================
if (hz=="hz") {lig=lig+ " \hline ";}; //la dernière ligne hz du dessous
s=deb_mat+lig+fin_mat;
return s;
};
//UTILISATION:
//***********
//Ex3: Un texte de circonstance...
string s="Un copier/coller (légèrement modifié) car issu d'un .PDF :
\textbf{Apprentissage et pratique de LATEX}
\textbf{Manuel PEGOURIER-GONNARD UPCM module LM204}
Malgré ces nombreux succès, LATEX reste trop souvent perçu comme un outil de spécialiste.
Une des raisons est sa difficulté d'apprentissage. Celle-ci est en partie réelle : d'une part, sa méthode de
préparation des documents, séparant code source et résultat, n'est pas intuitive pour qui n'a pas
une certaine culture informatique, et elle se prête peu à un auto-apprentissage sans document de
référence. Enfin, de part son histoire, LATEX ne forme pas un tout cohérent, et son univers peuplé
de modules et de programmes auxiliaires, souvent encore trop éloigné des standards actuels, peut
dérouter.
Mais une partie des difficultés d'apprentissage est plus environnementale qu'intrinsèque. En
effet, on apprend souvent LATEX sur le tas, à la va-vite, pour produire un mémoire, forcément à
rendre pour hier, en recopiant des recettes trouvées ça et là, chez un collègue ou sur internet.
Sur ce point, LATEX ne se distingue pas des autres outils ou disciplines : on l'apprend mieux et plus vite
en suivant un cours structuré et en prenant le temps de progresser étape par étape, que tout seul
et dans l'urgence.";
s=edition0(s);label (s,(0,0));
//Illustration des cadrages
string s0="Malgré ces nombreux succès
Une des raisons
préparation des documents, séparant";
s=edition0(s0,"|l|","hz");label (s,(0,-5cm));
s=edition0(s0,"|c|","hz");label (s,(0,-7cm));
s=edition0(s0,"|r|","hz");label (s,(0,-9cm));
Asymptote et les fonctionsJe voulais simplement écrire les valeurs propres d’une matrice sans sortir d’Asymptote.