Pythontex vs lua
-
- Utilisateur éprouvé
- Messages : 539
- Inscription : jeudi 14 octobre 2010, 09:20
- Statut actuel : Enseignant
- Localisation : Clermont-Ferrand
Pythontex vs lua
Bonjour !
je souhaiterais connaitre le point de vue des uns et des autres concernant l'utilisation ou pas de "pythontex" ou de "lua".
Si j'ai bien compris, le premier nécessite d'avoir "python" sur sa machine et de compiler par "-shell-escape" alors que "lua" est déjà installé et ne depend pas d'installation tierce …
Voilà voilà…
Bonne journée !
je souhaiterais connaitre le point de vue des uns et des autres concernant l'utilisation ou pas de "pythontex" ou de "lua".
Si j'ai bien compris, le premier nécessite d'avoir "python" sur sa machine et de compiler par "-shell-escape" alors que "lua" est déjà installé et ne depend pas d'installation tierce …
Voilà voilà…
Bonne journée !
-
- Utilisateur chevronné
- Messages : 2822
- Inscription : samedi 08 juillet 2006, 20:56
- Localisation : Saint Bonnet Elvert
Re: pythontex vs lua
LUA comme Python sont des langages informatique « généralistes » alors que TeX est un langage informatique extrêmement spécialisé. Pourquoi n'a-t-on pas conçu un langage unique, capable de produire des documents écrits de haute qualité et de composer et d'exécuter rapidement toute sorte d'algorithme informatique ? Peut-être qu'un jour ça se fera, mais pour l'instant on en est réduit à essayer de faire collaborer ces deux outils.
Il y a deux façons d'envisager une collaboration:
Pour ma part, je préfère largement la première façon de faire qui est bien plus modulaire et bien plus facile à débugger en cas de problème. Le code LaTeX produit par le langage généraliste peut être retouché « à la main » et peut être réutilisé dans d'autres documents. Les erreurs sont plus facilement détectables car mise en évidence de manière isolées.
Si l'intégration s'effectue sans problème à un moment donné, qu'en sera-t-il quelques années plus tard quand les deux logiciels auront évolué sans tenir compte l'un de l'autre ?
Pour faire bref, je ne suis pas partisan du code Python ou Lua embarqué dans un document LaTeX, c'est une source d'em..bètements
Il y a deux façons d'envisager une collaboration:
- Soit exécuter les algorithmes en LUA ou en Python et leur demander de produire une sortie codée en LaTeX prête à être insérée dans un document;
- Soit embarquer dans un document LaTeX du code LUA ou Python exécuté pendant la compilation pour et insérer les résultats dans le document LaTeX
Pour ma part, je préfère largement la première façon de faire qui est bien plus modulaire et bien plus facile à débugger en cas de problème. Le code LaTeX produit par le langage généraliste peut être retouché « à la main » et peut être réutilisé dans d'autres documents. Les erreurs sont plus facilement détectables car mise en évidence de manière isolées.
Si l'intégration s'effectue sans problème à un moment donné, qu'en sera-t-il quelques années plus tard quand les deux logiciels auront évolué sans tenir compte l'un de l'autre ?
Pour faire bref, je ne suis pas partisan du code Python ou Lua embarqué dans un document LaTeX, c'est une source d'em..bètements
JJR.
LaTeXien migrateur.
LaTeXien migrateur.
-
- Utilisateur éprouvé
- Messages : 539
- Inscription : jeudi 14 octobre 2010, 09:20
- Statut actuel : Enseignant
- Localisation : Clermont-Ferrand
Re: pythontex vs lua
Je vous remercie de m'avoir répondu, c'est sympa.
J'ai découvert depuis peu Pythontex et j'avoue que chez moi ça fonctionne assez bien…
Par contre je ne sais pas comment on fait pour élaborer du latex par Python …
Un bout de code ou une démo m'intéresse vivement.
J'ai découvert depuis peu Pythontex et j'avoue que chez moi ça fonctionne assez bien…
Par contre je ne sais pas comment on fait pour élaborer du latex par Python …
Un bout de code ou une démo m'intéresse vivement.
-
- Utilisateur chevronné
- Messages : 2822
- Inscription : samedi 08 juillet 2006, 20:56
- Localisation : Saint Bonnet Elvert
Re: pythontex vs lua
Je ne suis pas un utilisateur de Python, il faut lire des tutoriels.
Personnellement j'utilise Emacs-Lisp comme langage d'extension, il y a tout ce dont on peut avoir besoin, y compris une calculatrice symbolique, un tableur etc... L'inconvénient est que la prise en main n'est pas immédiate, comme tous les logiciels puissants. Je suis d'ailleurs très loin de tout maîtriser.
Personnellement j'utilise Emacs-Lisp comme langage d'extension, il y a tout ce dont on peut avoir besoin, y compris une calculatrice symbolique, un tableur etc... L'inconvénient est que la prise en main n'est pas immédiate, comme tous les logiciels puissants. Je suis d'ailleurs très loin de tout maîtriser.
JJR.
LaTeXien migrateur.
LaTeXien migrateur.
-
- Utilisateur chevronné
- Messages : 1490
- Inscription : vendredi 19 décembre 2008, 19:13
- Statut actuel : Enseignant
- Localisation : Bordeaux
Re: pythontex vs lua
Bonjour. Il y a quelques articles qui parlent de ça sur mon site. Notamment le dernier : "Créer une arborescence avec Python et LATEX", et d'une manière général, sur la page de recherche, on pourra trouver d'autres articles qui parlent de LaTeX et Python mélangés. Si ça peut en intéresser quelques uns...zariski63 a écrit : ↑vendredi 08 mai 2020, 19:32 Je vous remercie de m'avoir répondu, c'est sympa.
J'ai découvert depuis peu Pythontex et j'avoue que chez moi ça fonctionne assez bien…
Par contre je ne sais pas comment on fait pour élaborer du latex par Python …
Un bout de code ou une démo m'intéresse vivement.
PythonTeX, j'en parle mais je ne l'utilise pas beaucoup car les codes Python que je fais sont trop complexes, mais pour des "petits" codes, ça passe mais il faut bien configurer l'éditeur et quelques fois, c'est pas simple. Je préfère générer le code LaTeX via Python quand il s'agit de scripts plus complexes (comme la création d'une arborescence), mais ce n'est qu'une préférence personnelle. Je pense que ça dépend de tout un chacun et de son niveau en Python.
-
- Utilisateur éprouvé
- Messages : 539
- Inscription : jeudi 14 octobre 2010, 09:20
- Statut actuel : Enseignant
- Localisation : Clermont-Ferrand
Re: pythontex vs lua
C'est grace à votre site justement que j'ai découvert pythontex !
Votre travail est remarquable, bravo !
Votre travail est remarquable, bravo !
-
- Utilisateur chevronné
- Messages : 1136
- Inscription : jeudi 25 novembre 2010, 22:10
Re: pythontex vs lua
Un truc comme cela ?
Code : Tout sélectionner
import os, sys
text1="""Post traitement du raccordement de l'Hélice \n
Ceci est la section \n
Information sur le traitement des paliers"""
text2="""Bon voici du blabla: \n encore un peu, et la aussi.
Prend t'il les saut de lignes en compte \n
On continue histoire de vois ce qui ce passe
au bout de la ligne."""
numcapteur = 25
entete = [("Paliers trouvés","Moyenne [V]","Ecart-type [mV]","Nb de valeurs/palier")]
donneestraitees = [('0', '0.0153', '0.0441', '110'), ('1', '0.2565', '0.7945', '126'), ('2', '0.4967', '0.8953', '135'), ('3', '0.9578', '1.7179', '133'), ('4', '1.4443', '3.599', '131'), ('3', '0.9573', '3.014', '134'), ('2', '0.4996', '0.9662', '133'), ('1', '0.2615', '0.4546', '137'), ('0', '0.0071', '5.7935', '139')]
data_float=[]
for donnees in donneestraitees:
data = [float(el) for el in donnees]
data_float.append(data)
# print(data_float)
t=[0,1,2,3]
import matplotlib.pyplot as plt
for i in range(len(data_float)):
plt.plot(t, data_float[i])
plt.show()
plt.savefig("data.eps",dpi=200)
debut_fichier1 = \
"""
\\documentclass[10pt]{article}
\\usepackage{morewrites}
\\usepackage{etex}
"""
codage_linux = \
"""
\\usepackage[utf8]{inputenc} % \\usepackage[latin1]{inputenc}
"""
codage_win = \
"""
\\usepackage[latin1]{inputenc} %\\usepackage[utf8]{inputenc}
"""
debut_fichier2 = \
"""
\\usepackage{textcomp}
\\usepackage[francais]{babel}
\\usepackage [T1]{fontenc}
\\usepackage{emerald}
\\usepackage{multicol}
\\usepackage{tabularx}
\\usepackage{eurosym}
\\usepackage{longtable}
\\usepackage{enumerate}
\\usepackage[table]{xcolor}
\\usepackage{colortbl}
\\usepackage{lscape}
\\usepackage[a4paper]{geometry}
\\geometry{lmargin=1cm,rmargin=1cm,tmargin=1.1cm,bmargin=1.1cm}
\\usepackage{array,multirow,makecell}
\\usepackage{arydshln}
\\pagestyle{empty}
\\definecolor{pourpre}{rgb}{0.5,0,0.5}%
\\definecolor{brun}{rgb}{0.8,0.4,0.3}%
\\definecolor{orange}{rgb}{1,0.6,0.3}%
\\definecolor{rose}{rgb}{1,0.08,0.58}%
\\definecolor{magenta}{rgb}{1,0,0.5}%
\\definecolor{brunfonce}{RGB}{84,31,0}
\\definecolor{violet}{rgb}{0.57,0,0.8}
\\definecolor{vert}{rgb}{0.1,0.6,0}
\\newcolumntype{R}[1]{>{\\raggedright}m{#1}}
\\newcolumntype{S}[1]{>{ \\color{blue} \\raggedright}m{#1}}
\\newcolumntype{C}[1]{>{\\centering}m{#1}}
\\newcolumntype{L}[1]{>{\\raggedleft}m{#1}}
\\newcolumntype{D}[1]{>{\\bfseries \\raggedleft % \\cellcolor{yellow!10}
} m{#1}}
\\rowcolors{1}{blue!10}{yellow!10}
\\setlength{\\doublerulesep}{0pt}
\\newcommand{\\myhline}{\\hline\\hline\\hline}
\\begin{document}
\\begin{center}
\\fbox{\\textbf{Coucou, nous sommes le \\today }}
\\end{center}
\\vspace{2mm}
"""
fin_fichier = \
"""
\\end{document}
"""
debut_tableau_1 = \
"""
\\begin{center}
\\arrayrulecolor{red!50}{
\\begin{tabular}{|L{3cm}|C{3cm}|S{2cm}|C{2cm}|}
\\myhline
Mes 1 & Mes 2 & Mes 3 & Mes 4
\\tabularnewline
\\myhline
"""
fin_tableau = \
"""
\hline
\\end{tabular}
}
\\end{center}
"""
############################ tableau ######################
if sys.platform == "win32":
mon_fichier1 = open('tab1.tex', 'w',encoding='latin1')
else:
mon_fichier1 = open('tab1.tex', 'w',encoding='utf8')
mon_fichier1 = open('tab1.tex', 'w',encoding='utf8')
nb_col=4
for ligne in data_float:
cpt=0
# print(ligne)
for el in ligne:
if cpt < nb_col-1:
mon_fichier1.write(str(el))
mon_fichier1.write(" & ")
else:
mon_fichier1.write(str(el))
mon_fichier1.write(" \\tabularnewline ")
cpt+=1
mon_fichier1.write("\n\\hdashline \n")
mon_fichier1.close()
####################### ecriture du tex ######################
fichier1 = "toto"
output_file = open("%s.tex" % fichier1,'w',encoding='utf8')
output_file.write(debut_fichier1)
if sys.platform == "win32":
output_file.write(codage_win)
else:
output_file.write(codage_linux)
output_file.write(debut_fichier2)
output_file.write("\n")
output_file.write("numcapteur")
output_file.write("\n")
output_file.write("{\\large \\textbf{%s}}" % numcapteur)
output_file.write("\n")
output_file.write(text1)
output_file.write("\n")
output_file.write(debut_tableau_1)
output_file.write('\\input{tab1.tex}')
output_file.write(fin_tableau)
output_file.write("\n")
output_file.write("\n")
output_file.write(text2)
output_file.write("\n")
output_file.write("\n")
output_file.write("\\begin{center}")
output_file.write("\\includegraphics{data}")
output_file.write("\\end{center}")
output_file.write("\n")
output_file.write("\n")
output_file.write(fin_fichier)
output_file.close()
#######################################################
############### Compilation tex #######################
#######################################################
os.system("latex %s.tex" % fichier1)
os.system("dvips -o %s.ps %s.dvi" % (fichier1,fichier1))
os.system("ps2pdf %s.ps" % fichier1)
########################################################
####### Suppression des fichiers auxiliaires ###########
########################################################
from glob import glob
for sup_aux in glob ('*.aux'):
os.remove (sup_aux)
for sup_dvi in glob ('*.dvi'):
os.remove (sup_dvi)
for sup_log in glob ('*.log'):
os.remove (sup_log)
for sup_ps in glob ('*.ps'):
os.remove (sup_ps)
for sup_mw in glob ('*.mw'):
os.remove (sup_mw)
try:
if sys.platform == "linux": # win32 ou linux
os.system("evince %s" % fichier1+".pdf") # sous linux
elif sys.platform == "win32":
os.startfile(fichier1+".pdf") # sous windows
except:
pass
-
- Utilisateur chevronné
- Messages : 2283
- Inscription : samedi 29 décembre 2007, 00:58
Re: Pythontex vs lua
Un point qui ne semble pas avoir été abordé est le fait que Lua de LuaTeX peut "parler" TeX ce qui permet une vraie interaction de bas niveau comme par exemple l'analyse d'un argument token par token. Un gros plus.
-
- Utilisateur confirmé
- Messages : 17
- Inscription : samedi 18 décembre 2021, 18:50
- Statut actuel : Enseignant
Re: Pythontex vs lua
Hello,
Tout-à-fait d'accord avec toi. J'ai découvert récemment tout le potentiel de Luatex.
Profitez-en tous!
Bien à vous,
Patrice.
Tout-à-fait d'accord avec toi. J'ai découvert récemment tout le potentiel de Luatex.
Profitez-en tous!
Bien à vous,
Patrice.