Je souhaite annoncer ma thèse de fin d'études sur IPython Notebook

Comme le dit le titre. En tant que personne qui utilise généralement Notebook comme plate-forme de simulation, je voudrais terminer l'histoire autant que possible. Il est insupportable de frapper les formules en succession rapide. Par conséquent, créez une diapositive à l'aide de live_reveal, qui est une extension d'IPython Notebook. J'ai obtenu la permission du chef du laboratoire, je voudrais donc faire une présentation avec un visage de doy.

Veuillez vérifier chacun pour la méthode d'installation et une utilisation facile. Il devrait y en avoir aussi à Qiita.

Cette fois, nous avons résumé les solutions pour les cas que vous avez réellement utilisés et que vous avez dû résoudre.

Des problèmes qui se dressent sur le chemin

La création de matériel de présentation est assez rapide. Tout ce que vous avez à faire est de couper et coller ce que vous avez écrit jusqu'à présent, de le rassembler et de le jeter dans la cellule. Cependant, cela seul causera naturellement des problèmes.

Petites lettres

Vous ressentirez probablement cela. Même s'il s'affiche magnifiquement tel qu'il est affiché sur mon navigateur, lorsque je le projette sur un projecteur, plusieurs personnes soulignent que "les personnages sont trop petits pour être visibles". Si vous effectuez un zoom avant à l'aide de la fonction de navigateur, le chiffre s'agrandit également cette fois et cela ne fonctionnera pas.

Ceci est relativement facile à résoudre.

Autour de la 14ème ligne de ~ / .ipython / nbextensions / livereveal / main.css

.reveal .slides {
  text-align: left;
  font-size: 190%; //160%
  //width: 100% !important; //960px, 1366px
}

Modifiez comme suit. Ignorez la section de largeur. La taille de la police est passée de 160% à 190%. En faisant cela, vous pouvez modifier la taille de la police pour la même taille que lorsqu'elle a été agrandie à 125% sur le navigateur, et vous pouvez conserver la taille des objets autres que des caractères.

La figure n'est pas affichée au centre

En mode Notebook normal, il est clairement affiché au centre sans rien faire, mais en mode diapositive, il est aligné à gauche. Vous devez également faire attention au réglage de la largeur de l'image. La solution simple est

<div align="center">
<img src=download1.png width=70% />
Figure 1.Quel graphique</div>

Comment faire comme ça. Si vous faites cela, il sera affiché au centre ... Je voudrais dire, mais en réalité, il sera légèrement décalé vers la droite.

J'étais très ennuyé par cela. La raison en est que la zone d'affichage du numéro d'exécution de chaque cellule (comme "In [3]:") est prise vers la gauche. Par conséquent, il est nécessaire d'effacer cette zone. Si tu google un peu

Vous trouverez des informations telles que. L'exemple ci-dessus montre comment désactiver la cellule d'entrée et la zone d'invite lors du glissement avec nbconvert. Si vous essayez ce script tel quel (sans la balise <script>, bien sûr) et l'écrivez dans ~ / .ipython / nbextensions / main.js et le rechargez, la cellule d'entrée et la zone d'invite vont certainement disparaître. Je vais. Cependant, cela pose un problème lors de l'édition ou lorsque vous souhaitez l'utiliser d'une autre manière normale, je souhaite donc l'activer uniquement lors de l'affichage d'un diaporama.

Dans IPython, un profil peut être démarré en spécifiant un groupe de fichiers de paramètres, afin que vous puissiez voir que l'un d'entre eux consiste à créer un paramètre pour des diapositives comme celle-ci.

ipython profile create slide

Si c'est le cas, vous pouvez voir qu'un nouveau profil appelé "profile_slide" a été créé sous ~ / .ipython.

Par conséquent, modifiez le contenu de ~ / .ipython / profile_slide / static / custom / custom.js comme suit.

$([IPython.events]).on('app_initialized.NotebookApp', function(){

     require(['nbextensions/livereveal/main'],function(livereveal){
       // livereveal.parameters('theme', 'transition', 'fontsize', static_prefix);
       //   * theme can be: simple, sky, beige, serif, solarized
       //   (you will need aditional css for default, night, moon themes).
       //   * transition can be: linear, zoom, fade, none
       livereveal.parameters('simple', 'fade');
       console.log('Live reveal extension loaded correctly');
    // http://hannes-brt.github.io/blog/2013/08/11/ipython-slideshows-will-change-the-way-you-work/
    function hideElements(elements, start) {
        for(var i = 0, length = elements.length; i < length;i++) {
            if(i >= start) {
                elements[i].style.display = "none";
            }
        }
    }
    var input_elements = document.getElementsByClassName('input');
    hideElements(input_elements, 0);
    var prompt_elements = document.getElementsByClassName('prompt');
    hideElements(prompt_elements, 0);
     });

});

