From: David Kastrup <dak@gnu.org>
To: "Stephen J. Turnbull" <stephen@xemacs.org>
Cc: rms@gnu.org, emacs-devel@gnu.org
Subject: Re: Overlay mechanic improvements
Date: Tue, 30 Sep 2014 10:43:37 +0200 [thread overview]
Message-ID: <8761g5jy6e.fsf@fencepost.gnu.org> (raw)
In-Reply-To: <87a95hx5re.fsf@uwakimon.sk.tsukuba.ac.jp> (Stephen J. Turnbull's message of "Tue, 30 Sep 2014 10:21:25 +0900")
"Stephen J. Turnbull" <stephen@xemacs.org> writes:
> Richard Stallman writes:
>
> > > Does this mean you turn off display of the image on the
> > > overlay when the text in that region is changed?
> >
> > Very much so, yes. Changing the text in the region would be a
> > pain if you could not see it, and changing it breaks the
> > correspondence between text and image anyway.
> >
> > I see.
> >
> > But you keep the overlay in existence -- how come?
>
> Why do you care? David knows his business, isn't that good enough?
> (These are real questions, not an attack. It would be easier to
> answer your questions informatively if we knew where you are going.)
Well, there are, of course, places where one might want to go.
Historically, preview-latex was inspired by Emacs 21'st upcoming ability
to integrate EPS images into a buffer, with a proof-of-concept up in
about a week. Getting the whole thing to work as one smooth application
took quite more than a man-year and a number of collaborateurs, however.
And part of the reason for that is that is that a lot of functionality
had to be implemented from scratch to be usable: static screenshots
don't really reflect the interactive nature and efficiency with which
one could work on complex documents with 1000+ equations while having a
single 200MHz processor at one's disposal.
One key element is using DSC comments in the generated single PostScript
file for out-of-order rendering of images: Emacs entertains a pipeline
into a Ghostscript process that first gets all on-screen images
converted into PNG graphics before it reverts to conversion of the
remaining off-screen material. If the on-screen regions change, the
rendering pipeline switches the workload accordingly. With today's
processors, it is actually hard to see that effect in action, but at the
time it was implemented, scrolling around in a partially rendered buffer
lead to an xroach-like effect where changes in the window lead to
new images scurrying in until the display was static again.
This sort of display-oriented rendering pipeline is not in any way
specific to working with TeX/LaTeX. It is infrastructure that would be
nice for a whole lot of things.
In its current form, the code works in AUCTeX's LaTeX mode. It does not
work for Emacs' builtin TeX modes, not even its LaTeX mode (mostly
because of being tied in the process management and keymaps of AUCTeX).
It does not work for AUCTeX's TeX or Texinfo modes (and the latter would
be nice for working on GNU LilyPond which uses lots of images in its
manuals generated from source code in the manuals). It does not work
for calc's TeX output (which would increase its readability and
usability significantly).
It does not work for other image-generating modes like LilyPond-mode.
I think that something like some Maxima-mode or similar copied an early
version of preview-latex in order to implement some similar
functionality. It's probably fallen victim to bitrot long ago.
preview-latex does an excellent job, but much of its code is not at all
related to the AUCTeX user interface or the LaTeX input language, and
yet it will work for nothing but the AUCTeX user interface and the LaTeX
input language.
And without generally available facilities to do that sort of work, it
will remain a singularly useful application without peers. Because it's
far too much work to do a peer from scratch for similar needs. It was
supposed to make it easier for me to work on my PhD thesis, but I ended
up doing it _instead_ of my PhD thesis.
The main shortcoming of preview-latex in my book is that it stands out.
It should be one of possibly many thin applications on top of rendering
frameworks provided by Emacs proper.
Like I said: the barely-workable proof-of-concept (good for screenshots
but not actual work) took about a week. The ideal state of Emacs would
be that implementing similar functionality for a comparable text input
language that can be rendered into PostScript graphics with DSC comments
(a non-trivial subset) or into PNG images or whatever, would take about
that long.
That would get us to see a whole lot more editing modes with
supplementary graphic support.
That this shortcoming of Emacs can be cured on the Elisp side alone (as
preview-latex does not need more than a working Emacs 21 binary) does
not make it less of a shortcoming.
--
David Kastrup
next prev parent reply other threads:[~2014-09-30 8:43 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-19 14:59 Overlay mechanic improvements Vladimir Kazanov
2014-09-19 17:22 ` Stefan Monnier
2014-09-20 13:19 ` Richard Stallman
2014-09-20 13:37 ` David Kastrup
2014-09-21 13:35 ` Richard Stallman
2014-09-21 13:52 ` David Kastrup
2014-09-21 21:48 ` Richard Stallman
2014-09-21 22:06 ` David Kastrup
2014-09-22 23:11 ` Richard Stallman
2014-09-22 23:50 ` David Kastrup
2014-09-23 19:15 ` Richard Stallman
2014-09-21 16:07 ` Stefan Monnier
2014-09-21 16:14 ` David Kastrup
2014-09-21 21:48 ` Richard Stallman
2014-09-21 22:19 ` David Kastrup
2014-09-23 19:16 ` Richard Stallman
2014-09-23 19:27 ` David Kastrup
2014-09-28 23:24 ` Richard Stallman
2014-09-29 5:45 ` David Kastrup
2014-09-29 20:48 ` Richard Stallman
2014-09-30 1:21 ` Stephen J. Turnbull
2014-09-30 8:43 ` David Kastrup [this message]
2014-09-30 10:35 ` Rasmus
2014-09-30 14:22 ` Eli Zaretskii
2014-09-30 16:20 ` David Kastrup
2014-09-30 16:35 ` Eli Zaretskii
2014-09-30 14:32 ` Stefan Monnier
2014-10-02 16:12 ` Uwe Brauer
2014-09-30 19:23 ` Richard Stallman
2014-10-01 3:38 ` Stephen J. Turnbull
2014-10-01 12:53 ` Richard Stallman
2014-10-01 13:11 ` David Kastrup
2014-10-02 1:26 ` Stephen J. Turnbull
2014-09-30 5:52 ` David Kastrup
2014-10-06 19:14 ` Richard Stallman
2014-10-06 21:02 ` David Kastrup
2014-09-21 16:56 ` Eli Zaretskii
2014-09-21 18:42 ` Stefan Monnier
2014-09-21 18:58 ` Eli Zaretskii
2014-09-21 20:12 ` Stefan Monnier
2014-09-21 21:48 ` Richard Stallman
2014-09-22 0:31 ` Stefan Monnier
2014-09-22 23:11 ` Richard Stallman
2014-09-20 15:56 ` Eli Zaretskii
2014-09-20 19:49 ` Stefan Monnier
2014-09-21 13:36 ` Richard Stallman
2014-09-19 18:03 ` Richard Stallman
2014-09-20 8:08 ` Vladimir Kazanov
2014-09-20 13:21 ` Richard Stallman
2014-09-20 16:28 ` Stephen Leake
2014-09-20 13:21 ` Tokenizing Richard Stallman
2014-09-20 16:24 ` Tokenizing Stephen Leake
2014-09-20 16:40 ` Tokenizing Vladimir Kazanov
2014-09-20 20:16 ` Tokenizing Eric Ludlam
2014-09-20 20:35 ` Tokenizing Vladimir Kazanov
2014-09-21 15:13 ` parsing (was tokenizing) Stephen Leake
2014-09-20 16:36 ` Tokenizing Vladimir Kazanov
2014-09-20 19:55 ` Tokenizing Stefan Monnier
2014-09-21 15:35 ` Tokenizing Stephen Leake
2014-09-21 16:43 ` Tokenizing Stefan Monnier
2014-09-22 14:05 ` Tokenizing Stephen Leake
2014-09-21 13:35 ` Tokenizing Richard Stallman
2014-09-21 14:24 ` Tokenizing Vladimir Kazanov
2014-09-21 15:32 ` Tokenizing Stephen Leake
2014-09-21 16:42 ` Tokenizing Stefan Monnier
2014-09-21 18:55 ` Tokenizing Vladimir Kazanov
2014-09-21 22:01 ` Tokenizing Daniel Colascione
2014-09-22 10:21 ` Tokenizing Vladimir Kazanov
2014-09-22 13:55 ` Tokenizing Daniel Colascione
2014-09-22 14:02 ` Tokenizing Stephen Leake
2014-09-22 14:14 ` Tokenizing Daniel Colascione
2014-09-22 13:15 ` Tokenizing Stephen Leake
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8761g5jy6e.fsf@fencepost.gnu.org \
--to=dak@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=rms@gnu.org \
--cc=stephen@xemacs.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.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).