Skip to content
This repository has been archived by the owner on Nov 6, 2018. It is now read-only.

sous-projet pdf_du_cours/from_latex #9

Open
Karduin opened this issue Jan 13, 2018 · 38 comments
Open

sous-projet pdf_du_cours/from_latex #9

Karduin opened this issue Jan 13, 2018 · 38 comments

Comments

@Karduin
Copy link
Collaborator

Karduin commented Jan 13, 2018

J'ouvre cette issue avec une copie du read me.
Aprés avoir generé le pdf du cours avec Sphinx à partir des imports en .rst, et puisque dans ce cas, Sphinx utilise LaTeX,
Je tente une nouvelle approche en utilisant directement LaTeX et les imports du cours en .tex.

Je precise qu'avant ce cours je n'utilisai ni l'un ni l'autre, du coup il y aura certainenemnt des maladresses.

Pourquoi ?

Sphinx
  • Je ne maitrise pas vraiment le rst (il est possible donc qu'il y ai une astuce),
    mais certaines limitations sont pénalisantes dans le cas du cours.
    • Par exemple : Je ne peux pas imbriquer les enrichissements de texte (mette gras et italique ne marche pas)
    • L'utilisation des niveaux de titre et hierarchisés. Impossible de mettre un niveau trois si le deux nexiste pas.
  • Je ne sais pas si cela vient des fichiers Markdown d'origine ou de la generation des rst par ipython, mais les listes ne sont
    pas bien gérées.(Visiblement en LaTeX il y a aussi ce problème mais beaucoup moins fréquent).
  • Les Tables, Aie gros point noir...
  • Bref, autant pour du html ou de l'epub Sphinx et super, autant pour du pdf il faut absolument que les fichiers rst soit parfait.
LaTeX
  • Je ne maitrise pas plus LaTeX que Sphinx puisque decouvert tout récement...
  • Beaucoup de problèmes rencontrés avec les .rst disparaissent avec les .tex.
  • En structurant les fichiers .tex comme ceci :
    • un fichier maître contenant tout les parametres du fichier à rendre, la page de garde et un include de chaque fichier .tex des notebook(purger des paramètres).
    • On peu travailler en équipe, chacun gérant un chapitre par exemple.
    • Si une modification est necessaire, seul un fichier est concerné.
    • Gestion des TOC, notes, bibliographie, etc.
  • Il y a quand de petits choses à corriger dans certains fichiers .tex, mais le résultat est interessant, assez proche du cours et la coloration syntaxique est plus à mon goût.

Comment ?

Ca commence à faire long. Je vais faire un how to pour expliquer la demarche.

@parmentelat
Copy link
Owner

Merci d'avoir exposé le pdf directement dans le repo.

Ce qui me serait le plus utile à ce stade, ce serait

  • de savoir comment je peux reproduire moi même, à partir typiquement du contenu du cours qui est donc toujours sur http://github.com/parmentelat/flotpython;
  • aussi comment tu as prévu de faire pour les semaines optionnelles ? il n'y a plus de corrigés après w6, mais pour les compléments c'est surtout pour la semaine 7 que je suis intéressé, car les deux autres w8 et w9 sont assez légères en termes de notebooks

Je n'avais pas réellement conscience d'en avoir écrit autant que ça en fait ;)

Merci en tous cas à tous les deux !

@parmentelat
Copy link
Owner

en fait j'avais eu un peu du mal à suivre les diverses mutations depuis corriges2rst jusque dans les recoins de pdf_du_cours - que j'avais hativement pris pour juste un moyen d'exposer le résultat

je précise donc que le readme dont veut parler @Karduin c'est celui-ci:
https://github.com/parmentelat/moocpython/blob/master/pdf_du_cours/from_latex/read_me.md

aussi je change le nom de l'issue pour refléter qu'on s'intéresse à pdf_du_cours

@parmentelat parmentelat changed the title PDF from LaTeX sous-projet pdf_du_cours/from_latex Jan 13, 2018
@parmentelat
Copy link
Owner

mais alors maintenant du coup je suis un peu perdu entre les différentes versions de Python3.pdf qui sont sous git; a quoi correspond celle qui est dans corriges2rst, si ce repo s'intéresse seulement aux corrigés (d'après son nom) mais que le pdf contient aussi les notebooks ?

c'est pas forcément très grave, j'essaie juste de suivre :)

