diff --git a/init-latex.el b/init-latex.el new file mode 100644 index 0000000..2ea2ab6 --- /dev/null +++ b/init-latex.el @@ -0,0 +1,92 @@ +(load "auctex.el" nil t t) +(setq TeX-auto-save t + TeX-parse-self t + TeX-insert-braces nil) +(setq-default TeX-master nil) +(setq font-latex-fontify-script nil) +(setq LaTeX-equation-label "e_") +(setq LaTeX-section-label "s_") +(require 'reftex) + + +(defun add-delimiter (delim-begin delim-end r-begin r-end) + "Add the pair of delimiters given in delim at the ends of the region if it is activated" + (interactive "cBegin delimiter: \ncEnd delimiter: \nr") + (if (use-region-p) + (progn + (save-excursion + (goto-char r-end) (insert delim-end) + (goto-char r-begin) (insert delim-begin))) + (progn + (save-excursion + (insert delim-end)) + (insert delim-begin)))) + +(add-hook 'LaTeX-mode-hook (lambda () + (turn-on-auto-fill) + (subword-mode) + (setq subword-forward-regexp "\\W*\\(\\([\\\\[:upper:]]*\\W?\\)[[:lower:][:digit:]]*\\)") + (setq subword-backward-regexp "\\(\\(\\W\\|[[:lower:][:digit:]]\\)\\([\\\\[:upper:]]+\\W*\\)\\|\\W\\w+\\)") + (modify-syntax-entry ?\\ "w" LaTeX-mode-syntax-table) + (setq sourcepair-source-extensions '(".tex")) + (setq sourcepair-header-extensions '(".p.tex")) + (define-key LaTeX-mode-map (kbd "C-c C-v") + (lambda (arg) + (interactive "P") + (insert "~") + (if arg (TeX-insert-macro "eqref") + (TeX-insert-macro "ref")))) + (define-key LaTeX-mode-map (kbd "M-S-") + (lambda (arg) + (interactive "P") + (if arg (LaTeX-insert-environment "align") + (LaTeX-insert-environment "align*")))) + + (define-key LaTeX-mode-map (kbd "S-SPC") (lambda() (interactive) (insert "\\"))) + (define-key LaTeX-mode-map (kbd "M-S-SPC") 'TeX-insert-braces) + (define-key LaTeX-mode-map (kbd "s-SPC") (lambda() (interactive) (insert "~"))) + (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 (r-begin r-end) (interactive "r") (add-delimiter "^{" "}" r-begin r-end))) + (define-key LaTeX-mode-map (kbd "C-c C-d") + (lambda (arg r-begin r-end) (interactive "P\nr") + (if arg + (add-delimiter "\\todo[inline]{" "}{}" r-begin r-end) + (add-delimiter "\\todo{" "}{}" r-begin r-end)))) + (define-key LaTeX-mode-map (kbd "C-c C-g") 'magit-status) + )) + +;; this reimplements TeX-insert-braces to work with negative argument +(defun TeX-insert-braces (arg) + "Make a pair of braces around next ARG sexps and leave point inside. +No argument is equivalent to zero: just insert braces and leave point +between. + +If there is an active region, ARG will be ignored, braces will be +inserted around the region, and point will be left after the +closing brace." + (interactive "P") + (if (TeX-active-mark) + (progn + (if (< (point) (mark)) + (exchange-point-and-mark)) + (insert TeX-grcl) + (save-excursion + (goto-char (mark)) + (insert TeX-grop))) + (if (and arg (< arg 0)) + (progn + (save-excursion + (backward-sexp (prefix-numeric-value (- 0 arg))) + (insert TeX-grop)) + (insert TeX-grcl)) + (insert TeX-grop) + (save-excursion + (if arg (forward-sexp (prefix-numeric-value arg))) + (insert TeX-grcl))))) + +(defun TeX-back-insert-braces (arg) + (interactive "P") + (if arg (TeX-insert-braces (- 0 arg)) + (insert TeX-grcl))) + +(load "latex-compile-filters.el") diff --git a/init.el b/init.el index 3381793..7ada18d 100644 --- a/init.el +++ b/init.el @@ -114,45 +114,8 @@ (add-hook 'text-mode-hook 'linum-mode) (require 'sourcepair) -(add-hook 'LaTeX-mode-hook (lambda () - (turn-on-auto-fill) - (subword-mode) - (setq subword-forward-regexp "\\W*\\(\\([\\\\[:upper:]]*\\W?\\)[[:lower:][:digit:]]*\\)") - (setq subword-backward-regexp "\\(\\(\\W\\|[[:lower:][:digit:]]\\)\\([\\\\[:upper:]]+\\W*\\)\\|\\W\\w+\\)") - (modify-syntax-entry ?\\ "w" LaTeX-mode-syntax-table) - (setq sourcepair-source-extensions '(".tex")) - (setq sourcepair-header-extensions '(".p.tex")) - (define-key LaTeX-mode-map (kbd "C-c C-v") - (lambda (arg) - (interactive "P") - (insert "~") - (if arg (TeX-insert-macro "eqref") - (TeX-insert-macro "ref")))) - (define-key LaTeX-mode-map (kbd "M-S-") - (lambda (arg) - (interactive "P") - (if arg (LaTeX-insert-environment "align") - (LaTeX-insert-environment "align*")))) - - (define-key LaTeX-mode-map (kbd "S-SPC") (lambda() (interactive) (insert "\\"))) - (define-key LaTeX-mode-map (kbd "M-S-SPC") 'TeX-insert-braces) - (define-key LaTeX-mode-map (kbd "s-SPC") (lambda() (interactive) (insert "~"))) - (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 (r-begin r-end) (interactive "r") (add-delimiter "^{" "}" r-begin r-end))) - (define-key LaTeX-mode-map (kbd "C-c C-d") - (lambda (arg r-begin r-end) (interactive "P\nr") - (if arg - (add-delimiter "\\todo[inline]{" "}{}" r-begin r-end) - (add-delimiter "\\todo{" "}{}" r-begin r-end)))) - (define-key LaTeX-mode-map (kbd "C-c C-g") 'magit-status) - )) (global-set-key (kbd "") 'sourcepair-load) -;; Well this is really useful for LaTeX only, but then it gets in the way when I use the minibuffer. -;;(global-set-key (kbd "S-SPC") "\\") - -;; this should really be called in the hook - (setq default-fill-column 120) (add-to-list 'load-path "~/tmp") @@ -169,30 +132,6 @@ (normal-top-level-add-subdirs-to-load-path) (normal-top-level-add-to-load-path '("fringe-helper.el" "multiple-cursors.el" "dash.el"))) -(defun add-delimiter (delim-begin delim-end r-begin r-end) - "Add the pair of delimiters given in delim at the ends of the region if it is activated" - (interactive "cBegin delimiter: \ncEnd delimiter: \nr") - (if (use-region-p) - (progn - (save-excursion - (goto-char r-end) (insert delim-end) - (goto-char r-begin) (insert delim-begin))) - (progn - (save-excursion - (insert delim-end)) - (insert delim-begin)))) - - -(defun add-curlybrackets-delimiter (r-begin r-end) - "Add a pair {} at the boundary of the current region if activated" - (interactive "r") - (add-delimiter "{" "}" r-begin r-end)) - -(defun add-dollar-delimiter (r-begin r-end) - "Add a pair {} at the boundary of the current region if activated" - (interactive "r") - (add-delimiter "$" "$" r-begin r-end)) - (require 'key-chord) (key-chord-mode 1) (setq key-chord-two-keys-delay 0.05) @@ -379,41 +318,6 @@ This is the same as using \\[set-mark-command] with the prefix argument." (require 'wordnik-synonym) (global-set-key (kbd "H-=") 'wn/synonym-at-point) -;; this reimplements TeX-insert-braces to work with negative argument -(defun TeX-insert-braces (arg) - "Make a pair of braces around next ARG sexps and leave point inside. -No argument is equivalent to zero: just insert braces and leave point -between. - -If there is an active region, ARG will be ignored, braces will be -inserted around the region, and point will be left after the -closing brace." - (interactive "P") - (if (TeX-active-mark) - (progn - (if (< (point) (mark)) - (exchange-point-and-mark)) - (insert TeX-grcl) - (save-excursion - (goto-char (mark)) - (insert TeX-grop))) - (if (and arg (< arg 0)) - (progn - (save-excursion - (backward-sexp (prefix-numeric-value (- 0 arg))) - (insert TeX-grop)) - (insert TeX-grcl)) - (insert TeX-grop) - (save-excursion - (if arg (forward-sexp (prefix-numeric-value arg))) - (insert TeX-grcl))))) - -(defun TeX-back-insert-braces (arg) - (interactive "P") - (if arg (TeX-insert-braces (- 0 arg)) - (insert TeX-grcl))) - -(load "latex-compile-filters.el") (setq server-name (kde-current-activity))