Gnus development mailing list
 help / color / mirror / Atom feed
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 ...)

  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).