@jgorene
Copy link
Collaborator

jgorene commented Jan 13, 2018

Salut à vous,

Oui en effet à ce stade... pas évident de s'y retrouver mais ça vient un peu de moi en fait, dsl ;)

Je pensais m'en être expliqué sur l'issue du corriges2rst... mais bon à fortiori... ma démarche apporte plus de confusion qu'autre chose, ce n'est pas bien grave de toute façon c'est vrai !

Je vais donc supprimer du dossier corriges2rst le pdf "Python 3" de compilation et les 2 scripts concernés qui sont en fait des "intrus" dans ce dossier, c'est vrai...
Ce sera en effet plus facile à suivre pour les visiteurs de passage; c'est important :)

Sinon @Karduin ta nouvelle approche pour générer le pdf du cours est une bonne idée car le langage rst, bien que je commence à m'y retrouver, ce n'est pas évident du tout, en tout cas au départ...
A suivre alors, pas de souci...

@Karduin
Copy link
Collaborator Author

Karduin commented Jan 13, 2018

@parmentelat pas de problème j'ai prévu d'intégrer la totalité du cours.
Dans le how to concernant latex que je vais rédiger, tu auras toutes les explications nécessaires pour générer ou modifier toi même ou ton équipe les futurs versions du cours.
Sinon que pensez vous de la version issue directement de latex ?

@Karduin
Copy link
Collaborator Author

Karduin commented Jan 14, 2018

@parmentelat
Thierry, j'ai rédigé le how to qui, j’espère, est suffisamment clair.
Tu peu voir le pdf en exemple et les fichiers utilisés dans l'archive mooc_pyton.7z

Je n'avais pas réellement conscience d'en avoir écrit autant que ça en fait ;)

Oui ça commence à faire des pages quand même... :-)

@parmentelat
Copy link
Owner

Pour répondre à ta question dans le howto:

Dans le github maitre, on trouve tous les notebooks au format ipynb; pour les transformer en latex plutot que de les prendre sur fun ce qui est fastidieux, il est préférable je pense de juste faire un nbconvert --to latex ou quelque chose dans ce genre

@Karduin
Copy link
Collaborator Author

Karduin commented Jan 14, 2018

J'avais oublié cette commande. Reste à voir comment gérer quelles cellules sont exécuter. Je me souviens que l'on peux dire dans la commande de tout exécuter mais peut on n'en exclure certaines ?

@parmentelat
Copy link
Owner

pour les pdf qui circulent, tu/vous avez fait comment par rapport à l'évaluation des cellules ?
toutes les cellules évaluées, aucune évaluée, choix fait à la main ?

@Karduin
Copy link
Collaborator Author

Karduin commented Jan 14, 2018

Pour tous les notebooks exercices ou python tutor choix manuel.(il y en a relativement peu)
Pout tout les autres en automatique.
Il me semble qu'avec nbconvert il y a une option pour évaluer les cellules en même temps que la conversion.
Il faut voir si avec nbconvert on peu choisir lesquelles évaluer.

@Karduin
Copy link
Collaborator Author

Karduin commented Jan 15, 2018

j'ai fait quelques essais en ligne de commande avec nbconvert.
Pour les notebooks sans exercices ou python tutor, avec une ligne comme celle ci aucun problème.
jupyter nbconvert --ExecutePreprocessor.kernel_name='python3' --to latex --execute w2-s3-c1-slices.ipynb
Pour les autres, on peu contourner le problème comme ça. Mais, si le fichier est bien généré, l'erreur s'affiche dans la cellule concernée.
jupyter nbconvert --ExecutePreprocessor.kernel_name='python3' --to latex --execute --allow-errors w3-s2-x1-comptage.ipynb
J'ai vu que l'on pouvait aussi faire une liste des fichiers à traiter

c.NbConvertApp.notebooks = ["notebook1.ipynb", "notebook2.ipynb"]  

L’idéal serait qu'avec --allow-errors on puisse lui dire de ne rien afficher.
Sinon clairement, on peut via un script traiter tout les ipynb d'un seul coup.
Reste à écrire un script pour modifier les fichiers latex comme expliqué dans le how to.
Je vais creuser encore un peu...

edit: J'ai trouvé un truc mais j'ai du mal à comprendre comment l'utiliser :

from nbconvert.preprocessors import CellExecutionError
try :
    out = ep.preprocess(nb, {'metadata': {'path': run_path}})
