Add org-roam-bibtex, improve key bindings
This commit is contained in:
parent
c0035725ce
commit
afbdc290d9
@ -1,7 +1,5 @@
|
|||||||
#+TITLE: Doom Emacs Configuration
|
#+TITLE: Doom Emacs Configuration
|
||||||
:DRAWER:
|
:DRAWER:
|
||||||
#+STARTUP: overview
|
|
||||||
|
|
||||||
#+LANGUAGE: en
|
#+LANGUAGE: en
|
||||||
#+EMAIL: dehaeze.thomas@gmail.com
|
#+EMAIL: dehaeze.thomas@gmail.com
|
||||||
#+AUTHOR: Dehaeze Thomas
|
#+AUTHOR: Dehaeze Thomas
|
||||||
@ -29,9 +27,13 @@ https://github.com/nmartin84/.doom.d/blob/master/config.org
|
|||||||
Documentation:
|
Documentation:
|
||||||
- https://github.com/hlissner/doom-emacs/blob/develop/docs/index.org
|
- https://github.com/hlissner/doom-emacs/blob/develop/docs/index.org
|
||||||
|
|
||||||
|
When changing =init.el= or =package.el=, tangle the files and then run =doom sync=.
|
||||||
|
After that, restart Emacs with =spc q r=.
|
||||||
|
|
||||||
* Useful Bindings
|
* Useful Bindings
|
||||||
- =align-regexp=: equivalent of [[https://github.com/junegunn/vim-easy-align][vim-easy-align]]. Very useful to align tables and stuff
|
- =align-regexp=: equivalent of [[https://github.com/junegunn/vim-easy-align][vim-easy-align]]. Very useful to align tables and stuff
|
||||||
|
|
||||||
|
** General Bindings
|
||||||
| =spc := | Execute command |
|
| =spc := | Execute command |
|
||||||
| =spc <= | Switch to buffer |
|
| =spc <= | Switch to buffer |
|
||||||
| =spc X= | org-capture |
|
| =spc X= | org-capture |
|
||||||
@ -58,29 +60,38 @@ Documentation:
|
|||||||
| =spc m s= | org-schedule |
|
| =spc m s= | org-schedule |
|
||||||
| =spc m t= | org-todo |
|
| =spc m t= | org-todo |
|
||||||
|
|
||||||
|
** Org-Babel Bindings
|
||||||
|
| =C-c C-v p= | org-babel-previous-src-block |
|
||||||
|
| =C-c C-v n= | org-babel-next-src-block |
|
||||||
|
| =C-c C-v e= | org-babel-execute-maybe |
|
||||||
|
| =C-c C-v o= | org-babel-open-src-block-result |
|
||||||
|
| =C-c C-v v= | org-babel-expand-src-block |
|
||||||
|
| =C-c C-v u= | org-babel-goto-src-block-head |
|
||||||
|
| =C-c C-v g= | org-babel-goto-named-src-block |
|
||||||
|
| =C-c C-v r= | org-babel-goto-named-result |
|
||||||
|
| =C-c C-v b= | org-babel-execute-buffer |
|
||||||
|
| =C-c C-v s= | org-babel-execute-subtree |
|
||||||
|
| =C-c C-v d= | org-babel-demarcate-block |
|
||||||
|
| =C-c C-v t= | org-babel-tangle |
|
||||||
|
| =C-c C-v f= | org-babel-tangle-file |
|
||||||
|
| =C-c C-v c= | org-babel-check-src-block |
|
||||||
|
| =C-c C-v j= | org-babel-insert-header-arg |
|
||||||
|
| =C-c C-v l= | org-babel-load-in-session |
|
||||||
|
| =C-c C-v i= | org-babel-lob-ingest |
|
||||||
|
| =C-c C-v I= | org-babel-view-src-block-info |
|
||||||
|
| =C-c C-v z= | org-babel-switch-to-session-with-code |
|
||||||
|
| =C-c C-v a= | org-babel-sha1-hash |
|
||||||
|
| =C-c C-v h= | org-babel-describe-bindings |
|
||||||
|
| =C-c C-v x= | org-babel-do-key-sequence-in-edit-buffer |
|
||||||
|
|
||||||
| C-c C-v p | org-babel-previous-src-block |
|
** Evil bindings
|
||||||
| C-c C-v n | org-babel-next-src-block |
|
|
||||||
| C-c C-v e | org-babel-execute-maybe |
|
| ~gv~ | Selects the previous visual |
|
||||||
| C-c C-v o | org-babel-open-src-block-result |
|
| ~o~ in visual mode | go to the `Other` end of the selection |
|
||||||
| C-c C-v v | org-babel-expand-src-block |
|
| ~g=~ and ~g-~ | Increase/decrement number |
|
||||||
| C-c C-v u | org-babel-goto-src-block-head |
|
| ~t~ followed by any char | goes "till" next character (not included) |
|
||||||
| C-c C-v g | org-babel-goto-named-src-block |
|
| ~f~ followed by any char | "find" next character (included) |
|
||||||
| C-c C-v r | org-babel-goto-named-result |
|
| ~yt.~ | yank until next ~.~ |
|
||||||
| C-c C-v b | org-babel-execute-buffer |
|
|
||||||
| C-c C-v s | org-babel-execute-subtree |
|
|
||||||
| C-c C-v d | org-babel-demarcate-block |
|
|
||||||
| C-c C-v t | org-babel-tangle |
|
|
||||||
| C-c C-v f | org-babel-tangle-file |
|
|
||||||
| C-c C-v c | org-babel-check-src-block |
|
|
||||||
| C-c C-v j | org-babel-insert-header-arg |
|
|
||||||
| C-c C-v l | org-babel-load-in-session |
|
|
||||||
| C-c C-v i | org-babel-lob-ingest |
|
|
||||||
| C-c C-v I | org-babel-view-src-block-info |
|
|
||||||
| C-c C-v z | org-babel-switch-to-session-with-code |
|
|
||||||
| C-c C-v a | org-babel-sha1-hash |
|
|
||||||
| C-c C-v h | org-babel-describe-bindings |
|
|
||||||
| C-c C-v x | org-babel-do-key-sequence-in-edit-buffer |
|
|
||||||
|
|
||||||
* Basic Configuration
|
* Basic Configuration
|
||||||
** Personal Information
|
** Personal Information
|
||||||
@ -188,6 +199,36 @@ Turn off auto-fill mode that add line breaks.
|
|||||||
(setq magit-diff-refine-hunk 'all)
|
(setq magit-diff-refine-hunk 'all)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
** Dired
|
||||||
|
- =C-c C-e= Writable Dired mode, when changes are done =C-c C-c=.
|
||||||
|
This works also with =C-x C-q=
|
||||||
|
- =C-c C-r= use =rsync= to copy file in the background
|
||||||
|
|
||||||
|
- =+= Create a directory
|
||||||
|
- =R= Rename / move
|
||||||
|
- =C= Copy
|
||||||
|
- =d= Delete
|
||||||
|
- =m= Mark
|
||||||
|
- =U= unmark all marked
|
||||||
|
- =t= invert the selection
|
||||||
|
- =u= unmark / undelete
|
||||||
|
- =x= actually delete files/directories marked for deletion
|
||||||
|
- =!= Execute shell command on this file, or currently marked files
|
||||||
|
- =%m= mark by pattern
|
||||||
|
- =o= sort by time/name
|
||||||
|
|
||||||
|
- =(= Hide details
|
||||||
|
- =)= Show git infos
|
||||||
|
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(use-package! dired-narrow
|
||||||
|
:config
|
||||||
|
(map! :map dired-mode-map
|
||||||
|
:n "f"
|
||||||
|
'dired-narrow-fuzzy))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
** PDF-Tools
|
** PDF-Tools
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package! pdf-tools
|
(use-package! pdf-tools
|
||||||
@ -202,6 +243,21 @@ Turn off auto-fill mode that add line breaks.
|
|||||||
(yas-global-mode 1)
|
(yas-global-mode 1)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
** Ox-Hugo
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(defun tdh-export-everything-to-hugo ()
|
||||||
|
"Export all the .org files in the specified directory to markdown using Hugo"
|
||||||
|
(interactive)
|
||||||
|
(setq org-files (directory-files (read-directory-name "Directory:" "/home/thomas/Cloud/brain/") t "org$" t))
|
||||||
|
|
||||||
|
(while org-files
|
||||||
|
(setq current-org-file (car org-files))
|
||||||
|
(message "Exporting %s" current-org-file)
|
||||||
|
(find-file current-org-file)
|
||||||
|
(org-hugo-export-to-md)
|
||||||
|
(setq org-files (cdr org-files))))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
* Org Mode
|
* Org Mode
|
||||||
- http://cachestocaches.com/2016/9/my-workflow-org-agenda/
|
- http://cachestocaches.com/2016/9/my-workflow-org-agenda/
|
||||||
- http://doc.norang.ca/org-mode.html#TodoKeywords
|
- http://doc.norang.ca/org-mode.html#TodoKeywords
|
||||||
@ -209,6 +265,7 @@ Turn off auto-fill mode that add line breaks.
|
|||||||
|
|
||||||
** Org General Config
|
** Org General Config
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
|
(setq org-directory "~/Cloud/org/")
|
||||||
(after! org
|
(after! org
|
||||||
(setq org-directory "~/Cloud/org/")
|
(setq org-directory "~/Cloud/org/")
|
||||||
|
|
||||||
@ -225,6 +282,7 @@ Turn off auto-fill mode that add line breaks.
|
|||||||
|
|
||||||
;; Indent according to the outline structure
|
;; Indent according to the outline structure
|
||||||
(setq org-startup-indented t)
|
(setq org-startup-indented t)
|
||||||
|
(setq org-startup-folded t)
|
||||||
|
|
||||||
;; Record the information of when the task was marked as DONE
|
;; Record the information of when the task was marked as DONE
|
||||||
(setq org-log-done 'time)
|
(setq org-log-done 'time)
|
||||||
@ -250,10 +308,8 @@ Display the real size of images and not the one set with =attr_latex: :width \li
|
|||||||
** Org Links
|
** Org Links
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(after! org
|
(after! org
|
||||||
(map! :map org-mode-map "C-c l" 'org-store-link)
|
|
||||||
|
|
||||||
(setq org-link-abbrev-alist
|
(setq org-link-abbrev-alist
|
||||||
'(("bib" . "~/Cloud/brain/references.bib::%s")
|
'(("bib" . "~/Cloud/brain/biblio/references.bib::%s")
|
||||||
("notes" . "~/Cloud/brain/%s.org")
|
("notes" . "~/Cloud/brain/%s.org")
|
||||||
("papers" . "~/Cloud/pdfs/%s.pdf")))
|
("papers" . "~/Cloud/pdfs/%s.pdf")))
|
||||||
)
|
)
|
||||||
@ -365,8 +421,6 @@ Archive subtrees under the same hierarchy as original in the archive files
|
|||||||
General configuration
|
General configuration
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(after! org
|
(after! org
|
||||||
(map! :map org-mode-map "C-c a" 'org-agenda)
|
|
||||||
|
|
||||||
;; File to save todo items
|
;; File to save todo items
|
||||||
(setq org-agenda-files (list "~/Cloud/org/"))
|
(setq org-agenda-files (list "~/Cloud/org/"))
|
||||||
|
|
||||||
@ -544,11 +598,6 @@ Documentation:
|
|||||||
- Template expansion: https://orgmode.org/manual/Template-expansion.html#Template-expansion
|
- Template expansion: https://orgmode.org/manual/Template-expansion.html#Template-expansion
|
||||||
- Capture protocol: https://orgmode.org/manual/capture-protocol.html
|
- Capture protocol: https://orgmode.org/manual/capture-protocol.html
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(after! org
|
|
||||||
(map! :map org-mode-map "C-c c" 'org-capture))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(after! org
|
(after! org
|
||||||
(setq org-capture-templates
|
(setq org-capture-templates
|
||||||
@ -657,7 +706,7 @@ Do not export headline with the =:ignore:= tag:
|
|||||||
(setq org-html-wrap-src-lines nil)
|
(setq org-html-wrap-src-lines nil)
|
||||||
|
|
||||||
;; Export with css class instead of inline css
|
;; Export with css class instead of inline css
|
||||||
(setq org-html-htmlize-output-type 'css)
|
(setq org-html-htmlize-output-type 'nil)
|
||||||
)
|
)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@ -959,18 +1008,18 @@ https://emacs.stackexchange.com/questions/30575/adding-latex-newpage-before-a-he
|
|||||||
|
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(after! org
|
(after! org
|
||||||
(defun org/get-headline-string-element (headline backend info)
|
(defun tdh-get-headline-string-element (headline backend info)
|
||||||
(let ((prop-point (next-property-change 0 headline)))
|
(let ((prop-point (next-property-change 0 headline)))
|
||||||
(if prop-point (plist-get (text-properties-at prop-point headline) :parent))))
|
(if prop-point (plist-get (text-properties-at prop-point headline) :parent))))
|
||||||
|
|
||||||
(defun org/ensure-latex-clearpage (headline backend info)
|
(defun tdh-ensure-latex-clearpage (headline backend info)
|
||||||
(when (org-export-derived-backend-p backend 'latex)
|
(when (org-export-derived-backend-p backend 'latex)
|
||||||
(let ((elmnt (org/get-headline-string-element headline backend info)))
|
(let ((elmnt (tdh-get-headline-string-element headline backend info)))
|
||||||
(when (and elmnt (org-element-property :CLEARPAGE elmnt))
|
(when (and elmnt (org-element-property :CLEARPAGE elmnt))
|
||||||
(concat "\\clearpage\n" headline)))))
|
(concat "\\clearpage\n" headline)))))
|
||||||
|
|
||||||
(add-to-list 'org-export-filter-headline-functions
|
(add-to-list 'org-export-filter-headline-functions
|
||||||
'org/ensure-latex-clearpage)
|
'tdh-ensure-latex-clearpage)
|
||||||
)
|
)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@ -991,7 +1040,7 @@ https://emacs.stackexchange.com/questions/30575/adding-latex-newpage-before-a-he
|
|||||||
(after! org
|
(after! org
|
||||||
;; Setup default option for image size when exporting to LaTeX
|
;; Setup default option for image size when exporting to LaTeX
|
||||||
(setq org-latex-image-default-scale "")
|
(setq org-latex-image-default-scale "")
|
||||||
(setq org-latex-image-default-width "")
|
(setq org-latex-image-default-width "\\linewidth")
|
||||||
(setq org-latex-image-default-height "")
|
(setq org-latex-image-default-height "")
|
||||||
(setq org-latex-image-default-option "")
|
(setq org-latex-image-default-option "")
|
||||||
|
|
||||||
@ -1004,6 +1053,9 @@ https://emacs.stackexchange.com/questions/30575/adding-latex-newpage-before-a-he
|
|||||||
;; Settings to export code with `minted' instead of `verbatim'.
|
;; Settings to export code with `minted' instead of `verbatim'.
|
||||||
(setq org-latex-listings 'minted)
|
(setq org-latex-listings 'minted)
|
||||||
|
|
||||||
|
;; Set the following as images
|
||||||
|
(setq org-latex-inline-image-rules '(("file" . "\\.\\(pdf\\|jpeg\\|jpg\\|png\\|ps\\|eps\\|tikz\\|pgf\\|svg\\|gif\\)\\'")))
|
||||||
|
|
||||||
;; Command used when exporting to pdf
|
;; Command used when exporting to pdf
|
||||||
(setq org-latex-pdf-process
|
(setq org-latex-pdf-process
|
||||||
'("latexmk -cd -pdflatex=\"pdflatex -synctex=1 -shell-escape -interaction nonstopmode -output-directory %o\" -pdf -bibtex -f %f"))
|
'("latexmk -cd -pdflatex=\"pdflatex -synctex=1 -shell-escape -interaction nonstopmode -output-directory %o\" -pdf -bibtex -f %f"))
|
||||||
@ -1092,24 +1144,12 @@ https://emacs.stackexchange.com/questions/156/emacs-function-to-convert-an-arbit
|
|||||||
(insert (format "\\page{%s}\n" page)))
|
(insert (format "\\page{%s}\n" page)))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+begin_src emacs-lisp :tangle no
|
|
||||||
(defun org-latex-format-headline-default-function (todo _todo-type priority text tags _info)
|
|
||||||
"Default format function for a headline.
|
|
||||||
See `org-latex-format-headline-function' for details."
|
|
||||||
(concat
|
|
||||||
(and todo (format "{\\bfseries\\sffamily %s} " todo))
|
|
||||||
(and priority (format "\\framebox{\\#%c} " priority))
|
|
||||||
text
|
|
||||||
(and tags
|
|
||||||
(format "\\hfill{}\\textsc{%s}"
|
|
||||||
(mapconcat #'org-latex--protect-text tags ":")))
|
|
||||||
(and todo (format "{\n\\page{%s} " todo)))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
*** Number Equations
|
*** Number Equations
|
||||||
|
https://kitchingroup.cheme.cmu.edu/blog/2016/11/07/Better-equation-numbering-in-LaTeX-fragments-in-org-mode/
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(after! org
|
(after! org
|
||||||
(defun org-renumber-environment (orig-func &rest args)
|
(defun tdh-org-renumber-environment (orig-func &rest args)
|
||||||
"A function to inject numbers in LaTeX fragment previews."
|
"A function to inject numbers in LaTeX fragment previews."
|
||||||
(let ((results '())
|
(let ((results '())
|
||||||
(counter -1)
|
(counter -1)
|
||||||
@ -1150,7 +1190,7 @@ https://emacs.stackexchange.com/questions/156/emacs-function-to-convert-an-arbit
|
|||||||
|
|
||||||
(apply orig-func args))
|
(apply orig-func args))
|
||||||
|
|
||||||
(advice-add 'org-create-formula-image :around #'org-renumber-environment)
|
(advice-add 'org-create-formula-image :around #'tdh-org-renumber-environment)
|
||||||
)
|
)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@ -1173,15 +1213,15 @@ https://www.reddit.com/r/orgmode/comments/7u2n0h/tip_for_defining_latex_macros_f
|
|||||||
|
|
||||||
(defun org-babel-execute:latex-macros (body _params)
|
(defun org-babel-execute:latex-macros (body _params)
|
||||||
(concat
|
(concat
|
||||||
"\n#+HTML_HEAD_EXTRA: <div style=\"display: none\"> \\(\n"
|
"\n#+begin_export html\n<div style=\"display: none\"> \\(\n"
|
||||||
(prefix-all-lines "#+HTML_HEAD_EXTRA: " body)
|
body
|
||||||
"\n#+HTML_HEAD_EXTRA: \\)</div>\n"))
|
"\n\\)</div>\n#+end_export\n"))
|
||||||
)
|
)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
|
||||||
** TODO Org Projects
|
** Org Projects
|
||||||
#+begin_src emacs-lisp :tangle no
|
#+begin_src emacs-lisp
|
||||||
(setq org-publish-project-alist
|
(setq org-publish-project-alist
|
||||||
'(("config"
|
'(("config"
|
||||||
:base-directory "~/.config/literate-dotfiles/dotfiles/"
|
:base-directory "~/.config/literate-dotfiles/dotfiles/"
|
||||||
@ -1239,7 +1279,7 @@ https://www.reddit.com/r/orgmode/comments/7u2n0h/tip_for_defining_latex_macros_f
|
|||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** TODO Org big org-project
|
** TODO Org big org-project
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp :tangle no
|
||||||
(setq org-publish-project-alist
|
(setq org-publish-project-alist
|
||||||
'(("website"
|
'(("website"
|
||||||
:components ("nass-simscape" "nass-simscape-images"))
|
:components ("nass-simscape" "nass-simscape-images"))
|
||||||
@ -1418,7 +1458,50 @@ https://www.reddit.com/r/emacs/comments/d3a8or/pretty_org_tables_in_the_buffer_c
|
|||||||
)
|
)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Custom Keybindings - =,= leader key
|
** TODO [#A] Custom Keybindings - =,= leader key and =C-c=
|
||||||
|
|
||||||
|
| | |
|
||||||
|
|---------+-------------------|
|
||||||
|
| =C-c a= | Org Agenda |
|
||||||
|
| =C-c n= | Narrow to Subtree |
|
||||||
|
| =C-c l= | Org Link |
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(after! org
|
||||||
|
(map! :map org-mode-map
|
||||||
|
(:desc "Org Agenda"
|
||||||
|
:ni "C-c a" 'org-agenda)
|
||||||
|
(:desc "Archive"
|
||||||
|
:n "C-c A" 'org-archive-subtree)
|
||||||
|
(:desc "Org Capture"
|
||||||
|
:ni "C-c c" 'org-capture)
|
||||||
|
(:desc "Store Link"
|
||||||
|
:ni "C-c l" 'org-store-link)
|
||||||
|
(:desc "Narrow Subtree"
|
||||||
|
:ni "C-c n" 'org-toggle-narrow-to-subtree)
|
||||||
|
(:desc "Org Noter"
|
||||||
|
:ni "C-c N" 'org-noter)
|
||||||
|
(:desc "Align Block"
|
||||||
|
:ni "C-c =" 'tdh-align-src-block)
|
||||||
|
(:desc "Insert Reference"
|
||||||
|
:ni "C-c r" 'org-ref-insert-ref-link)
|
||||||
|
(:desc "Insert Image"
|
||||||
|
:ni "C-c i" 'tdh-insert-image-org-link)
|
||||||
|
(:desc "Insert Image SXIV"
|
||||||
|
:ni "C-c I" 'tdh-insert-image-org-link-sxiv)
|
||||||
|
(:desc "Link to next Figure"
|
||||||
|
:ni "C-c f" 'tdh-insert-link-to-next-figure)
|
||||||
|
(:desc "Link to previous Figure"
|
||||||
|
:ni "C-c F" 'tdh-insert-link-to-previous-figure)
|
||||||
|
(:desc "Insert Screenshot"
|
||||||
|
:ni "C-c s" 'tdh-insert-screenshot-org-link)
|
||||||
|
(:desc "Find Roam"
|
||||||
|
:ni "C-c r" 'orb-find-non-ref-file)
|
||||||
|
(:desc "Insert Roam"
|
||||||
|
:ni "C-c R" 'orb-insert-non-ref)
|
||||||
|
))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
*** Insert Elements =,i=
|
*** Insert Elements =,i=
|
||||||
Insert Link to paper
|
Insert Link to paper
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
@ -1494,12 +1577,17 @@ Take Screenshot and insert a link:
|
|||||||
|
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(defun tdh-insert-screenshot-org-link ()
|
(defun tdh-insert-screenshot-org-link ()
|
||||||
"Capture screenshot and insert the resulting file.
|
"Capture screenshot and insert the resulting file.
|
||||||
The screenshot tool is determined by `org-download-screenshot-method'."
|
The screenshot tool is determined by `org-download-screenshot-method'."
|
||||||
(interactive)
|
(interactive)
|
||||||
(setq filename (concat "./figs/" (read-string "Enter file name:") ".png"))
|
(if (string-match "_" (file-name-base buffer-file-name))
|
||||||
(shell-command (concat "maim -s " filename))
|
(setq filename (read-string "Enter file name:" (car (split-string (file-name-base buffer-file-name) "_"))))
|
||||||
(insert (format "[[file:%s]]" filename))
|
(setq filename (read-string "Enter file name:")))
|
||||||
|
(setq filepath (concat "./figs/" filename ".png"))
|
||||||
|
(shell-command (concat "maim -s " filepath))
|
||||||
|
(insert (format "#+name: fig:%s\n#+caption:\n[[file:%s]]" filename filepath))
|
||||||
|
(search-backward "caption")
|
||||||
|
(end-of-line)
|
||||||
)
|
)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@ -1513,6 +1601,16 @@ Insert link to next figure:
|
|||||||
)
|
)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
Insert link to previous figure:
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(defun tdh-insert-link-to-previous-figure ()
|
||||||
|
(interactive)
|
||||||
|
(save-excursion
|
||||||
|
(re-search-backward "^#\\+name:\s*\\(fig:.*\\)" nil t 1))
|
||||||
|
(insert (concat "[[" (match-string 1) "]]"))
|
||||||
|
)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
Map Keys
|
Map Keys
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(after! org
|
(after! org
|
||||||
@ -1524,6 +1622,7 @@ Map Keys
|
|||||||
:n "F" 'tdh-insert-image-org-link-sxiv
|
:n "F" 'tdh-insert-image-org-link-sxiv
|
||||||
:n "i" 'tdh-insert-phone-picture
|
:n "i" 'tdh-insert-phone-picture
|
||||||
:n "l" 'tdh-insert-link-to-next-figure
|
:n "l" 'tdh-insert-link-to-next-figure
|
||||||
|
:n "L" 'tdh-insert-link-to-previous-figure
|
||||||
:n "s" 'tdh-insert-screenshot-org-link)))
|
:n "s" 'tdh-insert-screenshot-org-link)))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@ -1581,7 +1680,7 @@ Map Keys
|
|||||||
(:prefix (",r" . "References")
|
(:prefix (",r" . "References")
|
||||||
:n "b" 'helm-bibtex
|
:n "b" 'helm-bibtex
|
||||||
:n "B" 'helm-bibtex-with-local-bibliography
|
:n "B" 'helm-bibtex-with-local-bibliography
|
||||||
:n "f" 'helm-bibtex-favorites
|
:n "f" 'tdh-helm-bibtex-favorites
|
||||||
:n "r" 'helm-resume)))
|
:n "r" 'helm-resume)))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@ -1635,6 +1734,12 @@ Don't ask for confirmation when evaluating following blocs
|
|||||||
(setq org-confirm-babel-evaluate 'tdh-org-confirm-babel-evaluate))
|
(setq org-confirm-babel-evaluate 'tdh-org-confirm-babel-evaluate))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
Default header arguments.
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(after! org
|
||||||
|
(setq org-babel-default-header-args '((:eval . "no-export"))))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
Use the current window for C-c ' source editing
|
Use the current window for C-c ' source editing
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(after! org
|
(after! org
|
||||||
@ -1788,11 +1893,11 @@ when inside a source block. Otherwise, keep the normal behavior for =ctrl-ret=.
|
|||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(defun tdh-ctrl-ret ()
|
(defun tdh-ctrl-ret ()
|
||||||
(interactive)
|
(interactive)
|
||||||
(defun in-src-block-p ()
|
(defun tdh-in-src-block-p ()
|
||||||
"Returns t when the point is inside a source code block"
|
"Returns t when the point is inside a source code block"
|
||||||
(string= "src" (org-in-block-p '("src"))))
|
(string= "src" (org-in-block-p '("src"))))
|
||||||
|
|
||||||
(if (in-src-block-p)
|
(if (tdh-in-src-block-p)
|
||||||
(progn
|
(progn
|
||||||
(org-babel-execute-src-block)
|
(org-babel-execute-src-block)
|
||||||
(org-babel-next-src-block))
|
(org-babel-next-src-block))
|
||||||
@ -1889,11 +1994,11 @@ This function:
|
|||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(defun tdh-ctrl-shift-ret ()
|
(defun tdh-ctrl-shift-ret ()
|
||||||
(interactive)
|
(interactive)
|
||||||
(defun in-src-block-p ()
|
(defun tdh-in-src-block-p ()
|
||||||
"Returns t when the point is inside a source code block"
|
"Returns t when the point is inside a source code block"
|
||||||
(string= "src" (org-in-block-p '("src"))))
|
(string= "src" (org-in-block-p '("src"))))
|
||||||
|
|
||||||
(if (in-src-block-p)
|
(if (tdh-in-src-block-p)
|
||||||
(let ((lang (nth 0 (org-babel-get-src-block-info))))
|
(let ((lang (nth 0 (org-babel-get-src-block-info))))
|
||||||
(if (string= lang "matlab")
|
(if (string= lang "matlab")
|
||||||
(if (region-active-p)
|
(if (region-active-p)
|
||||||
@ -1916,11 +2021,11 @@ This function:
|
|||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(defun tdh-align-src-block ()
|
(defun tdh-align-src-block ()
|
||||||
(interactive)
|
(interactive)
|
||||||
(defun in-src-block-p ()
|
(defun tdh-in-src-block-p ()
|
||||||
"Returns t when the point is inside a source code block"
|
"Returns t when the point is inside a source code block"
|
||||||
(string= "src" (org-in-block-p '("src"))))
|
(string= "src" (org-in-block-p '("src"))))
|
||||||
|
|
||||||
(if (in-src-block-p)
|
(if (tdh-in-src-block-p)
|
||||||
(progn
|
(progn
|
||||||
(org-edit-special)
|
(org-edit-special)
|
||||||
(evil-indent (point-min) (point-max))
|
(evil-indent (point-min) (point-max))
|
||||||
@ -1928,12 +2033,6 @@ This function:
|
|||||||
(org-table-eval-formula)))
|
(org-table-eval-formula)))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(map! :after evil-org
|
|
||||||
:map evil-org-mode-map
|
|
||||||
:n "C-c =" #'tdh-align-src-block)
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Helping Functions - Tangling =,b=
|
** Helping Functions - Tangling =,b=
|
||||||
Org-Babel Tangle Sub-tree
|
Org-Babel Tangle Sub-tree
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
@ -1999,8 +2098,8 @@ Nice Functions:
|
|||||||
(setq org-ref-bibliography-notes "~/Cloud/brain")
|
(setq org-ref-bibliography-notes "~/Cloud/brain")
|
||||||
|
|
||||||
;; Bibliography File
|
;; Bibliography File
|
||||||
(setq reftex-default-bibliography '("~/Cloud/brain/references.bib"))
|
(setq reftex-default-bibliography '("~/Cloud/brain/biblio/references.bib"))
|
||||||
(setq org-ref-default-bibliography '("~/Cloud/brain/references.bib"))
|
(setq org-ref-default-bibliography '("~/Cloud/brain/biblio/references.bib"))
|
||||||
|
|
||||||
;; Folder where all the pdf are located
|
;; Folder where all the pdf are located
|
||||||
(setq org-ref-pdf-directory "~/Cloud/pdfs")
|
(setq org-ref-pdf-directory "~/Cloud/pdfs")
|
||||||
@ -2032,10 +2131,12 @@ Nice Functions:
|
|||||||
".pdf"))))
|
".pdf"))))
|
||||||
t)
|
t)
|
||||||
|
|
||||||
(map!
|
;; Let Mathjax deals with equation reference
|
||||||
:map org-mode-map
|
(defun org-ref-eqref-export (keyword desc format)
|
||||||
(:desc "Insert Link"
|
(cond
|
||||||
:ni "C-c i" #'org-ref-insert-ref-link))
|
((eq format 'latex) (format "\\eqref{%s}" keyword))
|
||||||
|
((eq format 'html) (format "\\eqref{%s}" keyword))
|
||||||
|
((eq format 'md) (format "\\eqref{%s}" keyword))))
|
||||||
)
|
)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@ -2099,16 +2200,32 @@ Nice Functions:
|
|||||||
"%?"
|
"%?"
|
||||||
:file-name "${slug}"
|
:file-name "${slug}"
|
||||||
:head ,(concat "#+TITLE: ${title}\n"
|
:head ,(concat "#+TITLE: ${title}\n"
|
||||||
"#+SETUPFILE ./org-roam-setup-file.org\n"
|
"#+SETUPFILE: ./setup/org-setup-file.org\n"
|
||||||
|
"#+HUGO_SECTION: zettels\n"
|
||||||
"\n"
|
"\n"
|
||||||
"- Tags ::\n"
|
"- Tags ::\n"
|
||||||
"\n")
|
"\n"
|
||||||
|
"* Bibliography :ignore:\n"
|
||||||
|
"bibliography:./biblio/references.bib"
|
||||||
|
)
|
||||||
|
:unnarrowed t)))
|
||||||
|
(setq org-roam-capture-ref-templates
|
||||||
|
`(("r" "ref" plain (function org-roam--capture-get-point)
|
||||||
|
"%?"
|
||||||
|
:file-name "${slug}"
|
||||||
|
:head ,(concat "#+TITLE: ${title}\n"
|
||||||
|
"#+SETUPFILE: ./setup/org-setup-file.org\n"
|
||||||
|
"#+HUGO_SECTION: websites\n"
|
||||||
|
"#+ROAM_KEY: ${ref}\n"
|
||||||
|
"\n"
|
||||||
|
"- Tags ::\n"
|
||||||
|
)
|
||||||
:unnarrowed t)))
|
:unnarrowed t)))
|
||||||
)
|
)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(defun my/org-roam--backlinks-list (file)
|
(defun tdh-org-roam--backlinks-list (file)
|
||||||
(if (org-roam--org-roam-file-p file)
|
(if (org-roam--org-roam-file-p file)
|
||||||
(--reduce-from
|
(--reduce-from
|
||||||
(concat acc (format "- [[file:%s][%s]]\n"
|
(concat acc (format "- [[file:%s][%s]]\n"
|
||||||
@ -2117,23 +2234,24 @@ Nice Functions:
|
|||||||
"" (org-roam-db-query [:select [from] :from links :where (= to $s1)] file))
|
"" (org-roam-db-query [:select [from] :from links :where (= to $s1)] file))
|
||||||
""))
|
""))
|
||||||
|
|
||||||
(defun my/org-export-preprocessor (backend)
|
(defun tdh-org-export-preprocessor (backend)
|
||||||
(let ((links (my/org-roam--backlinks-list (buffer-file-name))))
|
(let ((links (tdh-org-roam--backlinks-list (buffer-file-name))))
|
||||||
(unless (string= links "")
|
(unless (string= links "")
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(goto-char (point-max))
|
(goto-char (point-max))
|
||||||
(insert (concat "\n* Backlinks\n") links)))))
|
(insert (concat "\n* Backlinks\n") links)))))
|
||||||
|
|
||||||
(add-hook 'org-export-before-processing-hook 'my/org-export-preprocessor)
|
(add-hook 'org-export-before-processing-hook 'tdh-org-export-preprocessor)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Helm-Bibtex ([[https://github.com/tmalsburg/helm-bibtex][link]])
|
** Helm-Bibtex ([[https://github.com/tmalsburg/helm-bibtex][link]])
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package! helm-bibtex
|
(use-package! helm-bibtex
|
||||||
|
:after-call helm-bibtex
|
||||||
:init
|
:init
|
||||||
:config
|
:config
|
||||||
;; Bibliography file
|
;; Bibliography file
|
||||||
(setq bibtex-completion-bibliography "~/Cloud/brain/references.bib")
|
(setq bibtex-completion-bibliography "~/Cloud/brain/biblio/references.bib")
|
||||||
|
|
||||||
;; Directory with all the pdfs
|
;; Directory with all the pdfs
|
||||||
(setq bibtex-completion-library-path "~/Cloud/pdfs")
|
(setq bibtex-completion-library-path "~/Cloud/pdfs")
|
||||||
@ -2160,32 +2278,57 @@ Nice Functions:
|
|||||||
|
|
||||||
;; Template used when creating new Note file
|
;; Template used when creating new Note file
|
||||||
(setq bibtex-completion-notes-template-multiple-files (concat "#+TITLE: ${title}\n"
|
(setq bibtex-completion-notes-template-multiple-files (concat "#+TITLE: ${title}\n"
|
||||||
"#+NOTER_DOCUMENT: ../pdfs/${=key=}.pdf\n"
|
"#+SETUPFILE: ./setup/org-setup-file.org\n"
|
||||||
"#+ROAM_KEY: cite:${=key=}\n"
|
"#+HUGO_SECTION: ${=type=}\n"
|
||||||
|
"#+ROAM_KEY: ${=key=}\n"
|
||||||
"\n"
|
"\n"
|
||||||
"- Author :: ${author}\n"
|
"- Tags ::\n"
|
||||||
|
"- Reference :: cite:${=key=}\n"
|
||||||
|
"- Author(s) :: ${author}\n"
|
||||||
"- Year :: ${year}\n"
|
"- Year :: ${year}\n"
|
||||||
"- DOI :: ${DOI}\n"
|
"\n"
|
||||||
"\n"))
|
"* ${author-abbrev} (${year}): ${title} :${=type=}:ignore:\n"
|
||||||
|
":PROPERTIES:\n"
|
||||||
|
":NOTER_DOCUMENT: ../pdfs/${=key=}.pdf\n"
|
||||||
|
":END:\n"
|
||||||
|
"\n"
|
||||||
|
"* Bibliography :ignore:\n"
|
||||||
|
"bibliography:./biblio/references.bib"
|
||||||
|
))
|
||||||
|
|
||||||
;; Make "Edit notes" the default action
|
;; Make "Edit notes" the default action
|
||||||
(helm-delete-action-from-source "Edit notes" helm-source-bibtex)
|
(helm-delete-action-from-source "Edit notes" helm-source-bibtex)
|
||||||
(helm-add-action-to-source "Edit notes" 'helm-bibtex-edit-notes helm-source-bibtex 0)
|
(helm-add-action-to-source "Edit notes" 'helm-bibtex-edit-notes helm-source-bibtex 0)
|
||||||
|
|
||||||
(helm-delete-action-from-source "Open PDF Externally" helm-source-bibtex)
|
(helm-delete-action-from-source "Open PDF Externally" helm-source-bibtex)
|
||||||
(helm-add-action-to-source "Open PDF Externally" 'tdehaeze/open-pdf-externally helm-source-bibtex 1)
|
(helm-add-action-to-source "Open PDF Externally" 'tdh-open-pdf-externally helm-source-bibtex 1)
|
||||||
|
|
||||||
|
(helm-add-action-to-source "Insert Link to Note" 'tdh-insert-link-to-note helm-source-bibtex 2)
|
||||||
)
|
)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(defun tdh-insert-link-to-note (key)
|
||||||
|
"Insert a link to a note associated with the bibtex entry."
|
||||||
|
(if (and bibtex-completion-notes-path
|
||||||
|
(f-directory? bibtex-completion-notes-path))
|
||||||
|
(let* ((path (f-join bibtex-completion-notes-path
|
||||||
|
(s-concat key bibtex-completion-notes-extension))))
|
||||||
|
(if (file-exists-p path)
|
||||||
|
(insert (concat "[[" (file-relative-name path) "][Notes]]"))
|
||||||
|
(message "No note file associated"))
|
||||||
|
)))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
Open pdf externally
|
Open pdf externally
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(defun tdehaeze/open-pdf-externally (key)
|
(defun tdh-open-pdf-externally (key)
|
||||||
(call-process "zathura" nil 0 nil (nth 0 (-cons-to-list (bibtex-completion-find-pdf key)))))
|
(call-process "zathura" nil 0 nil (nth 0 (-cons-to-list (bibtex-completion-find-pdf key)))))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
Special Commands
|
Special Commands
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(defun helm-bibtex-favorites (&optional arg)
|
(defun tdh-helm-bibtex-favorites (&optional arg)
|
||||||
"Search Favorite BibTeX entries"
|
"Search Favorite BibTeX entries"
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
(helm-bibtex arg nil "favorite "))
|
(helm-bibtex arg nil "favorite "))
|
||||||
@ -2213,33 +2356,82 @@ List all element of the bibliography without pdf associated
|
|||||||
)
|
)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Org-Roam-Bibtex ([[https://github.com/Zaeph/org-roam-bibtex][link]])
|
** Deft
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package! org-roam-bibtex
|
(use-package! deft
|
||||||
:load-path "~/.config/doom/packages/org-roam-bibtex/"
|
:custom
|
||||||
|
(deft-directory "~/Cloud/brain/"))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
** Org-Roam-Bibtex ([[https://github.com/Zaeph/org-roam-bibtex][link]])
|
||||||
|
Provides nice functions such as:
|
||||||
|
- =orb-find-non-ref-file=
|
||||||
|
- =orb-insert-non-ref=
|
||||||
|
- =orb-note-action=
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(use-package! org-roam-bibtex
|
||||||
|
:hook (org-roam-mode . org-roam-bibtex-mode)
|
||||||
|
:config
|
||||||
|
(setq org-roam-bibtex-preformat-keywords `("=key=" "title" "author" "year" "author-abbrev" "=type="))
|
||||||
|
|
||||||
|
(setq org-roam-bibtex-templates
|
||||||
|
`(("r" "ref" plain (function org-roam-capture--get-point) ""
|
||||||
|
:file-name "${=key=}"
|
||||||
|
:head ,(concat "#+TITLE: ${title}\n"
|
||||||
|
"#+SETUPFILE: ./setup/org-setup-file.org\n"
|
||||||
|
"#+HUGO_SECTION: ${=type=}\n"
|
||||||
|
"#+ROAM_KEY: ${ref}\n"
|
||||||
|
"\n"
|
||||||
|
"- Tags ::\n"
|
||||||
|
"- Reference :: ${ref}\n"
|
||||||
|
"- Author(s) :: ${author}\n"
|
||||||
|
"- Year :: ${year}\n"
|
||||||
|
"\n"
|
||||||
|
"* ${author-abbrev} (${year}): ${title} :${=type=}:ignore:\n"
|
||||||
|
":PROPERTIES:\n"
|
||||||
|
":NOTER_DOCUMENT: ../pdfs/${=key=}.pdf\n"
|
||||||
|
":END:\n"
|
||||||
|
"\n"
|
||||||
|
"* Bibliography :ignore:\n"
|
||||||
|
"bibliography:./biblio/references.bib"
|
||||||
|
)
|
||||||
|
:unnarrowed t)))
|
||||||
|
|
||||||
|
(setq orb-note-actions-user '(("Open with Zathura" . tdh-open-bib-with-zathura)))
|
||||||
|
)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(defun tdh-open-bib-with-zathura (key)
|
||||||
|
"Open the pdf corresponding to the reference KEY with Zathura"
|
||||||
|
(if (listp key)
|
||||||
|
(setq key (car key)))
|
||||||
|
(call-process "zathura" nil 0 nil (org-ref-get-pdf-filename key)))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
** Org-Ref-Ox-Hugo ([[https://github.com/jethrokuan/org-ref-ox-hugo][link]])
|
||||||
|
This package is used to correctly format the bibliography and links when exporting to hugo.
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(use-package! org-ref-ox-hugo
|
||||||
|
:load-path "~/.config/doom/packages/org-ref-ox-hugo/"
|
||||||
:config
|
:config
|
||||||
(org-roam-bibtex-mode)
|
(add-to-list 'org-ref-formatted-citation-formats
|
||||||
(setq org-roam-bibtex-preformat-keywords `("=key=" "title" "author" "year" "author-abbrev" "=type="))
|
'("md"
|
||||||
|
("article" . "${author}, *${title}*, ${journal}, *${volume}(${number})*, ${pages} (${year}). ${doi}")
|
||||||
|
("inproceedings" . "${author}, *${title}*, In ${editor}, ${booktitle} (pp. ${pages}) (${year}). ${address}: ${publisher}.")
|
||||||
|
("book" . "${author}, *${title}* (${year}), ${address}: ${publisher}.")
|
||||||
(setq org-roam-bibtex-template
|
("phdthesis" . "${author}, *${title}* (${year}). ${school}.")
|
||||||
`(("r" "ref" plain (function org-roam-capture--get-point) ""
|
("inbook" . "${author}, *${title}*, In ${editor} (Eds.), ${booktitle} (pp. ${pages}) (${year}). ${address}: ${publisher}.")
|
||||||
:file-name "${=key=}"
|
("incollection" . "${author}, *${title}*, In ${editor} (Eds.), ${booktitle} (pp. ${pages}) (${year}). ${address}: ${publisher}.")
|
||||||
:head ,(concat "#+TITLE: ${title}\n"
|
("proceedings" . "${editor} (Eds.), _${booktitle}_ (${year}). ${address}: ${publisher}.")
|
||||||
"#+SETUPFILE ./org-notes-setup-file.org\n"
|
("unpublished" . "${author}, *${title}* (${year}). Unpublished manuscript.")
|
||||||
"#+ROAM_KEY: ${ref}\n"
|
("misc" . "${author} (${year}). *${title}*. Retrieved from [${howpublished}](${howpublished}). ${note}.")
|
||||||
"\n"
|
(nil . "${author}, *${title}* (${year}).")))
|
||||||
"- Tags :: %?\n"
|
|
||||||
"- Reference :: ${ref}\n"
|
(setq reference-link-class "reference-link")
|
||||||
"- Author(s) :: ${author}\n"
|
(setq bibtex-entry-class "bibtex-entry")
|
||||||
"- Year :: ${year}\n"
|
|
||||||
"\n"
|
|
||||||
"* ${author-abbrev} (${year}): ${title} :${=type=}:ignore:\n"
|
|
||||||
":PROPERTIES:\n"
|
|
||||||
":NOTER_DOCUMENT: ../pdfs/${=key=}.pdf\n"
|
|
||||||
":END:\n")
|
|
||||||
:unnarrowed t)))
|
|
||||||
)
|
)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@ -2254,7 +2446,7 @@ List all element of the bibliography without pdf associated
|
|||||||
|
|
||||||
** Clean Output Files
|
** Clean Output Files
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(defun latex/clean ()
|
(defun tdh-latex-clean ()
|
||||||
"Clean LaTeX output using latexmk"
|
"Clean LaTeX output using latexmk"
|
||||||
(interactive)
|
(interactive)
|
||||||
(async-shell-command
|
(async-shell-command
|
||||||
@ -2265,7 +2457,7 @@ List all element of the bibliography without pdf associated
|
|||||||
))
|
))
|
||||||
|
|
||||||
(map! :map LaTeX-mode-map
|
(map! :map LaTeX-mode-map
|
||||||
:n ",C" 'latex/clean)
|
:n ",C" 'tdh-latex-clean)
|
||||||
|
|
||||||
(add-hook 'TeX-mode-hook #'TeX-fold-mode)
|
(add-hook 'TeX-mode-hook #'TeX-fold-mode)
|
||||||
#+end_src
|
#+end_src
|
||||||
@ -2338,34 +2530,34 @@ List all element of the bibliography without pdf associated
|
|||||||
|
|
||||||
** Key Bindings
|
** Key Bindings
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(defun matlab-add-breakpoint ()
|
(defun tdh-matlab-add-breakpoint ()
|
||||||
(interactive)
|
(interactive)
|
||||||
(matlab-shell-run-command (concat "dbstop in " (buffer-name) " at " (number-to-string (line-number-at-pos nil)))))
|
(matlab-shell-run-command (concat "dbstop in " (buffer-name) " at " (number-to-string (line-number-at-pos nil)))))
|
||||||
|
|
||||||
(defun matlab-remove-breakpoint ()
|
(defun tdh-matlab-remove-breakpoint ()
|
||||||
(interactive)
|
(interactive)
|
||||||
(matlab-shell-run-command (concat "dbclear in " (buffer-name) " at " (number-to-string (line-number-at-pos nil)))))
|
(matlab-shell-run-command (concat "dbclear in " (buffer-name) " at " (number-to-string (line-number-at-pos nil)))))
|
||||||
|
|
||||||
(defun matlab-list-breakpoints ()
|
(defun tdh-matlab-list-breakpoints ()
|
||||||
(interactive)
|
(interactive)
|
||||||
(matlab-shell-run-command (concat "dbstatus " (buffer-name))))
|
(matlab-shell-run-command (concat "dbstatus " (buffer-name))))
|
||||||
|
|
||||||
(defun matlab-clear-breakpoints ()
|
(defun tdh-matlab-clear-breakpoints ()
|
||||||
(interactive)
|
(interactive)
|
||||||
(matlab-shell-run-command (concat "dbclear in " (buffer-name))))
|
(matlab-shell-run-command (concat "dbclear in " (buffer-name))))
|
||||||
|
|
||||||
(defun matlab-go-to-file-directory ()
|
(defun tdh-matlab-go-to-file-directory ()
|
||||||
(interactive)
|
(interactive)
|
||||||
(matlab-shell-run-command (concat "cd " (file-name-directory buffer-file-name))))
|
(matlab-shell-run-command (concat "cd " (file-name-directory buffer-file-name))))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(map! :map matlab-mode-map
|
(map! :map matlab-mode-map
|
||||||
:n ",g" 'matlab-go-to-file-directory
|
:n ",g" 'tdh-matlab-go-to-file-directory
|
||||||
:n ",da" 'matlab-add-breakpoint
|
:n ",da" 'tdh-matlab-add-breakpoint
|
||||||
:n ",dr" 'matlab-remove-breakpoint
|
:n ",dr" 'tdh-matlab-remove-breakpoint
|
||||||
:n ",dL" 'matlab-list-breakpoints
|
:n ",dL" 'tdh-matlab-list-breakpoints
|
||||||
:n ",dc" 'matlab-clear-breakpoints
|
:n ",dc" 'tdh-matlab-clear-breakpoints
|
||||||
:n ",dl" 'gud-cont
|
:n ",dl" 'gud-cont
|
||||||
:n ",ds" 'gud-step
|
:n ",ds" 'gud-step
|
||||||
:n ",dn" 'gud-next
|
:n ",dn" 'gud-next
|
||||||
@ -2397,7 +2589,7 @@ Send math and source code:
|
|||||||
| =d= | Move to Trash |
|
| =d= | Move to Trash |
|
||||||
|
|
||||||
** Helping function
|
** Helping function
|
||||||
This is a helper to help determine which account context I am in based on the folder in my maildir the email (eg. ~/.mail/nine27) is located in.
|
This is a helper to help determine which account context I am in based on the folder in my maildir the email (eg. ~/.mail/nine27) is located in.
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(defun mu4e-message-maildir-matches (msg rx)
|
(defun mu4e-message-maildir-matches (msg rx)
|
||||||
(when rx
|
(when rx
|
||||||
@ -2582,10 +2774,11 @@ Choose account label to feed msmtp -a option based on From header in Message buf
|
|||||||
|
|
||||||
:ui
|
:ui
|
||||||
doom ; what makes DOOM look the way it does
|
doom ; what makes DOOM look the way it does
|
||||||
|
deft
|
||||||
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
|
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
|
||||||
hydra
|
hydra
|
||||||
modeline ; snazzy, Atom-inspired modeline, plus API
|
(modeline
|
||||||
nav-flash ; blink the current line after jumping
|
+light) ; snazzy, Atom-inspired modeline, plus API
|
||||||
ophints ; highlight the region an operation acts on
|
ophints ; highlight the region an operation acts on
|
||||||
(popup ; tame sudden yet inevitable temporary windows
|
(popup ; tame sudden yet inevitable temporary windows
|
||||||
+all ; catch all popups that start with an asterix
|
+all ; catch all popups that start with an asterix
|
||||||
@ -2593,7 +2786,6 @@ Choose account label to feed msmtp -a option based on From header in Message buf
|
|||||||
unicode ; extended unicode support for various languages
|
unicode ; extended unicode support for various languages
|
||||||
vc-gutter ; vcs diff in the fringe
|
vc-gutter ; vcs diff in the fringe
|
||||||
vi-tilde-fringe ; fringe tildes to mark beyond EOB
|
vi-tilde-fringe ; fringe tildes to mark beyond EOB
|
||||||
window-select ; visually switch windows
|
|
||||||
workspaces ; tab emulation, persistence & separate workspaces
|
workspaces ; tab emulation, persistence & separate workspaces
|
||||||
|
|
||||||
:editor
|
:editor
|
||||||
@ -2606,7 +2798,7 @@ Choose account label to feed msmtp -a option based on From header in Message buf
|
|||||||
:emacs
|
:emacs
|
||||||
(dired +icons) ; making dired pretty [functional]
|
(dired +icons) ; making dired pretty [functional]
|
||||||
electric ; smarter, keyword-based electric-indent
|
electric ; smarter, keyword-based electric-indent
|
||||||
ibuffer ; interactive buffer management
|
(ibuffer +icons) ; interactive buffer management
|
||||||
vc ; version-control and Emacs, sitting in a tree
|
vc ; version-control and Emacs, sitting in a tree
|
||||||
|
|
||||||
:term
|
:term
|
||||||
@ -2676,7 +2868,9 @@ Choose account label to feed msmtp -a option based on From header in Message buf
|
|||||||
(package! matlab-mode
|
(package! matlab-mode
|
||||||
:recipe (:host github :repo "matlab-mode/mirror"))
|
:recipe (:host github :repo "matlab-mode/mirror"))
|
||||||
(package! org-ref)
|
(package! org-ref)
|
||||||
|
(package! org-roam-bibtex)
|
||||||
(package! org-ql)
|
(package! org-ql)
|
||||||
(package! org-fancy-priorities)
|
(package! org-fancy-priorities)
|
||||||
|
(package! evil-escape :disable t)
|
||||||
|
(package! dired-narrow)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
@ -113,6 +113,14 @@ $0
|
|||||||
\end{$1}
|
\end{$1}
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
** Caption
|
||||||
|
#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/caption
|
||||||
|
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
|
||||||
|
#name :Caption
|
||||||
|
# --
|
||||||
|
#+caption: $0
|
||||||
|
#+end_src
|
||||||
|
|
||||||
** Block
|
** Block
|
||||||
#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/block
|
#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/block
|
||||||
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
|
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
|
||||||
@ -147,18 +155,6 @@ $0
|
|||||||
$0
|
$0
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** TODO Name Caption Figure
|
|
||||||
#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/name-caption-figure
|
|
||||||
#name: name-caption-figure
|
|
||||||
#key: ncf
|
|
||||||
# --
|
|
||||||
#+name: fig:${1:name}
|
|
||||||
#+caption: ${2:Caption}
|
|
||||||
[[${3:`(read-file-name "File: ")`}]]
|
|
||||||
|
|
||||||
$0
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Bibliography with completion
|
** Bibliography with completion
|
||||||
#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/bib
|
#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/bib
|
||||||
#name: bibliography with completion
|
#name: bibliography with completion
|
||||||
@ -177,7 +173,7 @@ cite:${1:$$(completing-read
|
|||||||
(let ((bibtex-files (org-ref-find-bibliography)))(bibtex-global-key-alist)))}
|
(let ((bibtex-files (org-ref-find-bibliography)))(bibtex-global-key-alist)))}
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** TODO Ref
|
** Ref
|
||||||
#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/ref
|
#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/ref
|
||||||
#name: org-ref ref link with completion
|
#name: org-ref ref link with completion
|
||||||
#key: ref
|
#key: ref
|
||||||
@ -229,8 +225,7 @@ $0
|
|||||||
# --
|
# --
|
||||||
#+name: fig:${1:figure_name}
|
#+name: fig:${1:figure_name}
|
||||||
#+caption: ${2:Figure caption}
|
#+caption: ${2:Figure caption}
|
||||||
#+attr_latex: :${3:scale 1}
|
[[file:${3:figs/}$1.${4:pdf}]]
|
||||||
[[file:${4:figs/}$1.${5:pdf}]]
|
|
||||||
$0
|
$0
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@ -250,128 +245,6 @@ $0
|
|||||||
\left$1 $0 \right$2
|
\left$1 $0 \right$2
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Mconfig
|
|
||||||
#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/mconfig
|
|
||||||
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
|
|
||||||
#name :Matlab-Configuration-Header
|
|
||||||
# --
|
|
||||||
#+PROPERTY: header-args:matlab :session *MATLAB*
|
|
||||||
#+PROPERTY: header-args:matlab+ :tangle ${1:filename}.m
|
|
||||||
#+PROPERTY: header-args:matlab+ :comments org
|
|
||||||
#+PROPERTY: header-args:matlab+ :exports both
|
|
||||||
#+PROPERTY: header-args:matlab+ :results none
|
|
||||||
#+PROPERTY: header-args:matlab+ :eval no-export
|
|
||||||
#+PROPERTY: header-args:matlab+ :noweb yes
|
|
||||||
#+PROPERTY: header-args:matlab+ :mkdirp yes
|
|
||||||
#+PROPERTY: header-args:matlab+ :output-dir ${2:figs}
|
|
||||||
$0
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Mdescription
|
|
||||||
#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/mdescription
|
|
||||||
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
|
|
||||||
#name :Measurement-Description
|
|
||||||
# --
|
|
||||||
,* Measurement description
|
|
||||||
,** Setup :ignore:
|
|
||||||
*Setup*:
|
|
||||||
|
|
||||||
,** Goal :ignore:
|
|
||||||
*Goal*:
|
|
||||||
|
|
||||||
,** Measurements :ignore:
|
|
||||||
*Measurements*:
|
|
||||||
|
|
||||||
Three measurements are done:
|
|
||||||
| Measurement File | Description |
|
|
||||||
|-------------------------+------------------------------|
|
|
||||||
| =mat/data_${1:001}.mat= | $2 |
|
|
||||||
|
|
||||||
Each of the measurement =mat= file contains one =data= array with 3 columns:
|
|
||||||
| Column number | Description |
|
|
||||||
|---------------+-------------------|
|
|
||||||
| 1 | $3 |
|
|
||||||
| 2 | $4 |
|
|
||||||
| 3 | Time |
|
|
||||||
|
|
||||||
$0
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Mfigure
|
|
||||||
#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/mfigure
|
|
||||||
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
|
|
||||||
#name :Matlab-Figure
|
|
||||||
# --
|
|
||||||
,#+begin_src matlab :tangle no :exports results :results file replace
|
|
||||||
exportFig('figs/${1:filename}.pdf', 'width', '${2:full}', 'height', '${3:full}')
|
|
||||||
,#+end_src
|
|
||||||
|
|
||||||
,#+name: fig:$1
|
|
||||||
,#+caption: $0
|
|
||||||
,#+RESULTS:
|
|
||||||
[[file:figs/$1.png]]
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Mfunction
|
|
||||||
#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/mfunction
|
|
||||||
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
|
|
||||||
#name :Matlab-Function
|
|
||||||
# --
|
|
||||||
,* ${1:Function Name}
|
|
||||||
:PROPERTIES:
|
|
||||||
:header-args:matlab+: :tangle src/${2:matlab_file_name}.m
|
|
||||||
:header-args:matlab+: :comments none :mkdirp yes :eval no
|
|
||||||
:END:
|
|
||||||
<<sec:$2>>
|
|
||||||
|
|
||||||
This Matlab function is accessible [[file:src/$2.m][here]].
|
|
||||||
|
|
||||||
,#+begin_src matlab
|
|
||||||
function [${4:in_data}] = $2(${3:in_data})
|
|
||||||
% $2 - $0
|
|
||||||
%
|
|
||||||
% Syntax: [$4] = $2($3)
|
|
||||||
%
|
|
||||||
% Inputs:
|
|
||||||
% - $3 -
|
|
||||||
%
|
|
||||||
% Outputs:
|
|
||||||
% - $4 -
|
|
||||||
|
|
||||||
end
|
|
||||||
,#+end_src
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Mheader
|
|
||||||
#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/mheader
|
|
||||||
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
|
|
||||||
#name :Matlab-Header
|
|
||||||
# --
|
|
||||||
,* ${1:Heading Name}
|
|
||||||
:PROPERTIES:
|
|
||||||
:header-args:matlab+: :tangle matlab/${2:matlab_file_name}.m
|
|
||||||
:header-args:matlab+: :comments org :mkdirp yes
|
|
||||||
:END:
|
|
||||||
<<sec:$2>>
|
|
||||||
|
|
||||||
,** ZIP file containing the data and matlab files :ignore:
|
|
||||||
,#+begin_src bash :exports none :results none
|
|
||||||
if [ matlab/$2.m -nt data/$2.zip ]; then
|
|
||||||
cp matlab/$2.m $2.m;
|
|
||||||
zip data/$2 \
|
|
||||||
mat/data.mat \
|
|
||||||
$2.m
|
|
||||||
rm $2.m;
|
|
||||||
fi
|
|
||||||
,#+end_src
|
|
||||||
|
|
||||||
,#+begin_note
|
|
||||||
All the files (data and Matlab scripts) are accessible [[file:data/$2.zip][here]].
|
|
||||||
,#+end_note
|
|
||||||
|
|
||||||
$0
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Minipage
|
** Minipage
|
||||||
#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/minipage
|
#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/minipage
|
||||||
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
|
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
|
||||||
@ -397,34 +270,6 @@ $0
|
|||||||
#+END_EXPORT
|
#+END_EXPORT
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Minit
|
|
||||||
#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/minit
|
|
||||||
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
|
|
||||||
#name :Matlab-Init
|
|
||||||
# --
|
|
||||||
,** Matlab Init :noexport:ignore:
|
|
||||||
,#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
|
||||||
<<matlab-dir>>
|
|
||||||
,#+end_src
|
|
||||||
|
|
||||||
,#+begin_src matlab :exports none :results silent :noweb yes
|
|
||||||
<<matlab-init>>
|
|
||||||
,#+end_src
|
|
||||||
|
|
||||||
$0
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Mtable
|
|
||||||
#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/mtable
|
|
||||||
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
|
|
||||||
#name :Matlab-Table
|
|
||||||
# --
|
|
||||||
,#+begin_src matlab :exports results :results value table replace :tangle no :post addhdr(*this*)
|
|
||||||
data2orgtable(${1:data}, {${2:'rowlabel'}}, {${3:'collabel'}}, ' %.1f ');
|
|
||||||
,#+end_src
|
|
||||||
$0
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Multicolumn
|
** Multicolumn
|
||||||
#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/multicolumn
|
#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/multicolumn
|
||||||
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
|
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
|
||||||
@ -532,7 +377,7 @@ $1
|
|||||||
,#+begin_src emacs-lisp :tangle user-init.el
|
,#+begin_src emacs-lisp :tangle user-init.el
|
||||||
$1
|
$1
|
||||||
,#+end_src
|
,#+end_src
|
||||||
#+end_src
|
#+end_Sec
|
||||||
|
|
||||||
** Wrap
|
** Wrap
|
||||||
#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/wrap
|
#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/wrap
|
||||||
@ -542,3 +387,154 @@ $1
|
|||||||
#+attr_latex: :float wrap
|
#+attr_latex: :float wrap
|
||||||
$0
|
$0
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
** Matlab Specific
|
||||||
|
*** Mconfig
|
||||||
|
#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/mconfig
|
||||||
|
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
|
||||||
|
#name :Matlab-Configuration-Header
|
||||||
|
# --
|
||||||
|
#+PROPERTY: header-args:matlab :session *MATLAB*
|
||||||
|
#+PROPERTY: header-args:matlab+ :tangle ${1:filename}.m
|
||||||
|
#+PROPERTY: header-args:matlab+ :comments org
|
||||||
|
#+PROPERTY: header-args:matlab+ :exports both
|
||||||
|
#+PROPERTY: header-args:matlab+ :results none
|
||||||
|
#+PROPERTY: header-args:matlab+ :eval no-export
|
||||||
|
#+PROPERTY: header-args:matlab+ :noweb yes
|
||||||
|
#+PROPERTY: header-args:matlab+ :mkdirp yes
|
||||||
|
#+PROPERTY: header-args:matlab+ :output-dir ${2:figs}
|
||||||
|
$0
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
*** Mdescription
|
||||||
|
#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/mdescription
|
||||||
|
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
|
||||||
|
#name :Measurement-Description
|
||||||
|
# --
|
||||||
|
,* Measurement description
|
||||||
|
,** Setup :ignore:
|
||||||
|
*Setup*:
|
||||||
|
|
||||||
|
,** Goal :ignore:
|
||||||
|
*Goal*:
|
||||||
|
|
||||||
|
,** Measurements :ignore:
|
||||||
|
*Measurements*:
|
||||||
|
|
||||||
|
Three measurements are done:
|
||||||
|
| Measurement File | Description |
|
||||||
|
|-------------------------+------------------------------|
|
||||||
|
| =mat/data_${1:001}.mat= | $2 |
|
||||||
|
|
||||||
|
Each of the measurement =mat= file contains one =data= array with 3 columns:
|
||||||
|
| Column number | Description |
|
||||||
|
|---------------+-------------------|
|
||||||
|
| 1 | $3 |
|
||||||
|
| 2 | $4 |
|
||||||
|
| 3 | Time |
|
||||||
|
|
||||||
|
$0
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
*** Mfigure
|
||||||
|
#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/mfigure
|
||||||
|
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
|
||||||
|
#name :Matlab-Figure
|
||||||
|
# --
|
||||||
|
,#+begin_src matlab :tangle no :exports results :results file replace
|
||||||
|
exportFig('figs/${1:filename}.pdf', 'width', '${2:full}', 'height', '${3:full}');
|
||||||
|
,#+end_src
|
||||||
|
|
||||||
|
,#+name: fig:$1
|
||||||
|
,#+caption: $0
|
||||||
|
,#+RESULTS:
|
||||||
|
[[file:figs/$1.png]]
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
*** Mfunction
|
||||||
|
#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/mfunction
|
||||||
|
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
|
||||||
|
#name :Matlab-Function
|
||||||
|
# --
|
||||||
|
,* ${1:Function Name}
|
||||||
|
:PROPERTIES:
|
||||||
|
:header-args:matlab+: :tangle src/${2:matlab_file_name}.m
|
||||||
|
:header-args:matlab+: :comments none :mkdirp yes :eval no
|
||||||
|
:END:
|
||||||
|
<<sec:$2>>
|
||||||
|
|
||||||
|
This Matlab function is accessible [[file:src/$2.m][here]].
|
||||||
|
|
||||||
|
,#+begin_src matlab
|
||||||
|
function [${4:in_data}] = $2(${3:in_data})
|
||||||
|
% $2 - $0
|
||||||
|
%
|
||||||
|
% Syntax: [$4] = $2($3)
|
||||||
|
%
|
||||||
|
% Inputs:
|
||||||
|
% - $3 -
|
||||||
|
%
|
||||||
|
% Outputs:
|
||||||
|
% - $4 -
|
||||||
|
|
||||||
|
end
|
||||||
|
,#+end_src
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
*** Mheader
|
||||||
|
#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/mheader
|
||||||
|
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
|
||||||
|
#name :Matlab-Header
|
||||||
|
# --
|
||||||
|
,* ${1:Heading Name}
|
||||||
|
:PROPERTIES:
|
||||||
|
:header-args:matlab+: :tangle matlab/${2:matlab_file_name}.m
|
||||||
|
:header-args:matlab+: :comments org :mkdirp yes
|
||||||
|
:END:
|
||||||
|
<<sec:$2>>
|
||||||
|
|
||||||
|
,** ZIP file containing the data and matlab files :ignore:
|
||||||
|
,#+begin_src bash :exports none :results none
|
||||||
|
if [ matlab/$2.m -nt data/$2.zip ]; then
|
||||||
|
cp matlab/$2.m $2.m;
|
||||||
|
zip data/$2 \
|
||||||
|
mat/data.mat \
|
||||||
|
$2.m
|
||||||
|
rm $2.m;
|
||||||
|
fi
|
||||||
|
,#+end_src
|
||||||
|
|
||||||
|
,#+begin_note
|
||||||
|
All the files (data and Matlab scripts) are accessible [[file:data/$2.zip][here]].
|
||||||
|
,#+end_note
|
||||||
|
|
||||||
|
$0
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
*** Minit
|
||||||
|
#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/minit
|
||||||
|
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
|
||||||
|
#name :Matlab-Init
|
||||||
|
# --
|
||||||
|
,** Matlab Init :noexport:ignore:
|
||||||
|
,#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
||||||
|
<<matlab-dir>>
|
||||||
|
,#+end_src
|
||||||
|
|
||||||
|
,#+begin_src matlab :exports none :results silent :noweb yes
|
||||||
|
<<matlab-init>>
|
||||||
|
,#+end_src
|
||||||
|
|
||||||
|
$0
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
*** Mtable
|
||||||
|
#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/mtable
|
||||||
|
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
|
||||||
|
#name :Matlab-Table
|
||||||
|
# --
|
||||||
|
,#+begin_src matlab :exports results :results value table replace :tangle no :post addhdr(*this*)
|
||||||
|
data2orgtable(${1:data}, {${2:'rowlabel'}}, {${3:'collabel'}}, ' %.1f ');
|
||||||
|
,#+end_src
|
||||||
|
$0
|
||||||
|
#+end_src
|
||||||
|
Loading…
Reference in New Issue
Block a user