master
Jacopo De Simoi 8 years ago
parent 708afac053
commit 4e17991af7
  1. 425
      global.org

@ -666,7 +666,6 @@
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(load "auctex.el" nil t t) (load "auctex.el" nil t t)
(require 'reftex) (require 'reftex)
(add-hook 'LaTeX-mode-hook 'turn-on-reftex)
#+END_SRC #+END_SRC
*** Set default TeX options *** Set default TeX options
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
@ -757,219 +756,225 @@
#+END_SRC #+END_SRC
*** TODO Leftovers *** TODO Leftovers
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(setq TeX-fold-ellipsis " …") (setq TeX-fold-ellipsis " …")
;; I lost track of what does this guy do? ;; I lost track of what does this guy do?
(defun my-LaTeX-mode-dollars () (defun my-LaTeX-mode-dollars ()
(font-lock-add-keywords (font-lock-add-keywords
nil nil
`((,(rx "$") (0 'success t))) `((,(rx "$") (0 'success t))) t))
t))
(add-hook 'LaTeX-mode-hook 'my-LaTeX-mode-dollars)
(defun dabbrev-expand-helper () (defun dabbrev-expand-helper ()
(interactive) (interactive)
(call-interactively 'dabbrev-expand)) (call-interactively 'dabbrev-expand))
(add-hook 'LaTeX-mode-hook (add-hook 'LaTeX-mode-hook
(lambda () (lambda ()
(turn-on-auto-fill) (turn-on-reftex)
(subword-mode) (setq prettify-symbols-alist nil)
(TeX-fold-mode 1) (add-to-list 'prettify-symbols-alist '(" ⊂ " . (? (Br . Bl) ? (Br . Bl) ?)))
(outline-minor-mode) (my-LaTeX-mode-dollars)
;; Move around commands in the Right Way™ (turn-on-auto-fill)
(modify-syntax-entry ?\\ "w" LaTeX-mode-syntax-table) (subword-mode)
(setq subword-forward-regexp "\\W*\\(\\([\\\\[:upper:]]*\\W?\\)[[:lower:][:digit:]]*\\)") (TeX-fold-mode 1)
(setq subword-backward-regexp "\\(\\(\\W\\|[[:lower:][:digit:]]\\)\\([\\\\[:upper:]]+\\W*\\)\\|\\W\\w+\\)") (outline-minor-mode)
;; ;; FIXME: this breaks sourcepair for other modes. ;; Move around commands in the Right Way™
;; (setq sourcepair-source-extensions '(".tex")) (modify-syntax-entry ?\\ "w" LaTeX-mode-syntax-table)
;; (setq sourcepair-header-extensions '(".p.tex")) (setq subword-forward-regexp "\\W*\\(\\([\\\\[:upper:]]*\\W?\\)[[:lower:][:digit:]]*\\)")
(setq subword-backward-regexp "\\(\\(\\W\\|[[:lower:][:digit:]]\\)\\([\\\\[:upper:]]+\\W*\\)\\|\\W\\w+\\)")
(define-key LaTeX-mode-map (kbd "C-c C-v") ;; ;; FIXME: this breaks sourcepair for other modes.
(lambda (arg) ;; (setq sourcepair-source-extensions '(".tex"))
(interactive "P") ;; (setq sourcepair-header-extensions '(".p.tex"))
(insert "~")
(if arg (TeX-insert-macro "eqref") (define-key LaTeX-mode-map (kbd "C-c C-v")
(TeX-insert-macro "ref")))) (lambda (arg)
(define-key LaTeX-mode-map (kbd "C-M-<return>") (interactive "P")
(lambda (arg) (insert "~")
(interactive "P") (if arg (TeX-insert-macro "eqref")
(if arg (LaTeX-insert-environment "align") (TeX-insert-macro "ref"))))
(LaTeX-insert-environment "align*")))) (define-key LaTeX-mode-map (kbd "C-M-<return>")
(lambda (arg)
;; EXPERIMENTAL: try C-RETURN → DEL (interactive "P")
;; (define-key LaTeX-mode-map (kbd "S-SPC") 'backward-delete-char-untabify) ;;(lambda() (interactive) (flash-hline)));;(message "Use C-SPC")));;'backward-delete-char-untabify) (if arg
(LaTeX-insert-environment "align")
;; EXPERIMENTAL: unbind return - NOTE it is important to unbind <return> and not RET. If we (LaTeX-insert-environment "align*"))))
;; unbind RET then C-m won't work either.
(define-key LaTeX-mode-map (kbd "<return>") (lambda() (interactive) (insert "\\"))) ;; EXPERIMENTAL: unbind return - NOTE it is important to unbind
(define-key LaTeX-mode-map (kbd "S-<return>") (lambda() (interactive) (insert "|"))) ;; <return> and not RET. If we unbind RET then C-m won't work
;;(define-key LaTeX-mode-map (kbd "C-SPC") (lambda() (interactive) (insert "\\"))) ;; either.
(define-key LaTeX-mode-map (kbd "M-S-SPC") 'TeX-insert-braces) (define-key LaTeX-mode-map (kbd "<return>") (lambda() (interactive) (insert "\\")))
(define-key LaTeX-mode-map (kbd "s-SPC") (lambda() (interactive) (insert "~"))) (define-key LaTeX-mode-map (kbd "S-<return>") (lambda() (interactive) (insert "|")))
;; why this got dropped? (define-key LaTeX-mode-map (kbd "M-S-SPC") 'TeX-insert-braces)
(define-key LaTeX-mode-map (kbd "C-c C-.") 'LaTeX-mark-environment) ;; (define-key LaTeX-mode-map (kbd "s-SPC") (lambda() (interactive) (insert "~")))
;; Go with strict mode ;; why did this get dropped?
; (define-key LaTeX-mode-map (kbd "_") (lambda() (interactive) (flash-hline) (message "Use C-c C-k"))) (define-key LaTeX-mode-map (kbd "C-c C-.") 'LaTeX-mark-environment)
(define-key LaTeX-mode-map (kbd "M-_") (lambda() (interactive) (flash-hline) (message "Use C-c C-k"))) #+END_SRC
(define-key LaTeX-mode-map (kbd "C-c C-k") (lambda (r-begin r-end) (interactive "r") (add-delimiter "_{" "}" r-begin r-end))) Dealing with bad habits and sub|superscripts. Previous
; (define-key LaTeX-mode-map (kbd "^") (lambda() (interactive) (flash-hline) (message "Use C-c C-i"))) bindings were ~M-_~ and ~M-^~ but they turned out to be too
(define-key LaTeX-mode-map (kbd "M-^") (lambda() (interactive) (flash-hline) (message "Use C-c C-i"))) typo-prone.
(define-key LaTeX-mode-map (kbd "C-c C-i") (lambda (r-begin r-end) (interactive "r") (add-delimiter "^{" "}" r-begin r-end))) #+BEGIN_SRC emacs-lisp
(define-key LaTeX-mode-map (kbd "M-_") (lambda() (interactive) (flash-hline) (message "Use C-c C-k")))
(define-key LaTeX-mode-map (kbd "M-|") (lambda (r-begin r-end) (interactive "r") (add-delimiter "|" "|" r-begin r-end))) (define-key LaTeX-mode-map (kbd "M-^") (lambda() (interactive) (flash-hline) (message "Use C-c C-i")))
(define-key LaTeX-mode-map (kbd "M-,") (lambda (r-begin r-end) (interactive "r") (add-delimiter ", " ", " r-begin r-end))) (define-key LaTeX-mode-map (kbd "C-c C-k") (lambda (r-begin r-end) (interactive "r") (add-delimiter "_{" "}" r-begin r-end)))
(define-key LaTeX-mode-map (kbd "M-\"") (lambda (r-begin r-end) (interactive "r") (add-delimiter "“" "”" r-begin r-end))) (define-key LaTeX-mode-map (kbd "C-c C-i") (lambda (r-begin r-end) (interactive "r") (add-delimiter "^{" "}" r-begin r-end)))
#+END_SRC
;; This is the rationale: C-M-SPC starts inline math C-M-RET starts display math
(define-key LaTeX-mode-map (kbd "C-M-SPC") (lambda (r-begin r-end) (interactive "r") (add-delimiter "$" "$" r-begin r-end))) #+BEGIN_SRC emacs-lisp
(define-key LaTeX-mode-map (kbd "C-c C-d") (define-key LaTeX-mode-map (kbd "M-|") (lambda (r-begin r-end) (interactive "r") (add-delimiter "|" "|" r-begin r-end)))
(lambda (arg r-begin r-end) (interactive "P\nr") (define-key LaTeX-mode-map (kbd "M-,") (lambda (r-begin r-end) (interactive "r") (add-delimiter ", " ", " r-begin r-end)))
(if arg (define-key LaTeX-mode-map (kbd "M-\"") (lambda (r-begin r-end) (interactive "r") (add-delimiter "“" "”" r-begin r-end)))
(add-delimiter "\\todo[inline]{" "}{}" r-begin r-end)
(add-delimiter "\\todo{" "}{}" r-begin r-end)))) ;; This is the rationale: C-M-SPC starts inline math C-M-RET starts display math
(define-key LaTeX-mode-map (kbd "C-M-d") 'kill-sexp) (define-key LaTeX-mode-map (kbd "C-M-SPC") (lambda (r-begin r-end) (interactive "r") (add-delimiter "$" "$" r-begin r-end)))
(define-key LaTeX-mode-map (kbd "C-M-i") 'down-list) ;; -i stands for /in/ (define-key LaTeX-mode-map (kbd "C-c C-d")
(define-key LaTeX-mode-map (kbd "C-M-o") 'up-list) ;; -o stands for /out/ (lambda (arg r-begin r-end) (interactive "P\nr")
(if arg
(define-key LaTeX-mode-map (kbd "<f4>") (lambda() (interactive) (message "Use C-c C-c"))) (add-delimiter "\\todo[inline]{" "}{}" r-begin r-end)
(define-key LaTeX-mode-map (kbd "C-c C-c") (lambda() (interactive) (compile "/home/jacopods/scripts/latex-mk")) ) (add-delimiter "\\todo{" "}{}" r-begin r-end))))
(define-key LaTeX-mode-map (kbd "=") 'insert-char-with-padding) (define-key LaTeX-mode-map (kbd "C-M-d") 'kill-sexp)
(define-key LaTeX-mode-map (kbd "≠") 'insert-char-with-padding) (define-key LaTeX-mode-map (kbd "C-M-i") 'down-list) ;; -i stands for /in/
(define-key LaTeX-mode-map (kbd ">") 'insert-char-with-padding) (define-key LaTeX-mode-map (kbd "C-M-o") 'up-list) ;; -o stands for /out/
(define-key LaTeX-mode-map (kbd "<") 'insert-char-with-padding)
(define-key LaTeX-mode-map (kbd "≥") 'insert-char-with-padding) (define-key LaTeX-mode-map (kbd "<f4>") (lambda() (interactive) (message "Use C-c C-c")))
(define-key LaTeX-mode-map (kbd "≤") 'insert-char-with-padding) (define-key LaTeX-mode-map (kbd "C-c C-c") (lambda() (interactive) (compile "/home/jacopods/scripts/latex-mk")) )
(define-key LaTeX-mode-map (kbd "⇒") 'insert-char-with-padding)
(define-key LaTeX-mode-map (kbd "∩") 'insert-char-with-padding) (define-key LaTeX-mode-map (kbd "=") 'insert-char-with-padding)
(define-key LaTeX-mode-map (kbd "∪") 'insert-char-with-padding) (define-key LaTeX-mode-map (kbd "≠") 'insert-char-with-padding)
(define-key LaTeX-mode-map (kbd "∨") 'insert-char-with-padding) (define-key LaTeX-mode-map (kbd ">") 'insert-char-with-padding)
(define-key LaTeX-mode-map (kbd "∧") 'insert-char-with-padding) (define-key LaTeX-mode-map (kbd "<") 'insert-char-with-padding)
(define-key LaTeX-mode-map (kbd "×") 'insert-char-with-padding) (define-key LaTeX-mode-map (kbd "≥") 'insert-char-with-padding)
(define-key LaTeX-mode-map (kbd "⊂") 'insert-char-with-padding) (define-key LaTeX-mode-map (kbd "≤") 'insert-char-with-padding)
(define-key LaTeX-mode-map (kbd "⊃") 'insert-char-with-padding) (define-key LaTeX-mode-map (kbd "⇒") 'insert-char-with-padding)
(define-key LaTeX-mode-map (kbd "∩") 'insert-char-with-padding)
;; Force moves around to be more “semantic” (define-key LaTeX-mode-map (kbd "∪") 'insert-char-with-padding)
(define-key LaTeX-mode-map (kbd "C-v") 'forward-paragraph);(lambda() (interactive) (message "Command disabled"))) (define-key LaTeX-mode-map (kbd "∨") 'insert-char-with-padding)
(define-key LaTeX-mode-map (kbd "M-v") 'backward-paragraph) (define-key LaTeX-mode-map (kbd "∧") 'insert-char-with-padding)
(define-key LaTeX-mode-map (kbd "C-S-v") 'backward-paragraph) (define-key LaTeX-mode-map (kbd "×") 'insert-char-with-padding)
; (lambda() (interactive) (message "Command disabled"))) (define-key LaTeX-mode-map (kbd "⊂") 'insert-char-with-padding)
(define-key LaTeX-mode-map (kbd "<next>") (lambda() (interactive) (message "Command disabled"))) (define-key LaTeX-mode-map (kbd "⊃") 'insert-char-with-padding)
(define-key LaTeX-mode-map (kbd "<prior>") (lambda() (interactive) (message "Command disabled")))
)) ;; Force moves around to be more “semantic”
(define-key LaTeX-mode-map (kbd "C-v") 'forward-paragraph);(lambda() (interactive) (message "Command disabled")))
(defun insert-char-with-padding (arg) (define-key LaTeX-mode-map (kbd "M-v") 'backward-paragraph)
(interactive "*P") (define-key LaTeX-mode-map (kbd "C-S-v") 'backward-paragraph)
(if (string= (string (preceding-char)) " ") ()
(if (string= (string (preceding-char)) "\&") () (insert " "))) (define-key LaTeX-mode-map (kbd "<next>") (lambda() (interactive) (message "Command disabled")))
(self-insert-command (prefix-numeric-value arg)) (define-key LaTeX-mode-map (kbd "<prior>") (lambda() (interactive) (message "Command disabled")))
(if (string= (string (following-char)) " ") () (insert " ")) ;; decide what to do with the point ))
)
(defun insert-char-with-padding (arg)
(interactive "*P")
;; this reimplements LaTeX-insert-environment to my taste (if (string= (string (preceding-char)) " ") ()
;; (if (string= (string (preceding-char)) "\&") () (insert " ")))
(defun LaTeX-insert-environment (environment &optional extra) (self-insert-command (prefix-numeric-value arg))
"Insert LaTeX ENVIRONMENT with optional argument EXTRA." (if (string= (string (following-char)) " ") () (insert " ")) ;; decide what to do with the point
(let ((active-mark (and (TeX-active-mark) (not (eq (mark) (point))))) )
prefix content-start env-start env-end)
(when (and active-mark (< (mark) (point))) (exchange-point-and-mark))
;; Compute the prefix. ;; this reimplements LaTeX-insert-environment to my taste
(when (and LaTeX-insert-into-comments (TeX-in-commented-line)) ;;
(save-excursion (defun LaTeX-insert-environment (environment &optional extra)
(beginning-of-line) "Insert LaTeX ENVIRONMENT with optional argument EXTRA."
(looking-at (let ((active-mark (and (TeX-active-mark) (not (eq (mark) (point)))))
(concat "^\\([ \t]*" TeX-comment-start-regexp "+\\)+[ \t]*")) prefix content-start env-start env-end)
(setq prefix (match-string 0)))) (when (and active-mark (< (mark) (point))) (exchange-point-and-mark))
;; What to do with the line containing point. ;; Compute the prefix.
(cond (when (and LaTeX-insert-into-comments (TeX-in-commented-line))
;; if the line is made of blanks, erase them and start on the same line (save-excursion
((save-excursion (beginning-of-line) (beginning-of-line)
(looking-at (concat prefix "[ \t]*$"))) (looking-at
(delete-region (match-beginning 0) (match-end 0))) (concat "^\\([ \t]*" TeX-comment-start-regexp "+\\)+[ \t]*"))
;; if after the point there are only blanks, erase them and dont add extra newline (setq prefix (match-string 0))))
((looking-at "[ \t]*$") ;; What to do with the line containing point.
(delete-horizontal-space) (cond
(newline)) ;; if the line is made of blanks, erase them and start on the same line
((TeX-looking-at-backward (concat "^" prefix "[ \t]*") ((save-excursion (beginning-of-line)
(line-beginning-position)) (looking-at (concat prefix "[ \t]*$")))
(beginning-of-line) (delete-region (match-beginning 0) (match-end 0)))
(newline) ;; if after the point there are only blanks, erase them and dont add extra newline
(beginning-of-line 0));; if we are at the beginning of the line (maybe with some spaces ((looking-at "[ \t]*$")
((bolp) (delete-horizontal-space)
(delete-horizontal-space) (newline))
(newline) ((TeX-looking-at-backward (concat "^" prefix "[ \t]*")
(beginning-of-line 0)) (line-beginning-position))
((eolp) (beginning-of-line)
(delete-horizontal-space) (newline)
(newline) (beginning-of-line 0));; if we are at the beginning of the line (maybe with some spaces
) ((bolp)
(t (delete-horizontal-space)
(delete-horizontal-space) (newline)
(newline 2) (beginning-of-line 0))
(when prefix (insert prefix)) ((eolp)
(beginning-of-line 0))) (delete-horizontal-space)
;; What to do with the line containing mark. (newline)
(when active-mark )
(save-excursion (t
(goto-char (mark)) (delete-horizontal-space)
(cond ((save-excursion (beginning-of-line) (newline 2)
(or (looking-at (concat prefix "[ \t]*$")) (when prefix (insert prefix))
(looking-at "[ \t]*$"))) (beginning-of-line 0)))
(delete-region (match-beginning 0) (match-end 0))) ;; What to do with the line containing mark.
((TeX-looking-at-backward (concat "^" prefix "[ \t]*") (when active-mark
(line-beginning-position)) (save-excursion
(beginning-of-line) (goto-char (mark))
(newline) (cond ((save-excursion (beginning-of-line)
(beginning-of-line 0)) (or (looking-at (concat prefix "[ \t]*$"))
(t (looking-at "[ \t]*$")))
(delete-horizontal-space) (delete-region (match-beginning 0) (match-end 0)))
(insert-before-markers "\n") ((TeX-looking-at-backward (concat "^" prefix "[ \t]*")
(newline) (line-beginning-position))
(when prefix (insert prefix)))))) (beginning-of-line)
;; Now insert the environment. (newline)
(when prefix (insert prefix)) (beginning-of-line 0))
(setq env-start (point)) (t
(insert TeX-esc "begin" TeX-grop environment TeX-grcl) (delete-horizontal-space)
(indent-according-to-mode) (insert-before-markers "\n")
(when extra (insert extra)) (newline)
(setq content-start (line-beginning-position 2)) (when prefix (insert prefix))))))
(unless active-mark ;; Now insert the environment.
(newline) (when prefix (insert prefix))
(when prefix (insert prefix)) (setq env-start (point))
(newline)) (insert TeX-esc "begin" TeX-grop environment TeX-grcl)
(when active-mark (goto-char (mark))) (indent-according-to-mode)
(when prefix (insert prefix)) (when extra (insert extra))
(insert TeX-esc "end" TeX-grop environment TeX-grcl "%") (setq content-start (line-beginning-position 2))
(end-of-line 0) (unless active-mark
(if active-mark (newline)
(progn (when prefix (insert prefix))
(or (assoc environment LaTeX-indent-environment-list) (newline))
(LaTeX-fill-region content-start (line-beginning-position 2))) (when active-mark (goto-char (mark)))
(set-mark content-start)) (when prefix (insert prefix))
(indent-according-to-mode)) (insert TeX-esc "end" TeX-grop environment TeX-grcl "%")
(save-excursion (beginning-of-line 2) (indent-according-to-mode)) (end-of-line 0)
(TeX-math-input-method-off) (if active-mark
(setq env-end (save-excursion (progn
(search-forward (or (assoc environment LaTeX-indent-environment-list)
(concat TeX-esc "end" TeX-grop (LaTeX-fill-region content-start (line-beginning-position 2)))
environment TeX-grcl)) (set-mark content-start))
(match-beginning 0))) (indent-according-to-mode))
;; The following apparently does not work. (save-excursion (beginning-of-line 2) (indent-according-to-mode))
;; (indent-region env-start env-end) (TeX-math-input-method-off)
(fill-paragraph) (setq env-end (save-excursion
(run-hook-with-args 'LaTeX-after-insert-env-hooks (search-forward
environment env-start env-end))) (concat TeX-esc "end" TeX-grop
environment TeX-grcl))
(match-beginning 0)))
(load "latex-compile-filters.el") ;; The following apparently does not work.
;; (indent-region env-start env-end)
;; * add bibretrieve (fill-paragraph)
(run-hook-with-args 'LaTeX-after-insert-env-hooks
environment env-start env-end)))
(load "latex-compile-filters.el")
#+END_SRC
Finally load ~bibretrieve~
#+BEGIN_SRC emacs-lisp
(byte-recompile-directory "~/.emacs.d/bibretrieve" 0) (byte-recompile-directory "~/.emacs.d/bibretrieve" 0)
(load "bibretrieve") (load "bibretrieve")
(setq bibretrieve-backends '(("mrl" . 8) ("arxiv" . 5)))
#+END_SRC #+END_SRC
** TODO C and C++ ** TODO C and C++
*** Hooks *** Hooks

Loading…
Cancel
Save