except CellExecutionError:
    out = None
    msg = 'Error executing the notebook "%s".\n\n' % notebook_filename
    msg += 'See notebook "%s" for the traceback.' % notebook_filename_out
    print(msg)
    raise
finally:
    with open(notebook_filename_out, mode='wt') as f:
        nbformat.write(nb, f)

Est ce qu'avec ça on pourrai générer le fichier sans que l'erreur s'affiche dans la cellule et si oui, comment je l'utilise ?

@parmentelat
Copy link
Owner

je n'ai pas la réponse sous la main..

mais c'est quoi exactement le problème ? est-ce que c'est que l'évaluation s'arrête lorsqu'on rencontre un problème ? ou bien qu'on veut cherche un moyen de sélectionner a priori les cellules à évaluer et pas les autres ?

aussi je ne me rends pas bien compte du problème spécifique que pose les cellules pythontutor spécifiquement, peux-tu être plus explicite là dessus aussi ?

merci en tous cas de tout ce temps passé là dessus; il ne faut pas que ça devienne trop lourd comme travail, souviens-toi qu'il s'agit d'un exercice :)

@jgorene
Copy link
Collaborator

jgorene commented Jan 15, 2018

J'ai bien essayé de survoler le howto mais j'avoue que j'ai du mal à y voir clair et donc désolé de ne pas apporter plus de retours; en tout cas pour le moment...

Sinon, bravo pour le travail fourni en effet 👍

De mon côté, j'avoue avoir toujours la tête immergée dans les fichiers rst avec lesquels je commence à m'y retrouver pour la configuration de Sphinx (encore du boulot malgré tout)

Je vais essayer de suivre ça...
Sinon, un des côtés très intéressant c'est l'accès aux "coulisses" de ce mooc... et voir le travail effectué déjà et entre autres choses ;)
Bravo aussi 👍

@jgorene
Copy link
Collaborator

jgorene commented Jan 16, 2018

J'ai procédé à quelques tests pris comme un exercice perso juste pour essayer de mieux voir de quoi il retourne ... tout en restant sur une compile pdf à partir des fichiers rst, pour ma part ;)

J'utilise nbconvert comme librairie en essayant de suivre ce doc pour convertir aussi bien en .tex (voir fichier joint flotpython-w1-tex.zip ) qu'en rst ou autres... à partir d'un script.
Au final, hyper efficace avec quelques secondes par semaine... rien à dire !
Toujours impressionné par Python, bref !

Pas de pbs pour convertir sans exécuter donc mais pour l’exécution des notebooks toujours en essayant de suivre la doc, je rencontre une erreur assez claire (en apparence seulement;) que je n'arrive pas à solutionner pour le moment en tout cas...
J'effectue l'opération à partir d'un script sur Spyder avec sans doute un pb d'environnement différent du dossier d'exécution contenant le module nbconvert par rapport au dossier des corrections, à voir ??

ModuleNotFoundErrorTraceback (most recent call last)
<ipython-input-1-ce7e6fb238d0> in <module>()
      1 # évaluez cette cellule pour charger l'exercice
----> 2 from corrections.regexp_pythonid import exo_pythonid

ModuleNotFoundError: No module named 'corrections'

Ceci étant dit une question quand même:

  • est-il finalement utile d’exécuter les notebooks ?
    il y aura "les corrigés" qui feront + ou - double emploi déjà :D
    les notebooks exécutés dans le pdf ne seront peut-être pas vraiment utile en terme d'apprentissage côté "utilisateur" au final, mais à voir ?

Pour finir comme le note Thierry... c'est vite beaucoup de temps passé quand on débute en tout cas... d'un autre côté, excellent apprentissage aussi !
A suivre...

@parmentelat
Copy link
Owner

je suis assez d'accord que les notebooks d'exercices n'ont pas besoin d'être évalués

cela étant dit le package de corrections est dans le repo flotpython dans le sous-répertoire modules

@Karduin
Copy link
Collaborator Author

Karduin commented Jan 16, 2018

