-
Notifications
You must be signed in to change notification settings - Fork 0
/
FCT-org.el
126 lines (112 loc) · 4.08 KB
/
FCT-org.el
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
;;; export to pdf
(defun brice-org-export-to-pdf (&optional arg)
"Export to pdf using beamer or latex depending on the mode of the org document"
(interactive "p")
(if org-beamer-mode
(org-beamer-export-to-pdf)
(org-latex-export-to-pdf))
)
;;; export to latex
(defun brice-org-export-to-latex (&optional arg)
"Export to latex using beamer or latex depending on the mode of the org document"
(interactive "p")
(if org-beamer-mode
(org-beamer-export-to-latex)
(org-latex-export-to-latex))
)
;;; export to latex
(defun brice-org-save-and-export-to-latex (&optional arg)
"Save and export to latex the org document"
(interactive "p")
(save-current-buffer)
(brice-org-export-to-latex)
)
(defun brice-org-run-latexmk ()
"Open eshell and run latexmk on current org file"
(interactive)
(if (eq major-mode 'org-mode)
(let ((filename (concat (file-name-sans-extension (buffer-file-name)) ".tex")))
(let ((currentBuffer (buffer-name)))
(progn (eshell 'N))
(insert (concat "latexmk -pvc " filename " -pdf -view=none"))
(eshell-send-input)
(switch-to-buffer currentBuffer)
)
)(message "works only with files whose major mode is org-mode"))
;; (let (texfile (buffer-file-name))
;; (progn (comint-send-input))
;; )
)
;;; export to R
(defun brice-extractRchunk ()
"Extact R code chunks from a org file and put them into a R file"
(interactive)
(let ((file-name (buffer-file-name)))
(let ((x (read-string "Org file:")))
(if(string= "" x)
(ess-eval-linewise (concat "butils.base:::extractRchunk(\"" file-name "\", overwrite = TRUE)"))
(ess-eval-linewise (concat "butils.base:::extractRchunk(\"" x "\", overwrite = TRUE)"))
)
))
)
;;; open tex file
;;;; tex
;; modified from superman
(defun brice-org-open-corresponding-tex (&optional arg)
"Open the latex file generated by the org file"
(interactive "p")
(let ((target (concat (file-name-sans-extension (buffer-file-name)) ".tex")))
(if (file-exists-p target)
(org-open-file target)
(message (concat "No such file: " target)))
)
)
(defun brice-org-export-and-open-corresponding-tex (&optional arg)
"Open the latex file generated by the org file"
(interactive "p")
(brice-org-export-to-pdf)
(brice-org-open-corresponding-tex)
)
;;;; orgmode
;; modified from superman
(defun brice-org-open-corresponding-pdf (&optional arg)
"Open the pdf file generated by the org file"
(interactive "p")
(let ((target (concat (file-name-sans-extension (buffer-file-name)) ".pdf")))
(if (file-exists-p target)
(org-open-file target)
(message (concat "No such file: " target)))
))
(defun brice-org-export-and-open-corresponding-pdf (&optional arg)
"Open pdf file"
(interactive "p")
(brice-org-export-to-pdf)
(brice-org-open-corresponding-pdf)
)
(defun brice-org-open-corresponding-preview (&optional arg)
"Open preview of the file"
(interactive "p")
(let ((target (concat (file-name-sans-extension (buffer-file-name)) ".tex")))
(if (file-exists-p target)
(org-open-file target)
(message (concat "No such file: " target)))
)
(TeX-view)
)
;; ;;; miscelaneous
;; (defun brice-org-remove-headlines (backend)
;; "Remove headlines with :no_title: tag.
;; From : https://emacs.stackexchange.com/questions/9492/is-it-possible-to-export-content-of-subtrees-without-their-headings"
;; (org-map-entries (lambda () (delete-region (point-at-bol) (point-at-eol)))
;; "no_title"))
;; (add-hook 'org-export-before-processing-hook #'brice-org-remove-headlines)
;;; search only in math envir
(defun latex-isearch-in-math ()
"From : https://emacs.stackexchange.com/questions/56102/how-to-perform-incremental-search-inside-math-environments-in-tex-latex-document
Documentation: Call `isearch-forward' with `isearch-filter-predicate' set to filter out matches outside LaTeX math environments."
(interactive)
(let ((isearch-filter-predicate
(lambda (BEG END)
(save-excursion (save-match-data (goto-char BEG) (texmathp)))))
(case-fold-search nil))
(funcall 'isearch-forward)))