moocpython icon indicating copy to clipboard operation
moocpython copied to clipboard

PDF-Optimisation

Open Karduin opened this issue 7 years ago • 40 comments

Cellules de codes :

  • Lignes trop longues Que ce soit sur le code ou sur le résultat après une évaluation de la cellule.
    • La génération du pdf via Jupyter coupe la ligne
    • En Latex on récupère bien sur l’intégralité de la ligne mais en générant le pdf il y a le même problème.

Exemples :

Bien sur c'est un fonctionnement logique puisque c'est du code mais comme tu l'as souligné peut-être une extension Jupyter pour ça.

Karduin avatar Oct 18 '18 08:10 Karduin

ok c'est très utile

  • c'est très gérable au niveau des entrées, je bricole ma moulinette dans ce sens
  • au niveau des sorties par contre, c'est beaucoup plus délicat; en général il me semble que ce n'est pas très grave s'il manque un morceau des sorties trop longues. Est-ce que je me trompe, as-tu un exemple où ce n'est pas le cas ?

parmentelat avatar Oct 18 '18 08:10 parmentelat

Justification des tableaux :

  • La justification à droite des tableaux n’est pas prise en compte. Dans les fichiers tex, il faut changer la justification.
\begin{longtable}[]{@{}lr@{}}

Exemple :

Bon c'est clairement pas pénalisant.

Karduin avatar Oct 18 '18 08:10 Karduin

url sans lien :

Parfois le code latex pour les url n'est pas généré. du coup il faut le faire dans le fichier tex.

Exemple :

  • w3-s1-c1-fichier url

Karduin avatar Oct 18 '18 08:10 Karduin

ok c'est très utile

* c'est très gérable au niveau des entrées, je bricole ma moulinette dans ce sens

* au niveau des sorties  par contre, c'est beaucoup plus délicat; en général il me semble que ce n'est pas très grave s'il manque un morceau des sorties trop longues. Est-ce que je me trompe, as-tu un exemple où ce n'est pas le cas ?

Dans cet exemple tu verra les 3 points déjà signalés. w3-s1-c1.pdf Si pour une ligne de commentaire ce n'est pas bien grave, pour une ligne de code ou un résultat d’évaluation de la cellule c'est plus embêtant.

Karduin avatar Oct 18 '18 08:10 Karduin

Sauts de ligne :

Toujours dans cet exemple,(voir le même pdf) dans le notebook on à :

La méthode flush

Les entrées-sorties sur fichier sont bien souvent bufferisées par le système d’exploitation. Cela signifie qu’un appel à write ne provoque pas forcément une écriture immédi- ate, car pour des raisons de performance on attend d’avoir suffisamment de matière avant d’écrire sur le disque.

Il y a des cas où ce comportement peut s’avérer gênant, et où on a besoin d’écrire immédiate- ment (et donc de vider le buffer), et c’est le propos de la méthode flush.

alors qu'avec le pdf on obtient :

La méthode flush Les entrées-sorties sur fichier sont bien souvent bufferisées par le système d’exploitation. Cela signifie qu’un appel à write ne provoque pas forcément une écriture immédi- ate, car pour des raisons de performance on attend d’avoir suffisamment de matière avant d’écrire sur le disque. Il y a des cas où ce comportement peut s’avérer gênant, et où on a besoin d’écrire immédiate- ment (et donc de vider le buffer), et c’est le propos de la méthode flush.

Bon c'est plus de l’esthétique qu'autre chose mais ça facilite la lecture.

Karduin avatar Oct 18 '18 09:10 Karduin

Caractères spéciaux ou Math : Dans l'entête du fichier tex il doit manquer les packages correspondant à ces caractères. Du coup ces caractères sont soit absent soit remplacé par un code UTF8. Exemple :

  • w2-s1-c1-accents
    • le pi en gras fonctionne pas.

Karduin avatar Oct 18 '18 09:10 Karduin

Tout ça concerne ce que tu as appelé l’étape 2, il y en a encore. Bien sur ce ne sont que des exemples, on retrouve ces problèmes à différents endroits du document. Pour l'étape 1, je vais faire un petit résumé de ce qu'il faudrait faire pour automatiser le plus possible.

Karduin avatar Oct 18 '18 09:10 Karduin

Étape 1

Le fichier master python.tex construit à partir d'un notebook ne doit contenir que :