Si vous le modifiez de cette façon et rechargez la page, vous verrez que les cellules d'entrée et la zone d'invite ne sont plus visibles, comme vous l'avez fait lorsque vous l'avez essayé plus tôt.

Maintenant, vous pouvez enfin centrer le texte dans le titre ...

"Tu ne peux pas effacer les deux boutons sur la gauche?"

C'est vrai, c'est ennuyeux.

La manière d'effacer de force est d'utiliser $ ('.reveal') dans la définition de buttonExit autour de la ligne 305 de ~ / .ipython / nbextensions / livereveal / main.jsoù ils sont définis. Vous pouvez commenter la ligne qui dit .after (help_button);avec" // ". Vous pouvez également masquer ces boutons à chaque fois en commentant les parties similaires dans le buttonExit qui sont définies après cela.

Aussi, si vous voulez afficher ou non l'affichage en fonction du profil, comme dans l'exemple précédent, dans le profil custom.js

    var buttonHelp_elements = document.getElementsByClassName('buttonHelp');
    hideElements(buttonHelp_elements, 0);
    var buttonExit_elements = document.getElementsByClassName('buttonExit');
    hideElements(buttonExit_elements, 0);

Vous pouvez l'ajouter comme quelque chose qui n'est pas affiché. De cette façon, vous pouvez masquer ces boutons dans certains profils (pour la production).

Cela peut également être utile.

L'export pdf ne fonctionne pas !!

En tant que problème connu, la conversion de diapositives en pdf ne fonctionne pas. Dans la vidéo ci-dessous, le développeur répond à la question de savoir pourquoi cela s'est produit.

Si vous sélectionnez «exportation pdf» à partir de «imprimer» dans Firefox, il essaiera de convertir en pdf en incluant la zone ci-dessous. Dans Chrome, ce n'est pas si mal, mais lorsque vous importez un diagramme, il exporte un pdf décevant avec un certain nombre de petits diagrammes emballés dans la position où vous souhaitez qu'il soit agrandi.

