changeset 9678:721cc180810c

Initial revision
author Boris Goldowsky <boris@gnu.org>
date Mon, 24 Oct 1994 14:19:37 +0000
parents 8ff145bf72cf
children 363a1bef4ddb
files etc/enriched.doc
diffstat 1 files changed, 331 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/enriched.doc	Mon Oct 24 14:19:37 1994 +0000
@@ -0,0 +1,331 @@
+<param>-*-enriched-*-width:86
+</param><center><bold><x-bg-color><param>gray</param><x-color><param>blue</param>Enriched:
+
+A WYSIWYG enriched-text editing environment for GNU Emacs
+
+
+</x-color></x-bg-color></bold></center><bold>INTRODUCTION 
+
+
+</bold><indent>This package, along with the <bold>facemenu</bold> package, is the beginning of a WYSIWYG
+("what you see is what you get") Emacs mode for editing <italic>enriched text: </italic>text with
+different faces, colors, etc.  Facemenu allows you to add faces (such as
+<bold>boldface</bold>,  <italic>italics</italic>, and <underline>underlining</underline>) your documents, while <bold>enriched</bold> allows you to
+save the documents with those "text properties" included.  The format in which
+they are saved is called <italic>text/enriched</italic>, and is defined as part of the MIME
+standard, so that your documents are transportable (even through email) to many
+other systems. 
+
+
+Not all systems will be able to recreate all of the features of your document,
+but they will get as close as possible.  For systems that do not understand it at
+all, the text of the document should still be legible; the reader can simply
+ignore the annotations specifying face changes and the like. 
+
+
+</indent><bold>INSTALLATION and STARTUP </bold>
+
+
+<indent>The <fixed>enriched.el</fixed> file should be installed somewhere that emacs will find it (ie,
+one of the directories on emacs's <fixed>load-path </fixed>variable), and byte-compiled for
+speed. 
+
+
+The documentation below assumes that you have my <fixed>facemenu.el</fixed> (which is included
+in recent versions of emacs).  You may also find it useful to have Jim Thompson's
+<fixed>ps-print.el</fixed>, which will allow you to print out buffers including their faces
+(unfortunately it is not currently able to deal with merged faces; hopefully it
+will be revised soon.)  These two files should also be installed into your lisp
+directory and byte-compiled. 
+
+
+Put the following code into your .emacs file to automatically load enriched when
+needed:
+
+
+<indent><fixed>(autoload 'enriched-mode "enriched" nil t)</fixed></indent>
+
+
+<bold>Enriched </bold>puts an identifying header into files it writes, which allows it  to
+recognize any emacs-generated <italic>text/enriched</italic> file and put itself into the proper
+mode.  If you get a file from some other source, however, such as through the
+mail, you may have to enter enriched-mode manually:
+
+
+<indent><fixed>M-x enriched-mode</fixed></indent>
+
+
+You may be asked a couple of questions at this point: 
+
+
+<italic>Does the buffer need to be translated now?</italic>  If the buffer contains <italic>text/enriched
+</italic>data which needs to be translated into a readable document with fonts and such,
+then answer "yes".  If you are putting a new document into text/enriched format
+for the first time, then say "no". 
+
+
+<italic>Reformat for current display width?</italic>  If emacs knows that the document was created
+with the same display width that is currently in effect, it will trust the line
+breaks that are in the file, which saves some time.  If it was saved at a
+different width, or emacs doesn't know what width it was saved at, then it may
+ask whether it should reformat.  Actually it does not ask by default; it just
+goes ahead and fills.  But if you want it to ask, you can set the variable
+<fixed>enriched-fill-after-visiting</fixed> to <fixed>'ask</fixed>. 
+
+
+In the future, other modes such as mail and news may recognize messages that are
+enriched text, and automatically call on <bold>enriched</bold> to display them for you.  
+
+
+</indent><bold>WHAT IS ENCODED</bold>
+
+
+<indent>Aside from the text itself, various properties are saved.  More will eventually
+be added, so that you will be able to save and read just about anything that can
+be displayed in an emacs frame.  Following is the list of properties that are
+currently understood; each is covered in more detail below. 
+
+
+<bold>Faces:</bold> default, <bold>bold</bold>, <italic>italic</italic>, <underline>underline</underline>, <fixed>fixed</fixed>, etc. 
+
+<bold>Colors:</bold> <x-color><param>red</param><x-bg-color><param>DarkSlateGray</param>any</x-bg-color></x-color><x-bg-color><param>DarkSlateGray</param><x-color><param>orange</param>thing</x-color> <x-color><param>yellow</param>your</x-color><x-color><param>green</param> screen</x-color><x-color><param>blue</param> </x-color><x-color><param>light blue</param>can</x-color><x-color><param>violet</param> display... </x-color></x-bg-color>
+
+<bold>Newlines:</bold> <indent>Which ones are real ("hard") newlines, and which can be changed to fit
+lines into the ma</indent>rgins.       
+
+<bold>Margins:</bold> can be indented on the left or right. 
+
+<bold>Justification </bold><indent>(whether lines should be flush with the left margin, the right
+margin, fully justified, centered, or left alo</indent>ne). 
+
+<bold>Excerpts: "</bold><excerpt>For quoted material." </excerpt>
+
+<bold>Read-only</bold> regions. 
+
+
+</indent><bold>FACES 
+
+
+</bold><indent>The easiest way to add a face to a region is to use the <bold>facemenu </bold>package.  This
+defines a menu obtained by clicking the right mouse button while holding the
+control key.  For example, to make a word boldface, you could select the word by
+double-clicking on it, then hold C-mouse-3 and select <italic>Bold</italic> from the <italic>Face
+</italic></indent>sub-menu<indent>.  Selecting a face from the menu when the region is not active will apply
+that face to whatever you type next. 
+
+
+</indent><bold>NEWLINES and PARAGRAPHS 
+
+
+</bold><indent><italic>Text/enriched</italic> format distinguishes between <underline>hard</underline> newlines and <underline>soft </underline>newlines.  Hard
+newlines are used to separate paragraphs, or items in a list, or anywhere that
+must be a line break no matter what the margins are.  Soft newlines are the ones
+inserted in order to fit text between the margins.  Auto-fill-mode and
+enriched-mode's fill functions insert soft newlines as necessary, but hard
+newlines are only inserted by direct request, such as using the return key or the
+<fixed>C-o (open-line)</fixed> function.  
+
+
+</indent><bold>INDENTATION 
+
+
+</bold><indent>Indentation of regions of the document can be flexibly controlled.  The face menu
+contains an <italic>Indent</italic> item, which indents the region by the width of 4 characters
+and an <italic>UnIndent </italic>item which removes 4 character-widths of indentation.  All of the
+text paragraphs in this file are singly indented relative to the headings, for
+example.  In addition, you can indent and unindent the <italic>right </italic>margin though use of
+the <italic>IndentRight</italic> and <italic>UnindentRight </italic>menu items.  The indentation commands can be
+used repeatedly to get further levels of indentation.  There are also shortcut
+commands to set the left and right margins directly. 
+
+The basic editing commands in enriched-mode have been modified as necessary to
+maintain proper indentation, but if it gets messed up, you can use <fixed>C-q</fixed> to
+reformat the current paragraph.  This may be necessary, for example, after
+yanking or pasting text into the buffer.  Eventually all commands should respect
+indentation. <flushleft><indentright><indentright><indentright><indentright>
+
+
+</indentright>Not <indent>only whole paragraphs can be indented, but in fact any region.
+This makes it possible to have hanging-indents on paragraphs like
+this one: it was accomplished by selecting the region starting
+after the first word of the paragraph and going to the end of the
+paragraph, and indenting that.  </indent></indentright></indentright></indentright><indent>Also notice that this paragraph had been
+indented on the right until the beginning of this sentence, when it resumed
+normal w</indent>i</flushleft></indent><flushleft>dth. 
+
+
+<bold>JUSTIFICATION<indent>
+
+
+</indent></bold></flushleft><indent><nofill>Several styles of justification are possible, the simplest being <italic>unfilled. 
+</italic>This means that your lines will be left as you write them. 
+This paragraph, for instance, is unfilled.
+It was written with one sentence on a line. 
+<bold>Enriched </bold>will not change that, no matter what size display it is shown on. 
+There is no hard/soft newline distinction in unfilled text. 
+
+The most common (for English) style is <italic>FlushLeft.  </italic>This means
+lines are aligned at the left margin but left uneven at the
+right.
+
+</nofill><italic><flushright>FlushRight</flushright></italic><flushright>, as you may have guessed, makes each line flush with the right margin,
+but not necessarily the left.
+
+This is usually, but by no means necessarily, used for headings. 
+
+This paragraph is FlushRight. 
+
+
+</flushright><italic><flushboth>FlushBoth </flushboth></italic><flushboth>regions, which are sometimes called "fully justified" (or, confusingly,
+"right justified") are aligned evenly on both edges, so that the text on the page
+has a smooth appearance as in a book or newspaper article.  Unfortunately this
+does not look as nice with a fixed-width font as it does in a
+proportionally-spaced printed document; the extra spaces that are needed on the
+screen can make it hard to read. <indentright><indentright><indentright><indentright> 
+
+
+<indent><indent><indent><indent>The narrower the column, the uglier <italic>FlushBoth
+</italic>text will be.  If you think <italic>flushboth </italic>paragraphs
+look pretty, though, you can set
+<fixed>enriched-default-justification </fixed>to <fixed>'both </fixed>to
+justify everything that is not otherwise
+specified. 
+
+
+</indent></indent></indent></indent></indentright></indentright></indentright></indentright></flushboth><bold><center>Center
+
+</center></bold><center>You can probably guess what <italic>center </italic>justification is for.
+
+The normal center-paragraph key, M-S, can be used to turn on center justification
+in enriched-mode.  M-j also brings up a justification menu. 
+
+
+</center><flushboth>Note that justification can only be changed for complete paragraphs (ie, a
+justified region must start and end at hard newlines).  The menu items in the
+"Justification" menu will all operate on the current paragraph, or, if the region
+is active, on all paragraphs which are inside or overlapping the region. 
+
+
+</flushboth></indent><bold>EXCERPTS</bold>
+
+
+<excerpt><indent>This is an example of an excerpt.  You can use them for quoted parts of other
+people's email messages and the like.  Currently it just displays as italics
+(unless some <bold>other</bold> style is in effect), but this can be changed (see
+<underline>Customization</underline> below). </indent></excerpt>
+
+
+<bold>DEBUGGING</bold>
+
+
+<indent>The function <fixed>enriched-show-codes</fixed> can be helpful in figuring out what is going if
+things don't seem to be working.  The function can highlight (with a blue or gray
+background) various items of interest.  </indent>Type <fixed>C<indent>-c C-s</indent></fixed><indent>, then what should be
+highlighted:
+
+
+<indent><bold>indent:<indent> </indent></bold><indent>Highlight the indentation at the beginning of each line. </indent>
+
+<bold>margin: </bold>Highlight regions that are indented. 
+
+<bold>newline: </bold>Highlight hard newlines. 
+
+<bold>none: </bold>Turn off all highlighting. <bold><excerpt>
+
+
+</excerpt></bold></indent></indent><bold>CUSTOMIZATION
+
+
+</bold><indent>-<indent> Set the default faces to things you like.  The faces named <fixed>fixed </fixed>and <excerpt>excerpt,
+</excerpt>especially, can be set to your liking. </indent>
+
+- <indent>User-preference variables: <fixed>enriched-default-right-margin,
+enriched-default-justification, enriched-verbose,
+enriched-auto-save-interval</fixed><bold>, </bold>and <fixed>enriched-fill-after-visiting </fixed>(mentioned
+above)<bold>.  </bold>See their documentation for	det</indent>ails. 
+
+- <indent>You can add annotations for your own text properties by making additions to
+<fixed>enriched-annotation-alist</fixed>.  Note that the standard requires you to name your
+annotation starting<italic> "x-" </italic>(as in <italic>"x-read-only"</italic>).  Please send me any such
+additions that you think might be of general interest so that I can include
+them in the distribution. 
+
+</indent>- <indent>My eventual hope is that people will use the basic code in this file to
+implement more of the various file formats that are in common use, so that
+emacs will understand them all and be able to edit them with a common
+interface.  If you are interested in taking on the project of implementing a
+format, let me know.  The code attempts to be as general as possible; a lot
+of different formats can be defined just by setting up the lists of
+properties to save and how to represent them in the file. 
+
+
+</indent></indent><bold>TO-DO LIST
+
+
+</bold><indent><italic>[Feel free to work on these and send me the results!] </italic>
+
+- Be more tolerant of malformed files. 
+
+- Make the indentation work more seamlessly and robustly:
+
+<indent>+ Create<indent> an aggressive auto-fill function that will keep the paragraph
+properly filled all the time, without slowing down editing too much. </indent>
+
++ Refill after yank. 
+
++ <indent>Make deleting a newline also delete the indentation following it. </indent>
+
++ Never let point enter indentation?? 
+
++<indent> Optional never-let-things-get-unfilled (ok for fast terminals). </indent>
+
+</indent>- Do the right thing for insert-file. 
+
+- Notice and re-fill when window changes widths (optionally).  - Nicer formatting
+for excerpts. 
+
+- Interface w/ GNUS, VM, RMAIL. 
+
+- For documentation, make INFO aware of text/enriched format. 
+
+-<indent> Have another set of alists for reading and writing RTF, etc (this will take
+work not only on the alists, of course, but also on the code for interpreting
+them). 
+
+
+
+</indent></indent><bold>Final Notes:
+
+
+</bold><indent>The MIME standard is defined in internet RFC 1521; text/enriched is defined in
+RFC 1563.  Details on obtaining these documents via FTP or email may be obtained
+by sending an email message to <fixed>rfc-info@isi.edu</fixed> with the message body:
+
+<indent> <fixed>help: ways_to_get_rfcs </fixed> </indent>
+
+
+This code and documentation is under development.  The most current version
+should always be available from:
+
+<indent><fixed>/anonymous@cs.rochester.edu:pub/boris/enriched.shar</fixed>
+
+</indent>It is helpful to make sure you have the newest version before reporting a bug. 
+
+</indent>Please send any and all comments to:
+
+
+<bold><x-color><param>blue</param>Boris Goldowsky </x-color></bold><fixed><<boris@cs.rochester.edu></fixed><x-color><param>blue</param>
+
+October 1994
+
+
+
+
+
+
+
+
+
+
+
+</x-color>