feat(emacs): refresh Jupyter langs & fix LaTeX preview with custom headers

This commit is contained in:
Pavel Korytov 2021-05-28 19:12:53 +03:00
parent 4ac1cc194c
commit a095705382
2 changed files with 63 additions and 2 deletions

View file

@ -1020,6 +1020,28 @@ then it takes a second \\[keyboard-quit] to abort the minibuffer."
(highlight-indent-guides-mode -1)))
(setq my/org-latex-scale 1.75)
(setq org-format-latex-options (plist-put org-format-latex-options :scale my/org-latex-scale))
(setq my/latex-preview-header "\\documentclass{article}
\\usepackage[usenames]{color}
\\usepackage{graphicx}
\\usepackage{grffile}
\\usepackage{longtable}
\\usepackage{wrapfig}
\\usepackage{rotating}
\\usepackage[normalem]{ulem}
\\usepackage{amsmath}
\\usepackage{textcomp}
\\usepackage{amssymb}
\\usepackage{capt-of}
\\usepackage{hyperref}
\\pagestyle{empty}")
(setq org-preview-latex-process-alist
(mapcar
(lambda (item)
(cons
(car item)
(plist-put (cdr item) :latex-header my/latex-preview-header)))
org-preview-latex-process-alist))
(if (not my/lowpower)
(setq org-agenda-category-icon-alist
`(
@ -1097,6 +1119,11 @@ then it takes a second \\[keyboard-quit] to abort the minibuffer."
(interactive)
(jupyter-available-kernelspecs t))
(defun my/jupyter-refesh-langs ()
"Refresh Jupyter languages"
(interactive)
(org-babel-jupyter-aliases-from-kernelspecs t))
(use-package ob-hy
:straight t)

View file

@ -1752,7 +1752,7 @@ Use the built-in org mode.
(evil-org-agenda-set-keys))
#+end_src
** Literate programing
*** Python
*** Python & Jupyter
Use jupyter kernels for Org Mode.
References:
@ -1776,9 +1776,18 @@ Kernelspecs by default are hashed, so even switching Anaconda environments doesn
(interactive)
(jupyter-available-kernelspecs t))
#+end_src
Also, if some kernel wasn't present an the moment of load of =emacs-jupyter=, it won't be added to the =org-src-lang-modes= list. E.g. I have Hy kernel installed in a separate Anaconda environment, so if Emacs hasn't been launched in this environment, I wouldn't be able to use =hy= in org-src blocks.
Fortunately, =emacs-jupyter= provides a function for that problem as well.
#+begin_src emacs-lisp
(defun my/jupyter-refesh-langs ()
"Refresh Jupyter languages"
(interactive)
(org-babel-jupyter-aliases-from-kernelspecs t))
#+end_src
*** Hy
| Note | Description |
| TODO | Make it work without global Hy |
#+begin_src emacs-lisp :noweb-ref org-lang-setup
(use-package ob-hy
:straight t)
@ -2018,6 +2027,31 @@ Scale latex fragments preview.
(setq org-format-latex-options (plist-put org-format-latex-options :scale my/org-latex-scale))
#+end_src
Also, LaTeX fragments preview tends to break whenever the are custom =#+LATEX_HEADER= entries. To circuvment this, I add a custom header and modify the ~org-preview-latex-process-alist~ variable
#+begin_src emacs-lisp :noweb-ref org-ui-setup :tangle no
(setq my/latex-preview-header "\\documentclass{article}
\\usepackage[usenames]{color}
\\usepackage{graphicx}
\\usepackage{grffile}
\\usepackage{longtable}
\\usepackage{wrapfig}
\\usepackage{rotating}
\\usepackage[normalem]{ulem}
\\usepackage{amsmath}
\\usepackage{textcomp}
\\usepackage{amssymb}
\\usepackage{capt-of}
\\usepackage{hyperref}
\\pagestyle{empty}")
(setq org-preview-latex-process-alist
(mapcar
(lambda (item)
(cons
(car item)
(plist-put (cdr item) :latex-header my/latex-preview-header)))
org-preview-latex-process-alist))
#+end_src
*** Better headers
#+begin_src emacs-lisp
(use-package org-superstar