Une solution possible à ce problème consiste à le faire glisser avec nbconvert puis à le convertir en pdf sur votre navigateur. Cependant, l'auteur est tombé sur ce nbconvert relativement, donc à la fin j'ai pris une capture d'écran de tout et l'ai rassemblé dans un pdf avec convert (← voir aussi "Slide of IPython Notebook" Comment (forcer) pdf "). Le point à garder à l'esprit à ce stade est de faire correspondre votre PC à la taille de l'écran du projecteur que vous utiliserez réellement pour la présentation, puis de prendre une capture d'écran. Si vous ne le faites pas, vous vous retrouverez avec de larges diapositives lorsque vous les assemblerez ultérieurement dans un pdf, ou vous produirez en masse des diapositives avec des marges trop grandes. Notez les commandes et les outils que vous avez réellement utilisés pour une étude ultérieure.

La capture d'écran est une application appelée shutter sur Linux, et j'ai pris une capture d'écran de la sélection. Enregistrez celui-ci un par un dans un répertoire, en veillant à ce que celui avec le plus jeune numéro de diapositive devienne celui avec le plus petit nombre dans le nom du fichier. Une fois que toutes les diapositives ont été enregistrées, dans ce répertoire

convert -page 1024x768 -gravity Center *.jpg out.pdf

Et courir. En conséquence, tous les fichiers image jpg sont classés par ordre numérique à 1024px de largeur et 768px de hauteur (← résolution du projecteur dans le laboratoire), et un out.pdf aligné au centre est créé. Tous sont traités comme des images, il est donc mignon que la taille du fichier devienne grande. C'est mignon aussi que les personnages soient légèrement flous. Si vous l'imprimez et qu'elle devient plus petite, elle ne devrait pas se démarquer! Cependant, je ne pense pas que ce soit une bonne diapositive à préparer comme pièce de rechange. Il peut être préférable de créer un fichier PDF de rechange à partir de zéro en utilisant PowerPoint tranquillement. Et quand cela s'est produit, il y avait un murmure que PowerPoint était bon depuis le début ...

Tâches futures

Le contenu de la thèse de fin d'études n'est pas pertinent ici, donc je ne l'écrirai pas, mais il est important qu'il puisse être facilement recréé en cas de changement. Par conséquent, même si vous prenez le même cliché et le convertissez en pdf, il est préférable de l'utiliser s'il peut être automatisé. La question de savoir si un tel moment existe est un autre problème. Comme il s'agit d'une extension en cours de développement, il y a de nombreux bugs, mais en tant que personne qui tombe amoureuse de cette fonction et utilise Notebook, je continuerai à l'utiliser. Je vais certainement le rendre populaire! (* ´ω ` *)

Recommended Posts

Je souhaite annoncer ma thèse de fin d'études sur IPython Notebook
Je souhaite utiliser facilement les fonctions R avec le notebook ipython
Jour 65 J'ai installé matplotlib pour dessiner des graphiques sur mon notebook Jupyter.
Je veux écrire un blog avec Jupyter Notebook
Je veux utiliser Linux sur mac
Je souhaite utiliser la console IPython Qt
Je souhaite développer des applications Android sur Android
Je souhaite afficher une image sur Jupyter Notebook à l'aide d'OpenCV (mac)
Je veux formater et vérifier le code Python à mon goût sur VS Code
Je veux pouvoir penser à la récurrence
Je veux faire des crises de ma tête
Je veux faire pyenv + pipenv même sous Windows
Je veux enregistrer les entrées / sorties de fichiers sous Linux
Une bibliothèque pour la science des données "Je veux faire ça" sur le bloc-notes Jupyter
Je souhaite développer des applications Android sur Android (débogage)
Je veux trouver un package populaire sur PyPi
Je veux AWS Lambda avec Python sur Mac!
Je souhaite utiliser OpenJDK 11 avec Ubuntu Linux 18.04 LTS / 18.10
Je veux faire Wake On LAN de manière entièrement automatique
[IPython] Comment partager un bloc-notes IPython
Affichage des chaînes sur le notebook IPython
Comment utiliser IPython Notebook
Je veux résoudre SUDOKU
Je souhaite désactiver les interruptions sur le Raspberry Pi (≒ DI / EI)
Je souhaite utiliser un environnement virtuel avec jupyter notebook!
Exécutez IPython Notebook sur Docker
J'ai essayé de lancer le cluster ipython au minimum sur AWS
J'ai essayé Python! ] Puis-je publier sur Kaggle sur iPad Pro?
Je souhaite utiliser la traduction de raccourcis comme l'application DeepL même sous Linux
Je veux savoir si vous installez Python sur Mac ・ Iroha
Installez Anaconda sur votre Mac et téléchargez votre notebook Jupyter (IPython) sur Anaconda Cloud
Je veux vérifier la position de mon visage avec OpenCV!
Je veux comprendre à peu près systemd
Je veux gratter des images et les former
Je veux faire ○○ avec les Pandas
Je veux copier l'annotation de yolo
Je veux déboguer avec Python
J'ai essayé d'installer Linux sur mon Mac
Je veux me mettre en colère contre ma mère quand la mémoire est serrée
Je veux tweeter Twitter avec Python, mais j'y suis accro
Si vous souhaitez utiliser NumPy, Pandas, Matplotlib, IPython, SciPy sous Windows
Je souhaite utiliser Django Debug Toolbar dans les applications Ajax
Je veux exprimer mes sentiments avec les paroles de Mr. Children
Je veux épingler Spyder à la barre des tâches
Je veux détecter des objets avec OpenCV
Je veux sortir froidement sur la console
IPython Notebook est maintenant rendu et affiché sur GitHub!
Je veux imprimer dans la notation d'inclusion
Je veux les gratter tous ensemble.
Je veux gérer la rime part1
Je veux gérer la rime part3
Je veux créer un environnement Python
Je veux installer Python avec PythonAnywhere
Je veux analyser les journaux avec Python
J'étais accro à Flask sur dotCloud
Je veux jouer avec aws avec python
Je veux afficher la barre de progression
Je veux faire un programme d'automatisation!
Je veux intégrer Matplotlib dans PySimpleGUI