From: Uwe Brauer <oub@mat.ucm.es>
To: Lars Magne Ingebrigtsen <larsi@gnus.org>
Cc: ding@gnus.org
Subject: Re: apply TeX-to-char-paragraph-or-region to an article
Date: Thu, 22 Mar 2012 22:30:07 +0100 [thread overview]
Message-ID: <87k42cnx28.fsf@mat.ucm.es> (raw)
In-Reply-To: <m3k42cqug6.fsf@stories.gnus.org> (Lars Magne Ingebrigtsen's message of "Thu, 22 Mar 2012 20:58:17 +0100")
[-- Attachment #1: Type: text/plain, Size: 2376 bytes --]
>> On Thu, 22 Mar 2012 20:58:17 +0100, Lars Magne Ingebrigtsen <larsi@gnus.org> wrote:
> Uwe Brauer <oub@mat.ucm.es> writes:
>> For example the function gnus-article-fill-cited-article runs on an
>> article. How could I write a function based on
>> TeX-to-char-paragraph-or-region which does what I want.
> Start with a simpler function, like
> (defun article-treat-ansi-sequences ()
> "Translate ANSI SGR control sequences into overlays or extents."
> (interactive)
> (save-excursion
> (when (article-goto-body)
> (let ((inhibit-read-only t))
> (ansi-color-apply-on-region (point) (point-max))))))
> And just replace the ansi stuff with the function you want to call.
Cool!
That works nicely for the
TeX-to-char-paragraph-or-region function.
However for the org-preview function it does not!
Here is the code
(defun article-treat-org-preview ()
"Translate ANSI SGR control sequences into overlays or extents."
(interactive)
(save-excursion
(when (article-goto-body)
(let ((inhibit-read-only t))
(org-preview-latex-fragment nil)))))
And the documentation of org-preview-latex-fragment
,----
| `org-preview-latex-fragment' is an interactive Lisp function
| -- loaded from "org"
| (org-preview-latex-fragment &optional SUBTREE)
|
| Documentation:
| Preview the LaTeX fragment at point, or all locally or globally.
| If the cursor is in a LaTeX fragment, create the image and overlay
| it over the source code. If there is no fragment at point, display
| all fragments in the current text, from one headline to the next. With
| prefix SUBTREE, display all fragments in the current subtree. With a
| double prefix arg C-u C-u, or when the cursor is before the first headline,
| display all fragments in the buffer.
`----
I obtain an error whose bug trace I attach.
I had the following trivial function
(defun org-preview-article ()
"Saves the article to temporary buffer and apply
`org-preview-latex-fragment'."
(interactive)
(let* ((tempfile "/tmp/texfile"))
(shell-command (format "touch %s" tempfile))
(delete-file tempfile)
(with-current-buffer gnus-article-buffer
(write-region (point-min) (point-max) tempfile nil nil nil 'utf-8-unix)
(find-file tempfile)
(org-preview-latex-fragment nil))))
which sort of works but is not what I want.
[-- Attachment #2: bugtrace --]
[-- Type: text/plain, Size: 6993 bytes --]
# bind (standard-output stack-trace-on-signal debug-on-signal stack-trace-on-error debug-on-error)
# (unwind-protect ...)
file-name-nondirectory(nil)
(file-name-sans-extension (file-name-nondirectory buffer-file-name))
(concat "ltxpng/" (file-name-sans-extension (file-name-nondirectory buffer-file-name)))
(org-format-latex (concat "ltxpng/" (file-name-sans-extension (file-name-nondirectory buffer-file-name))) default-directory (quote overlays) msg at (quote forbuffer) (quote dvipng))
# bind (msg at end beg)
(let (beg end at msg) (cond ((or (equal subtree (quote (16))) (not (save-excursion (re-search-backward org-outline-regexp-bol nil t)))) (setq beg (point-min) end (point-max) msg "Creating images for buffer...%s")) ((equal subtree (quote (4))) (org-back-to-heading) (setq beg (point) end (org-end-of-subtree t) msg "Creating images for subtree...%s")) (t (if (setq at (org-inside-LaTeX-fragment-p)) (goto-char (max (point-min) (- (cdr at) 2))) (org-back-to-heading)) (setq beg (point) end (progn (outline-next-heading) (point)) msg (if at "Creating image...%s" "Creating images for entry...%s")))) (message msg "") (narrow-to-region beg end) (goto-char beg) (org-format-latex (concat "ltxpng/" (file-name-sans-extension (file-name-nondirectory buffer-file-name))) default-directory (quote overlays)
msg at (quote forbuffer) (quote dvipng)) (message msg "done. Use `C-c C-c' to remove images."))
# (unwind-protect ...)
(save-restriction (let (beg end at msg) (cond ((or (equal subtree (quote (16))) (not (save-excursion (re-search-backward org-outline-regexp-bol nil t)))) (setq beg (point-min) end (point-max) msg "Creating images for buffer...%s")) ((equal subtree (quote (4))) (org-back-to-heading) (setq beg (point) end (org-end-of-subtree t) msg "Creating images for subtree...%s")) (t (if (setq at (org-inside-LaTeX-fragment-p)) (goto-char (max (point-min) (- (cdr at) 2))) (org-back-to-heading)) (setq beg (point) end (progn (outline-next-heading) (point)) msg (if at "Creating image...%s" "Creating images for entry...%s")))) (message msg "") (narrow-to-region beg end) (goto-char beg) (org-format-latex (concat "ltxpng/" (file-name-sans-extension (file-name-nondirectory buffer-file-name))) default-directory
(quote overlays) msg at (quote forbuffer) (quote dvipng)) (message msg "done. Use `C-c C-c' to remove images.")))
# (unwind-protect ...)
(save-excursion (save-restriction (let (beg end at msg) (cond ((or (equal subtree (quote (16))) (not (save-excursion (re-search-backward org-outline-regexp-bol nil t)))) (setq beg (point-min) end (point-max) msg "Creating images for buffer...%s")) ((equal subtree (quote (4))) (org-back-to-heading) (setq beg (point) end (org-end-of-subtree t) msg "Creating images for subtree...%s")) (t (if (setq at (org-inside-LaTeX-fragment-p)) (goto-char (max (point-min) (- (cdr at) 2))) (org-back-to-heading)) (setq beg (point) end (progn (outline-next-heading) (point)) msg (if at "Creating image...%s" "Creating images for entry...%s")))) (message msg "") (narrow-to-region beg end) (goto-char beg) (org-format-latex (concat "ltxpng/" (file-name-sans-extension (file-name-nondirectory buffer-file-name))) d
efault-directory (quote overlays) msg at (quote forbuffer) (quote dvipng)) (message msg "done. Use `C-c C-c' to remove images."))))
# bind (subtree)
org-preview-latex-fragment(nil)
(edebug-after (edebug-before 5) 6 (org-preview-latex-fragment nil))
# bind (inhibit-read-only)
(let ((inhibit-read-only t)) (edebug-after (edebug-before 5) 6 (org-preview-latex-fragment nil)))
(edebug-after (edebug-before 4) 7 (let ((inhibit-read-only t)) (edebug-after (edebug-before 5) 6 (org-preview-latex-fragment nil))))
(if (edebug-after (edebug-before 2) 3 (article-goto-body)) (edebug-after (edebug-before 4) 7 (let ((inhibit-read-only t)) (edebug-after (edebug-before 5) 6 (org-preview-latex-fragment nil)))))
(when (edebug-after (edebug-before 2) 3 (article-goto-body)) (edebug-after (edebug-before 4) 7 (let ((inhibit-read-only t)) (edebug-after (edebug-before 5) 6 (org-preview-latex-fragment nil)))))
(edebug-after (edebug-before 1) 8 (when (edebug-after (edebug-before 2) 3 (article-goto-body)) (edebug-after (edebug-before 4) 7 (let ((inhibit-read-only t)) (edebug-after (edebug-before 5) 6 (org-preview-latex-fragment nil))))))
# (unwind-protect ...)
(save-excursion (edebug-after (edebug-before 1) 8 (when (edebug-after (edebug-before 2) 3 (article-goto-body)) (edebug-after (edebug-before 4) 7 (let ((inhibit-read-only t)) (edebug-after (edebug-before 5) 6 (org-preview-latex-fragment nil)))))))
(edebug-after (edebug-before 0) 9 (save-excursion (edebug-after (edebug-before 1) 8 (when (edebug-after (edebug-before 2) 3 (article-goto-body)) (edebug-after (edebug-before 4) 7 (let ((inhibit-read-only t)) (edebug-after (edebug-before 5) 6 (org-preview-latex-fragment nil))))))))
(lambda nil (edebug-after (edebug-before 0) 9 (save-excursion (edebug-after (edebug-before 1) 8 (when (edebug-after (edebug-before 2) 3 (article-goto-body)) (edebug-after (edebug-before 4) 7 (let ((inhibit-read-only t)) (edebug-after (edebug-before 5) 6 (org-preview-latex-fragment nil)))))))))()
# bind (edebug-offset-indices edebug-stack edebug-buffer edebug-coverage edebug-freq-count edebug-def-mark edebug-data edebug-body edebug-args edebug-function)
edebug-enter(article-treat-org-preview nil (lambda nil (edebug-after (edebug-before 0) 9 (save-excursion (edebug-after (edebug-before 1) 8 (when (edebug-after (edebug-before 2) 3 (article-goto-body)) (edebug-after (edebug-before 4) 7 (let ((inhibit-read-only t)) (edebug-after (edebug-before 5) 6 (org-preview-latex-fragment nil))))))))))
# bind (executing-kbd-macro overriding-local-map overriding-terminal-local-map signal-hook-function pre-command-hook post-command-hook)
# (unwind-protect ...)
# bind (edebug-entered max-lisp-eval-depth max-specpdl-size debugger edebug-outside-debug-on-error edebug-outside-debug-on-quit debug-on-error debug-on-quit cl-lexical-debug edebug-outside-overriding-local-map edebug-outside-overriding-terminal-local-map edebug-outside-executing-macro edebug-outside-pre-command-hook edebug-outside-post-command-hook edebug-body edebug-args edebug-function)
edebug-enter(article-treat-org-preview nil (lambda nil (edebug-after (edebug-before 0) 9 (save-excursion (edebug-after (edebug-before 1) 8 (when (edebug-after (edebug-before 2) 3 (article-goto-body)) (edebug-after (edebug-before 4) 7 (let ((inhibit-read-only t)) (edebug-after (edebug-before 5) 6 (org-preview-latex-fragment nil))))))))))
article-treat-org-preview()
eval((article-treat-org-preview))
# bind (form history form prompt)
edit-and-eval-command("Redo: " (switch-to-buffer "*Article nndraft:drafts*") (command-history . 1))
# bind (print-level arg)
repeat-complex-command(1)
# bind (command-debug-status)
call-interactively(repeat-complex-command)
# (condition-case ... . error)
# (catch top-level ...)
next prev parent reply other threads:[~2012-03-22 21:30 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-18 17:58 Uwe Brauer
2012-03-22 19:58 ` Lars Magne Ingebrigtsen
2012-03-22 21:30 ` Uwe Brauer [this message]
2012-03-22 21:37 ` Lars Magne Ingebrigtsen
2012-03-22 21:56 ` html email, math formulas (was: apply TeX-to-char-paragraph-or-region to an article) Uwe Brauer
2012-03-24 14:43 ` html email, math formulas Dan Christensen
2012-03-29 20:56 ` Uwe Brauer
2012-03-25 13:00 ` Philipp Haselwarter
2012-03-29 20:53 ` Uwe Brauer
2012-03-29 21:02 ` Uwe Brauer
2012-05-07 5:26 ` Eric S Fraga
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87k42cnx28.fsf@mat.ucm.es \
--to=oub@mat.ucm.es \
--cc=ding@gnus.org \
--cc=larsi@gnus.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).