[Résolu] Tableau de valeurs dans Pythontex

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] Tableau de valeurs dans Pythontex

Messagepar fred_maths » Lundi 27 Juillet 2015, 14:28

Bonjour à tous,
j'utilise depuis peu le package pythontex disponible dans la texlive 2015.
mon idée est de générer "des tableau de valeurs de fonction" automatiquement.
le code suivant
Code: Tout sélectionner
\documentclass[french,12pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[a4paper]{geometry}
\usepackage{babel}
\usepackage{pythontex}

\begin{document}
\begin{pycode}
import math
def f(x):
   b= math.log(x)
   c= round(b,5)
   return c
   
lo, hi = 1, 20
print(r"\begin{tabular}{c|c}")
print(r"$x$ & $f(x)$ \\ \hline ")
for m in range(lo, hi + 1):
    print(r"%d & %d \\ " % (m,f(m)))
print(r"\end{tabular}")
\end{pycode}

\end{document}

fonctionne mais je souhaiterai que mon tableau soit horizontal
et non pas vertical :
quelqu'un aurait une idée pour faire les modifs necessaires ...
Merci de m'avoir lu
CDT
FRED
distribution : TEXLIVE2015
sous ubuntu 14.04
Editeur : Texstudio
Dernière édition par fred_maths le Mardi 28 Juillet 2015, 10:30, édité 1 fois.
PC 1 :Ubuntu 14.04 LTSw 8 + Texlive 2017+emacs 24 avec auctex 11.90 + texstudio v 2.9.4
ou
PC 2 : Windows 8 + Texlve 2016 + texstudio v 2.9.4
fred_maths
Déca-utilisateur
 
Messages: 31
Inscription: Vendredi 02 Janvier 2015, 21:57
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Tableau de valeurs dans Pythontex

Messagepar rebouxo » Lundi 27 Juillet 2015, 16:45

Ben au lieu de faire un tableau de deux colonnes, tu fais un tableau de 20 colonnes et de deux lignes ?

Code: Tout sélectionner
    \documentclass[french,12pt]{article}

    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage{lmodern}
    \usepackage[a4paper]{geometry}
    \usepackage{babel}
    \usepackage{pythontex}

    \begin{document}
    \begin{pycode}
    import math
    def f(x):
       b= math.log(x)
       c= round(b,5)
       return c
       
    lo, hi = 1, 20
    print(r"\begin{tabular}{|*{hi}{>{$}c<{$}|}")
    ligneH=""
    ligneB=""
    for m in range(lo, hi + 1):
        ligneH=str(m)+"&"
        ligneB=str(f(m))+"&"
    print(r"ligneB"+\\)
    print(r"ligneH"+\\)
    print(r"\end{tabular}")
    \end{pycode}

    \end{document}


Je te laisse fignoler le code. Faut que j'aille petit déjeuner ;-)
A line is a point that went for a walk. Paul Klee
Par solidarité, pas de MP
rebouxo
Modérateur
 
Messages: 6901
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Re: Tableau de valeurs dans Pythontex

Messagepar fred_maths » Lundi 27 Juillet 2015, 22:44

Merci pour le code cela m'aide beaucoup
car je débute en LaTex et il faut que je pige
toutes les lignes :shock:

j'ai modifié Mon code ainsi ...

Code: Tout sélectionner
\documentclass[french,12pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[a4paper]{geometry}
\usepackage{babel}
\usepackage{array, multirow, tabularx}
\usepackage{pythontex}

\begin{document}
\begin{pycode}
import math
def f(x):
   b= math.log(x)
   c= round(b,3)
   return c
lo, hi = 1, 10
k=hi+1
print(r"\begin{tabular}{|*{k}{c|}")
print(r"\hline")
print(r"$x$")
ligneH=""
ligneB=""
for m in range(lo, hi + 1):
    ligneH=str(m)
    print("&"+ligneH)
print(r"\\")
print(r"\hline")
print(r"$f(x)$")
for m in range(lo, hi + 1): 
    ligneB=str(f(m))
    print("&"+ligneB)
print(r"\\")
print(r"\hline")
print(r"\end{tabular}")
\end{pycode}

\end{document}

le code plante à la troisième compilation
l'erreur indique runaway argument et
plein de ligne d'erreurs file ended scanning while use of \@@array
c 'est bizarre car lors que j'exporte a la main le code python généré
et que je le compile sur latex cela marche impec !

auriez vous une idée d'où cela vient ?
bonne soirée a tous
PC 1 :Ubuntu 14.04 LTSw 8 + Texlive 2017+emacs 24 avec auctex 11.90 + texstudio v 2.9.4
ou
PC 2 : Windows 8 + Texlve 2016 + texstudio v 2.9.4
fred_maths
Déca-utilisateur
 
Messages: 31
Inscription: Vendredi 02 Janvier 2015, 21:57
Statut actuel: Actif et salarié | Enseignant

Re: Tableau de valeurs dans Pythontex

Messagepar rebouxo » Mardi 28 Juillet 2015, 02:05

Le problème de mon code c'est qu'il y a un & de trop. puisque j'écris ligneH+"&" à chaque fois. Il faut donc, virer le dernier &, avec un test dans la partie python.
Je ne suis pas sur que cette ligne :
Code: Tout sélectionner
print(r"\begin{tabular}{|*{k}{c|}")

produise bien ce que tu veux. J'ai peur que le k ne soit pas évaluer.
Je ferais plutôt quelque chose comme cela
Code: Tout sélectionner
debTab="\begin{tabular}{|*{"+str(k)+"}{c|}"
print(r debTab)


Je ne suis pas très familier de pythontex, donc, il faudrait voir ce que fait le print. En particulier que veux dire le r au début (raw ?)

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

Re: Tableau de valeurs dans Pythontex

Messagepar fred_maths » Mardi 28 Juillet 2015, 10:27

hello olivier,

en effet le dernier & est génant :wink: dans ton code

Cependant tu es dans le vrai c'est exactement la ligne
Code: Tout sélectionner
print(r"\begin{tabular}{|*{k}{c|}")

qui ne fonctionne pas dans le mien
le k n'est pas reconnu comme un nombre dans LaTeX
j'ai donc utilisé ton "astuce"
Code: Tout sélectionner
debTab=r"\begin{tabular}{|*{"+str(k)+"}{c|}}"
print(debTab)


et cela fonctionne impec !
voici le code complet
Code: Tout sélectionner
\documentclass[french,12pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[a4paper]{geometry}
\usepackage{babel}
\usepackage{pythontex}
\usepackage{array, multirow,tabularx}
 
\begin{document}
\begin{pycode}
import math
def f(x):
   b= math.log(x)
   c= round(b,3)
   return c
lo, hi = 1, 10
k=(hi+1)
debTab=r"\begin{tabular}{|*{"+str(k)+"}{c|}}"
print(debTab)
print(r"\hline")
print(r"$x$")
ligneH=""
ligneB=""
for m in range(lo, hi + 1):
    ligneH="&"+str(m)
    print(ligneH)
print(r"\\")
print(r"\hline")
print(r"$f(x)$")
for m in range(lo, hi + 1): 
    ligneB="&"+str(f(m))
    print(ligneB)
print(r"\\")
print(r"\hline")
print(r"\end{tabular}")
\end{pycode}

\end{document}
si cela intérèsse un membre du forum
merci pour ton aide Olivier !
a + FRED
PC 1 :Ubuntu 14.04 LTSw 8 + Texlive 2017+emacs 24 avec auctex 11.90 + texstudio v 2.9.4
ou
PC 2 : Windows 8 + Texlve 2016 + texstudio v 2.9.4
fred_maths
Déca-utilisateur
 
Messages: 31
Inscription: Vendredi 02 Janvier 2015, 21:57
Statut actuel: Actif et salarié | Enseignant

Re: [Résolu] Tableau de valeurs dans Pythontex

Messagepar marco56 » Vendredi 14 Août 2015, 00:44

J'arrive un peu après la bataille mais comme fait-on pour compiler ce fichier ?
J'ai tenté pas mal de choses, sans succès (avec pythontex.py %.tex, shell-escape, ...)
Autant, j'ai des choses qui marchent avec le package "python.sty", autant, avec "pythontex", rien ne se passe : page vierge ou erreurs.
marco56
Giga-utilisateur
 
Messages: 745
Inscription: Jeudi 25 Novembre 2010, 22:10
Statut actuel: Actif et salarié | Enseignant

Re: [Résolu] Tableau de valeurs dans Pythontex

Messagepar gigiair » Vendredi 14 Août 2015, 08:18

Il faut lire la doc
Code: Tout sélectionner
texdoc pythontex

ou pour les pressés qui ne lisent jamais une doc :
Code: Tout sélectionner
texdoc pythontex_quickstart.pdf


Supposons que le document se nomme ecm.tex. La suite de commandes suivante fait le truc chez moi (TL2015/Debian Stretch):
Code: Tout sélectionner
 latex ecm
/usr/share/texlive/texmf-dist/scripts/pythontex/pythontex.py ecm.pytxcode
latex ecm

Il faut lancer le script python pythontex.py. Comme il n'est pas dans le PATH, je le lance avec son chemin complet.
C'est un peu lourdingue, on peut scripter, ça dépend du système.
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2381
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: [Résolu] Tableau de valeurs dans Pythontex

Messagepar marco56 » Vendredi 14 Août 2015, 10:54

Merci gigiair,
J'avais regardé la doc mais cela ne m'aide pas trop :
j'ai toujours une page vierge en compilant avec latex.

En console, j'ai :

Code: Tout sélectionner
/usr/share/texlive/texmf-dist/scripts/pythontex/pythontex.py code-python.pytxcode
This is PythonTeX 0.14
* PythonTeX error
    The version of the PythonTeX scripts does not match the last code
    saved by the document--run LaTeX to create an updated version.


Sinon, j'imaginais dans texmaker ou texstudio une commande avec un shell-escape de façon à avoir une commande utilisateur.
marco56
Giga-utilisateur
 
Messages: 745
Inscription: Jeudi 25 Novembre 2010, 22:10
Statut actuel: Actif et salarié | Enseignant

Re: [Résolu] Tableau de valeurs dans Pythontex

Messagepar gigiair » Vendredi 14 Août 2015, 19:01

marco56 a écrit:Merci gigiair,
J'avais regardé la doc mais cela ne m'aide pas trop :
j'ai toujours une page vierge en compilant avec latex.

En console, j'ai :

Code: Tout sélectionner
/usr/share/texlive/texmf-dist/scripts/pythontex/pythontex.py code-python.pytxcode
This is PythonTeX 0.14
* PythonTeX error
    The version of the PythonTeX scripts does not match the last code
    saved by the document--run LaTeX to create an updated version.


Peut-être y a-t-il un bogue dans code-python.tex ? Il vaudrait mieux tester avec un source dont on est sûr, celui qui est fourni ci-dessus et que j'ai testé.
marco56 a écrit:Sinon, j'imaginais dans texmaker ou texstudio une commande avec un shell-escape de façon à avoir une commande utilisateur.

Apparemment, ça ne se peut pas, sinon pourquoi les auteurs du package n'auraient pas inclus cette possibilité dans leur code ? J'ai essayé, le fichier à compiler par pythontex.py n'est créé qu'une fois la compilation par pdflatex terminée, ce qui exclut d'appeler une compilation en cours de processus (c'est ce que j'ai observé, je n'ai pas analysé le code de pythonlatex.sty, je n'en suis pas capable)
Pour se simplifier la tâche, le mieux est sans doute d'utiliser le script latexmk, c'est ce qui est recommandé. Emacs-AUCTeX peut le faire, les autres éditeurs, je ne sais pas.
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2381
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: [Résolu] Tableau de valeurs dans Pythontex

Messagepar marco56 » Vendredi 14 Août 2015, 19:58

Merci pour ta réponse, gigiair,
J'ai fait le test avec le code ci-dessus :
Code: Tout sélectionner
\documentclass[french,12pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[a4paper]{geometry}
\usepackage{babel}
\usepackage{pythontex}
\usepackage{array, multirow,tabularx}
 
\begin{document}

\begin{pycode}
import math
def f(x):
   b= math.log(x)
   c= round(b,3)
   return c
lo, hi = 1, 10
k=(hi+1)
debTab=r"\begin{tabular}{|*{"+str(k)+"}{c|}}"
print(debTab)
print(r"\hline")
print(r"$x$")
ligneH=""
ligneB=""
for m in range(lo, hi + 1):
    ligneH="&"+str(m)
    print(ligneH)
print(r"\\")
print(r"\hline")
print(r"$f(x)$")
for m in range(lo, hi + 1):
    ligneB="&"+str(f(m))
    print(ligneB)
print(r"\\")
print(r"\hline")
print(r"\end{tabular}")
\end{pycode}

\end{document}


J'ai le message suivant en console :
Code: Tout sélectionner
/usr/share/texlive/texmf-dist/scripts/pythontex/pythontex.py code-python.pytxcode
This is PythonTeX 0.14
* PythonTeX error
    The version of the PythonTeX scripts does not match the last code
    saved by the document--run LaTeX to create an updated version.


Tant pis, je continue avec python qui fonctionne bien chez moi.
marco56
Giga-utilisateur
 
Messages: 745
Inscription: Jeudi 25 Novembre 2010, 22:10
Statut actuel: Actif et salarié | Enseignant

Re: [Résolu] Tableau de valeurs dans Pythontex

Messagepar gigiair » Samedi 15 Août 2015, 08:07

Je ne sais quoi dire, chez moi, (TeXLive2015/Debian stretch) ça marche nickel.
Peut-être mettre à jour ou revoir ton installation.
L'appel de pythontex.py --version me retourne PythonTeX 0.14
Un \listfiles dans le fichier tex me renvoie :
pythontex.sty 2014/07/17 Version\unhbox \voidb@x \penalty \@M \ 0.14

Un oubli :
Code: Tout sélectionner
python --version
Python 2.7.10
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2381
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: [Résolu] Tableau de valeurs dans Pythontex

Messagepar marco56 » Samedi 15 Août 2015, 10:37

Je travaille avec une TeXLive 2014.
Les différences chez moi sont :

pythontex.sty 2013/08/26 Version\unhbox \voidb@x \penalty \@M \ 0.12

et le fait que je travaille avec python 2.7.9 (ce qui est d'ailleurs étonnant car j'imaginais que la version par défaut était la 3).

Je me tâte pour installer TeXLive2015 : la dernière fois que j'ai changé de version, je n'ai pas fait les choses proprement et j'ai dû formater mon disque dur...
marco56
Giga-utilisateur
 
Messages: 745
Inscription: Jeudi 25 Novembre 2010, 22:10
Statut actuel: Actif et salarié | Enseignant

Re: [Résolu] Tableau de valeurs dans Pythontex

Messagepar gigiair » Samedi 15 Août 2015, 13:36

A priori, il n'y a aucun rapport entre le formatage d'un disque dur et l'installation de TL2015. Sous Debian Stretch, ça s'est fait automatiquement il y a peu de temps avec une mise à jour du système.
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2381
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: [Résolu] Tableau de valeurs dans Pythontex

Messagepar marco56 » Samedi 15 Août 2015, 13:58

J'ai utilisé cette méthode là pour installer texlive et j'avoue ne pas savoir comment la supprimer pour installer la suivante.
http://www.xm1math.net/doculatex/install_texlive_ubuntu.html
marco56
Giga-utilisateur
 
Messages: 745
Inscription: Jeudi 25 Novembre 2010, 22:10
Statut actuel: Actif et salarié | Enseignant

Re: [Résolu] Tableau de valeurs dans Pythontex

Messagepar kojak » Samedi 15 Août 2015, 14:16

Bonjour,

marco56 a écrit:et le fait que je travaille avec python 2.7.9 (ce qui est d'ailleurs étonnant car j'imaginais que la version par défaut était la 3).


Et avec
Code: Tout sélectionner
python3 --version
ça donne quoi ?
pas d'aide par MP
kojak
Modérateur
 
Messages: 10391
Inscription: Samedi 18 Novembre 2006, 19:50
Statut actuel: Actif et salarié | Enseignant

Re: [Résolu] Tableau de valeurs dans Pythontex

Messagepar gigiair » Samedi 15 Août 2015, 15:16

marco56 a écrit:J'ai utilisé cette méthode là pour installer texlive et j'avoue ne pas savoir comment la supprimer pour installer la suivante.
http://www.xm1math.net/doculatex/install_texlive_ubuntu.html

La désinstallation de TL se fait simplement en mode gui. Il y a un item du menu pour ça.
Pourquoi ne pas utiliser la méthode officielle ?
https://www.tug.org/texlive/doc/texlive ... ve-fr.html
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2381
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: [Résolu] Tableau de valeurs dans Pythontex

Messagepar marco56 » Samedi 15 Août 2015, 18:35

Pour kojak : version 3.4.3

Pour gigiair : c'est quoi le mode gui ?
La dernière fois, j'ai tout fait planter en désinstallant et je suis moyennement chaud.
Pour la réinstallation, oui, je ferai la méthode officielle la prochaine fois.

[edit] Dans synaptic, j'ai texlive qui apparaît.
Par contre, dans la logithèque, c'est comme si ce n'était pas installé.
marco56
Giga-utilisateur
 
Messages: 745
Inscription: Jeudi 25 Novembre 2010, 22:10
Statut actuel: Actif et salarié | Enseignant

Re: [Résolu] Tableau de valeurs dans Pythontex

Messagepar fred_maths » Samedi 15 Août 2015, 19:33

hello,
désolé de ma réponse tardive :)
mode GUI signifie avec l'interface graphique, c du vocable de geek :D
le message d'erreur de marco
Code: Tout sélectionner
    /usr/share/texlive/texmf-dist/scripts/pythontex/pythontex.py code-python.pytxcode
    This is PythonTeX 0.14
    * PythonTeX error
        The version of the PythonTeX scripts does not match the last code
        saved by the document--run LaTeX to create an updated version.


est probablement du a une version préalablement installé du package pythontex.(ptet 0.12)
J'ai déja eu ce soucis et je l'ai résolu en désinstallant pythontex
avec ses dépendances (voir doc de pythontex) et en le réinstallant en version 0.14.
(ou à un problème avec python ?)
faire attention a ce qu'il n'y ai pas une version "parasite" dans un texmf "local"
(j'avais posé la question sur "texstackexchange", il y a peu !
http://tex.stackexchange.com/questions/ ... t-work-why)
Après cela devrait marcher sans problème ... :wink:

Pour compiler le fichier exemple.tex avec pythontex
il faut trois compilations soit en mode console:
>>pdflatex exemple.tex
>>pythontex exemple.tex
>>pdflatex exemple.tex (encore une fois !)

voilà en espérant aider :D
Fichiers joints
essai1.pdf
le fichier compilé avec pythontex
(25.89 Kio) Téléchargé 78 fois
PC 1 :Ubuntu 14.04 LTSw 8 + Texlive 2017+emacs 24 avec auctex 11.90 + texstudio v 2.9.4
ou
PC 2 : Windows 8 + Texlve 2016 + texstudio v 2.9.4
fred_maths
Déca-utilisateur
 
Messages: 31
Inscription: Vendredi 02 Janvier 2015, 21:57
Statut actuel: Actif et salarié | Enseignant

Re: [Résolu] Tableau de valeurs dans Pythontex

Messagepar marco56 » Samedi 15 Août 2015, 20:51

Merci fred_maths : cela fonctionne. Aucune modification de ma config, simplement un souci avec pythontex avec lequel je traitais comme suit :
Code: Tout sélectionner
pythontex.py code-python.pytxcode

C'était une erreur.
Je fais quelques essais et je reviens sur le fofo.
marco56
Giga-utilisateur
 
Messages: 745
Inscription: Jeudi 25 Novembre 2010, 22:10
Statut actuel: Actif et salarié | Enseignant

Re: [Résolu] Tableau de valeurs dans Pythontex

Messagepar fred_maths » Samedi 15 Août 2015, 21:09

ok bien content que cela fonctionne ... :)
il ne te reste plus qu'à peaufiner le code en python
pour régler le pas par exemple (j'y travaille d'ailleurs :wink: )
et LaTeX traitera les tableaux de valeurs avec python !
PC 1 :Ubuntu 14.04 LTSw 8 + Texlive 2017+emacs 24 avec auctex 11.90 + texstudio v 2.9.4
ou
PC 2 : Windows 8 + Texlve 2016 + texstudio v 2.9.4
fred_maths
Déca-utilisateur
 
Messages: 31
Inscription: Vendredi 02 Janvier 2015, 21:57
Statut actuel: Actif et salarié | Enseignant

Suivante

Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Baidu [Spider], Bing [Bot], Google [Bot], Grapeshot [Crawler] et 15 invités