Ich habe eine Sammlung von Techniken geschrieben, an die ich mich mit der Erweiterung nb von Jupyter Notebook erinnern kann.
--Installation --Config --Erstellen einer Konfigurationsdatei
Offizielle ipython-contrib / jupyter_contrib_nbextensions
$ conda install -c conda-forge jupyter_contrib_nbextensions
Dies ist am einfachsten, da dadurch CSS gelöscht wird
$ jupyter notebook --generate-config
Jupyter Notebook wird im Browser geöffnet, der standardmäßig geöffnet wird, wenn nichts angegeben ist.
Da in Zukunft häufig Tastenkombinationen verwendet werden, wählt der Browser, der das Jupyter-Notizbuch öffnet, "unbenutzt" = "Tastenkombinationen sind nicht angepasst".
Suchen Sie nach der Zeile "# c.NotebookApp.browser =" im erstellten "~ \ .jupyter \ jupyter_notebook_config.py" und geben Sie den Browser an.
c.NotebookApp.browser = u '/ usr / bin / Firefox% s'
python:~/.jupyter/jupyter_notebook_config.py
import webbrowser
webbrowser.register('chrome', None, webbrowser.GenericBrowser('C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe'))
c.NotebookApp.browser = 'chrome'
Referenz:
Jupyter Notebook standardmäßig alle 2 Minuten? Wird es retten. (Sie können das Speicherintervall mit der unten erläuterten "automatischen Speicherzeit" von "nbextension" ändern.)
Wenn Sie Folgendes in ~ / .jupyter / jupyter_notebook_config.py
schreiben
Geschaffen.
python:~/.jupyter/jupyter_notebook_config.py
import os
from subprocess import check_call
def post_save(model, os_path, contents_manager):
"""post-save hook for converting notebooks to .py scripts
Jedes Mal, wenn ipynb gespeichert wird[py, html, md, tex, pdf]Erschaffen."""
if model['type'] != 'notebook':
return # only do this for notebooks
d, fname = os.path.split(os_path)
base, ext = os.path.splitext(fname)
check_call(['jupyter', 'nbconvert', '--to', 'script', fname], cwd=d)
check_call(['jupyter', 'nbconvert', '--to', 'html', fname], cwd=d)
check_call(['jupyter', 'nbconvert', '--to', 'markdown', fname], cwd=d)
# check_call(['jupyter-nbconvert', '--to', 'latex', fname, '--template', 'jsarticle.tplx'], cwd=d)
# check_call(['extractbb', base+'_files/*.png'], cwd=d)
# check_call(['platex', '-interaction=nonstopmode', '-synctex=1', '-kanji=utf8', '-guess-input-enc' , base+'.tex'], cwd=d)
# check_call(['dvipdfmx', base+'.dvi'], cwd=d)
c.FileContentsManager.post_save_hook = post_save
import os
from subprocess import check_call
def post_save(model, os_path, contents_manager):
"""post-save hook for converting notebooks to .py scripts
Jedes Mal, wenn ipynb gespeichert wird[py, html, md, tex, pdf]Erschaffen."""
if model['type'] != 'notebook':
return # only do this for notebooks
d, fname = os.path.split(os_path)
check_call(['jupyter', 'nbconvert', '--to', 'script', fname], cwd=d)
check_call(['jupyter', 'nbconvert', '--to', 'html', fname], cwd=d)
check_call(['jupyter', 'nbconvert', '--to', 'markdown', fname], cwd=d)
check_call(['jupyter', 'nbconvert', '--to', 'latex', '--template', 'jsarticle.tplx', 'lualatex', fname], cwd=d)
c.FileContentsManager.post_save_hook = post_save
Wenn Sie Japanisch verwenden, können Sie in der Menüleiste nicht Als PDF exportieren verwenden.
Da die Dokumentklasse "\ document class [a4paper, dvipdfmx] {jsarticle}" in englischer Version generiert wird.
Erstellen Sie also eine Tex-Datei mit jsarticle, die auf den Stil angewendet wird
Wenn Sie eine Vorlagendatei vorbereiten (hier jsarticle.tplx), wird diese in jsarticle umgeschrieben und generiert.
Bei der Ausführung des Befehls nbconvert
.tplx
-Datei befindet sich im Befehlsverzeichnis nb--template jsarticle.tplx
an.Führen Sie
jupyter nbconvert --to latex --template jsarticle.tplx lualatex <Dateiname>
aus
Die spezifische Methode ist wie folgt.
~~ 1. Platzieren Sie jsarticle.tplx
an der Stelle, an der die Umgebungsvariable von tex übergeben wird (z. B. an der Stelle, an der sich platformx.exe befindet) ~~
<...> ist Ihr Anaconda-Verzeichnis. In meinem Fall "C: \ tools \ Anaconda3".
jupyter-nbconvert --to latex% 1 --template jsarticle.tplx
ein, der automatisch in jsarticle in das Terminal konvertiert wird. % 1 ist der Dateiname und% 2 ist der Dateibasisname.extractbb% 2_files / *. png
jsarticle
% Default to the notebook output style
((* if not cell_style is defined *))
((* set cell_style = 'style_ipython.tplx' *))
((* endif *))
% Inherit from the specified cell style.
((* extends cell_style *))
%===============================================================================
% Latex Article
%===============================================================================
((* block docclass *))
\documentclass[a4paper,dvipdfmx]{jsarticle}
((* endblock docclass *))
Referenz: Memo von Hashikure Engineer-Jupyter nbconvert (Dateikonvertierung) Memo HTML automatisch mit Qiita - Jupiter Notebook erstellen
Bisher habe ich es im erhabenen Text-Build-Format geschrieben und mit build (Strg + b) ausgeführt. (Daher kann der Dateiname% 1 oder ein Argument sein.)
Jupyter2PDF.sublime-build
{
"cmd":["Jupyter2PDF.bat","$file","$file_base_name"],
}
Jupyter2PDF.bat
@echo off
jupyter-nbconvert --to latex %1 --template jsarticle.tplx
extractbb %2_files/*.png
Unten müssen Sie den Dateinamen erneut eingeben, nicht% 1 und% 2 als Argumente.
plotx% 2.tex
.sty fehlt, aber drücke weiterhin die Eingabetaste, um fortzufahren.dvipdfmx% 2.dvi
Bis zu diesem Punkt wurde das PDF erstellt.
SumatraPDF -reuse-instance% 2.pdf
nbextensions
Wenn Sie mit nbextention überprüfen, werden die Einstellungen in ~ / .jupyter / nbconfig / notebook.json
gespeichert.
Meine Umgebung sieht so aus
python:~/.jupyter/nbconfig/notebook.json
{
"code_format_hotkey": "Ctrl-Alt-D",
"kse_rebinds": {
"command": [
{
"action_name": "auto:autogenerated-function () {\n IPython.notebook.edit_mode();\n return false;\n }",
"from": "esc"
}
],
"edit": [
{
"action_name": "jupyter-notebook:run-cell-and-insert-below",
"from": "alt-enter"
},
{
"to": "alt-enter",
"action_name": "auto:autogenerated-function () {\n var cell = IPython.notebook.get_selected_cell();\n var mode = cell.mode;\n cell.execute();\n if (mode === \"edit\") IPython.notebook.edit_mode();\n return false;\n }",
"from": "ctrl-enter"
}
]
},
"limit_output": 1000,
"stored_keymap": "sublime",
"load_extensions": {
"exercise/main": false,
"collapsible_headings/main": true,
"python-markdown/main": true,
"autosavetime/main": true,
"spellchecker/main": false,
"dragdrop/main": true,
"nbpresent/js/nbpresent.min": true,
"highlighter/highlighter": true,
"hide_input/main": true,
"runtools/main": false,
"hinterland/hinterland": false,
"contrib_nbextensions_help_item/main": true,
"keyboard_shortcut_editor/main": true,
"init_cell/main": true,
"splitcell/splitcell": true,
"toggle_all_line_numbers/main": false,
"freeze/main": true,
"hide_input_all/main": true,
"move_selected_cells/main": true,
"nb_anacondacloud/main": true,
"select_keymap/main": true,
"nb_conda/main": true,
"code_prettify/code_prettify": true,
"ruler/main": false,
"navigation-hotkeys/main": true,
"limit_output/main": false,
"printview/main": true,
"nbextensions_configurator/config_menu/main": true,
"jupyter-js-widgets/extension": true,
"execute_time/ExecuteTime": true,
"toc2/main": true,
"scratchpad/main": true,
"search-replace/main": false,
"codefolding/main": true,
"exercise2/main": false,
"qtconsole/qtconsole": true
},
"kse_show_rebinds": true,
"autosavetime_starting_interval": "5"
}
Nbextensions edit menu item
"nbextensions_configurator/config_menu/main": true,
Nbextension config
wird der MenüleisteEdit
hinzugefügt, und Sie können zum nbextension-Bildschirm wechseln, indem Sie darauf klicken.
Es ist leicht zu verstehen und bequem, da Sie normalerweise "localhost: 8888 / nbextensions /" in das Adressfeld Ihres Browsers eingeben müssen.
Nbextensions dashboard tab
"nbextensions_configurator/config_menu/main": true,
Das Menü nbextension settings wird in der Menüleiste des Jupyter Notebook-Startbildschirms angezeigt.
Ich möchte entweder "Nbextensions edit menu item" einstellen.
Select CodeMirror Keymap
"select_keymap/main": true,
Können vim- und Sublime-Text-Keymaps dunkler als die Standardeinstellungen sein?
Selbst wenn ich beispielsweise Sublime standardmäßig in die Keymap einfügen würde, könnte ich nicht "In Klammern auswählen" Strg + Umschalt + m
oder" Mehrere Zeilen auswählen "Strg + Alt + Auf <Ab>> ausführen. Kann ausgeführt werden, indem auf True gesetzt wird. Die bequeme und unvermeidbare "Mehrfachauswahl ausgewählter Zeichenketten"
Strg + d` überschneidet sich häufig mit den" Register-Lesezeichen "des Browsers, daher ändere ich den Schlüssel mit einem Add-On.
Für Firefox Menü-Assistent Für Chrome Keyconfig
Split Cells Notebook
"splitcell/splitcell": true,
Teilen Sie in linke und rechte Absätze.
Die Tastenkombination lautet "Umschalt + S"
"stored_keymap": "sublime"
Collapsible Headings
"collapsible_headings/main": true,
Sie können Zellen für jede Überschriftenhierarchie schließen (der Beginn einer Markdown-Zelle "#").
Freeze
"freeze/main": true,
schreibgeschützt: Kann ausgeführt, aber nicht neu geschrieben werden
eingefroren: kann nicht geschrieben oder ausgeführt werden
Codefolding
"codefolding/main": true,
Falten Sie den eingerückten Code.
Die Tastenkombination lautet "Alt + F"
Hide input
"hide_input/main": true,
Einzelne Zelleingaben ausblenden.
Hide input all
"hide_input_all/main": true,
Eingabe in allen Zellen ausblenden. Es kann nur das Ergebnis ausgegeben werden, was für die Erstellung von PDFs und Präsentationen praktisch ist.
Move selected cells
"move_selected_cells/main": true,
Es scheint, dass Sie Zellen mit Alt + ↑ / Alt + ↓ verschieben können, aber aus irgendeinem Grund kann ich dies in meiner Umgebung nicht tun
Code prettify
"code_prettify/code_prettify": true,
Wenn Sie auf das Hammersymbol drücken, das beim Aktivieren angezeigt wird, wird der Python-Code so korrigiert, dass er pep8 usw. folgt.
Das Ändern des Python-Codes muss yapf löschen.
conda install --channel https://conda.anaconda.org/conda-forge yapf
Ich habe es nicht ausprobiert, aber für R install.packages (" formatR ", repos =" http://cran.rstudio.com ")
Für Javascript müssen Sie das Modul löschen, um es mit npm install js-beautify
zu formatieren.
"toggle_all_line_numbers/main": true,
Nummerieren Sie alle Zellen mit Zeilennummern.
Es ist möglich, jeder Zelle mit der Standardeinstellung (Verknüpfung L
) des Jupyter-Notebooks eine Zellennummer zuzuweisen. Verwenden Sie sie daher nicht.
Limit Output
"limit_output/main": true,
Wenn Sie die folgende Funktion in ~ \ .jupyter \ jupyter_notebook_config.py
schreiben, wird die Ausgabe automatisch reduziert, wenn die Ausgabe von 1000 Zeilen oder mehr ausgegeben wird.
from notebook.services.config import ConfigManager
cm = ConfigManager().update('notebook', {'limit_output': 1000})
"execute_time/ExecuteTime": true, Zeigen Sie die Ausführungszeit an. In allen Zellen kann nur die in der Menüleiste / Ausführungszeitanzeige unter "Zelle" ausgewählte Zelle umgeschaltet werden.
Printview
"printview/main": true
Sie können die in das HTML- oder PDF-Format konvertierte Vorschau leicht sehen, ohne "Herunterladen als ..." auszuführen.
"highlighter/highlighter": true, Markierungszellen-Highlights
"dragdrop/main": true, Bildeinbettung. In der Markdown-Zelle
<img src="http://127.0.0.1:8888/notebooks/myimage.png "/>
Sie können so schreiben, aber für diejenigen, die mit D & D Fortschritte machen wollen.
Python Markdown
"python-markdown/main": true,
Eine Mischung aus Python-Code und Markdown.
"keyboard_shortcut_editor/main": true,
Der Tastaturkürzelliste wird ein Symbol zum Bearbeiten von Tastenkombinationen hinzugefügt.
Um eine Tastenkombination aufzurufen, suchen Sie in der Befehlspalette nach "Tastaturkürzel anzeigen" (Strg + Umschalt + P) oder drücken Sie im normalen Modus "h".
Launch QTConsole
"qtconsole/qtconsole": true,
Starten Sie qtcosele, indem Sie die Objekte im aktuellen Kernel übernehmen. Ich mag die Tatsache nicht, dass der ~~ Stil der Standardweiß bleibt. ~~ ← Gelöst. Schreiben Sie wie folgt in jupyter_qtconsole_config.py
Erstellen Sie ~ / .jupyter / jupyter_qtconsole_config.py
c.JupyterWidget.syntax_style = "monokai"
Wenn Sie eingeben, wird es beim Starten von qtconsole immer im Monokai-Stil gestartet.
** Wenn Sie es nur ausprobieren möchten, empfehlen wir das unten aufgeführte "Scratchpad" **
Scratchpad notebook extension
"scratchpad/main": true,
Nützlich, wenn Sie den Code einfach ausprobieren möchten, ohne den aktuellen Kernel zu verschmutzen.
Zeigen Sie den Eingabebildschirm auf der rechten Seite des Bildschirms an
Die Tastenkombination lautet "Strg + B"
Navigation-Hotkeys
"navigation-hotkeys/main": true
Fügen Sie eine neue Tastenkombination hinzu (wahrscheinlich)
Edit-mode hotkeys:
pageup - scroll page up
pagedown - scroll page down
Alt- + - Split cell and keep cursor position
Alt- - - Combine cell and keep cursor position
Alt-n - Toggle line number display in current codecell
Shift-Enter - Execute cell, goto next cell and stay in edit mode if next cell is a code cell or unredered markdown cell
Ctrl-Enter - Execute cell and stay in edit mode if cell is a code cell
Ctrl-y - toggle celltype between markdown and code
Command-mode hotkeys:
esc - toggle to edit mode
home - Go to top of notebook
end - Go to bottom of notebook
pageup - scroll page up
pagedown - scroll page down
Referenz Hashikure-Ingenieur-ähnliches Memo - Versuchen Sie es mit der Erweiterungsfunktion von Jupyter Notebook Qiita - Erweiterung hinzufügen, um eine komfortablere Jupyter-Umgebung zu erstellen
JupyterNotebook-Tastenkombination, TeX, Bildeinbettung usw., viele Informationen, die behandelt werden müssen (Kopie)
Erläuterung der Python-Entwicklungsumgebung einschließlich Jupyter, Ipython sowie Jupyter Notebook
Recommended Posts