Alors pour éviter tous ces problèmes de fichiers manquant, et comme le souligne Thierry, j'ai telecharger l’intégralité du flotpython.
Pour les exercices, j’exécute quand même les cellules exemples.
Les soucis restant :

  • Les cellules attendant un entrée utilisateur
  • Les cellules Python tutor qui ne retourne qu'un lien html (Ce qui me parait logique)
  • Des caractères qui ne passent pas ! LaTeX me dit qu'ils sont dans uni-39.def. C'est bien mais pour le moment je ne sais pas comment définir un glyphe supplémentaire :-(
    Si vous avez l'info, je suis preneur.
  • Jupyter échappe le caractère $ qui est utilisé par LaTeX pour les mathématiques. Du coup l'affichage des formules est incorrect. et les commandes du style \begin{array} ne passent pas

C'est tout pour le moment

@jgorene
Copy link
Collaborator

jgorene commented Jan 16, 2018

J'ai fait pareil pour floppython; la chose intéressante étant de savoir utiliser (même en partie) nbconvert... au fait, quand même beauuucoup plus pratique que de le faire à la main (pour répondre à Thierry en passant ;)

Par contre, je n'arrive toujours à exécuter les notebooks:

  • ni en ligne de commande lancer directement à partir du dossier flotpython-master/
    jupyter nbconvert --to rst --execute w2-s2-x1-expressions-regulieres.ipynb
  • ni en lançant jupyter à partir d'anaconda-navigator lancé du même dossier (voir capture écran)

Après 2 ou 3 essais, toujours le même message d'erreur cité précédemment !
Sans doute que cette action doit être exécutée avec une connexion serveur ou autre action que je ne maîtrise pas de toute façon; je vais donc laisser ça de côté car non prioritaire pour moi ;)

Pour revenir à la création du pdf par sphinx à partir de fichiers tex ou rst un des problèmes gênant il me semble (et entre autres) mais pas bloquant, c'est le niveau des titres qui ne suivent pas toujours la bonne "hiérarchie" pour les notebooks notamment; comme th l'avais d'ailleurs signalé Fangh dans le tuto initial mis à dispo pour Sphinx.
De mon côté, je vais plutôt voir de ce côté là; comment essayer de corriger ça déjà sur les fichiers convertis si c'est possible bien sûr car peut être intéressant comme démarche "en pratique"...
A suivre donc...

@parmentelat
Copy link
Owner

Pour évaluer les notebooks d'exercices - et quelques autres qui utilisent du code ad hoc au mooc -
vous pouvez positionner la variable d'environnement PYTHONPATH pour désigner l'endroit où vous avez cloné le repo flotpython - plus précisément donc, son sous-répertoire modules/

je suis nul en windows, mais en macos ça donnerait, si vous avez cloné flotpython dans
/Users/jgorene/git/flotpython
alors

export PYTHONPATH=/Users/jgorene/git/flotpython/modules
jupyter nbconvert --execute ...

de cette façon les interpréteurs python lancés comme des descendants de mon bash vont hériter de cette variable, et ça leur permettra de trouver les modules dont on a besoin

@jgorene
Copy link
Collaborator

jgorene commented Jan 17, 2018

Merci beaucoup pour le retour :)
Je viens de tester rapidement depuis Spyder, j'ai toujours le message d'erreur bloquant pour l'instant mais je vois mieux ce qu'il faut faire, c'est le plus important !
Je vais juste prendre le temps pour voir ça tranquillement... pour ne pas risquer de mettre le bazar sur ma machine en fonction des versions de python ou autres contraintes à prendre en compte en fonction de la configuration en place...
Pas de souci, à suivre ;)

@jgorene
Copy link
Collaborator

jgorene commented Jan 17, 2018

@parmentelat Bon, je viens de tester dans le terminal sur un fichier... nickel 👍
Merci ;)

@Karduin
Copy link
Collaborator Author

Karduin commented Jan 17, 2018

J'ai uploder la nouvelle version.

  • w2-s1-c1-accents, w4-s2-x1-dispatch, w6-s1-c3-property, ne sont inclus (problèmes de caractéres, maths, etc.)
  • 1 seul corrigé pour le moment (Je les refait en notbook)
    • Je fais ça en local, c'est tellement plus facile à manipuler après ;-)
    • J' ai mis l'ipynb dans le même dossier
  • Quelques soucis reste à régler, mais il faut une relecture du document :
    • Des listes qui s'affichent pas correctement
    • Des signes mathématiques (ça je sais d’où sa viens mais faut relire)
    • Peut-être des images manquantes
    • Des lignes trop longues
      Bref, je vais signaler la nouvelle version sur le forum et voir si il y a des courageux pour retourner l'info

