emacs-devel
[Top][All Lists]
Advanced

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

Re: enriched-mode and switching major modes.


From: Robert J. Chassell
Subject: Re: enriched-mode and switching major modes.
Date: Sat, 18 Sep 2004 11:37:43 -0400 (EDT)

As Kai Grossjohann said,

    Emacs already displays something that's different than what is present
    in the file

Yes, indeed.  For a high resolution, word-processor-style display, two
questions arise.  But first, a look at the past.

Version 18 Emacs had:

  * the same rendering device (a character-only display screen) 
     that used different Emacs rendering programs
      to produce differently displayed expressions
        of the same info formatted file; for example:

            in Emacs, find-file  
            in Emacs, Info

  * different rendering devices (a character-only display screen, paper)
    that used different rendering programs, some not Emacs, 
      to produce differently displayed expressions
        of the same DVI formatted file; for example:

            in Emacs,     find-file
            not in Emacs, xdvi in X
            not in Emacs, printer

  * different conversion programs, some not Emacs,
        to produce different files 
        from the same Texinfo formatted file; for example:

            in Emacs,     texinfo-format-* to convert Texinfo to Info
            not in Emacs, tex to convert Texinfo to DVI

Version 21 Emacs supports three rendering devices:

  * character-only display screen
  * bit-mapped display screen, as in X
  * sound device

Two questions arise.  In Emacs, in a bit-mapped display screen, as in
X, should a future Emacs support a high resolution,
word-processor-style display

 1. by breaking current, basic Emacs design assumptions?  This would
    require a different display engine, as `xdvi' or `mozilla' now
    are, but integrated within Emacs.  Or,

 2. by using current, basic Emacs design assumptions?  This might mean
    using two new modules (which are perhaps seen by a novice user as
    making up one program, evoked as one Emacs command):

      * a module to convert from the deep representation or `encoded
        document file' to an intermediate representation containing,
        as Eli Zaretskii suggested,

            "a combination of characters and text properties, such
            that Lisp programs and C code that look at the buffer
            text could extract the layout information from that
            text alone"

        (This is similar to what `makeinfo --html' now does, with two
        exceptions:
        -- `makeinfo' is not part of Emacs, although two rendering
        programs, `find-file' and `w3' are a part; and, 
        -- `makeinfo' creates a stand-alone output file rather than a
        temporary file used within Emacs.)

      * a module to render from the intermediate representation to the
        display, as `find-file' with Enriched mode or `w3' or Info now
        do, but with a more word-processor-like look.

For read-only displays, either solution fits the
single-deep-representation-input/multiple-surface-expression-outputs
model I discussed on this list some time ago.

However, people like to edit the various different surface expressions
for paper, for a graphic display, and for a sound device, as well as
the deep representation that holds them.  So people prefer read-write
capability.

(A long time ago, I proposed a user interface design to handle the
display of the results of a slow, asynchronous conversion program
within Emacs without requiring the Emacs display to halt.  For
example, this design -- showing a moving `wave of change' in a scroll
bar -- would enable an Emacs user both to view two parts of a long
file, one near its beginning and the other near its end, and to edit
them even after starting a `tex' update near the beginning and not
have its changes progress to the end for many seconds.)

-- 
    Robert J. Chassell                         
    address@hidden                         GnuPG Key ID: 004B4AC8
    http://www.rattlesnake.com                  http://www.teak.cc




reply via email to

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