L’entête LaTeX

  • Les packages utilisés langues, math, formatage, etc.

    Ce que j’ai modifié ou ajouté:

	\documentclass[11pt]{article} changé pour \documentclass[11pt, a4paper, french]{book}

	Ajout : \usepackage[frenchb]{babel} 
	        \usepackage[Lenny]{fncychap} (style des chapitres)
  • Les commandes de mises en couleur du code.

  • La première de couverture.

La commande \title et \maketitle est mise en commentaire et remplacé par ce qui est entre les balise \begin{titlepage}… \end{titlepage}

  • La liste des fichiers découpés en chapitres.

    Ne pas numéroter la table des matières

Juste apres le \endtitle{page} ajout de 

\pagestyle{empty}
\addtocontents{toc}{\protect\thispagestyle{empty}}
\tableofcontents
\thispagestyle{empty}

puis :

\chapter{Introduction au MOOC et aux outils Python} (titre de chapitre)
\pagestyle{plain} (reprendre la numerotation)
\setcounter{page}{1} (reprendre la numerotation)
\include{w1-s1-c1-versions-python} (inclure les fichiers tex)
...

Les notebooks

Enregistrés en LaTeX ou via nbconvert

Les cellules doivent avoir été exécutés sauf :

  • Les cellules destinées aux étudiants.
  • Les cellules PythonTutor qui pointent vers une page html et donc ne passe pas dans LaTeX.
  • Les exercices bien que si on avait les exemples on pourrait travailler offline.

Enregistrer via les notenooks on contrôle bien les cellules à exécuter. Avec nbconvert option execute je ne vois pas de solution simple pour contrôler les cellules à exclurent. De plus quand une cellule attend une entrée utilisateur, ça bloque toute les cellules suivantes.

Il faut ensuite supprimer toute l'entête de ces fichiers de la première ligne à {Licence CC BY-NC-ND} {Thierry Parmentelat \& Arnaud Legout} {} inclus. (cette dernière info est sur la couverture) Il faut aussi supprimer ces deux dernières lignes

    % Add a bibliography block to the postdoc   
    \end{document}

Pour que la table des matières soit à jour il faut compiler deux fois.

Publications à la semaine deux options,

  • on scinde le fichier complet auquel cas il n'y a pas de TOC pour les publications à la semaine.
  • on recompile semaine par semaine avec une TOC qui ne concerne que la semaine

Publication de S1 à Sx pas de problème particulier.

Ouf, j’espère ne rien avoir oublié ! Et bravo si tu as tout lu ;-)

Karduin avatar Oct 19 '18 09:10 Karduin

Oui j'ai tout lu, je pense que j'ai compris en gros;

Quelques améliorations que j'envisage à court terme:

  • en admettant que les .tex sont OK, j'aimerais avoir pour commencer un outil qui me permette de dire: je veux la semaine 5, ou bien je veux les semaines de 1 à 4, ou de 2 à 6. et ne rien avoir à éditer à la main parce que c'est trop casse-pieds.

Bien sûr les détails de l'entête de Python.tex vont rester en dur dans un .tex, on ne va générer que la partie contenu of course.

La seule valeur ajoutée ici finalement c'est de scanner le contenu du directory qui contient les .tex et de ne retenir que ceux qui ont le bon pattern, ajouter le sucre avec les chapter et autres table des matières - ou pas d'ailleurs.

  • ensuite ce qu'on pourrait essayer à titre un peu expérimental, ce serait d'automatiser le passage ipynb -> latex

Ce qui me paraît le plus délicat c'est le choix des cellules à évaluer ou pas; Il se trouve que dans mon labo on a le même problème pour publier; on voudrait bien commencer à publier sous forme de notebook, mais au moment de générer le pdf on a exactement le même souci. Et on s'est dit qu'on pourrait utiliser les metadata des cellules pour marquer celles qu'on veut ou pas rendre ou évaluer dans le .tex; et aussi comme tu le dis, de gérer les appels à input() qui bloquent; sur ce point précis j'ai trouvé:

w1/w1-s4-c3-fibonacci-prompt.ipynb:    "entier = int(input(\"Entrer un entier \"))"
w1/w1-s6-c1-calculette.ipynb:    "reponse = input(\"quel est votre âge ? \")"
w2/w2-s2-c3-la-fonction-input.ipynb:    "nom_ville = input(\"Entrez le nom de la ville : \")\n",
w2/w2-s2-c3-la-fonction-input.ipynb:    ">>> input(\"nombre de lignes ? \") + 3\n",
w2/w2-s2-c3-la-fonction-input.ipynb:    "int(input(\"Nombre de lignes ? \")) + 3"