@jgorene
Copy link
Collaborator

jgorene commented Jan 17, 2018

Finalement réalisé à partir de fichiers tex ?

Sinon, je relève un peu les mêmes soucis non bloquants par contre à la génération par Sphinx... sauf que tout les fichiers sont présents au final dans mon cas, complets... à vérifier aussi?
Ça fait quand même un gros pavé;)
Python3 - 1 a 9 - sansindex.pdf

Le doc finalisé joint à partir de fichiers rst au cas où... convertis à la volée avec nbconvert (un régal;) mais pas exécutés par contre; du coup les exemples n'apparaissent pas non plus; gênant ? à voir ?

@Karduin
Copy link
Collaborator Author

Karduin commented Jan 17, 2018

Oui tout en LATeX. (Pas si simple...)
Bah je pense que comme tout document de ce type, la phase relecture est obligatoire.
On obtient visiblement jamais un 100%. Il y a toujours des petites modifications à faire.
Je ferai peut être ça au fil de l'eau.
Ce que je voulais c'est avoir une doc qui tient à peu prés la route, si d'autre peuvent en profiter tant mieux.

@jgorene
Copy link
Collaborator

jgorene commented Jan 17, 2018

Oui au fait, fichiers "non exécutés" parce-qu'après avoir testé via le terminal que ça fonctionnait bien sur un fichier, je rencontre encore quelques soucis genre:

  • je n'arrive pas à faire fonctionner l'exécution des fichiers via un script pour gérer ça "à la volée" par dossier par exemple comme je le fais pour simplement convertir toujours avec nbconvert.
  • par ailleurs, sur certains fichiers comme w2-s2-c3-la-fonction-input.ipynb (exemple)... ça coince aussi sur le terminal ?
    Le message d'erreur pour info, à priori ça ne gère pas les input en exécutant le notebook de cette façon, à voir ?
StdinNotImplementedError                  Traceback (most recent call last)
<ipython-input-1-7562c3901126> in <module>()
----> 1 nom_ville = input("Entrez le nom de la ville : ")
      2 print(f"nom_ville={nom_ville}")

~/anaconda3/lib/python3.6/site-packages/ipykernel/kernelbase.py in raw_input(self, prompt)
    698         if not self._allow_stdin:
    699             raise StdinNotImplementedError(
--> 700                 "raw_input was called, but this frontend does not support input requests."
    701             )
    702         return self._input_request(str(prompt),

StdinNotImplementedError: raw_input was called, but this frontend does not support input requests.

Par contre aucune urgence de mon côté, je regarderais ça tranquillement plus tard ;)

@Karduin
Copy link
Collaborator Author

Karduin commented Jan 17, 2018

Oui sur celui c'est normal la cellule attend une entrée utilisateur qui n'arrive pas.
C'est une des raisons pour lesquelles je génère mes fichiers .tex à partir des notebooks en web (local ou fun mooc).
C'est ch*** comme tout, je te l'accorde, mais pour l'instant je n'ai pas d'autre solution.

edit : J'ai rajouté un lien pour télécharger ta version dans le forum sur le post épinglé ;-)

@jgorene
Copy link
Collaborator

jgorene commented Jan 17, 2018

Oui, il me semblait voir d'où pouvait le pb... mai bon pas d'ugence ;)
Merci pour le pdf au fait !

Sinon bravo pour le boulot avant déjà (tuto compris;)... qui plus est depuis la "démarche tex" !

Tout ça est assez nouveau pour moi aussi : python que je viens juste de découvrir (encore du boulot mais passionnant) le rst, latex et autres joyeusetés au travers de python et de Sphinx... ça fait beaucoup de choses en peu de temps !

Je vais donc le prendre tranquille et verrais un peu plus tard pour les fichiers tex !
A chacun son rythme :D

@jgorene
Copy link
Collaborator

jgorene commented Jan 17, 2018

@Karduin Oups !
Si tu pouvais plutôt mettre la version avec la table des matières à y être.. ce sera peut-être mieux.
L'autre ex. était un test en fait...
Merci :)
Python3 - 1 a 9 avec index.pdf

@Karduin
Copy link
Collaborator Author

Karduin commented Jan 18, 2018

@jgorene c'est fait ;-)
J'ai uploadé ma nouvelle version qui intègre tous les fichiers.
Ne reste plus que les petits soucis de mise en page (quelques listes, certains trucs mathématiques et lignes trop longue)

