|
113 | 113 | (texmacs-input (string->document doc) |
114 | 114 | `(style (tuple "verbatim-source")) |
115 | 115 | (latex-source-buffer)))))) |
116 | | - |
117 | | -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
118 | | -;; Convert, run pdflatex, and examine errors |
119 | | -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
120 | | - |
121 | | -(define (current-buffer-suffixed suf) |
122 | | - (and (url-exists? (current-buffer)) |
123 | | - (buffer-has-name? (current-buffer)) |
124 | | - (let* ((tm (current-buffer)) |
125 | | - (nr (string-length (url-suffix tm))) |
126 | | - (tex (url-glue (url-unglue tm nr) suf))) |
127 | | - (and (== (url-suffix tm) "tm") tex)))) |
128 | | - |
129 | | -(define (latex-export) |
130 | | - (with tex (current-buffer-suffixed "tex") |
131 | | - (if (not tex) |
132 | | - (set-message "TeXmacs buffer on disk expected" "latex-export") |
133 | | - (export-buffer tex)))) |
134 | | - |
135 | | -(define (latex-run) |
136 | | - (cond ((not (url-exists? (current-buffer))) |
137 | | - (set-message "buffer must be on disk" "latex-run")) |
138 | | - ((not (buffer-has-name? (current-buffer))) |
139 | | - (set-message "buffer must have a name" "latex-run")) |
140 | | - ((not (current-buffer-suffixed "tex")) |
141 | | - (set-message "TeXmacs buffer expected" "latex-run")) |
142 | | - (else |
143 | | - (let* ((opts (std-converter-options "texmacs-stree" "latex-document")) |
144 | | - (tm (current-buffer)) |
145 | | - (tex (current-buffer-suffixed "tex")) |
146 | | - (report (with-global current-save-target tex |
147 | | - (try-latex-export (buffer-get tm) opts tm tex)))) |
148 | | - (if (tree-atomic? report) |
149 | | - (set-message (tree->string report) "latex-run") |
150 | | - (let* ((buf (current-buffer)) |
151 | | - (doc (tree->string (tree-ref report 0))) |
152 | | - (errs (cdr (tree-children report)))) |
153 | | - (if (null? errs) |
154 | | - (set-message "Generated LaTeX document contains no errors" |
155 | | - "latex-run") |
156 | | - (dialogue-window (latex-errors-widget buf doc errs) |
157 | | - noop "LaTeX errors" |
158 | | - (latex-error-buffer) |
159 | | - (latex-source-buffer))))))))) |
160 | | - |
161 | | -(define (latex-preview) |
162 | | - (let* ((tex (current-buffer-suffixed "tex")) |
163 | | - (pdf (current-buffer-suffixed "pdf"))) |
164 | | - (if (not (and tex pdf)) |
165 | | - (set-message "TeXmacs buffer on disk expected" "latex-export") |
166 | | - (begin |
167 | | - (export-buffer tex) |
168 | | - (run-pdflatex tex) |
169 | | - (preview-file pdf))))) |
170 | | - |
171 | | -(menu-bind tmtex-menu |
172 | | - ("Export" (latex-export)) |
173 | | - ("Run" (latex-run)) |
174 | | - ("Preview" (latex-preview))) |
0 commit comments