-
Notifications
You must be signed in to change notification settings - Fork 7
PDF-Optimisation #16
Comments
ok c'est très utile
|
Justification des tableaux :
Exemple :
Bon c'est clairement pas pénalisant. |
url sans lien : Parfois le code latex pour les url n'est pas généré. Exemple :
|
Dans cet exemple tu verra les 3 points déjà signalés. w3-s1-c1.pdf |
Sauts de ligne : Toujours dans cet exemple,(voir le même pdf)
alors qu'avec le pdf on obtient :
Bon c'est plus de l’esthétique qu'autre chose mais ça facilite la lecture. |
Caractères spéciaux ou Math :
|
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. |
Étape 1Le fichier master python.tex construit à partir d'un notebook ne doit contenir que : L’entête LaTeX
puis :
Les notebooks Enregistrés en LaTeX ou via nbconvert Les cellules doivent avoir été exécutés sauf :
Enregistrer via les notenooks on contrôle bien les cellules à exécuter. Il faut ensuite supprimer toute l'entête de ces fichiers de la première ligne à
Pour que la table des matières soit à jour il faut compiler deux fois. Publications à la semaine deux options,
Publication de S1 à Sx pas de problème particulier. Ouf, j’espère ne rien avoir oublié ! Et bravo si tu as tout lu ;-) |
Oui j'ai tout lu, je pense que j'ai compris en gros; Quelques améliorations que j'envisage à court terme:
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.
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é:
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. |
J'ai gribouillé un script pour ne plus avoir à modifier 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 |
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... |
De mon coté j'ai trouvé comment gérer les interlignes de paragraphes. Il suffit de rajouter dans le fichier master : 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. |
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. |
On 22 Oct 2018, at 18:31, Karduin ***@***.***> 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
|
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.
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 |
Justification des tableaux. Solution :
Pour LaTeX et pdf mettre les deux points de l'autre coté si tu veux conserver la justification à droite.
|
Bon j'ai trouvé une solution pour les section profondeur 4. Dans le master je rajoute :
Il n'y a rien à toucher côté notebook. Pour résumer les les modifications qui résolvent les problèmes. Côté LaTeX :
Côté Notebook :
Par la syntaxe
|
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 ;-) |
La moulinette a pas mal évolué récemment; regarde un peu 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. |
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... |
Le premier truc qui saute aux yeux c'est une histoire de saut de ligne (en latex ça correspond à quoi exactement ce trait-là ? |
Avant de contourner le problème, j'ajoutai manuellement un double \ pour aérer l’affichage afin qu'il soit identique au notebook.
Du coup on n'a plus à ce préoccuper des line break Edit: c'est une des raisons qui m'oblige à refaire tous les .tex |
Un petit point avec une checklist histoire de voir ou on en est.
Notebooks
Autre
Tout à fait d'accord.
C'est très clair ;-). Ce que j'ai commencé à faire :
Je crois que les deux seuls points qui restent à traiter, sont :
Première question, je continue comme ça ? (modif notebook + tex à refaire) |
une autre approche dans ce cas précis serait de ne pas mettre les deux cellules en question du tout: 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. 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:
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:
|
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 |
Je pousse sur 'automatic' quelques retouches qui sont le résultat de changements dans les notebooks Notamment pour les équations, j'utilisais un simple |
OK je vais passer la S7 en priorité et les notebooks (url et tabes).
Je ne crois pas avoir accès à la branche automatic si elle est sur flotpython. |
la branche automatic est sur le repo 'moocpython'; elle contient tous les .tex générés par les diverses moulinettes |
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 |
J'ai mis à jour la branche automatic comme convenu Dans l'enthousiasme je suis aussi passé en 10pt au lieu de 11pt, c'est indépendant du reste, j'essaie juste de diminuer l'encombrement de l'ensemble. Lorsqu'on lance pdflatex sur tout le cours, il reste 3 glitches liés à de l'unicode (pi et divers degrés celsius et autres) il me semble qu'on y est presque :) |
Super. j'ai une idée qui pourrai fonctionner. Par exemple pour pi en gras, plutôt que de mettre une cellule de code on peut mettre du code LaTeX :
Qu'en pense tu ? |
Comme maintenant je peux accéder à presque tout ce qui se passe entre le notebook et le latex, j'ai bidouillé la sortie pour mettre les cellules de code en évidence. C'est un work in progress parce qu'il me faut là encore retoucher un peu les notebooks, mais pour l'instant j'ai ceci: |
Pour les symboles: je propose qu'on utilise Tout est pareil, sauf que par défaut xelatex cause le utf-8; cela rend obsolète tous les packages liés aux encodages comme En théorie ça devrait régler le souci; en pratique, c'est OK pour le Du coup à ce stade il ne me reste comme glitches de symboles que les deux formes de pi, justement. je pense que je vais faire ça, c'est très hacky mais je fatique un peu sur le sujet :) |
Bien, au point ou tu en es, est-ce vraiment utile que je fasse la s7 et s1 to s7 et la suite ? |
On 27 Oct 2018, at 15:41, Karduin ***@***.***> wrote:
Je vais juste voir pour les url et les tables et c'est bon.
oui ça ça m’intéresse;
j'ai comparé visuellement les deux pdf (le tien et le mien) pour la semaine 6:
je vois bien que j’ai perdu un peu la mise en forme des sections de niveau 4 et 5, je ne sais pas au juste si c’est moi qui ai cassé quelque chose, ou si c’est des choses que tu as faites et que je n’ai pas dans ma branche ?
Aussi tu arrives à faire partir la semaine 6 au bon numéro de page, ça je ne saurais pas faire; ce n’est peut-être pas très grave si ? ou sinon tu fais ça comment au juste ?
|
Effectivement tu perds des enrichissements je vais faire un test rapide pour voir si c'est ça et notamment la deuxième ligne :
qui pose problème. Pour la numérotation je triche plus ou moins. En fait je génère un pdf complet (toutes les semaines) et ensuite je le découpe avec acrobat de telle page à telle page. Cela m'a semblé le plus simple pour conserver la numérotation. ps: pour les out qui font + de 80 caractères, il n'y a pas un format dans print() qui pourrai faire le job si on le paramètre dans la cellule de code précédente ? |
bon j'ai du revenir en arrière sur certains réglages que j'avais faits pour gérer correctement le degré celsius; ma sortie ressemble de nouveau à la tienne; et pour l'instant je dis tant pis pour les quelques caractères qui ne passent pas bien à la sortie... ne reste plus que ces histoires de tables et d'url donc :) pour la semaine 6 je vais publier tes sorties, je pense en effet que la sortie automatic pour la semaine 7 sera essentiellement OK :) je ne sais pas si/comment tu comptes poursuivre |
Bonjour Thierry,
En tous cas, pour le pdf je ne suis pas persuadé que qu'il y ai un intérêt à ce que je poursuive maintenant que le process est à 99% fonctionnel.
Pas de problème, c'était intéressant et instructif, même si il y avait des moments fastidieux. |
Cellules de codes :
Que ce soit sur le code ou sur le résultat après une évaluation de la cellule.
Exemples :
deuxième cellule de code
w3-s1-c1-fichier screen
4éme et 5éme cellule de code
w6-s1-c4-datetime-1 screen
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.
The text was updated successfully, but these errors were encountered: