Bonjour,
Je suis tombé sur quelques problèmes en essayant de convertir des expressions en latex.
Je précise tout d'abord que je travaille sous linux 9.04 et que j'ai installé la version la plus récente de Xcas.
1- Tout d'abord, un problème lié à l'expression du résultat:
> simplify((3x^3+4*x^2-7*x+1)+(9*x^3-4*x^2-6*x)
12*x^3+(-13)*x+1
Est-il normal d'obtenir +(-13) au lieu de -13? Est-il possible d'éviter ce phénomène?
2- Mon problème latex lui même:
> simplify((3*u^3*v^4-2*u^5*v^2+(u^2*v^2)^2)/(u^3*v^2))
-2*u^2+u*v^2+3*v^2
> latex(ans())
"-\left(2 u^{2}\right)+u v^{2}-\left(-3 v^{2}\right"
Ici, des parenthèses apparaissent lors de la convertion en latex alors qu'elles ne sont pas du tout dans le résultat original et qu'en plus elles ne sont pas nécessaires. Est-il possible de résoudre cela?
Merci d'avance pour votre aide,
Brice
Convertion LaTeX
Modérateur : xcasadmin
Convertion LaTeX
- Pièces jointes
-
- Copie d'écran
- convertion_latex.png (5.31 Kio) Consulté 5196 fois
Re: Convertion LaTeX
bonjour,
je vais essayer d'améliorer ces 2 cas. Mais de toutes façons il faut garder à l'esprit qu'il y aura toujours des cas où la sortie latex ou l'affichage ne sera pas le meilleur!
je vais essayer d'améliorer ces 2 cas. Mais de toutes façons il faut garder à l'esprit qu'il y aura toujours des cas où la sortie latex ou l'affichage ne sera pas le meilleur!
Re: Convertion LaTeX
Je vous remercie pour votre aide.
J'ai essayé avec une fonction de substitution et la transformation des résultats en chaîne de caractères d'améliorer cela. J'arrive à enlever les "+-" mais je n'ai pas réussi avec les \left( et \right).
Pour information, j'ai utilisé le code suivant:
remplace(s,f,r):={local j,news,fs; fs:=size(f); news:=""; while ( (j:=inString(s,f))>=0){ if (j>0) news:=news+s[0..j-1]+r; else news:=news+r; if (j+fs>size(s)-1) s:=""; else s:=s[j+fs..size(s)-1]; }; return news+s; }:;
Resultat:=latex(ans()[0]);
Resultat:=string(Resultat);
Resultat:=remplace(Resultat,"\left("," ");
Resultat:=remplace(Resultat,"\right)"," ");
Resultat:=remplace(Resultat,"+-","-");
Resultat:=remplace(Resultat,"--","+");
J'ai essayé avec une fonction de substitution et la transformation des résultats en chaîne de caractères d'améliorer cela. J'arrive à enlever les "+-" mais je n'ai pas réussi avec les \left( et \right).
Pour information, j'ai utilisé le code suivant:
remplace(s,f,r):={local j,news,fs; fs:=size(f); news:=""; while ( (j:=inString(s,f))>=0){ if (j>0) news:=news+s[0..j-1]+r; else news:=news+r; if (j+fs>size(s)-1) s:=""; else s:=s[j+fs..size(s)-1]; }; return news+s; }:;
Resultat:=latex(ans()[0]);
Resultat:=string(Resultat);
Resultat:=remplace(Resultat,"\left("," ");
Resultat:=remplace(Resultat,"\right)"," ");
Resultat:=remplace(Resultat,"+-","-");
Resultat:=remplace(Resultat,"--","+");
parisse a écrit :bonjour,
je vais essayer d'améliorer ces 2 cas. Mais de toutes façons il faut garder à l'esprit qu'il y aura toujours des cas où la sortie latex ou l'affichage ne sera pas le meilleur!
Re: Convertion LaTeX
Voila, j'ai mis a jour les versions linux avec ces petites ameliorations.
Re: Convertion LaTeX
Merci beaucoup pour votre aide et pour votre réactivité.
Je viens de faire un test et j'ai maintenant le résultat escompté.
Encore merci !
Je viens de faire un test et j'ai maintenant le résultat escompté.
Encore merci !