Sur ce sujet-là je vais réfléchir un peu plus et voir s'il y a déjà d'autres gens qui sont partis sur une voie analogue; genre quels tags on met dans les metadata pour indiquer ce qu'on veut faire, car si quelqu'un a déjà commencé à outiller ça (ça m'étonnerait que non, reste à les trouver :) il est important de choisir quelque chose de cohérent.

parmentelat avatar Oct 19 '18 15:10 parmentelat

J'ai gribouillé un script pour ne plus avoir à modifier Python.tex Le script s'appelle contenu.py et il génère contenu.tex qui est inclus par Python.tex

voir le howto.md, que j'ai remis à jour sommairement

j'en ai profité pour numéroter les chapitres en fonction de la semaine; c'est à dire que la semaine 4 par exemple est toujours publiée dans le chapitre 4 quelle que soit la sélection de semaines qu'on a faite

parmentelat avatar Oct 21 '18 21:10 parmentelat

Je n'ai pour l'instant rien trouvé du tout concernant le passage de ipynb à latex, à propos de la façon de tagger dans les metadata la façon de gérer les différentes cellules; un sujet qui a besoin de mûrir un peu je pense avant qu'on puisse coder...

parmentelat avatar Oct 21 '18 21:10 parmentelat

De mon coté j'ai trouvé comment gérer les interlignes de paragraphes. En rapport avec Saut de ligne plus haut.

Il suffit de rajouter dans le fichier master : \setlength{\parskip}{1em}. Je vais le modifier en conséquence. Ça implique qu'il faut que je reprenne tous les fichiers tex déjà fait pour supprimer les line break que j'avais ajouter.

De même, quand tu met un titre de niveau 4 dans un notebook (####) le passage au latex ne tient aucun compte de l'interligne. On peux remplacer niveau 4 par bold qui me parait équivalent du point de vu de la police. Du coup grâce à la commande précédente, le problème d'interligne est complétement résolu.

Si tu ne vois pas de quoi je parle, je mettrai un exemple.

Karduin avatar Oct 22 '18 16:10 Karduin

Il n'y a pas un système pour checker les problèmes résolus ?

J'ai aussi chercher des infos ipynb => LaTeX, je pense avoir trouvé des choses intéressantes mais ça dépasse un peu mon niveau pour le moment. Je mettrai des liens pour avoir ton avis.

Karduin avatar Oct 22 '18 16:10 Karduin

On 22 Oct 2018, at 18:31, Karduin [email protected] wrote:

Il n'y a pas un système pour checker les problèmes résolus ?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.

comment ça les problèmes résolus ? je ne suis pas sûr que c’est de ça que tu parles, mais en principe on crée une ‘Issue’ par problème et on ferme l’Issue quand le problème est réglé.

Pour ton point précédent avec les sections de profondeur 4, je vois bien ce que tu veux dire

par rapport au déménagement de repos, c’est ballot parce que du coup je n’ai pas pu le faire aujourd’hui et je ne suis pas trop sûr d’avoir le temps de m’occuper de ça ces jours-ci, donc jusqu’à nouvel ordre tu peux y aller et committer des trucs sans soucis dans ce repo-ci, je te recontacterai avant de couper ce repo en morceaux.

enfin j’ai commencé à çrire une moulinette qui vise à traduire les .ipynb en .tex ça s’appelle nbcurtomexec.py et c’est ici https://github.com/parmentelat/flotpython/blob/master/tools/nbcustomexec.py

bon pour l’instant:

  • on ne parle que de l’évaluation du python et pas de la génération du latex encore,
  • et ça ne fait rien d’intelligent, sauf skipper les cellules qui ont un ipythontutor, en guise de proof of concept

à suivre; mais comme je disais ces jours-ci j’ai plein d’autres sujets en suspens et du coup pas beaucoup de temps :)

— Thierry

parmentelat avatar Oct 22 '18 21:10 parmentelat

OK je me doute que tu as beaucoup de travail ! Je fais ça aussi sur du temps libre et ce n'est pas simple d'en trouver. Du coup je suis moins assidu sur le cours de python, mais ce n'est pas grave je me rattraperai après. Ce travail est formateur et forcement réutilisable.

je ne suis pas sûr que c’est de ça que tu parles, mais en principe on crée une ‘Issue’ par problème et on ferme l’Issue quand le problème est réglé.

Oui c'est bien ce que je voulais dire.

Comme je reprend les .tex pour supprimer les line break inutiles je vais en profité pour corrigé une bêtise de ma part en renommant le dossier medias => media (comme dans l'original) et les liens vers les images

Karduin avatar Oct 23 '18 08:10 Karduin

URL non prise en compte lors de la conversion vers LaTeX.

Solution :

Dans le notebook si l'url est juste entrée brut comme ça :

Ici encore, la méthode recommandée est de partir de la page https://www.python.org/download
et d'utiliser le programme d'installation.

ça passe dans le notebook, mais pour LaTeX et pdf il faut faire :

Ici encore, la méthode recommandée est de partir de la page
[https://www.python.org/download](https://www.python.org/download)
et d'utiliser le programme d'installation.

Karduin avatar Oct 23 '18 09:10 Karduin

Justification des tableaux.

Solution : Dans le notebook la table se présente comme ci-dessous, mais curieusement à l'affichage c'est justifié à droite.

| Quoi            | Avec quel outil              |
|:----------------|:-----------------------------|
| fichier complet | `python3 <fichier>.py`       |
| ligne à ligne   | `python3` en mode interactif |
|     &nbsp;      | ou sous `ipython3`           |
|     &nbsp;      | ou avec IDLE                 |
| par fragments   | dans un notebook             |

Pour LaTeX et pdf mettre les deux points de l'autre coté si tu veux conserver la justification à droite.

| Quoi            | Avec quel outil              |
|----------------:|-----------------------------:|
| fichier complet | `python3 <fichier>.py`       |
| ligne à ligne   | `python3` en mode interactif |
|     &nbsp;      | ou sous `ipython3`           |
|     &nbsp;      | ou avec IDLE                 |
| par fragments   | dans un notebook             |

Karduin avatar Oct 23 '18 09:10 Karduin

Bon j'ai trouvé une solution pour les section profondeur 4.

Dans le master je rajoute :

  • \usepackage{titlesec}
  • \titleformat{\subparagraph} {\normalfont\normalsize\bfseries}{\thesubparagraph}{1em}{} \titlespacing*{\subparagraph}{\parindent}{3.25ex plus 1ex minus .2ex}{.75ex plus .1ex}

Il n'y a rien à toucher côté notebook.


Pour résumer les les modifications qui résolvent les problèmes.

Côté LaTeX :

  • Lines Break, Pour les paragraphes \setlength{\parskip}{1em}
  • Lines Break pour le section > profondeur 3.
\titleformat{\subparagraph}
{\normalfont\normalsize\bfseries}{\thesubparagraph}{1em}{}
\titlespacing*{\subparagraph}{\parindent}{3.25ex plus 1ex minus .2ex}{.75ex plus .1ex}

Côté Notebook :

  • URL changer
 Ici encore, la méthode recommandée est de partir de la page https://www.python.org/download
et d'utiliser le programme d'installation.

Par la syntaxe [texte](link)

Ici encore, la méthode recommandée est de partir de la page
[https://www.python.org/download](https://www.python.org/download)
et d'utiliser le programme d'installation.
  • Justification Tableaux Changer les : de côté.

  • Longueurs des lignes de codes Tu as déjà traité le problème.

  • Les listes Tu as déjà résolu le problème

  • Certains caractères spéciaux Je n'ai pas encore de solution

Karduin avatar Oct 24 '18 12:10 Karduin

Compte tenu de ce qui précède, je vais refaire tout les .tex afin qu'ils soit en phase avec les modifications du fichier master.

Je pense que je modifierai aussi les notebooks en local pour les liens et les tables à moins que ta moulinette magique puisse faire ça sans soucis ;-)

Karduin avatar Oct 24 '18 12:10 Karduin

La moulinette a pas mal évolué récemment; regarde un peu nbcustomexec.py dans le repo du cours dans le sous-dir tools

J'ai inventé quelques tags, qui m'ont permis d'instrumenter les notebooks du cours pour que l'évaluation des notebooks fasse ce qu'on veut de manière automatique

de manière générale je pense qu'on devrait chercher à atteindre le stade où les .tex n'ont plus de valeur du tout, c'est à dire qu'ils seraient automatiquement produits;

typiquement si des passages ne vont pas bien, il faut changer le notebook, et/ou adapter nos diverses moulinettes; jusqu'à ce que le passage notebook -> pdf soit complètement lisse.

je sais qu'on en n'est pas encore là, mais ce serait la tendance.

dans ce contexte, si tu modifies des notebooks en local, ça m'intéresserait que tu me postes un PR sur le repo du cours que je puisse intégrer tes changements upstream

je ne sais pas si c'est clair, n'hésite pas si certains trucs sont flous pour toi.

parmentelat avatar Oct 24 '18 17:10 parmentelat

je viens de pousser dans une branche 'automatic' tous les .tex que j'ai obtenus 100% automatiquement

bien sûr il reste plein de glitches mais ça me semble intéressant de pouvoir faire un diff avec les .tex manuels; je n'ai pas encore eu le temps de regarder ces diffs en détail par contre...

parmentelat avatar Oct 25 '18 09:10 parmentelat

Le premier truc qui saute aux yeux c'est une histoire de saut de ligne (en latex \\) qui ont été rajoutés à la main, j'ai l'impression ?

ça correspond à quoi exactement ce trait-là ?

parmentelat avatar Oct 25 '18 09:10 parmentelat

Le premier truc qui saute aux yeux c'est une histoire de saut de ligne (en latex \\) qui ont été rajoutés à la main, j'ai l'impression ?

Avant de contourner le problème, j'ajoutai manuellement un double \ pour aérer l’affichage afin qu'il soit identique au notebook. Maintenant ce n'est plus nécessaire, il suffit de rajouter dans le fichier python.tex \setlength{\parskip}{1em}, ce que j'ai fais en local mais je n'est pas encore commit la modification. De même pour les titre de niveau > 3 je rajoute ça dans python.tex.

\titleformat{\subparagraph}
{\normalfont\normalsize\bfseries}{\thesubparagraph}{1em}{}
\titlespacing*{\subparagraph}{\parindent}{3.25ex plus 1ex minus .2ex}{.75ex plus .1ex}

Du coup on n'a plus à ce préoccuper des line break Je vais juste commit le python.tex pour que tu puisses voir.

Edit: c'est une des raisons qui m'oblige à refaire tous les .tex

Karduin avatar Oct 25 '18 09:10 Karduin

Un petit point avec une checklist histoire de voir ou on en est. LaTeX

  • Line break paragraphe et sous-titre => OK géré dans python.tex
  • Dossier medias => à changer en media pour être en phase avec les notebook et ne pas avoir à changer l'url

Notebooks

  • Listes => OK interlignes dans les notebooks
  • Cellules de code tros longues => OK moulinette Thierry
  • URL => syntaxe à modifier dans les notbooks
  • Table => à modifier dans les notebooks, justification à droite

Autre

  • Évaluation des cellules ipynb to pdf => partiel, en cours
  • Quelques caractères qui ne passent pas, code UTF8 au lieu du caractère => ???
  • Supprimer l'en-tête et le pied de page des .tex => à faire via une moulinette

de manière générale je pense qu'on devrait chercher à atteindre le stade où les .tex n'ont plus de valeur du tout, c'est à dire qu'ils seraient automatiquement produits;

Tout à fait d'accord.

dans ce contexte, si tu modifies des notebooks en local, ça m'intéresserait que tu me postes un PR sur le repo du cours que je puisse intégrer tes changements upstream

je ne sais pas si c'est clair, n'hésite pas si certains trucs sont flous pour toi.

C'est très clair ;-).

Ce que j'ai commencé à faire :

  • Modifier les notebooks URL et tables
  • Refaire tous les .tex line break, url, tables, listes sont maintenant gérés automatiquement, et pointage vers le bon dossier media.

Je crois que les deux seuls points qui restent à traiter, sont :

  • l'évaluation des cellules
  • les codes UTF8 qui ne passent pas

Première question, je continue comme ça ? (modif notebook + tex à refaire) Deuxième question, je ne pense que nous soyons prêt pour la S7. Je prépare les publications comme avant ?

Karduin avatar Oct 25 '18 11:10 Karduin

  • en ce qui concerne l'évaluation des cellules, je pense être plus ou moins OK avec les tags que j'ai mis dans les notebooks et en utilisant nbcustomexec

  • le découpage des .tex pour enlever l'entête et le footer, c'est pris en charge par mon striplatex.py

  • j'ai commencé à voir ce qu'on pouvait faire pour les codes UTF8 qui ne passent pas; le premier sur lequel je suis tombé ce sont les 2 variantes de PI qui sont dans w1-s5-c1-noms-de-variables, et pour l'instant je ne suis pas arrivé à grand-chose; j'ai essayé de remplacer le code à la volée dans le code source, mais ce n'est pas probant car la seule chose que je peux mettre à la place du PI illégal, c'est un PI légal, et du coup ça ruine complètement le point qu'on cherche à illustrer.

une autre approche dans ce cas précis serait de ne pas mettre les deux cellules en question du tout:

screen shot 2018-10-25 at 22 13 51

dans ce cas précis ça pourrait aller; je n'ai pas encore de système de metadata pour faire ça (faire disparaitre une cellule complètement à l'évaluation) mais ça ne doit pas être dur.
Mais ce qui me soucie c'est que ça risque de ne pas être la bonne réponse pour les autres cas

est-ce que de mémoire c'est quelque chose qui arrive souvent ? tu aurais d'autres exemples significatifs à me signaler de cas de caractères ésotériques ?


Pour la suite immédiate:

  • je commencerais si c'était moi par la semaine 7 (tu as raison qu'on ne sera pas prêts). Ce serait intéressant que tu partes de ce qui est dans la branche automatic - c'est ce qui est produit par les divers outils dans leur état actuel.

  • en parallèle tu peux me faire les PR qui visent à rectifier les notebooks (url et tables si je comprends bien), comme ça on pourra remouliner le tout pour voir le chemin qui reste à faire.

Il faudrait dans l'idéal que tu passes le moins de temps possible à rectifier manuellement des .tex :)

Tu travailles sur quel OS ? je peux te donner les recettes pour assembler les différents morceaux:

  • d'abord nbcustomexec pour passer d'un notebook vierge à un notebook évalué
  • ensuite nbconvert --to latex pour créer un .tex
  • ensuite striplatex pour extraire ce qui nous intéresse
  • enfin contenu.py pour générer contenu.tex qui est inclus dans Python.tex

parmentelat avatar Oct 25 '18 20:10 parmentelat

PS. oui il reste une truc bizzare avec les images externes; tu m'en dire un peu plus ?

Je fournis un media/ dans flotpython, tu as fait aussi un medias/ en dessous de python_2018, c'est quoi la logique ? il manquait des trucs chez moi ? ce serait bien de tout merger dans un seul endroit

PS2. je n'ai pas abandonné l'idée du déménagement de repos, mais vu comme ça tourne je préfère repousser à une date ultérieure où ce sujet sera moins actif

parmentelat avatar Oct 25 '18 20:10 parmentelat

Je pousse sur 'automatic' quelques retouches qui sont le résultat de changements dans les notebooks

Notamment pour les équations, j'utilisais un simple $ pour créer dans le markdown une zone d'équation, avec un double dollar $$ ça marche aussi bien dans le notebook et ça sort bien en latex aussi, donc ya ka !

parmentelat avatar Oct 25 '18 21:10 parmentelat

OK je vais passer la S7 en priorité et les notebooks (url et tabes).

  • UTF8 je pense qu'il faut essayer de régler ça en trouvant un package LaTeX qui va bien. Ce n'est pas très fréquent, peut-être 4 ou 5 fois dans tout le document.
  • OS Indifféremment sur Windows ou Linux suivant mes besoins.
  • Images, c'est une ânerie de ma part l'année dernière j'avais créé le dossier medias ce qui est complétement idiot puisque ça m'oblige à réécrire les url qui pointent sur les images. Donc il faut renommer le dossier medias en media (je n'ai pas vu comment faire ça dans github) et comme ça il n'y aura rien à retoucher dans les tex.

Je ne crois pas avoir accès à la branche automatic si elle est sur flotpython.

Karduin avatar Oct 26 '18 06:10 Karduin

la branche automatic est sur le repo 'moocpython'; elle contient tous les .tex générés par les diverses moulinettes
cela dit elle n'est pas 100% à jour, si ça ne te fait rien d'attendre un peu je peux lisser encore un peu les outils (il y reste un petit souci avec nbcustomexec) et relancer tout le bousin sur tous les notebooks, je peux faire ça ce weekend et même peut-être aujourd'hui

parmentelat avatar Oct 26 '18 11:10 parmentelat

ok pour medias/media, ce que je fais dans l'immediat chez moi c'est juste un symlink media vers medias, on règlera ça plus tard

parmentelat avatar Oct 26 '18 11:10 parmentelat