@jgorene
Copy link
Collaborator

jgorene commented Jan 18, 2018

Super, merci =)
Pour les soucis un peu pareil et je me bagarre toujours avec les "niveaux" de titres... certes non bloquant mais à y être !
J'avance péniblement et je vais peut-être un peu laisser refroidir je pense, mais à suivre malgré tout ;)

@jgorene
Copy link
Collaborator

jgorene commented Jan 19, 2018

@Karduin
Bon, j'en ai eu un peu marre de Sphinx et de la gestion des titres (entre autres)... pour le moment ;)
Finalement, j'ai testé ta "recette" pour travailler à partir d'un fichier maître en latex...
Super vraiment et merci à nouveau 👍 👍

Comme quoi, faut laisser un peu décanté parfois ;)
J'ai donc testé "à la main" pour le moment sur TeXmaker en suivant les indications et ma foi, latex ce n'est pas si mal au final :D

En parlant de ça, bien que tu dois avoir ce qu'il faut je pense, j'ai fait un script "semi-automatique" pour convertir de .ipynb en rst, tex; on peut y ajouter toutes les extensions que permet nbconvert en fait.
Je te le fais passer, le cas échéant

Du coup, je vais essayer d'automatiser une action en fonction de ta recette pour voir ce que ça donne...
Ok, à suivre

@Karduin
Copy link
Collaborator Author

Karduin commented Jan 19, 2018

Oui, j'aime bien LaTeX, encore un peu difficile à appréhender,mais ça commence à venir...
C'est vraiment puissant !

J'ai mis mon fichier master.tex ici si cela intéresse quelqu'un.
@parmentelat
Si cela t’intéresses, je rajoute tous les fichiers .tex des cours utilisés pour générer le pdf.
Comme cela tu pourras les modifier à ta guise.
@jgorene
Je peux aussi les mettre sur mon propre dépôt si tu veux les télécharger et si cela n'est pas trop le sujet de ce dépôt. (ou par exemple les corrigés que j'ai refait en notebooks pour générer facilement du LaTeX)

@jgorene
Copy link
Collaborator

jgorene commented Jan 19, 2018

Puissant en effet, c'est le terme !
Pour le document maître je viens de voir mais j'avais fait le mien du coup et je commence aussi à m'y retrouver; au début je ne voyais que des pourcentages partout, mais ça va mieux ;)

Sinon si ça t'intéresse, j'ai trouvé 2 lignes de codes à ajouter pour un effet de style pas vilain du tout () :

  • option "openamy" pour supprimer les pages blanches entre les chapitres (si on veut, bien sûr;) tout en gardant la répartition "gauche / droite" pour l'impression (le cas échéant, on ne sait jamais ;))
    \documentclass[11pt, a4paper, french, openany]{book}
  • des libellés de chapitre assez élégants qui au final "aère" l'ensemble, je trouve (mais à voir ?) ...
    en ajoutant les 3 lignes... accolades comprises sous "\usepackage[french]{babel}"
    permet de modifier le "chaptername" par defaut et on met ce qu'on veut à la place de "Semaine"
\usepackage[french]{babel} 
\addto\captionsfrench{
\renewcommand{\chaptername}{Semaine} 
}

en changeant l'option Lenny par Glenn pour fncychap
\usepackage[Glenn]{fncychap}
chapter-python 3
Et c'est tout !
Merci encore pour ton travail et les tutos :)

@jgorene
Copy link
Collaborator

jgorene commented Jan 22, 2018

Salut @Karduin
Puissant Latex c'est vrai mais... au minimum... sportif !
Disons qu'il faut être motivé genre nécessité oblige... pour pratiquer, bref;)

J'ai quand même essayé d'avancer pour résoudre certaines erreurs rencontrées...

Pour ne pas être trop long, juste 2 docs joints ... le pdf final (-3 fichiers) et le document maître tex...;
Jai travaillé initialement sur une autre présentation mais j'ai remis ta page d'accueil ainsi que l'option "Lenny", les 2 passant très bien, pour que tu puisses t'y retrouver; j'espère !

En comparant les 2 docs "maître", on voit vite les apports sur le "preamble' initial qui permettent de régler certains pbs comme les caractères unicode non reconnus (entre autres)
J'ai encore des erreurs restantes sur les 3 fichiers manquants avec 3 types d'erreurs seulement; pour l'instant je cale... (w2-s1-c1-accents.tex, w2-s6-x4-if-et-def.tex, w4-s2-x1-dispatch)

