help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: editing MathML parts with Amaya


From: Kevin Rodgers
Subject: Re: editing MathML parts with Amaya
Date: Mon, 24 Jan 2005 10:29:01 -0700
User-agent: Mozilla Thunderbird 0.9 (X11/20041105)

Wolfgang Jeltsch wrote:
> I'm thinking about editing DocBook XML documents with embedded MathML using > Emacs and nXML mode. Alas, MathML is very verbose and therefore not easy to
> edit with a text editor.  So I'd like to edit the MathML parts with an
> external MathML editor, namely Amaya. What I want is that if I place Emacs' > cursor inside a MathML fragment and press a specific key combination, the > whole MathML part is copied into a file (with some additional heading lines),
> Amaya is run on this file, and if Amaya has finished, the file's content
> (minus the heading lines) is written back into my Emacs buffer.
>
> So far, I've written a script which basically puts standard input in a file, > invokes Amaya and writes the resulting file content to standard output. If I
> invoke this from Emacs via shell-command-on-buffer then after finishing
> Amaya, Emacs crashes with the message: "X protocol error: BadWindow (invalid
> Window parameter) on protocol request 25".
>
> In addition, shell-command-on-buffer doesn't seem to be the right thing
> because it places the command's output in * Shell Command Output * instead of
> replacing the text in the file's buffer.
>
> So how do I filter parts of a buffer through a shell command so that the
> respective part of the buffer is replaced by the command's output?

(shell-command-on-region START END "your-shell-script" (current-buffer) t)

> Can
> somebody of you imagine why the above error message appears?  Is there a
> better way to invoke X clients for editing parts of a document?

Sorry, I don't know.

> How can I
> tell Emacs to search for the boundaries of a MathML part the cursor is in, so
> that I don't have to mark the whole MathML fragment before editing it?

(let ((mathml-start (re-search-backward ...))
      (mathml-end (re-search-backward ...)))
  (shell-command-on-region mathml-start mathml-end "your-shell-script"
                           (current-buffer) t))

--
Kevin Rodgers

reply via email to

[Prev in Thread] Current Thread [Next in Thread]