Par contre, juste un corrigé en test car j'essaie encore de les sortir à partir des fichiers txt que je convertis en tex à partir d'un script python cette fois ; encore un bout de code à régler et à trouver... justement pour délimiter les partie de "bloc code" que l'on retrouve sur les fichiers txt; manque pas grand chose mais pas gagné !

Sinon, pas la peine de remettre cette version en ligne c'est juste un document de travail qui j'espère pourra apporter quelques réponses... même si ça déborde très largement des seuls corrigés.
Sans tes tutos initiaux, j'aurais rien fait de toute façon, donc pas de souci.

python3-test.pdf

python3-maitre-test.txt

@Karduin
Copy link
Collaborator Author

Karduin commented Jan 22, 2018

Salut @jgorene ,
haha, sportif en effet, faut en vouloir pour aller au bout ! Il y a peut être une manière plus simple de procéder. Je vois que l'on bute sur les mêmes fichiers (logique après tout).
w2-s1-c1-accents.tex

  • c'est le caractère ¤ qui pose problème. Pour le moment je ne l'affiche pas. J'ai essayé différentes options comme \textcurrecncy ou définir un nouveau glyphe mais rien ne marche !
  • quelques que \href à rajouter sur les liens wikipedia
  • une liste à créer \begin{itemize} - \item - \end{itemize}
  • Je ne me souviens plus si il y avait aussi un souci avec pi sinon j'ulisise :
    • soit ce caractère ∏
    • soit \Pi

w2-s6-x4-if-et-def.tex

  • si je me souviens bien, ici ce sont les expressions mathématiques qui achoppent, Jupyter (qui utilise nbconvert) et peut être a cause de python ajoute un \ d’échappement partout !
  • ici je corrige :
\$ f: x \longrightarrow \left\{ \textbackslash{}begin\{array\}\{ll\} -x
-5 \& \mbox{si } x \le -5 \textbackslash{} 0 \& \mbox{si } x
\in [-5, 5] \textbackslash{} \frac{1}{5}x -1 \& \mbox{si } x \ge 5
\textbackslash{} \textbackslash{}end\{array\} \right. \$

par :

\[
f: x \longrightarrow \left\{
\begin{array}{ll} -x-5 & \mbox{si } x \le -5\\
0 & \mbox{si } x \in [-5, 5]\\
\frac{1}{5}x -1 & \mbox{si } x \ge 5
\end{array}
\right.
\]

w4-s2-x1-dispatch

  • même chose ici, il me semble que ce ne sont que expressions donc :
  • remplacer :
    \$\textbackslash{}begin\{array\}\{c\textbar{}c\textbar{}c\} ~\& a~ pair
\& a~impair \textbackslash{} \hline b~pair \& a\textsuperscript{2+b}2 \&
(a-1)\emph{b\textbackslash{} \hline b~impair \& a}(b-1)\&
a\textsuperscript{2-b}2\textbackslash{} \textbackslash{}end\{array\} \$

par

\[\begin{array}{c|c|c} & a~ pair & a~ impair\\
\hline
 & & \\
b~ pair & a\textsuperscript{2}+b\textsuperscript{2} & (a-1) * \emph{b}\\
\hline
& & \\
b~impair & a * (b-1) & a\textsuperscript{2}-b\textsuperscript{2}
\end{array}
\]

et :

\$\textbackslash{}begin\{array\}\{c\textbar{}c\textbar{}c\} ~\& a \in A
\& a\notin A \textbackslash{} \hline b\in B \& a\textsuperscript{2+b}2
\& (a-1)\emph{b\textbackslash{} \hline b\notin B \& a}(b-1)\&
a\textsuperscript{2+b}2\textbackslash{} \textbackslash{}end\{array\} \$

par

\[
\begin{array}{c|c|c} & a\in A & a\notin A\\
\hline
 & & \\
b\in B & a\textsuperscript{2}+b\textsuperscript{2} & (a-1) * \emph{b}\\
\hline
& & \\
b\notin B & a * (b-1) & a\textsuperscript{2}+b\textsuperscript{2}
\end{array}
\]

@jgorene
Copy link
Collaborator

jgorene commented Jan 23, 2018

@Karduin
Je sors du chat... sportif aussi ;)

Sinon j'ai finalement réglé tous les pbs bloquants en tout cas... dans mon éditeur-compilateur TexMaker
Je te joins le doc final qui sort pas trop mal pour moi et tu verras ce que tu en fais éventuellement, pas de souci; le mooc se terminant bientôt...
python3 - ok.pdf
python3-ok.txt

Ce serait trop long d'énumérer ici mais je n'ai eu qu'à faire 2 corrections "à la main" pour régler ces pbs bloquants s'entend, car il y a eu bien sûr pas mal de modifs de paramètres sur le master-doc que tu retrouvera, le cas échéant

  • en fait sur 2 des fichiers incriminés en remplaçant sur 2 lignes par fichiers seulement les \$ non reconnus apparemment
    par \begin{displaymath} et \end{displaymath} pour w2-s6-x4-if-et-def.tex
    par \begin{equation} et \end{equation} pour w4-s2-x1-dispatch

  • en modifiant un paramètre dans le master pour régler le pb d'encodage sur w2-s1-c1-accents.tex
    \usepackage[force]{textcomp} remplacé par \[force]{textcomp}

Bon, je ne doute pas qu'il doit y avoir un milliers d'autres solutions ou approches comme souvent en code ;)

Si ça t'intéresse je te joins le dossier complet car j'ai suivi les préconisations bien plus pratique finalement en ne mettant sur le master-doc que ce qui concerne \begin{document} et \end{document} (plus pratique pour créer le document avec python;)

Même s'il reste encore des bricoles sur le master-doc actuel car je vais aussi laisser refrodir tout ça... :D
La "preamble", la title page (entre autres) sont importés, un peu comme on construit un "dossier web" avec les pages de styles et les js (entre autres)

Au final, très instructif ce petit travail et cette collaboration ;)
J'ai surtout découvert et appris un tas de choses intéressantes finalement avec la réalisation de scripts python pour essayer de trouver des solutions pratiques surtout...
Entre autre automatiser la préparation des fichiers rst, tex ou autres (très important et passionnant;) et aussi construire le dossier Latex qui va bien ou qui va mieux ;))

@Karduin
Copy link
Collaborator Author

Karduin commented Jan 23, 2018

Je t'avoue que je me suis mis en pose sur le sujet.
J'aime bien cette idée de tout séparer, ton lien est très instructif.
Tou à fait d'accord, mooc excellent, collaboration fructueuse, un bon moment et une bonne progression grâce à tout ça.
Ne reste plus qu'à trouver des petits projets motivants. Je réfléchis déjà à ce que je pourrais faire. ( pas trop mathématiques ;-) je me débrouille à condition de ne pas aller trop loin

@Karduin
Copy link
Collaborator Author

Karduin commented Jan 24, 2018

@jgorene
J'avais installé MiKTeX et l'éditeur fourni avec TeXworks qui, si il fait le job n'est pas très souple.
Et la je découvre TeXstudio, Whaouh, le confort de travail, c'est autre chose.
Je te laisse découvrir si tu as le temps...
Je travail en dual boot, un coup windows un coup linux (mint), je n'ai pas encore testé sous linux.

@jgorene
Copy link
Collaborator

jgorene commented Jan 24, 2018

@Karduin
Oui c'est bien TeXstudio, c'est un fork de Texmaker (sous linux de mon côté) et du coup très semblables dans le principe de fonctionnement et l'interface ;)

MikTex ou autre éditeur-compilateur tex... connait pas...
Je découvre ces outils depuis peu finalement... comme énormément d'autres depuis que je me suis lancé dans python... bref !! ;)
J'ai aussi pris un peu de recul là-dessus (le pdf)... maintenant que je comprends mieux comment-ça-marche :-D

Pour finir, la participation à ce mini-projet c'était aussi en partie l'occasion de pratiquer github en "collaboratif"... créer des branches... merger... collaborer aussi sur des mini projets hors contexte professionnel en "production" afin de pouvoir s'autoriser quelques erreurs mais surtout... s'y retrouver.
En fait c'est un outil qu'il faut pratiquer pour apprendre à (bien) s'en servir...

Pas trop maths non plus sauf contraint par une nécessité absolue ;)
Sinon le mooc se terminant suis partant pour un petit projet à partir de python pour pratiquer et progresser surtout, à voir éventuellement, pourquoi pas?

Ok, à suivre :)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants