diff options
Diffstat (limited to 'x-symbol/info')
-rw-r--r-- | x-symbol/info/x-symbol.info | 6939 |
1 files changed, 6939 insertions, 0 deletions
diff --git a/x-symbol/info/x-symbol.info b/x-symbol/info/x-symbol.info new file mode 100644 index 00000000..75d4ab4e --- /dev/null +++ b/x-symbol/info/x-symbol.info @@ -0,0 +1,6939 @@ +This is Info file x-symbol.info, produced by Makeinfo version 1.68 from +the input file x-symbol.texi. + +INFO-DIR-SECTION Editors +START-INFO-DIR-ENTRY +* X-Symbol:: Semi WYSIWYG for LaTeX, HTML and other "token languages" +END-INFO-DIR-ENTRY + + This file documents X-Symbol, a package providing semi-WYSIWYG for +LaTeX, HTML and other "token languages". It uses additional fonts and +provide input methods to insert their characters into your document. + + This is Edition 4.5 (XEmacs) of the X-Symbol Manual for X-Symbol +4.5, March 2003. + + Copyright (c) 1998-2003 Free Software Foundation, Inc. + + Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + + Permission is granted to copy and distribute modified versions of +this manual under the conditions for verbatim copying, provided also +that the sections entitled "Copying" and "GNU General Public License" +are included exactly as in the original, and provided that the entire +resulting derived work is distributed under the terms of a permission +notice identical to this one. + + Permission is granted to copy and distribute translations of this +manual into another language, under the above conditions for modified +versions, except that this permission notice may be stated in a +translation approved by the Free Software Foundation. + + +File: x-symbol.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir) + +X-Symbol +******** + + When you edit LaTeX, HTML, BibTeX or TeXinfo sources in Emacs, +package X-Symbol provides some kind of WYSIWYG by using real characters +for tokens like `\oplus' or `™'. It also provides various input +methods to insert these characters. Thumbnails for included images and +real super-/subscripts and are also supported. + + The first part of this master menu lists the major nodes in this Info +document, including the indexes. The rest of the menu lists all the +lower level nodes in the document. + + This is Edition 4.5 (XEmacs) of the X-Symbol Manual for X-Symbol +4.5, March 2003. For recent changes, see *Note News::. + + Bug fixes, bug reports, improvements, and suggestions are strongly +appreciated. Please read section *Note Bug Reports:: if you want to +contact the maintainer of package X-Symbol. + +* Menu: + +* Introduction:: Introduction to X-Symbol. +* Installation:: What to do before using package X-Symbol. +* Concepts:: Token language, conversion, coding, etc. +* Input Methods:: How to insert X-Symbol characters. +* Features:: Super-/subscripts, images, info, etc. +* Supported Languages:: Details of the predefined token languages. +* X-Symbol Internals:: How package X-Symbol works. +* Problems:: Annoyances, contacting the maintainer. +* History:: Changes, wishlist, projects. +* Indexes:: Menus covering various topics. + + -- The Detailed Node Listing -- + +Introduction + +* Copying:: X-Symbol is GPL'd. +* Summary:: A brief summary of package X-Symbol. +* About:: About this manual. + +Installation + +* Requirements:: Which programs you need for X-Symbol. +* Installing Files:: Basics 1: Put the files into your home dir. +* System-wide Installation:: Alternative: Put the files into the XEmacs dir. +* Installing Lisp:: Basics 2: Initialize X-Symbol during startup. +* Installing Image Converter:: Recommended: How to install `convert'. +* Package Integration:: How X-Symbol interacts with other packages. +* Installing Fonts:: Optional: What to do when using other fonts. +* Installing Fonts Exceed:: If appropriate: What to do when using Exceed. +* Installing Fonts Lisp:: If appropriate: Lisp coding for other fonts. +* Installing Manual:: Optional: How to create the manual. +* Checking Installation:: Is package X-Symbol completely installed? + +Package Integration + +* LaTeX Packages:: Packages used in LaTeX buffers. +* Syntax Hiliting Packages:: Package `font-lock' and support modes. +* File IO Packages:: Compression, encryption, remote files, etc. +* Miscellaneous Packages:: Other packages. + +Concepts of Package X-Symbol + +* Token Language:: What does a X-Symbol character represent. +* Conversion:: Decoding tokens, encoding characters. +* Minor Mode:: How to control the behavior of X-Symbol. +* Poor Mans Mule:: Running X-Symbol under XEmacs/no-Mule. +* Role of font-lock:: Why does X-Symbol need `font-lock'. +* Char Group:: Character group and token classes. + +Conversion: Decoding and Encoding + +* Default Coding:: Normal File and Default Encoding. +* File Coding:: Specific encoding of a file. +* Controlling 8bit Coding:: Do you want to store 8bit characters? +* Unique Decoding:: Restrict decoding to avoid normalization? +* Conversion Commands:: Interactive encoding and decoding. +* Copy with Conversion:: Copy & paste with conversion. +* Char Aliases:: Different charsets include the same chars. + +X-Symbol's Input Methods + +* Introducing Input Methods:: Common behavior of all input methods. +* Input Method Token:: Replace token by character. +* Input Method Read Token:: Minibuffer input with completion. +* Input Method Menu:: Select a menu item. +* Input Method Grid:: Choose highlighted character. +* Input Method Keyboard:: Compose a key sequence. +* Input Method Context:: Replace character sequence. +* Input Method Electric:: Automatically replace character sequence. +* Input Method Quail:: A Mule input method "x-symbol". +* Customizing Input Method:: How to customize the input methods. + +Features of Package X-Symbol + +* Super and Subscripts:: Use special fonts for super-/subscripts. +* Images:: Images after image insertion commands. +* Info:: Display information in echo area. +* Ascii Representation:: Derive label from a buffer contents. +* Package Information:: Invoke info system, use WWW browser. + +Images at the end of Image Insertion Commands + +* Image Display:: When to display images. +* Image Conversion:: Producing a scaled-down image. +* Image Caching:: Speeding up the image processing. +* Special Images:: Signaling specific situations. +* Image Editor:: Editing the original image file. + +Supported Token Languages + +* Pseudo Language:: Token language "x-symbol charsym". +* TeX Macro:: Token language `tex'. +* SGML Entity:: Token language `sgml'. +* BibTeX Macro:: Token language `bib'. +* TeXinfo Command:: Token language `texi'. +* External Languages:: Languages defined in other Emacs Packages. + +Token Language "TeX macro" (`tex') + +* TeX Macro Basics:: Basics of language "TeX macro". +* TeX Macro Features:: Super-/subscripts and images in LaTeX. +* TeX Macro Problems:: Problems with TeX macros. +* TeX Macro Conversion:: How the conversion of TeX macros works. +* TeX Macro Symbols:: Extra Symbols of Language "TeX Macro". + +Token Language "SGML entity" (`sgml') + +* SGML Entity Basics:: Basics of Language "SGML entity". +* SGML Entity Features:: Super-/Subscripts and Images in HTML. +* SGML Entity Conversion:: How the conversion of SGML entities works. + +X-Symbol Internals + +* Char Representation:: How X-Symbol represents X-Symbol chars. +* Defining Charsets:: How X-Symbol defines additional chars. +* Defining Input Methods:: How X-Symbol defines the input methods. +* Extending X-Symbol:: How to add fonts and token languages. +* Various Internals:: How X-Symbol handles other aspects. +* Design Alternatives:: Why X-Symbol is not designed differently. +* Language Internals:: How X-Symbol handles languages. +* Misc Internals:: Various. TODO. + +Defining Input Methods + +* Input Method Objectives:: Input methods should be intuitive/consistent. +* Intro Char Descriptions:: An example introducing char descriptions. +* Char Descriptions:: The aspects and the contexts of a character. +* Example Char Descriptions:: A complete example defining input methods. +* Customizing Input Methods:: How to customize the input methods. + +Extending Package X-Symbol + +* Extending with Fonts:: How to add fonts to X-Symbol. +* Input Definitions:: Guidelines for input definitions. +* Font Definition File:: How to define new character in a file. +* Language Extension File:: Extending an existing language. +* Language Definition File:: Defining a new language. + +Various Internals + +* Tagging Insert Commands:: Don't break input methods Token and Electric. +* Avoiding Flickering:: Moving cursor in invisible commands. + +Design Alternatives + +* Alt Token Representations:: Why we need the conversion. +* Alt Global Mode:: How to turn on X-Symbol globally. +* Alt Auto Conversion:: When do we convert automatically. + +Problems, Troubleshooting + +* Nomule Problems:: X-Symbol provides a *poor* man's Mule. +* Spurious Encodings:: Some commands turn off X-Symbol mode. +* No Encoding:: The encoding does not work in a rare case. +* FAQ:: Frequently asked questions. +* Bug Reports:: How to contact the maintainer of X-Symbol. + +Frequently Asked Questions + +* FAQ XEmacs Core:: XEmacs crashes when using input method Token +* FAQ font-lock:: X-Symbol's fontification does not work. +* FAQ Strange Chars:: The buffer contains strange characters +* FAQ No Subscripts:: I cannot see any/some super-/subscripts. +* FAQ Stupid Subscripts:: I see subscripts where I don't want them. +* FAQ Font Size:: The characters are too small or too big. +* FAQ Conversion:: The conversion changes some tokens. +* FAQ Additional Spaces:: A space is added during the encoding. +* FAQ 8bit Chars:: I do not want 8bit characters in the file. +* FAQ Hyphen:: I cannot distinguish `hyphen' from `-'. +* FAQ Spell Check:: I have problems with spell-checking. +* FAQ News and Mail:: I want to use X-Symbol in Gnus or VM. + +History and Projects + +* News:: Changes in recent versions. +* Wishlist:: Projects for X-Symbol. +* Open Questions:: How you can contribute. +* Acknowledgments:: People having contributed. + +News: Changes in Recent Versions of X-Symbol + +* Changes 4.5:: Released Mar 2003 as beta. +* Changes 4.4:: Released June 2002 as beta. +* Changes 4.1:: Released Mar 2002 as beta. +* Changes 3.4:: Released Mar 2002. +* Changes 3.3:: Released Jan 1999. +* Changes 3.2:: Released Dec 1998. +* Changes 3.1:: Released Oct 1998. +* Changes 3.0:: Released Sep 1998 as beta. +* Changes Old:: Overview of old releases. + +Wishlist: Projects for X-Symbol + +* Wishlist Languages:: Additional token languages. +* Wishlist Fonts:: Automatically generated fonts. +* Wishlist Emacs:: Changes in Emacs/XEmacs. +* Wishlist LaTeX:: Changes in LaTeX. +* Wishlist Various:: Other changes. +* Wishlist Rejected:: Rejected Suggestions for X-Symbol. + +Indexes + +* Key Index:: Key sequences. +* Program Index:: Programs and Emacs packages. +* Variable Index:: Commands, functions, variables. +* Concept Index:: Various topics. + + +File: x-symbol.info, Node: Introduction, Next: Installation, Prev: Top, Up: Top + +Introduction +************ + + When you edit LaTeX, HTML, BibTeX or TeXinfo sources in Emacs, +package X-Symbol provides some kind of WYSIWYG by using real characters +for tokens like `\oplus' or `™'. It also provides various input +methods to insert these characters. Thumbnails for included images and +real super-/subscripts and are also supported. + +* Menu: + +* Copying:: X-Symbol is GPL'd. +* Summary:: A brief summary of package X-Symbol. +* About:: About this manual. + + +File: x-symbol.info, Node: Copying, Next: Summary, Prev: Introduction, Up: Introduction + +X-Symbol's Copying Conditions: GPL +================================== + + (This text is stolen from the TeXinfo manual, Edition 4.0). + + The programs currently being distributed that relate to X-Symbol +include Emacs Lisp files and X11 font files. These programs are "free"; +this means that everyone is free to use them and free to redistribute +them on a free basis. The X-Symbol related programs are not in the +public domain; they are copyrighted and there are restrictions on their +distribution, but these restrictions are designed to permit everything +that a good cooperating citizen would want to do. What is not allowed +is to try to prevent others from further sharing any version of these +programs that they might get from you. + + Specifically, we want to make sure that you have the right to give +away copies of the programs that relate to X-Symbol, that you receive +source code or else can get it if you want it, that you can change these +programs or use pieces of them in new free programs, and that you know +you can do these things. + + To make sure that everyone has such rights, we have to forbid you to +deprive anyone else of these rights. For example, if you distribute +copies of the X-Symbol related programs, you must give the recipients +all the rights that you have. You must make sure that they, too, +receive or can get the source code. And you must tell them their +rights. + + Also, for our own protection, we must make certain that everyone +finds out that there is no warranty for the programs that relate to +X-Symbol. If these programs are modified by someone else and passed +on, we want their recipients to know that what they have is not what we +distributed, so that any problems introduced by others will not reflect +on our reputation. + + The precise conditions of the licenses for the programs currently +being distributed that relate to X-Symbol are found in the General +Public Licenses that accompany them. + + +File: x-symbol.info, Node: Summary, Next: About, Prev: Copying, Up: Introduction + +Brief Summary of X-Symbol +========================= + + * X-Symbol provides a *minor mode* which make use of characters in + the Latin-1, Latin-2, Latin-3, Latin-5, and Latin-9 font (179 + chars + 294 char aliases), the Adobe symbol font (109 chars) and + the xsymb1 font (165 chars, distributed with the package). + Additional fonts could be used easily. + + * These characters are used in the buffer to represent *tokens* + (e.g., TeX macros, SGML entities, more "token languages" could be + added easily) in the file. The *conversion* is done automatically + when visiting the file, saving the buffer and turning the minor + mode on/off. + + * Defines 8 *input methods* for these characters: *Menu*, *Grid* + (selecting a character with the mouse), *Keyboard*, *Context* + (replace/modify similar-looking char sequence), *Electric* + (automatic replace), *Quail* (a Mule input method), *Token* + (replace token by corresponding char), *Read Token* (completing + minibuffer input of token). + + * Offers some *info* in the echo area for these characters (e.g., + that the character under point represents the TeX macro `\leadsto' + and that the macro is defined in LaTeX package `latexsym.sty'). + + * Allows to use a *8bit file encoding* which is different from your + "normal" 8bit file encoding, e.g., you can visit TeX files with + `\usepackage[latin5]{inputenc}' even if you normally use a Latin-2 + font. + + * Provides a kind of "*poor man's Mule*" when running on an XEmacs + without Mule support: it can *display* more than 256 characters + via `font-lock' and removes most annoyances resulting from the + fact that, without Mule support, many "X-Symbol characters" are + actually a sequence of two chars. + + * Provides fonts for single-line innermost *super-* and *subscripts* + to be displayed with per-buffer control. The invisible part, like + `<sub>' in HTML, is revealed at point. + + * Displays thumbnails for *images* at the end of image insertion + commands with per-buffer control (e.g., `\includegraphics{FILE}' + in LaTeX, `<img src=FILE>' in HTML). They show a scaled-down + version of the included image files (using `convert' from + ImageMagick (http://www.imagemagick.org/)). A single mouse click + on the image or command invokes the image editor for the + corresponding image file. + + * It *does not* and *will not* provide commands to hide (more or + less) uninteresting parts of your document or fontify them + differently. This is more the task of the corresponding major + mode or `font-lock', e.g., `font-latex'. (I admit, the support of + super- and subscripts might let you think that this is a good + point for the todo list of package X-Symbol.) Using + `outline-minor-mode' or folding might also be an alternative. + + If you prefer a more WYSIWYG-like document processor, you should +probably use `LyX' or `GNU TeXmacs'. Here are some reasons why you +would use Emacs/XEmacs with package X-Symbol instead: + + * You have complete control over the LaTeX source. X-Symbol supports + more characters. + + * You can read any LaTeX source and you write normal LaTeX code, + i.e., package X-Symbol does not use any special format. + + * It also supports HTML and TeXinfo documents and BibTeX entries. + + * You can use your favorite editor, i.e., Emacs or XEmacs. + + +File: x-symbol.info, Node: About, Prev: Summary, Up: Introduction + +About this Manual +================= + + Apart from this manual, there are two other sources of information +about X-Symbol: + + * The web pages of X-Symbol provide a summary of X-Symbol, including + some screen shots. You are strongly encouraged to read them + carefully. They probably provide enough info for the standard + user and can be found at: + + `http://x-symbol.sourceforge.net/' + + * The online help for commands (functions) and user options + (variables) is quite technical. It is shown during customization + and when using Emacs' Help menu. + + This manual is somewhere in between: it more detailed than the web +pages and less technical than the online help. For example, when +explaining some functionality, it states the default behavior, gives an +impression of what can be customized, and it even lists all related +user options, but it does not describes the technical format of +possible values of each option. + + Section *Note X-Symbol Internals:: is for the curious reader and for +people who want to define their own token language. + + This manual does not explain Emacs in general or some optional +programs used by this package such as `convert' (used to produce the +image thumbnails). It also includes no installation instructions for +those programs and the author of this package will not help you with the +installation of those programs (sorry for that). + + You do not have to learn this manual by heart before sending a +question to the maintainer of X-Symbol, but you should give the +impression that your really have tried to find the necessary +information yourself and spend some time making your report precise. +Before sending a problem report, please read *Note Bug Reports::. + + +File: x-symbol.info, Node: Installation, Next: Concepts, Prev: Introduction, Up: Top + +Installation +************ + + The short version of the installation instructions for package +X-Symbol on XEmacs is: uncompress & extract the *binary distribution* in +directory `~/.xemacs/xemacs-packages/', add `(x-symbol-initialize)' to +your `~/.emacs' and install ImageMagick for the image support (unless +you want to get a warning). + + Please check the web page *additionally* to the sections here for +the installation instructions for package X-Symbol on Emacs. + + The rest of this chapter contains the long version. I recommend that +you read this chapter completely after a short test of X-Symbol, +especially if you have customized your Emacs more or less heavily or if +you get some problems. + +* Menu: + +* Requirements:: Which programs you need for X-Symbol. +* Installing Files:: Basics 1: Put the files into your home dir. +* System-wide Installation:: Alternative: Put the files into the XEmacs dir. +* Installing Lisp:: Basics 2: Initialize X-Symbol during startup. +* Installing Image Converter:: Recommended: How to install `convert'. +* Package Integration:: How X-Symbol interacts with other packages. +* Installing Fonts:: Optional: What to do when using other fonts. +* Installing Fonts Exceed:: If appropriate: What to do when using Exceed. +* Installing Fonts Lisp:: If appropriate: Lisp coding for other fonts. +* Installing Manual:: Optional: How to create the manual. +* Checking Installation:: Is package X-Symbol completely installed? + + +File: x-symbol.info, Node: Requirements, Next: Installing Files, Prev: Installation, Up: Installation + +Requirements +============ + + This development version of package X-Symbol works with Emacs-21.1 or +higher, and XEmacs 20.4 or higher (XEmacs-21.1.9 is strongly +recommended, *Note FAQ XEmacs Core::), with or without Mule support. + + X-Symbol should work with all window systems Emacs is running under +(Mac is not testet and might not work). Under X, no restrictions apply. +Under Windows with Emacs, images will not be displayed (they are not yet +supported by Emacs under Windows). Under Windows with XEmacs, X-Symbol +just supports a limited number of characters (Latin-1, Latin-5, and half +the math symbols) and no super- and subscripts, due to missing +MS-Windows fonts (*note Wishlist Fonts::.). Under a character terminal, +X-Symbol just supports Latin-1 characters only, no super- and subscripts +and no images. + + This package require package `font-lock' (distributed with Emacs and +XEmacs), the use of package `lazy-shot' is recommended, see *Note +Syntax Hiliting Packages::. + + If you want to see the images at the end of image insertion commands, +install `convert' from ImageMagick (http://www.imagemagick.org/), see +*Note Installing Image Converter::. They show a scaled-down version of +the included image files. + + If you want to produce the Info files yourself (they are included in +the binary distribution), you need `makeinfo', Version 1.68 or higher. +If you want to produce a PS file from the manual, you need `texi2dvi'. +If you want to produce an HTML version of this manual, you need +`texi2html', Version 1.62 or higher. *Note Installing Manual::. + + +File: x-symbol.info, Node: Installing Files, Next: System-wide Installation, Prev: Requirements, Up: Installation + +Put the Files into your Home Directory +====================================== + + If you use Emacs, please check the +web pages of X-Symbol (http://x-symbol.sourceforge.net/news.html). + + In this section, we assume that you want to install the binary +distribution (also called the binary tarball) of package X-Symbol in +your home directory. To install it somewhere below the XEmacs root (it +might be already there), see *Note System-wide Installation::. If you +use the source distribution, you should know what do to instead. + + In directory `~/.xemacs/xemacs-packages/', run + zcat x-symbol-pkg.tar.gz | tar xvf - + + Remember that `tar' does not overwrite write-protected files. + + X-Symbol's `pcf' files and font directory must be world-readable +since you do not own the X11 font server process. You are on the safe +side, if you run + chmod -R a+rx ~/.xemacs/xemacs-packages + + If package X-Symbol has been installed system-wide and you install a +newer version in your `~/.xemacs/xemacs-packages/', you get a warning +during XEmacs' startup (autoload error: already loaded). You can +safely ignore this warning, but there is unfortunately no good way to +get rid of it. Yes, XEmacs' packaging system is excellent, but there +is still a place for improvements.... + + Before XEmacs-21.0: the user package directory was `~/.xemacs/' +instead of `~/.xemacs/packages/'; also: delete and recompile the `.elc' +files. + + +File: x-symbol.info, Node: System-wide Installation, Next: Installing Lisp, Prev: Installing Files, Up: Installation + +System-wide Installation: Put the Files into the XEmacs Directory +================================================================= + + You can skip this section if your have installed X-Symbol in your +home directory according to the previous section. + + If you install package X-Symbol system-wide, use `default.el' and +`XEMACS/site-packages/' whenever `~/.emacs' and +`~/.xemacs/xemacs-packages/' are mentioned in the previous or following +subsections. `XEMACS/site-packages/' is the directory of independent +packages for XEmacs. + + Under XEmacs-21, you can uncompress and extract the tarball by + + M-x package-admin-add-binary-package <RET> DIR/x-symbol-pkg.tar.gz + + Then, `XEMACS/' is the default directory of buffer `*Package +Output*' (use `C-x C-f' in that buffer to see it). It might be +`/usr/local/lib/xemacs/xemacs-packages/' (the first element in variable +`late-packages'). + + Under XEmacs-20, `XEMACS/' might be +`/usr/local/lib/xemacs-VERSION/'. Here, you have to uncompress and +extract the tarball as described in *Note Installing Files::. You also +have to load the autoload file explicitly by putting the following line +into file `site-start.el': + + (load "XEMACS/lisp/x-symbol/auto-autoloads") + + I would appreciate if you would set the following variables: + +`x-symbol-installer-address' + Please set this variable to your email address to catch problems + which could be solved locally. In your private `~/.emacs', you + might want to set this variable to `nil'. + +`x-symbol-package-url' + If you have a local copy of the web pages (*note Installing + Manual::.), set this variable to the corresponding URL. + + +File: x-symbol.info, Node: Installing Lisp, Next: Installing Image Converter, Prev: System-wide Installation, Up: Installation + +Make XEmacs Initialize X-Symbol During Startup +============================================== + + Put the following into your `~/.emacs' (or `~/.xemacs/init.el'): + + (x-symbol-initialize) + + Basically, that's it! If your XEmacs runs on a different machine, +check *Note Installing Fonts::. + + If you get a warning about X-Symbol not being able to deduce a +default encoding (or about limited support with XEmacs under Windows or +a character terminal, *Note Requirements::), set the default coding +(*note Default Coding::.) by putting the following in front of the line +above: + + (setq x-symbol-default-coding 'iso-8859-1) + + When running Emacs under a character terminal, you might need to use +the following (with or without X-Symbol): + + (unless window-system (standard-display-european 1)) + + If your character terminal does not support Latin characters, there +is no reason to use package X-Symbol. In this case, use the following +instead: + + (when window-system (x-symbol-initialize)) + + The initialization can be controlled by the following variable: + +`x-symbol-initialize' + By default, package X-Symbol does a full initialization. This + includes an integration with some packages, see also *Note Package + Integration::. + + If you use a B/W monitor and XEmacs/no-Mule, it might be necessary to +remove the font properties of any face which is used on regions with +X-Symbol characters: `isearch', `highlight', `primary-selection', +`secondary-selection', `paren-match', `paren-mismatch', +`paren-blink-off', `underline'. I.e., for each FACE, use: + + (remove-specifier (get (get-face 'FACE) 'font)) + + +File: x-symbol.info, Node: Installing Image Converter, Next: Package Integration, Prev: Installing Lisp, Up: Installation + +Installing the Image Converter from ImageMagick +=============================================== + + Program `convert' from ImageMagick is used to display images at the +end of image insertion commands. The images show a scaled-down version +of the included image files. + + While the installation of `convert' is optional, you get a warning +if `convert' is not found on your system or if there is no image format +supported by both `convert' and Emacs. Set variable +`x-symbol-image-converter' to `nil' if you don't want to get the +warning. + + On Unix, `convert' must be in your `$PATH'. On Windows, it is +assumed to be found at `C:\ImageMagick\convert'. If this is not the +case, you have to customize the variable +`x-symbol-image-convert-program'. + + Check `http://www.imagemagick.org/' for the installation +instructions. Run `convert -h' and `convert -list Format' (in newer +versions of ImageMagick) in your shell to check whether the +installation of ImageMagick was successful. If you have problems, check +the ImageMagick web page for FAQs and mailing lists. + + If you do not have a truecolor device (i.e., just 256 colors), +package X-Symbol uses `convert' with a colormap by default (*note Image +Conversion::.). You might create and use your own colormap instead. It +should be tuned to include the colors you use in Emacs anyway, i.e., the +face colors. + + +File: x-symbol.info, Node: Package Integration, Next: Installing Fonts, Prev: Installing Image Converter, Up: Installation + +Package Integration +=================== + + You might skip this section when trying package X-Symbol the first +time. Nevertheless, I strongly recommend to read this section if you +have customized your Emacs more or less heavily or if you get some +problems. + + Some features of X-Symbol work by hooking itself into existing +functions of Emacs or related packages via predefined hooks. A +potential problem arises if your customization or other packages use +the same hooks, or if other packages assume these hooks not to be used, +e.g., some packages assume the buffer contents to contain the same +characters as the corresponding file. + + This section lists some special adaptation for other packages +(everything is fine if you do not use these packages). It also lists +potential problems in combination with other packages. If you discover +some problems in combination with other packages, please let me know. + +* Menu: + +* LaTeX Packages:: Packages used in LaTeX buffers. +* Syntax Hiliting Packages:: Package `font-lock' and support modes. +* File IO Packages:: Compression, encryption, remote files, etc. +* Miscellaneous Packages:: Other packages. + + +File: x-symbol.info, Node: LaTeX Packages, Next: Syntax Hiliting Packages, Prev: Package Integration, Up: Package Integration + +LaTeX Packages +-------------- + + Objectives: relate positions in buffer to positions in file, do +conversion in master/slave buffers, preserve highlighting, improve input +methods and other things. + +`auctex' + Use Version 9.9c or higher, which includes `texmathp'. There is + some special X-Symbol adaptation for AucTeX: + + - X-Symbol supports AucTeX's multifile documents: it respects + the variable `TeX-master' when searching for the file encoding + (*note File Coding::.) and when converting image files with + relative names (*note Image Display::.). + + - X-Symbol supports AucTeX's region commands: it ensures that + characters in `_region_.tex' buffer are converted according + to the parent buffer. Initialization changes + `TeX-region-hook'. Requires AucTeX, v9.8a or higher. + + - X-Symbol's input method Electric (*note Input Method + Electric::.) with token language `tex' uses package + `texmathp'. + + - AucTeX's math mode commands also inserts X-Symbol characters + (*note Mathematics: (auctex)Mathematics.). Initialization + sets `LaTeX-math-insert-function'. Requires AucTeX, v9.8a or + higher. + + - If TeX displays an error message, it also displays the + context of the error position. AucTeX uses the context to + set point to this position when `M-x TeX-next-error' is + invoked. The former context are characters in the file, the + latter characters in the buffer, X-Symbol provides the + translation. Initialization changes + `TeX-translate-location-hook'. + +`bib-cite' + Use Version 3.0 or higher. Initialization of package X-Symbol + changes the installation of package bib-cite to make X-Symbol's + decoding not overwrite `bib-cite's highlighting of `\cite' and + friends. + +`preview-latex' + TeX's error positions are also used by package `preview-latex', + which was clever enough to reuse the above mentioned hook of + AucTeX. Unfortunately, that hook is ... and does not allow a fast + translation of error positions, so `preview-latex' allows to + provide better variants of functions in that hook. X-Symbol's + variant is `x-symbol-tex-preview-locations'. + +`reftex' + Use Version 3.26 or higher. For a workaround for some minor + annoyances with the combination RefTeX/X-Symbol/Multifile + Document, see *Note Problems and Work-arounds: (reftex)Problems + and Work-arounds. By default, the initialization of package + X-Symbol makes RefTeX's label creation use the nicer Asciification + of package X-Symbol (*note Ascii Representation::.) by setting + `reftex-translate-to-ascii-function'. + +`whizzytex' + Use the newest. + + +File: x-symbol.info, Node: Syntax Hiliting Packages, Next: File IO Packages, Prev: LaTeX Packages, Up: Package Integration + +Syntax Highlighting Packages (`font-lock' and add-ons) +------------------------------------------------------ + + Objectives: start highlighting after conversion. Highlighting is +needed for super- and subscripts and when using XEmacs without Mule +support. + +`fast-lock' + I recommend to use package `lazy-shot' instead. By default, the + initialization of package X-Symbol sets `fast-lock-save-faces' to + `nil' to make package `fast-lock' work with X-Symbol. + +`font-latex' + I suggest to set `font-lock-maximum-decoration' to value `t', 2 or + higher if you do not want to use super- and subscripts in arguments + of `\label' and friends. *Note FAQ Stupid Subscripts::. + +`font-lock' + Is required by this package (*note Role of font-lock::.). I + strongly recommend *not* to turn on font-lock in *any* mode hook, + set `font-lock-auto-fontify' to `t' instead (this is the default, + anyway). See also `lazy-shot'. + + If you turn on font-lock in a mode-hook, visiting a file would + become slower, since X-Symbol mode is usually turned on *after* the + functions in the mode hook have been run, i.e., the fontification + is getting useless if the tokens are automatically decoded. + +`lazy-lock' + From XEmacs-20.3 on, the successor is called `lazy-shot'. + +`lazy-shot' + Is strongly recommended. + + +File: x-symbol.info, Node: File IO Packages, Next: Miscellaneous Packages, Prev: Syntax Hiliting Packages, Up: Package Integration + +File I/O Packages +----------------- + + Issue: compression, encryption and so on can be seen as some kind of +conversion. When doing multiple conversion, the sequence matters. + +`ange-ftp' + See also `efs' and `jka-compr'. + +`comint' + The default installation makes `comint's in-/output use X-Symbol's + conversion function. If you set variable `comint-input-sender', + set it before initializing package X-Symbol. + +`crypt' +`crypt++' + I recommend to use package `jka-compr' instead. *Note Spurious + Encodings::. *Note No Encoding::. If you use `crypt' or + `crypt++' and the character `alpha' looks like `\233a' after + `save-buffer', set this variable to `slowest'. *Note Open + Questions::. + +`efs' + XEmacs' version of `ange-ftp'. See also `jka-compr'. + +`iso-cvt' + There is no need to use it. Package X-Symbol already provides the + conversion between Latin-1 characters and "TeX macros". Package + X-Symbol does not provide the German and Spanish conversion tables, + though. + +`iso-sgml' + There is no need to use it. Package X-Symbol already provides the + conversion between Latin-1 characters and "SGML entities". *Note + Miscellaneous Packages::, package `psgml-html'. + +`jka-compr' + Can be used with package X-Symbol, preferred to `crypt'. The + following is absolutely necessary (with or without using package + X-Symbol, at least in older Emacsen): load `jka-compr' after + `efs'/`ange-ftp'! + +`latin-unity' + Can be used with package X-Symbol, functionality is already + provided by X-Symbol for Latin-{1,2,3,5,9} characters: remapping + (*note Char Aliases::.) and recoding (*note File Coding::.). Has + some safe-encoding mechanism, but the test comes currently too + early (*note Wishlist Emacs::.). + +`vc' + If you use package `crypt', `vc-next-action' and friends encode + characters to tokens. *Note Spurious Encodings::. + + +File: x-symbol.info, Node: Miscellaneous Packages, Prev: File IO Packages, Up: Package Integration + +Miscellaneous Packages +---------------------- + +`abbrev' + On XEmacs without Mule support, I recommend to set variable + `words-include-escapes' to `t'. *Note Nomule Problems::. + +`completion' + Should work with X-Symbol (earlier version of X-Symbol had + problems with input method token). + +`desktop' + XEmacs' version (an old one) does not save its `.emacs.desktop' + files with a coding system. Emacs' version save it with an + incorrect coding system. Thus, strings which contain X-Symbol's + private characters might get corrupted. See also package + `session' below. + +`flyspell' + Should work apart from the general problem of `ispell'. + +`func-menu' + Should work with X-Symbol. + +`ispell' + The package `ispell' assumes the buffer contents to be the same as + the file contents and does not provide any hook to fix this. This + should be fixed in `ispell', *Note Wishlist Emacs::. *Note FAQ + Spell Check::. + + Use a future version (hopefully v3.4). Includes special X-Symbol + initialization/handling and defines additional token languages. + *Note External Languages::. + +`psgml-html' + `psgml-html': Do not set `html-auto-sgml-entity-conversion' to + non-`nil'. *Note File IO Packages::, package `iso-sgml'. + +`session' + Use Version 1.5a or higher. If strings in this file should always + be read correctly, you should put `(x-symbol-init-input)' into your + `~/.emacs'; otherwise strings containing X-Symbol's private + characters read from the `~/.session' file might look funny. See + also package `desktop' above. + +`x-compose' + All characters from `x-compose' are also supported by package + X-Symbol. Thus, I recommend to use `<multi-key>' instead `C-=' + when running under XEmacs without Mule support. *Note Introducing + Input Methods::. + + +File: x-symbol.info, Node: Installing Fonts, Next: Installing Fonts Exceed, Prev: Package Integration, Up: Installation + +Installing Additional Fonts +=========================== + + You don't have to install X-Symbol fonts in usual circumstances (with +the binary distribution, Emacs runs on the same machine, you are happy +with the default fonts). + + If your Emacs runs on a different machine, please follow the steps 5 +and 6 below or read the next section. + + If you want to install additional fonts (since the binary +distribution contains only a limited selection of fonts and font +sizes), please follow the following sequence which worked for me (on +SunOS 5.4-5.6/Solaris). If you have to do s.th. (completely) different +on your system, please let me know--I will include your hints. + + If you are lost with the following instructions, use the standard +fonts from the binary distribution. (Sorry, I do not have to time to +answer general Unix font questions. Or to be more exact, I'm not an +expert in this area.... Nevertheless, if you have a clearer +explanation for the installation sequence below, please send me a patch +to `man/x-symbol/x-symbol.texi'.) + + 1. Find the font which you want to replace by checking fonts with the + X11 program `xfontsel' or `xfd'. The bad news is that there is no + general way to say which character belongs to which font. My only + goal was to use standard fonts whenever possible; the rest belong + the the xsymb1 font (which I have designed). If you want to use a + font as an alternative to another font, it must have the same + charset registry-encoding. + + 2. Find the `.bdf' files of your preferred fonts in your file system + or by Internet search engines like Google. The source + distribution of package X-Symbol contains `.bdf' files for + additional fonts sizes of all fonts except the xsymb1 font (*note + Wishlist Fonts::.). + + There are two categories of `.bdf' files. The first category + contains files for fonts which are already installed; the files are + needed to create and install the super- and subscript versions. + Copy these files to + `~/.xemacs/xemacs-packages/etc/x-symbol/origfonts/'. The second + category contains files for fonts which are not installed. Copy + these files to `~/.xemacs/xemacs-packages/etc/x-symbol/fonts/'. + + 3. In file `~/.xemacs/xemacs-packages/etc/x-symbol/fonts/Makefile', + change variables `ORIGBDFS' for the first category and `BDFS' for + the second category accordingly. + + 4. In directory `~/.xemacs/xemacs-packages/etc/x-symbol/fonts/', + execute `make mkdirs', and `make pcfs'. You need GNUs `make' and + `perl', Version 5 (or higher). + + 5. If your Emacs runs on a different machine or if you want to use the + fonts outside Emacs, too, add X-Symbol's fonts to your font path by + inserting the following in your `~/.xsession' (X11 startup file). + + xset +fp ~/.xemacs/xemacs-packages/etc/x-symbol/pcf/ + + For a system-wide installation, you might want to add this + directory to the system-wide font path instead. + + If your system doesn't have `xset', you should copy all `.pcf' + files (compiled fonts) from + `~/.xemacs/xemacs-packages/etc/x-symbol/pcf/' into directory + `/usr/lib/X11/fonts/75dpi/' (Slackware distribution) and run + `mkfontdir 75dpi' in that directory. + + 6. Your are on the safe side if you restart X11 after this. + + 7. Set the Emacs Lisp variables which define the fonts. *Note + Installing Fonts Lisp::. + + +File: x-symbol.info, Node: Installing Fonts Exceed, Next: Installing Fonts Lisp, Prev: Installing Fonts, Up: Installation + +Installing Fonts for Exceed (X-server on Windows) +================================================= + + If your X-server on Windows is Exceed and if you have configured +Exceed to use the "native window manager" for your Unix screens, you +must install the X-Symbol fonts on Windows. The following works with +Exceed 6.0 & NT 4.0 and Exceed 7.0 & Windows 2000: + + 1. In Unix, edit file + `~/.xemacs/xemacs-packages/etc/x-symbol/fonts/makesub' to limit + the shift for superscript to 3 points: + %supoffs = ('08',3, 10,3, 12,3, 14,3, 16,3, 18,3, 24,3); + + 2. Then, execute `make mkdirs', and `make gens' in + `~/.xemacs/xemacs-packages/etc/x-symbol/fonts/'. If you have + problems, please read the previous section. + + 3. In Exceed's configuration window, click on <Font> to open Window + `Font Settings'. In this window, click on <Select All>, then on + <Compile Fonts...>. + + 4. Copy X-Symbol's `bdf' files in + `~/.xemacs/xemacs-packages/etc/x-symbol/fonts/' and + `~/.xemacs/xemacs-packages/etc/x-symbol/genfonts/' to a Windows + directory and select this directory in the Exceed Window `Compile + Fonts'. Click on <Compile>. + + 5. In Window `Font Settings', click on <Font Database...>. In this + window, click on <Add...>. Enter the output directory from the + previous step as the `Font Directory' and `xsymb' as the `File + Name (*.fdb)'. Click on <OK>. + + 6. You might want to rearrange the sequence of Font DB files to let + files `75dpi' appear prior to files `100dpi', because X-Symbol's + fonts are designed for 75dpi. + + 7. In Window `Font Database', click on <Rebuild Database...> and then + on <OK>. + + Note: *Windows NT 4.0 will crash (bluescreen) if you use fonts +compiled by Exceed from the `pcf' files or if you missed step 1, i.e., +limiting the superscript shift!* With Exceed 7.0 & Windows 2000, there +is no crash, but these fonts cannot be displayed. + + If you use XEmacs with Exceed as your X-server on Windows, X-Symbol +cannot warn you about undefined fonts, because XEmacs in general cannot +recognizes in that case, whether a font exists. + + +File: x-symbol.info, Node: Installing Fonts Lisp, Next: Installing Manual, Prev: Installing Fonts Exceed, Up: Installation + +Lisp Coding when Using Other Fonts +================================== + + Package X-Symbol needs to know which fonts to use for the X-Symbol +characters and super- and subscripts. It also must interact with +package `font-lock' to display them (*note Role of font-lock::.). + + If you have installed additional fonts (*note Installing Fonts::.) +for use with package X-Symbol, you might have to change the following +variables: + +`x-symbol-latin1-fonts' +`x-symbol-latin2-fonts' +`x-symbol-latin3-fonts' +`x-symbol-latin5-fonts' +`x-symbol-latin9-fonts' +`x-symbol-xsymb0-fonts' +`x-symbol-xsymb1-fonts' + The value of each variable consists of three elements: one for the + normal text, one for subscripts and one for the superscripts. Each + element is a list of fonts which are tried in order--the first + which exists on your system is used. + + If you change the values of one of these variables, do only + specify the same charset registry-encoding (e.g., + `adobe-fontspecific') as specified by the fonts in the default + value of this variable. + +`x-symbol-font-sizes' + Here you can specify the sizes for all fonts in the above mentioned + variables. The value consists of regular expressions matching font + names and numbers which replace all occurences of `%d' in the + names. + + E.g., if you prefer larger fonts, you might want to insert the +following into your `~/.emacs': + + (setq x-symbol-font-sizes + '(18 ("_su[bp]-" . 14) ("\\`-etl-" . 16))) + (setq x-symbol-xsymb0-fonts + '(("-adobe-symbol-medium-r-normal-*-*-%d0-*-*-*-*-adobe-fontspecific" + "-xsymb-xsymb0-medium-r-normal--%d-%d0-75-75-p-85-adobe-fontspecific") + ("-adobe-symbol_sub-medium-r-normal-*-*-%d0-*-*-*-*-adobe-fontspecific" + "-xsymb-xsymb0_sub-medium-r-normal--%d-%d0-75-75-p-74-adobe-fontspecific") + ("-adobe-symbol_sup-medium-r-normal-*-*-%d0-*-*-*-*-adobe-fontspecific" + "-xsymb-xsymb0_sup-medium-r-normal--%d-%d0-75-75-p-74-adobe-fontspecific"))) + + The first assignment changes the font sizes, the second makes +X-Symbol using the original Adobe symbol font instead of my minor +modification (appearance) of it. The xsymb1 font will be scaled, which +might not look nice (*note FAQ Font Size::.). + + You might want to change the following variables: + +`x-symbol-latin-force-use' + Package X-Symbol defines Latin characters even when the + corresponding fonts are missing (this can be changed by this + variable). Characters for the symbol fonts are only defined if + the corresponding fonts are available. + +`x-symbol-mule-change-default-face' + Package X-Symbol does not change the fonts of pre-defined Mule + charsets (this can be changed by this variable). Thus, the + variables from Section *Note Installing Fonts Lisp:: might have no + influence if Emacs already has defined fonts for the corresponding + charsets. + + +File: x-symbol.info, Node: Installing Manual, Next: Checking Installation, Prev: Installing Fonts Lisp, Up: Installation + +Installing Info, Postscript and HTML Files +========================================== + + To create the info files, execute `make info' in directory +`~/.xemacs/xemacs-packages/man/x-symbol/' of the distribution. It +requires `makeinfo', Version 1.68 or higher. This should not be +necessary if you use the binary distribution of package X-Symbol. + + If no entry for X-Symbol is automatically added to the info directory +listing, add the following line to `~/.xemacs/xemacs-packages/info/dir': + * X-Symbol:: Semi WYSIWYG for LaTeX, HTML and other "token languages" + + Optionally, you might want to create a printed document from the +TeXinfo file. Execute `make ps' in directory +`~/.xemacs/xemacs-packages/man/x-symbol/' of the distribution. It +requires `texi2dvi'. + + Optionally, you can create an online manual for a web browser by +executing `make html' in directory +`~/.xemacs/xemacs-packages/man/x-symbol/' of the distribution. It +requires `texi2html'. + + All formats of the manual are created by executing `make all'. + + +File: x-symbol.info, Node: Checking Installation, Prev: Installing Manual, Up: Installation + +Checking the Correct Installation of Package X-Symbol +===================================================== + + After having completed the installation, exit and restart Emacs. + + * Type `M-x show-message-log' to check whether you got problems so + far, e.g., whether errors occurred when loading a file. If you do, + identity and correct the offender. + + * Type `M-x x-symbol-grid' in buffer `*scratch*'. If you get the + Grid but if you see less characters than you see on the web page of + package X-Symbol, you have decided to use other fonts but failed to + install them correctly. This is also mentioned in buffer + `*Warnings*'. *Note Installing Fonts::. + + * Move your mouse pointer to any X-Symbol character in buffer + `*X-Symbol Grid (x-symbol charsym)*', press the right mouse button + and initialize successively all token languages. + + * Again, type `M-x show-message-log' to check whether you got + problems so far, e.g., whether errors occurred when loading a + file. If you do, identity and correct the offender. + + * If buffer `*Warnings*' does not exist in the buffer menu, + everything is fine. So is (for me as the author of package + X-Symbol), if `X-Symbol' is not mentioned there. If there is a + warning with `no valid image converter', you have forgotten to + install ImageMagick (*note Installing Image Converter::.). + + +File: x-symbol.info, Node: Concepts, Next: Input Methods, Prev: Installation, Up: Top + +Concepts of Package X-Symbol +**************************** + + This chapter describes the concepts of package X-Symbol. It contains +quite a few forward references to feature which are based on these +concepts, such as *Note Input Methods:: and *Note Features::. + +* Menu: + +* Token Language:: What does a X-Symbol character represent. +* Conversion:: Decoding tokens, encoding characters. +* Minor Mode:: How to control the behavior of X-Symbol. +* Poor Mans Mule:: Running X-Symbol under XEmacs/no-Mule. +* Role of font-lock:: Why does X-Symbol need `font-lock'. +* Char Group:: Character group and token classes. + + +File: x-symbol.info, Node: Token Language, Next: Conversion, Prev: Concepts, Up: Concepts + +Token Language +============== + + As mentioned in the overview, "X-Symbol Characters" in the buffer are +represented by "tokens" in the file. The correspondence between these +is determined by the "token language" which is in close relation to the +major mode of the current buffer. E.g., character `alpha' stands for +`\alpha' in LaTeX buffers. + + For details of predefined token languages "TeX macro" (`tex'), "SGML +entity" (`sgml'), "BibTeX macro" (`bib'), and "TeXinfo command" +(`texi'), see *Note Supported Languages::. + + The token language determines the conversion between X-Symbol +characters and tokens (*Note Conversion::), the input methods (*note +Input Methods::.), and various other features (*note Features::.). + + The token language is defined by the following buffer-local variable: + +`x-symbol-language' + Token language used in current buffer. You can set this variable + in the "local variables list" near the end of the file (*note File + Variables: (xemacs)File Variables.), e.g.: + + %% Local Variables: + %% x-symbol-language: tex + %% End: + + Package X-Symbol uses a reasonable value according to the major mode +and the file name of a buffer if the variable is not already +buffer-local. A valid token language is required to turn on X-Symbol +Minor mode, see *Note Minor Mode::. + + A token language must be "registered", if you want to use it. By +default, the above mentioned token languages are registered. + + +File: x-symbol.info, Node: Conversion, Next: Minor Mode, Prev: Token Language, Up: Concepts + +Conversion: Decoding and Encoding +================================= + + As mentioned, X-Symbol characters in the buffer are represented by +tokens in the file. Thus, we need some conversion from tokens to +characters, called "decoding", and some conversion from characters to +tokens, called "encoding". + + We have the additional problem that some characters are not only +represented by tokens, but also via some 8bit character encoding. + + Package X-Symbol supports the following 8bit character encodings: +Latin-1 (`iso-8859-1'), Latin-2 (`iso-8859-2'), Latin-3 (`iso-8859-3'), +Latin-5 (`iso-8859-9'), and Latin-9 (`iso-8859-15'). It currently +supports less encodings with XEmacs on Windows (*note Requirements::.). + +* Menu: + +* Default Coding:: Normal File and Default Encoding. +* File Coding:: Specific encoding of a file. +* Controlling 8bit Coding:: Do you want to store 8bit characters? +* Unique Decoding:: Restrict decoding to avoid normalization? +* Conversion Commands:: Interactive encoding and decoding. +* Copy with Conversion:: Copy & paste with conversion. +* Char Aliases:: Different charsets include the same chars. + + +File: x-symbol.info, Node: Default Coding, Next: File Coding, Prev: Conversion, Up: Conversion + +Normal File and Default Encoding +-------------------------------- + + As mentioned, some characters have a 8bit file encoding, and X-Symbol +needs to know which 8bit file encoding you use normally when visiting a +file and saving a buffer. + + With Mule support, Emacs/XEmacs can recognize the "normal file +encoding", also called a coding system (*note Recognize Coding: +(xemacs)Recognize Coding.). + + Without Mule support, XEmacs can usually only support 8bit +characters of one encoding; this encoding corresponds to the +charset/registry of your default font. Here, the "normal file +encoding" is the default encoding: + +`x-symbol-default-coding' + The default encoding. The value must be a symbol denoting one of + the supported encodings or `nil'. The variable must be set before + X-Symbol has been initialized. *Note Installing Lisp::. + + The "default encoding" is not only used to determine the normal file +encoding without Mule, but also for the following: + + * X-Symbol has its own mechanism to recognize a file encoding which + only works with a specified default encoding. *Note File Coding::. + + * The same character can be included in various Latin charsets and + X-Symbol needs to know which of the instances (which Emacs views as + different characters) to support. *Note Char Aliases::. + + * Without Mule support, the default encoding is also needed to decide + which characters have to be faked by 2 characters internally: + exactly the characters in those charsets which do not correspond + to the default encoding. *Note Poor Mans Mule::. + + To deduce the default value, X-Symbol inspects the Mule language +environment and the output of the shell command `locale', or to be more +exact: + + locale -ck code_set_name charmap + + Without Mule support, you get a warning if the command does not +exist on your system or lists an encoding which is not supported by +X-Symbol, such as some Asian encoding. Value `nil' is the same as +`iso-8859-1'. + + With Mule support, you get a warning if the command lists a supported +encoding which is different from the encoding deduced from the Mule +language environment. Value `nil' makes sure that X-Symbol file +encoding detection (*note File Coding::.) only works if Emacs has +detected the same encoding; it works like `iso-8859-1' otherwise. + + +File: x-symbol.info, Node: File Coding, Next: Controlling 8bit Coding, Prev: Default Coding, Up: Conversion + +File Coding of 8bit Characters +------------------------------ + + X-Symbol can use a different encoding for single buffers/files, even +if you use X-Symbol on XEmacs without Mule support. To do so, set the +following buffer-local variable: + +`x-symbol-coding' + 8bit character encoding in the file visited by the current buffer. + Value `nil' represents the normal file encoding (*note Default + Coding::.). + + With Mule support, any value other than `nil' is considered invalid + if the normal file encoding is neither the same as this value nor + the same as the default encoding. I.e., if your default encoding + is `nil', X-Symbol's file encoding detection never takes precedence + over Emacs' one, i.e., the normal file encoding. + + You can set this variable in the "local variables list" near the + end of the file (*note File Variables: (xemacs)File Variables.), + e.g.: + + <!-- Local Variables: --> + <!-- x-symbol-coding: iso-8859-2 --> + <!-- End: --> + + If the variable is not already buffer-local, a reasonable value is +deduced when turning on X-Symbol (*note Minor Mode::.) by searching for +some language dependent headers at the beginning of the file: + +`x-symbol-auto-coding-search-limit' + X-Symbol usually searches for something like + `\usepackage[...]{inputenc}' (*note TeX Macro::.) or `<meta ... + charset=...>' (*note SGML Entity::.) in the first 10000 characters. + + If you choose not to save a file containing 8bit characters (*note +Controlling 8bit Coding::.), the file encoding is still important, +since the file might contain 8bit characters when you visit it. + + If the file encoding is different to the normal file encoding, +X-Symbol performs the necessary recoding itself. "Recoding" changes a +character with code position POS in one charset to a character with the +same code position POS in another charset. If the normal file encoding +is different to the default encoding, X-Symbol also resolves character +aliases (*note Char Aliases::.). + + If you have specified an invalid file encoding (including an encoding +different to a non-default normal file encoding), we have the following +cases: + + * If the normal file encoding is unsupported (any file encoding is + invalid in this case) or if the normal file encoding is supported + and the file does not contain 8bit characters, we always encode + all X-Symbol character (*Note Controlling 8bit Coding::). The + modeline includes `-i' to represent the file encoding (*note Minor + Mode::.), except if the default encoding is `nil', the normal file + encoding is unsupported, and the variable `x-symbol-coding' is not + specified. + + * If the normal file encoding is supported and the file contains at + least one 8bit character, X-Symbol does not touch 8bit characters + and never produces them, neither via decoding (*note Unique + Decoding::.) nor via input methods. The modeline includes `-err' + to represent the file encoding (*note Minor Mode::.). + + We end with a little example: if your normal file encoding and +default encoding is Latin-1, and you visit a file with +`\usepackage[latin9]{inputenc}' producing some document containing the +Euro sign, you see the Euro character in Emacs when X-Symbol is +enabled, but you see the currency character without X-Symbol. + + +File: x-symbol.info, Node: Controlling 8bit Coding, Next: Unique Decoding, Prev: File Coding, Up: Conversion + +Store or Encode 8bit Characters +------------------------------- + + You can specify that 8bit characters (according to the coding in your +file, *Note File Coding::), are not encoded to tokens (when saving a +file), by setting the following buffer-local variable: + +`x-symbol-8bits' + Whether to store 8bit characters when saving the current buffer. + + You can set this variable in the "local variables list" near the + end of the file (*note File Variables: (xemacs)File Variables.), + e.g.: + + %% Local Variables: + %% x-symbol-8bits: t + %% End: + + If the variable is not already buffer-local, a reasonable value is +deduced when turning on X-Symbol (*note Minor Mode::.) by setting it the +the value of `x-symbol-coding', or searching in the file for 8bit +characters: + +`x-symbol-auto-8bit-search-limit' + If there is a 8bit character in the file when visiting it, + X-Symbol will also store 8bit characters when saving the buffer. + + If the file encoding is invalid (*note File Coding::.), we always +search for 8bit characters in the complete document and set +`x-symbol-8bits' accordingly. Then, a non-`nil' value also implies +unique decoding (*note Unique Decoding::.). + + While the variable `x-symbol-8bits' usually only influences the +encoding, it also influences the decoding if you choose to decode +uniquely (*note Unique Decoding::.). + + Setting variable `x-symbol-8bits' to `nil' does not necessarily mean +that the file will not contain 8bit characters: the characters might +have no token representation in the current token language (*note +TeXinfo Command::.), or they are glyphs for ununsed code points in the +Latin-3 charset. In both cases, it is unlikely that you have inserted +these invalid characters via X-Symbol's input methods (*note +Introducing Input Methods::.), you have probably copied them into the +current buffer. + + +File: x-symbol.info, Node: Unique Decoding, Next: Conversion Commands, Prev: Controlling 8bit Coding, Up: Conversion + +Unique Decoding +--------------- + + Token languages might define more than one token representing the +same character. When decoding and encoding these tokens, they will be +"normalized" to one form, the "canonical representation". E.g., with +language `tex', visiting a file with tokens `\neq' and `\ne' converts +both tokens to character `lessequal', saving the buffer stores the +character as token `\neq' in both occurrences. + + It can also happen that a file contains both a 8bit character and a +token which would be converted to exactly that character. When saving +the file, both characters are either not encoded, or both are encoded to +the same token. + + Normally, this is no problem. But if you redefine standard TeX +macros, it certainly could be the case (*note TeX Macro Problems::.)! +For this reason, package X-Symbol provides the following buffer-local +variable: + +`x-symbol-unique' + Whether to limit the decoding in such a way that no normalization + will happen. That means: only decode canonical tokens, and, if + `x-symbol-8bits' is non-`nil' (*note Controlling 8bit Coding::.), + do not decode tokens which would be decoded to 8bit characters + (according to the coding in your file, *Note File Coding::). + + You can set this variable in the "local variables list" near the + end of the file (*note File Variables: (xemacs)File Variables.), + e.g., together with a setting for `x-symbol-8bits': + + %% Local Variables: + %% x-symbol-8bits: t + %% x-symbol-unique: t + %% End: + + If the variable is not already buffer-local, a reasonable value is +deduced when turning on X-Symbol (*note Minor Mode::.): it will be set +to `t' if X-Symbol mode is not automatically turned on. + + If the file encoding is invalid (*note File Coding::.) and +`x-symbol-8bits' is non-`nil' (*note Controlling 8bit Coding::.), +X-Symbol always uses unique decoding (*note Unique Decoding::.). + + +File: x-symbol.info, Node: Conversion Commands, Next: Copy with Conversion, Prev: Unique Decoding, Up: Conversion + +Conversion Commands +------------------- + + First the good news: most of the time, the necessary conversions are +performed automatically when you would expect them to be performed: + + * Turning X-Symbol minor mode (*note Minor Mode::.) on/off also + performs decoding/encoding. + + * Saving a buffer where X-Symbol is enabled will encode the + characters to tokens in the file (of course, you keep to have the + characters in the buffer). + + * Inserting a file into a buffer where X-Symbol is enabled will + decode the tokens in the inserted region. + + Nevertheless, you might want to perform the conversions explicitly in +some situations by using one of the following commands (also to be found +in the menu): + +`M-x x-symbol-decode-recode' + Recode all characters (if necessary) and decode all tokens to + characters. + +`M-x x-symbol-decode' + Decode all tokens to characters, do not recode characters. + +`M-x x-symbol-encode-recode' + Encode all characters in buffer to tokens or recode them. + +`M-x x-symbol-encode' + Encode all characters in buffer to tokens. No recoding will be + performed since 8bit characters will always be encoded if the file + coding is different to the default coding, since `x-symbol-8bits' + is relative to the file coding, *Note Controlling 8bit Coding::. + + All commands work on the region if it is active, or the (narrowed +part of the) buffer if no region is active. + + If the file coding is the same as the default coding, the variants +with and without recoding (*note File Coding::.) do the same. The +variants with recodings are the ones used when doing the conversion +automatically. The variants without recodings are the ones used when +using the special Copy & Paste commands presented in the next +subsection. + + +File: x-symbol.info, Node: Copy with Conversion, Next: Char Aliases, Prev: Conversion Commands, Up: Conversion + +Copy & Paste with Conversion +---------------------------- + + You probably use X-Symbol, because you want to produce some +non-ASCII characters in your final document, but you are not really +interested what kind of token you would need to write. (After all, you +do not use a hex editor to produce documents using some non-ASCII +encoding in the file, since you are not interested in the byte sequence +of individual characters.) + + Consequently, all editing operations really work on characters, not +on the corresponding tokens for the token language of the current +buffer. This includes copying and pasting: if you copy the character +`plusminus' from a LaTeX buffer to a HTML buffer, you really copy that +character and not the three characters of the TeX macro `\pm'. + + If you copy text to a buffer where X-Symbol is not enabled, like a +mail buffer, that is probably not what you want. Similarly, you would +probably like to see the X-Symbol characters for tokens in a text which +you have copied from such a buffer. Therefore, X-Symbol provides the +following commands (also to be found in the menu): + +`M-x x-symbol-copy-region-encoded' + Save the region in the `kill-ring' with all X-Symbol characters + encoded like by `M-x x-symbol-encode', i.e., without recoding. + +`M-x x-symbol-yank-decoded' + Reinsert the last text in the `kill-ring' and decode the inserted + text like `M-x x-symbol-decode', i.e., without recoding. + + You could get the same result with the usual copy & paste commands +and the conversion commands from the previous section (*note Conversion +Commands::.), but this would clutter the undo information of the current +buffer and would require an additional undo operation for the copy. + + +File: x-symbol.info, Node: Char Aliases, Prev: Copy with Conversion, Up: Conversion + +Character Aliases +----------------- + + A "character alias" or "char alias" is a character which is also a +character in a font with another registry, e.g., `adiaeresis' is +defined in all supported Latin fonts. Emacs distinguish between these +five characters. In package X-Symbol, one of them, with +`x-symbol-default-coding' (*note Default Coding::. if possible, is +supported by the input methods, the other ones are char aliases to the +supported one. + + The reason is that it would be confusing for the user to choose among +different `adiaeresis'es and that there are neither different +`adiaeresis'es in Unicode nor in the token representations of languages +`tex' and `sgml'. + + 8bit characters in files with a file coding `x-symbol-coding' other +than `x-symbol-default-coding' are converted to the "normal" form. +E.g., if you have a Latin-1 font by default, the `adiaeresis' in a +Latin-2 encoded file is a Latin-1 `adiaeresis' in the buffer. When +saving the buffer, its is again the right 8bit character in the Latin-2 +encoded file. + + Thus, in normal cases, buffers do not have char aliases. In Emacs +with Mule support, this is only possible if you copy characters from +buffers with characters considered as char aliases by package X-Symbol, +e.g., from the Mule file `european.el'. In XEmacs without Mule support, +this is only possible if you use commands like `C-q 2 3 4'. + + If you have char aliases in the current buffer, you might want to use +(it is not really necessary, just when searching for characters): + +`M-x x-symbol-unalias' + Resolve all character aliases in buffer. If the region is active, + only resolve char aliases in the region. + + A single char alias before point can be resolved by command +`x-symbol-modify-key' and `x-symbol-rotate-key', see *Note Input Method +Context::. + + The XEmacs package `latin-unity' provides a command to "remap" +characters to one character set (if possible). X-Symbol's unaliasing +can be seen as remap operations to a fixed sequence of character sets. + + +File: x-symbol.info, Node: Minor Mode, Next: Poor Mans Mule, Prev: Conversion, Up: Concepts + +Minor Mode +========== + + X-Symbol is a minor mode (*note Minor Modes: (xemacs)Minor Modes.) +which enables the features mentioned in this manual: + + * X-Symbol mode is required to do the conversions. Turning the + minor mode on/off also includes decoding/encoding (*note + Conversion Commands::.). + + * X-Symbol mode provides the minor mode menu which includes: various + commands, commands to insert characters (*note Input Method + Menu::.), and entries to change some global and buffer-local + variables mentioned in this manual. + + * X-Symbol mode is required for most input methods (*note Input + Methods::.) and other features (*note Features::.). + + With the default installation, X-Symbol mode is automatically turned +on when it is appropriate to do so (see below for details). You can +control it for individually by the following command: + +`M-x x-symbol-mode' + Toggle X-Symbol mode. If provided with a prefix argument, turn + X-Symbol mode on if the numeric value of the argument is positive, + else turn it off. If no token language can be deduced, ask for a + token language; if provided with a non-numeric prefix argument + (`C-u M-x x-symbol-mode'), always ask. + + By default, X-Symbol mode is disabled in special major-modes + visiting a file, e.g., `vm-mode' (*note FAQ News and Mail::.). + Use a prefix argument to be asked whether to turn in on anyway. + + Turning X-Symbol mode on requires that you have a valid token +language for the current buffer. Since turning X-Symbol mode on also +decodes tokens, it is also useful to set the variables which control the +conversion (*note Conversion::.). + + Since people usually do not want to write some Emacs Lisp functions +to do some customizations, X-Symbol provides the following variables +which induce X-Symbol to set the necessary buffer-local variables when +X-Symbol is turned on: + +`x-symbol-auto-style-alist' + You can use the major mode and/or the name of the buffer or visited + file, and specific functions to set the following variables (if not + already buffer-local): + + - `x-symbol-token-language' (*note Token Language::.), + indicated in the modeline, e.g. `tex', + + - `x-symbol-mode', i.e., whether it is appropriate to turn on + X-Symbol mode automatically, + + - `x-symbol-coding' (*note File Coding::.), indicated in the + modeline if different from the default coding, e.g. `-l2' for + Latin-2, + + - `x-symbol-8bits' (*note Controlling 8bit Coding::.), + indicated in the modeline by `8', + + - `x-symbol-unique' (*note Unique Decoding::.), indicated in + the modeline by `*', + + - `x-symbol-subscripts' (*note Super and Subscripts::.), + indicated in the modeline by `s', + + - `x-symbol-image' (*note Images::.), indicated in the modeline + by `i', + +`x-symbol-LANG-modes' + Major modes which use token language LANG by default. *Note + Supported Languages::. + +`x-symbol-LANG-auto-style' + Default values for the above mentioned variables `x-symbol-mode', + `x-symbol-coding', `x-symbol-8bits', `x-symbol-unique', + `x-symbol-subscripts', and `x-symbol-image' if not already + buffer-local. + +`x-symbol-auto-mode-suffixes' + Regular expression matching file suffixes to be ignored when + checking file names for the derivation above, e.g., extension + `.orig'. + +`x-symbol-modeline-state-list' + This variable controls the modeline appearance just mentioned. + + The menu might also include individual entries for a token + language (*note TeX Macro Basics::.): + +`x-symbol-LANG-extra-menu-items' + Extra menu items for each token language LANG (*note TeX Macro + Basics::.). + + +File: x-symbol.info, Node: Poor Mans Mule, Next: Role of font-lock, Prev: Minor Mode, Up: Concepts + +Poor Man's Mule: Running Under XEmacs/no-Mule +============================================= + + Using XEmacs/no-Mule normally means that you are restricted to use +not more than 256 different characters in your documents. + + Package X-Symbol provides a lot more characters which can also be +used with XEmacs/no-Mule. Internally, all X-Symbol characters except +the ones of your default font (*note Default Coding::.) are represented +by two characters, see *Note Char Representation::. + + This can lead to a lot of problems, which are resolved by the +following methods (some annoyances remain, *note Nomule Problems::.) +when X-Symbol mode is turned on (*note Minor Mode::.): + + * After each editing command, i.e., point movement, deletion of text + and insertion of text, package X-Symbol checks whether just one of + the two internal characters of an X-Symbol character has been + affected. + + * Package `font-lock' is used to display these two-character + sequences with the correct fonts. The potential problem lies in + the set-up of the corresponding font-lock keywords, see *Note Role + of font-lock::. + + `x-symbol-nomule-fontify-cstrings' + Alternatively to enabling `font-lock', you can run this + functions in buffers having the special two-character + sequences. With the default installation, this function is + run in the selection buffers of package `reftex'. + + +File: x-symbol.info, Node: Role of font-lock, Next: Char Group, Prev: Poor Mans Mule, Up: Concepts + +The Role of `font-lock' +======================= + + Package X-Symbol uses package `font-lock' to display super- and +subscripts (*note Super and Subscripts::.) and to display its special +characters under XEmacs/no-Mule (*note Poor Mans Mule::.). Thus, you +should enable `font-lock' in buffers where you want to use X-Symbol (it +is by default). *Note Syntax Hiliting Packages::. + + When X-Symbol mode is turned on, it automatically adds the necessary +font-lock keywords to the buffer-local value of `font-lock-keywords' +and all font-lock keywords which are commonly used with the current +token language. + + Setting all font-lock keywords is important since `font-lock' might +not yet been turned on or since you might want to change `font-lock's +decoration of the current buffer after X-Symbol has been turned on. + + Please note that switching the mode by typing `M-x latex-mode' *does +not set* the LaTeX's font-lock keywords! They are set at the end of +`C-x C-f'. If you switch the mode, turn on `font-lock' by yourself. + + Independently from package X-Symbol, the following command might be +useful in some situations: + +`M-x x-symbol-fontify' + Refontify buffer. + + +File: x-symbol.info, Node: Char Group, Prev: Role of font-lock, Up: Concepts + +Character Group and Token Classes +================================= + + Each X-Symbol character belongs to a "character group", e.g., +`natnums' belongs to `setsymbol'. A character group should consists of +similar characters where "similar" means similar meaning, not similar +appearance. Two characters which have nearly the same appearance, +should be in the same group, though. The group determines: + + * The Grid and submenu header under which the character can be found + (*note Input Method Grid::., *Note Input Method Menu::). + + * The default bindings of characters (*note Input Method + Keyboard::.) of some groups. + + * Whether to show the context info for a character (*note Info::.). + + * The default ASCII representation of a character (*note Ascii + Representation::.). + + * When using Emacs/XEmacs with Mule support, the syntax of a + character (*note Syntax: (xemacs)Syntax.). + + The character group is independent from any token language, but is +probably somewhat related to some of its "token classes". For each +token language, each character is assigned to a list of token classes, +which can be used for the following: + + * Information in the echo area (*note Info::.), it could inform + users to include a specific LaTeX package when they want to use + that character in the document. + + * Using a "coloring scheme" when displaying the characters in the + echo area (*note Info::.) or the Grid of characters (*note Input + Method Grid::.), useful for characters which can just be used in a + specific context, like TeX's math-mode characters. + + * Restricting the "electricity" of input method Electric (*note + Input Method Electric::.), useful to disable this input methods + for TeX's math-mode characters if we are in text-mode. + + The token classes for individual token languages are explained in the +corresponding sections of chapter *Note Supported Languages::: + +`x-symbol-LANG-header-groups-alist' + The Grid and Menu headers for each token language LANG. + +`x-symbol-LANG-class-alist' + Strings for the character info in the echo area for each token + language LANG. + +`x-symbol-LANG-class-face-alist' + The coloring scheme for each token language LANG. + + +File: x-symbol.info, Node: Input Methods, Next: Features, Prev: Concepts, Up: Top + +X-Symbol's Input Methods +************************ + + An X-Symbol "input method" is a way, provided by package X-Symbol, +to insert a X-Symbol character (not in the sense of Mule's "input +methods"). For a short overview with screenshots, see the +web pages of X-Symbol (http://x-symbol.sourceforge.net/details.html). + + Input methods Token and Electric change the normal way to insert +characters a bit. Therefore, they require X-Symbol mode to be turned on +and can be turned off explicitly. The other input methods are provided +with additional commands and key prefixes, they can also be used in +buffers where X-Symbol mode is turned off. + + With AucTeX, Version 9.8a or higher, its math mode commands also +inserts X-Symbol characters (*note Mathematics: (auctex)Mathematics.). + +* Menu: + +* Introducing Input Methods:: Common behavior of all input methods. +* Input Method Token:: Replace token by character. +* Input Method Read Token:: Minibuffer input with completion. +* Input Method Menu:: Select a menu item. +* Input Method Grid:: Choose highlighted character. +* Input Method Keyboard:: Compose a key sequence. +* Input Method Context:: Replace character sequence. +* Input Method Electric:: Automatically replace character sequence. +* Input Method Quail:: A Mule input method "x-symbol". +* Customizing Input Method:: How to customize the input methods. + + +File: x-symbol.info, Node: Introducing Input Methods, Next: Input Method Token, Prev: Input Methods, Up: Input Methods + +Common Behavior of All Input Methods +==================================== + + Input methods normally just inserts "valid characters" which are +those characters which have a useful representation in the file: + +`x-symbol-valid-charsym-function' + When X-Symbol is turned off, a character is valid if it is an 8bit + character according to the value of `x-symbol-default-coding'. + + When X-Symbol is turned on, a character is valid if the characters + could be encoded to a token in language `x-symbol-language' (*note + Token Language::.). + + If a buffer is read-only (*note Misc Buffer: (xemacs)Misc Buffer.), +most input methods push the character to insert onto the kill ring +instead. Typing `C-y' lets you then insert the character (*note +Yanking: (xemacs)Yanking.). + + The input methods Keyboard, Menu and Grid (the character selection +with `<button2>') have the same interpretation of the prefix argument: + + * With prefix argument `0', do not insert anything, just barf, if the + character is not valid. + + * With a positive prefix argument, insert a character that many + times. Barf, if the character is not valid. + + * With a negative prefix argument, insert a character as many times + as specified by the absolute value of the prefix argument. A + character is also inserted if it is not valid. + + * With one or more `C-u's with no digits, insert the token of a + language to choose, including "x-symbol charsym" (*note Pseudo + Language::.). + + Many input commands of package X-Symbol uses the same key prefix in +its default binding: + +`x-symbol-compose-key' + By default, `C-=' is used as the key prefix. Under XEmacs/no-Mule, + you might want to use `<multi-key>' instead: + + (unless (featurep 'mule) (setq x-symbol-compose-key '(multi-key))) + +`x-symbol-auto-key-autoload' + Set this to `nil', if you do not want that pressing `C-=' + automatically initializes the input methods. + + +File: x-symbol.info, Node: Input Method Token, Next: Input Method Read Token, Prev: Introducing Input Methods, Up: Input Methods + +Input Method Token: Replace Token by Character +============================================== + + If X-Symbol mode is on, input method "Token" automatically replaces +the token by the corresponding character when inserting the next +character following the token (in some token languages you need the next +character to decide whether the token is completed) if it is valid. + + The token will be replaced only if the next character has been +inserted without prefix argument or with prefix argument 0 (`C-u 0'), +the latter will therefore just induce the replacement. + + Please note that the token is really replaced by the characters, it +is not just `font-lock' which highlights the token to look like a +character. + + You might want to press `C-/' or `C-x u' to undo the replacement. +Input method Token requires X-Symbol mode to be enabled, it can be +disabled (and re-enabled) by setting the following variable: + +`x-symbol-token-input' + A boolean which can also be changed via the X-Symbol menu. + + Individual token language might slightly change the way input method +Token works exactly; from the predefined language, it is just `tex' +(*note TeX Macro::.). + + +File: x-symbol.info, Node: Input Method Read Token, Next: Input Method Menu, Prev: Input Method Token, Up: Input Methods + +Input Method Read Token: Minibuffer Completion +============================================== + + You can insert a character by reading the corresponding token in the +minibuffer. You are offered completion over the known tokens (*note +Completion: (xemacs)Completion.). + +`M-x x-symbol-read-token-direct' +`C-= <TAB>' + Insert character by selecting a token in the current token language + (even if X-Symbol mode is turned off) or an "x-symbol charsym" + (*note Pseudo Language::.). + +`M-x x-symbol-read-token' +`C-= <RET>' + Insert character by first selecting the token language and then a + token in that language. + + Input method Read Token also works if X-Symbol mode is not enabled. +It uses the common interpretation of prefix arguments for X-Symbol +insert commands, see *Note Introducing Input Methods::. + + +File: x-symbol.info, Node: Input Method Menu, Next: Input Method Grid, Prev: Input Method Read Token, Up: Input Methods + +Input Method Menu: Select a Menu Item +===================================== + + If X-Symbol mode is turned on, a "Menu" `X-Symbol' appears in the +menubar (*note Minor Mode::.). It also appears over non-highlighted +parts in the Grid and the Key Completions buffer (*note Input Method +Grid::.). The menu allows to change buffer-local and global variables +(some directly, some via package `custom'). It has a submenu with the +most interesting commands of package X-Symbol. + + The menu has submenus with commands to insert X-Symbol characters. +The submenu headers are the same as the headers in the Grid, see *Note +Char Group::. The appearance of the menu can be customized: + +`x-symbol-local-menu' + With a valid token language, the X-Symbol menu only contains + insertion commands for valid characters. The entries are + mentioned and sorted according to the token. Otherwise, the + X-Symbol menu contains all characters, the entries are mentioned + according to their charsym name. + +`x-symbol-menu-max-items' + The submenus do not contain more than 30 insertion commands for + X-Symbol characters. A submenu is split if necessarily. + + Input method Menu also works if X-Symbol mode is not enabled. It +uses the common interpretation of prefix arguments for X-Symbol insert +commands, see *Note Introducing Input Methods::. + + +File: x-symbol.info, Node: Input Method Grid, Next: Input Method Keyboard, Prev: Input Method Menu, Up: Input Methods + +Input Method Grid: Choose Highlighted Character +=============================================== + + Probably the easiest way to insert a character is by using a "Grid" +of characters: + +`M-x x-symbol-grid' +`C-= C-=' + Pops up a buffer displaying X-Symbol characters in a grid like + fashion. You can select a character with the mouse or `<RET>', + see below. + + In the Grid buffer and the buffer with the possible completions for +an X-Symbol key sequence (*note Input Method Keyboard::.), the following +commands are used if the mouse pointer is over an highlighted character. + +`<button2>' +`<RET>' +`<SPC>' + Insert highlighted character (or character under point, + respectively) into the buffer of `point' if `point' is not in the + same buffer as the highlighted character. Otherwise, insert the + character into the reference buffer, i.e., the buffer where you + have invoked the grid or the key completions from. (The reference + to the buffer is erased when an X-Symbol character is inserted + into any buffer.) + +`<button3>' + Pops up a highlight menu where you can select to insert the token + of various token languages instead the character itself. In order + not to load and initialize all additional token language you have + not yet used, the menu offers to do so explicitly for supported + (registered) token languages (*note Token Language::.). + + Over all non-highlighted parts, the following commands are used: + +`<button2>' + Scroll Grid or Key Completions buffer down in upper half of the + window and scroll up in the lower half of the window. + +`<button3>' + Pops up the X-Symbol menu, *Note Input Method Menu::). + + When using the keyboard to select a character, the following command +could be useful: + +`M-x x-symbol-list-info' +`?' +`h' +`i' + Display info for character under point in echo area. + +`M-x x-symbol-list-bury' +`q' + Bury list buffer while trying to use the old window configuration. + + You can control the grid by the following variables: + +`x-symbol-local-grid' + With a valid token language, the Grid only contains insertion + commands for valid characters and might use a coloring scheme. + Otherwise, it contains all characters. + +`x-symbol-temp-grid' + Inserting an X-Symbol character does not restore the window + configuration current before the invocation of the Grid. + +`x-symbol-grid-reuse' + Use old Grid when invoking command `x-symbol-grid', if this is + reasonably to do. If `x-symbol-grid' is called with a prefix + argument, always create new Grid. + +`x-symbol-grid-ignore-charsyms' + The Grid does not contain `nobreakspace'. + +`x-symbol-grid-tab-width' + The tab width in the Grid buffer should correspond the font in + `x-symbol-heading-face' which is also used as the default font in + the Grid buffer. + +`x-symbol-heading-strut-glyph' + Use larger interline spacing if a line in the Grid starts with a + header. + + The headers in the Grid are the same as the submenu headers, see +*Note Char Group::. Similar looking characters for one headers are +grouped together. *Note Input Method Context::. + + Input method Grid also works if X-Symbol mode is not enabled. It +uses the common interpretation of prefix arguments for X-Symbol insert +commands, see *Note Introducing Input Methods::. + + +File: x-symbol.info, Node: Input Method Keyboard, Next: Input Method Context, Prev: Input Method Grid, Up: Input Methods + +Input Method Keyboard: Compose Key Sequence +=========================================== + + Key sequences starting with `C-=' (*note Introducing Input +Methods::.) are used to insert X-Symbol characters, e.g., `C-= ~ >' +inserts `leadsto'. The Ascii sequence of the keys after `C-=' look +similar to the character which you are going to insert. It is the same +as the sequence which is replaced by input method Context, see *Note +Input Method Context::. + + If many characters are represented by the same Ascii sequence, the +binding is extended by `1', `2' and so on. If you do not know how to +continue your key sequence, the following commands might be useful: + +`M-x x-symbol-help' +`C-= ZERO-OR-MORE-KEYS <help>' +`C-= ZERO-OR-MORE-KEYS C-h' + Pops up a buffer displaying possible completions for the key + sequence `C-= ZERO-OR-MORE-KEYS'. You do not have to type the key + sequence again, i.e., `C-= ZERO-OR-MORE-KEYS' is also used for the + next input. + +`C-= ZERO-OR-MORE-KEYS <button1>' +`C-= ZERO-OR-MORE-KEYS <button2>' +`C-= ZERO-OR-MORE-KEYS <button3>' + Use the normal bindings of `<button1>', `<button2>' or + `<button3>', respectively (*note Input Method Grid::.). The key + sequence is not used for the next input. + +`C-= ZERO-OR-MORE-KEYS M-<prior>' +`C-= ZERO-OR-MORE-KEYS M-<next>' +`C-= ZERO-OR-MORE-KEYS M-<home>' +`C-= ZERO-OR-MORE-KEYS M-<end>' + Execute the commands `scroll-other-window-down', + `scroll-other-window', `beginning-of-buffer-other-window' or + `end-of-buffer-other-window', respectively. You do not have to + type the key sequence again, i.e., `C-= ZERO-OR-MORE-KEYS' is also + used for the next input. + +`x-symbol-temp-help' + Inserting an X-Symbol character restores the window configuration + current before the invocation of the Grid. + +`x-symbol-map-default-keys-alist' + Defines the bindings mentioned above. + + Input method Keyboard also works if X-Symbol mode is not enabled. It +uses the common interpretation of prefix arguments for X-Symbol insert +commands, see *Note Introducing Input Methods::. + + +File: x-symbol.info, Node: Input Method Context, Next: Input Method Electric, Prev: Input Method Keyboard, Up: Input Methods + +Input Method Context: Replace Char Sequence +=========================================== + + The idea of the input method "Context" is to replace a sequence of +characters by a character which looks similar to the whole sequence. If +the sequence consists only of Ascii characters, it is also used for the +key bindings, see *Note Input Method Keyboard::. + + There will be some info in the echo area that the character sequence +before point can be replace via input method Context. The following +commands are provided: + +`M-x x-symbol-modify-key' +`C-,' +`C-= <left>' +`C-= <right>' + If character before point is an X-Symbol character, "modify" it to + an alternative character (if you do it often enough, you are back + at your first character). Otherwise replace sequence of + characters by a character which looks similar to the whole + sequence. + +`M-x x-symbol-rotate-key' +`C-.' +`C-= <up>' +`C-= <down>' + If character before point is an X-Symbol character, "rotate" its + "direction" (or change uppercase/lowercase). + + Both commands can also be used to resolve a character alias before +point, see *Note Char Aliases::. If the region is active, restrict +replacement to use that region since the input method Context only +considers the longest sequence of characters with a replacement. + + Input method Context can be customized by changing the following +variables: + +`x-symbol-rotate-prefix-alist' + If you provide a prefix argument to command `x-symbol-rotate-key', + you can specify the direction you want to have: it is according to + numerical keypads, e.g., with prefix argument `7' you specify the + direction "north-west". + +`x-symbol-rotate-suffix-char' + Command `x-symbol-rotate-key' is also used to "Greekify" the + previous character: typing `a C-.' is shorter than `a # C-,'. + +`x-symbol-context-ignore' + Constrains whether a context/charsym can be replaced. No + constraints by default. + +`x-symbol-context-init-ignore' + Contexts starting with a space cannot be replaced. This variable + must be set before X-Symbol has been initialized. + + +File: x-symbol.info, Node: Input Method Electric, Next: Input Method Quail, Prev: Input Method Context, Up: Input Methods + +Input Method Electric: Automatic Context +======================================== + + The idea of input method "Electric" is to have the input method +Context (*note Input Method Context::.) do its replacement +automatically. X-Symbol automatically replaces some character +sequences of input method Context by the X-Symbol character as soon as +the last character in the sequence of the sequence has been pressed. + + Input method Electric has nothing to do with the display of +super-/subscripts (*note Super and Subscripts::.). + + You might want to press `C-/' or `C-x u' to undo the replacement. +Input method Electric requires X-Symbol mode to be enabled, it can be +disabled (and re-enabled) by setting the following variable: + +`x-symbol-electric-input' + A boolean which can also be changed via the X-Symbol menu. + + To make input method Electric useful and not annoying, several +conditions must be met for X-Symbol to do the auto-replacement: + + * Not all contexts will be replaced automatically. E.g., while input + method Context allows both pre- and postfixes for accented + characters, `:' and `'' only act as prefixes, and ``' and `~' only + as postfixes for input method Electric, since these are the + combinations where those characters are quite likely not used + literally. + + * The character must be valid in the current token language, see + *Note Introducing Input Methods::. + + * All characters of the context have been typed without any other + command in between, e.g., `- >' inserts `arrowright', "- <left> + <right> > simply inserts `->'. + + * No prefix argument has been used for any character in the context. + + * The electric context must not be a suffix of a longer valid + context for another character. E.g., `' ' o' does not insert + `'`oacute'' because `''o' is the context for `ohungarumlaut' + (which cannot be inserted by input method Electric). + + * It should be "allowed" to change the context to the character via + input method Context. + + * Individual contexts/charsyms can be disabled by setting the + following variables: + + `x-symbol-electric-ignore' + The context should neither be `'s' (this would be annoying + when writing English), nor include a space. If you want to + disable input method Electric for all accented characters, use + + (setq x-symbol-electric-ignore + "[ \t]\\|[A-Za-z][~`]\\|[:'][A-Za-z]") + + `x-symbol-LANG-electric-ignore' + Individual contexts/charsyms can be disabled for each token + language LANG. + + +File: x-symbol.info, Node: Input Method Quail, Next: Customizing Input Method, Prev: Input Method Electric, Up: Input Methods + +Input Method Quail: a Mule Input Method +======================================= + + Another way to insert a characters is by using the Emacs/Mule +multilingual text input method "x-symbol" (*note Input Methods: +(xemacs)Input Methods.).. + + Again, the Ascii sequence used there is the same as the sequence +which is replaced by input method Context, see *Note Input Method +Context::. A one-letter key sequence is extended by <;>. + + If input method Quail is selected for a buffer, input method Electric +(*note Input Method Electric::.) is disabled in that buffer. + + +File: x-symbol.info, Node: Customizing Input Method, Prev: Input Method Quail, Up: Input Methods + +Customizing Input Methods +========================= + + You may safely define key bindings not using the `x-symbol-map' +(i.e., starting with `C-='). E.g., for `alpha' on `A-a' , use + + (global-set-key [(alt a)] 'x-symbol-INSERT-alpha) + + Please note that the command `x-symbol-INSERT-alpha' is not defined +before the main file (`x-symbol') in the package has been loaded (if +you really need it, function `autoload' is your friend). + + Other possibilities to customize the input methods are by setting the +following variables: + +`x-symbol-header-groups-alist' + Defines the groups whose characters appear after that header in + the Grid and in submenus with that header. *Note Char Group::. + Extra variables exists for the language dependent Grid and Menu. + +`x-symbol-group-input-alist' +`x-symbol-user-table' + These are variables which are used to compute the input + definitions. While this kind of indirection might seem + complicated to you (it is), it actually ensures consistency across + all input methods. *Note Defining Input Methods::. + + For example., if you prefer charsym `epsilon1' over `epsilon' + (influences input method , you might want to use: + + (setq x-symbol-user-table + '((epsilon1 t (greek1 "e" nil "epsilon") nil -3000))) + +`x-symbol-list-mode-hook' + Additional functions to execute after setting up the Grid and Key + Completions buffer. + +`x-symbol-after-init-input-hook' + You can change the input methods directly by functions in these + hooks. + + +File: x-symbol.info, Node: Features, Next: Supported Languages, Prev: Input Methods, Up: Top + +Features of Package X-Symbol +**************************** + + Package X-Symbol not only provides input methods for X-Symbol +characters, it also provides more features which support an easy and +comfortable preparation of documents. + +* Menu: + +* Super and Subscripts:: Use special fonts for super-/subscripts. +* Images:: Images after image insertion commands. +* Info:: Display information in echo area. +* Ascii Representation:: Derive label from a buffer contents. +* Package Information:: Invoke info system, use WWW browser. + + +File: x-symbol.info, Node: Super and Subscripts, Next: Images, Prev: Features, Up: Features + +Super- and Subscripts +===================== + + Package X-Symbol displays the characters inside super-/subscript +commands in a way to make them look like super-/subscripts. It also +marks the super-/subscript command itself as invisible, so you don't see +it on the screen. For example, the three characters `a^2' in the +buffer are *displayed* as an `a' and a raised, smaller `2'--the `^' is +still in the buffer. + + Therefore, the display of super- and subscripts has nothing to do +with Input Method Electric (*note Input Method Electric::.). + + Do not confuse the special Latin characters `twosuperior', +`threesuperior', `ordfeminine' and `masculine' with the characters `2', +`3', `a' and `o' when displayed as superscripts. You might notice that +the characters look a bit different, but to help you seeing the +difference, X-Symbol will display an info in the echo area (*note +Info::.) for the special Latin characters when point is before or after +the character in question. + + X-Symbol only displays the innermost super- and subscripts, since we +would need even more additional fonts otherwise. It is also restricted +to display single-line super- and subscripts. + + The display of super- and subscripts requires `font-lock' to be +enabled (*note Role of font-lock::.). + + Super- and subscripts are by default enabled if the they are defined +for the token language and it would be appropriate to turn on X-Symbol +automatically for the current buffer (*note Minor Mode::.). They can be +disabled (and re-enabled) by setting the following buffer-local +variable: + +`x-symbol-subscripts' + A boolean which can also be changed via the X-Symbol menu. + + As mentioned before, X-Symbol marks the super-/subscript command +itself as invisible, except when point is directly before, inside or +directly after this command. During the time where this this is the +case, X-Symbol makes the super-/subscript command reappear and +highlights it with pink. This feature can be disabled (and re-enabled) +by setting the following variables: + +`x-symbol-reveal-invisible' + A boolean which can also be changed via the X-Symbol menu. + +`x-symbol-revealed-face' + The face used for the super-/subscript command when revealed. + +`x-symbol-idle-delay' + Time in seconds of idle time before revealing invisible characters. + + Super-/subscript commands are `^'/`_' (*note TeX Macro::.) and +`<sup>'/`<sub>' (*note SGML Entity::.): + +`x-symbol-LANG-font-lock-keywords' + The super-/subscript `font-lock' keywords for each token language + LANG. + + +File: x-symbol.info, Node: Images, Next: Info, Prev: Super and Subscripts, Up: Features + +Images at the end of Image Insertion Commands +============================================= + + Package X-Symbol can display "images" at the end of image insertion +commands. They show thumbnails (scaled-down version of the image) for +the included image files (using `convert', *note Installing Image +Converter::.). Using the middle mouse button invokes the image editor +for the image under the mouse pointer. + +* Menu: + +* Image Display:: When to display images. +* Image Conversion:: Producing a scaled-down image. +* Image Caching:: Speeding up the image processing. +* Special Images:: Signaling specific situations. +* Image Editor:: Editing the original image file. + + +File: x-symbol.info, Node: Image Display, Next: Image Conversion, Prev: Images, Up: Images + +Display of Images +----------------- + + The display of images is by default enabled if the image commands are +defined for the token language and it would be appropriate to turn on +X-Symbol automatically for the current buffer (*note Minor Mode::.). It +can be disabled (and re-enabled) by setting the following buffer-local +variable: + +`x-symbol-image' + A boolean which can also be changed via the X-Symbol menu. + + Image commands are `\includegraphics' and others (*note TeX +Macro::.), and `<img>' (*note SGML Entity::.): + +`x-symbol-LANG-image-keywords' + The keywords (image commands & arguments) for each token language + LANG. + + File names in the image commands must be interpreted correctly. They +can be: + + - "absolute", start with `/' or `~', + + - "explicitly relative", start with `./' or `../', + + - "implicitly relative", assumed otherwise, e.g., `image.eps', or + + - special, like having some special URL prefix like `http:' or + `ftp:'. + + Relative file names can be relative to some "master directory" +(usually the current directory of the file) or to directories in some +"search path" (only used with token language `tex'): + +`x-symbol-LANG-master-directory' + The master directory for each token language LANG. + +`x-symbol-LANG-image-searchpath' + The image search path for each token language LANG. Defaults to + the current directory. + +`x-symbol-image-searchpath-follow-symlink' + Directories in the search path ending with `//' (double slash) are + recursive: all subdirectories not starting with a dot are also + included in the search path. If this variable has value `nil' (the + default), subdirectories which are symbolic links are not included. + + For details, see the section of the individual token languages +(*note Supported Languages::.). + + +File: x-symbol.info, Node: Image Conversion, Next: Image Caching, Prev: Image Display, Up: Images + +Image Conversion +---------------- + + The file mentioned inside the image insertion command is not used +directly to display the image after the command. The image might be too +big, it might use too many colors or the image format might not be +supported by Emacs. Therefore, it is converted to an "image cache +file", see *Note Image Caching::. + +`x-symbol-image-max-width' + The image is not wider than 120 points. + +`x-symbol-image-max-height' + The image is not higher than 80 points. + +`x-symbol-image-convert-colormap' + Colormap used in function `x-symbol-image-convert-colormap' below. + A colormap is a normal image whose colors are the only ones used + for producing other images. The distribution of package X-Symbol + includes two colormaps: `etc/colormap138.xpm' and + `etc/colormap66.xpm'. + +`x-symbol-image-colormap-allocation' + Package X-Symbol allocates the colors of the colormap at start-up + and prevents them to be de-allocated. + +`x-symbol-image-converter' + Program `convert' from ImageMagick is used to convert the images + (*note Installing Image Converter::.). Set this variable to `nil', + if you don't want to convert images. + + The following variables controls the invocation of the program + `convert' from ImageMagick: + + `x-symbol-image-convert-program' + The name of the program `convert', it is + `C:\\ImageMagick\\convert' when running on Windows and + `convert' otherwise. + + `x-symbol-image-convert-file-alist' + Program `convert' needs to be told that `FILE.pstex' is a + Postscript file. + + The following functions are possible values in + `x-symbol-image-converter': + + `x-symbol-image-start-convert-mono' + Produces monochrome images. Used if your device has less + than 32 colors. + + `x-symbol-image-start-convert-truecolor' + Produce images with original colors. Used if your device has + more than 767 colors. + + `x-symbol-image-start-convert-color' + Produce images with maximal four colors (just four because + different images might use a different sets of colors). Used + otherwise without a colormap. + + `x-symbol-image-start-convert-colormap' + Produce image with colors from the colormap. Used otherwise + with a colormap. + + `x-symbol-image-convert-mono-regexp' + Function `x-symbol-image-start-convert-colormap' just + produces monochrome images for temporary image cache + files (*note Image Caching::.) since `convert' is slower + when using a colormap. + + +File: x-symbol.info, Node: Image Caching, Next: Special Images, Prev: Image Conversion, Up: Images + +Image Caching +------------- + + Editing would be extremely slow, if an image cache file would be +produced every time an image insertion command has been recognized. +Therefore, package X-Symbol uses the following techniques: + + * It uses an asynchronous process to create the image cache file. + You can edit your file during the conversion. + + * It uses a "file cache": image cache file can be kept for future + Emacs sessions. + + * It uses a "memory cache": images from the most common file names + are cached in a buffer-local memory cache. The cached is + initialized when parsing the whole buffer for image keywords. + Rescan the buffer if you want to display the the images of new + image files by using the following command: + + `M-x x-symbol-image-parse-buffer' + Parse the buffer to recognize image insertion commands. + Usually, this is done automatically. + + File and memory caching can be controlled by the following variables: + +`x-symbol-image-update-cache' + The image cache is automatically updated if it does not exist yet + or if it is older than the corresponding image file. + +`x-symbol-image-cache-directories' + Cache files for images in your home directory are stored in + directory `~/.images/', e.g., image `~/d/img.eps', is cached in + `~/.images/d/img.png'. + + Images outside your home directory are just temporarily cached, or + not displayed at all if they cannot be stored in the memory cache. + + You could also specify that the cache files uses a relative + subdirectory, e.g., that `~/d/img.eps' is cached in + `~/d/.img/img.eps' or that the image is not displayed at all. + +`x-symbol-image-temp-name' + Temporary image files are stored in a temporary directory (`/tmp/') + having some unique name. They are not supported on Emacs. + +`x-symbol-image-use-remote' + Package X-Symbol only displays images which can be stored in the + memory cache. With value `t', it tries to find the image file + during editing (ignoring the search path for speed, though). + Editing lines with image files not in the memory cache would be + slow, since file accesses are necessary for every command. + + The memory cache only stored image file from the current directory or +some standard image directories like `figures/' (*note TeX Macro::.), +or `images/' or `pictures/' (*note SGML Entity::.). Otherwise, the +image file is considered similar to remote files: + +`x-symbol-LANG-image-cached-dirs' + The directories with images which are stored in the memory cache. + Can be separately defined for each token language LANG. + + +File: x-symbol.info, Node: Special Images, Next: Image Editor, Prev: Image Caching, Up: Images + +Special Images for Specific Situations +-------------------------------------- + + If package X-Symbol cannot display images representing the included +image files, it uses special images instead: + + * "Remote:" An Escher knot is displayed if the file is remote or if + the image cannot be cached in the memory cache, see *Note Image + Caching::. + + * "Junk": A recycle sign is displayed if there is no image converter + (*note Image Conversion::.), if it should not use a file cache or + if the file cache cannot be written. + + * "Locked:" A terminal with a lock is displayed if the image cache + file cannot be read or written. + + * "Design:" An ink pen is displayed if the image file does not exist. + + * "Create:" An hour glass is displayed used during the creation of + the image cache file, an old image cache is used instead if it + exists. + + * "Broken:" A tombstone is displayed if the creation of the image + cache file has failed. + + To customize the glyphs for the special images, use: + +`x-symbol-image-data-directory' + Directory of files for the special images. + +`x-symbol-image-special-glyphs' + File names of special images and their image format. + + +File: x-symbol.info, Node: Image Editor, Prev: Special Images, Up: Images + +Image Editor +------------ + + If you move the mouse pointer to an image insertion command or its +image, it is highlighted. + +`<button2>' + Start image editor for highlighted image. If the image is + searched in the searchpath (*note Image Caching::.), edit first + existing image file. If no image exists, open a new file in the + first directory of the searchpath. + +`<button3>' + Pop up the "image highlight menu". You can rescan the buffer for + image insertion commands (*note Image Display::.). + + It also displays all directories in the searchpath if the file + name is implicitly relative, or the current directory otherwise. + Selecting a directory starts the image editor in that directory + (relatively to that directory if the file name has a directory + part). + +`M-x x-symbol-image-editor' + Start image editor. Asks for the image file. + + You can control which editor to use: + +`x-symbol-image-editor-alist' + Normally, program `display' is used to edit the highlighted image + file. But for image names `FILE.eps', `FILE.ps' or `FILE.pstex', + program `xfig' is invoked with `FILE.fig'. It also uses a scale + method, e.g., with `img.80.eps', we edit `img.fig' (which should + be exported with scale=80%). + +`x-symbol-image-scale-method' + If a scale method is used for a file name and the file name without + extension ends with a dot and two digits, these three characters + are removed from the file name. + +`x-symbol-image-current-marker' + Directories with an existing image for the specified file name are + marked with an `*'. The first of these represents the file which + is used when pressing `<button2>'. + + +File: x-symbol.info, Node: Info, Next: Ascii Representation, Prev: Images, Up: Features + +Info in Echo Area +================= + + The echo area (*note Echo Area: (xemacs)Echo Area.) is used by +X-Symbol to give some information about the character around point, and +whether there is a context before point which can be replaced by input +method Context (*note Input Method Context::.). + + It will be controlled by the following variables (also to be found in +the menu): + +`x-symbol-character-info' + A three-value variable which controls whether to display some info + for the character after or around point. The info for the + character after point includes the character itself and the + following infos: + + - the token of the current language, eventually colored + according to some coloring scheme (*note Char Group::.), + + - infos using the token classes (*note Char Group::.), which + could inform users to include a specific LaTeX package when + they want to use that character in the document, + + - the codings in which the characters is considered to be a + 8bit character (*note File Coding::.), and + + - the key bindings (*note Input Method Keyboard::.). + +`x-symbol-context-info' + If X-Symbol mode is on and some conditions are met, display some + info for the character which would replace the context before + point when pressing `C-,' (*note Input Method Context::.). It can + be controlled by the following variables: + + `x-symbol-context-info-ignore' + The default value `x-symbol-default-context-info-ignore' + makes the following variables control whether to display the + context info. + + `x-symbol-context-info-threshold' + The context does not consist of a single character. + + `x-symbol-context-info-ignore-regexp' + The context does not solely consist of letters. + + `x-symbol-context-info-ignore-groups' + The context is not replaced by an accented character, see + *Note Char Group::. + +`x-symbol-idle-delay' + Time in seconds of idle time before showing the info. + + +File: x-symbol.info, Node: Ascii Representation, Next: Package Information, Prev: Info, Up: Features + +Ascii Representation of Strings +=============================== + + If you want to derive labels from a buffer contents (provided e.g., +by Emacs packages `reftex' or `bibtex'), you need a Ascii +representation of strings containing X-Symbol characters. This is +provided by the following function: + +`x-symbol-translate-to-ascii' + Takes a string and returns a string only consisting of Ascii + characters. + + `x-symbol-charsym-ascii-alist' + You might want to define the German way to Asciify accented + characters by: + (setq x-symbol-charsym-ascii-alist + '((adiaeresis . "ae") (Adiaeresis . "Ae") + (odiaeresis . "oe") (Odiaeresis . "Oe") + (udiaeresis . "ue") (Udiaeresis . "Ue"))) + + `x-symbol-charsym-ascii-groups' + By default, "Ascii"fying accented characters means removing + the accents. Other characters have built-in Ascii + representation, e.g, `sigma1' has the Ascii representation + `sigma'. + + +File: x-symbol.info, Node: Package Information, Prev: Ascii Representation, Up: Features + +X-Symbol Package Information +============================ + +`M-x x-symbol-package-info' + Read documentation for package X-Symbol in the info system. + +`M-x x-symbol-package-web' + Ask a WWW browser to load the URL of package X-Symbol. + +`M-x x-symbol-package-bug' + Use this command to contact the maintainer of package X-Symbol *in + any case*, e.g., for suggestions, bug and problem reports, see + *Note Bug Reports::. Use `C-u 9 M-x x-symbol-package-bug' for + patches (including corrections of this manual, which are strongly + appreciated) and for other messages. + +`x-symbol-installer-address' + E-mail address of the person who has installed package X-Symbol + system-wide (*note System-wide Installation::.). + +`x-symbol-package-url' + URL of package X-Symbol, used by `x-symbol-package-web'. + + +File: x-symbol.info, Node: Supported Languages, Next: X-Symbol Internals, Prev: Features, Up: Top + +Supported Token Languages +************************* + + The chapter describe the predefined token language. It also presents +the language specific behavior for *Note Concepts::, *Note Input +Methods::, and *Note Features::. + +* Menu: + +* Pseudo Language:: Token language "x-symbol charsym". +* TeX Macro:: Token language `tex'. +* SGML Entity:: Token language `sgml'. +* BibTeX Macro:: Token language `bib'. +* TeXinfo Command:: Token language `texi'. +* External Languages:: Languages defined in other Emacs Packages. + + +File: x-symbol.info, Node: Pseudo Language, Next: TeX Macro, Prev: Supported Languages, Up: Supported Languages + +Pseudo Token Language "x-symbol charsym" +======================================== + + If no (or an invalid) token language is set for a buffer, the info in +the echo area (*note Info::.) for a X-Symbol Character in the buffer (if +it exists) uses the name of its "charsym". In this manual, we actually +refer to X-Symbol characters by their charsym name, e.g., `alpha'. + + A charsym is a symbol which is used internally to represent a +X-Symbol character. Charsyms are used instead characters in all user +variables of package X-Symbol. + + The highlight menu of the Grid (*note Input Method Grid::.) also +offers to insert a charsym name. Charsyms can also be used for input +method Read Token, see *Note Input Method Read Token::. + + You cannot use this pseudo language to turn on the X-Symbol minor +mode (*note Minor Mode::.), you cannot decode charsyms to their +characters, and you cannot encode characters to charsyms. + + +File: x-symbol.info, Node: TeX Macro, Next: SGML Entity, Prev: Pseudo Language, Up: Supported Languages + +Token Language "TeX macro" (`tex') +================================== + + For buffers using the major mode `latex-mode', `tex-mode' or +`plain-tex-mode', we use token language "TeX macro" (`tex'). This +language provides the display of super-/subscripts and images. If the +buffer visits a file with extension `.tex', X-Symbol mode is +automatically turned on. + +* Menu: + +* TeX Macro Basics:: Basics of language "TeX macro". +* TeX Macro Features:: Super-/subscripts and images in LaTeX. +* TeX Macro Problems:: Problems with TeX macros. +* TeX Macro Conversion:: How the conversion of TeX macros works. +* TeX Macro Symbols:: Extra Symbols of Language "TeX Macro". + + +File: x-symbol.info, Node: TeX Macro Basics, Next: TeX Macro Features, Prev: TeX Macro, Up: TeX Macro + +Basics of Language "TeX macro" +------------------------------ + + The standard behavior can be controlled by the following variables: + +`x-symbol-tex-modes' +`x-symbol-tex-auto-style' + The variables known from *Note Minor Mode::. If the buffer visits + a file with extension `.tex', super-/subscripts and images are + displayed, otherwise unique decoding (*note Unique Decoding::.) + will be used. + +`x-symbol-tex-auto-coding-alist' + Used there to automatically deduce the specific encoding of the + file (*note File Coding::.) if the file visited by the buffer has + the extension `.tex'. It searches for one of the following two + strings in the current buffer, including the comment: + + \usepackage[ENCODING]{inputenc} + %& -translation-file=iENC + + where ENCODING should be one of `latin1', `latin2', `latin3', + `latin5', or `latin9', and ENC should be one of `l1' or `l2'. + 8bit characters are not encoded if the file if the search was + successful (*note Controlling 8bit Coding::.). + +`x-symbol-tex-coding-master' + If one of the above strings cannot be found in the current buffer, + and the current buffer has a buffer-local string value of + `TeX-master', also search in the file denoted by that value for + the strings. (Buffer-local variables will not be inherited.) + + The input methods and the character info in the echo area are +controlled by: + +`x-symbol-tex-header-groups-alist' + We use the standard Grid and Menu headers. + +`x-symbol-tex-extra-menu-items' + There is an extra menu item to remove the braces around text-mode + letters and other text-mode symbols. + +`x-symbol-tex-electric-ignore' +`x-symbol-tex-electric-ignore-regexp' + Input method Electric (*note Input Method Electric::.) is disabled + if the character is not of the correct TeX mode, i.e., it only + produces a math-mode character in a math area and a text-mode + character in a text area (this test requires package `texmathp', + *Note LaTeX Packages::). Postfix tilde is not electric, because + `~' produces a space in TeX. + +`x-symbol-tex-token-suppress-space' + Input method Token (*note Input Method Token::.) only converts a + token ending with a control word like `\i', if the character + following the token is no letter. If that token is a text-mode + token and a <SPC> has been entered without a prefix argument, the + <SPC> will only perform the replacement, it will not insert a + space, i.e., it will act like `C-u 0 <SPC>'. + +`x-symbol-tex-class-alist' +`x-symbol-tex-class-face-alist' + Various token classes (*note Char Group::.) are defined. They are + used to give some info (*note Info::.) about the characters + spacing behavior, which LaTeX packages are necessary to use the + character (*note TeX Macro Symbols::.), and about the conversion + (*note TeX Macro Conversion::.). X-Symbol uses blue for text-mode + only and purple for math-mode only characters in the Grid (*note + Input Method Grid::. and the character info. + + +File: x-symbol.info, Node: TeX Macro Features, Next: TeX Macro Problems, Prev: TeX Macro Basics, Up: TeX Macro + +Super-/Subscripts and Images in LaTeX +------------------------------------- + + The display of super- and subscripts (*note Super and Subscripts::.) +is controlled by: + +`x-symbol-tex-font-lock-limit-regexp' + The superscript command `^' and the subscript command `_' is + recognized. The argument can be provided with and without braces. + The argument should not span more than one line and should not + contain a super-/subscript command. + +`x-symbol-tex-font-lock-allowed-faces' + The characters `^' and `_' are not always commands (*note TeX + Macro Problems::.), e.g., in the argument of `\ref'. X-Symbol uses + the usual syntax highlighting keywords to decide whether to + recognize these characters as super-/subscript commands: they are + commands if they are not highlighted or highlighted with the usual + math-mode faces. + + This might lead to problems: *Note FAQ No Subscripts::, *Note FAQ + Stupid Subscripts::. Using `texmathp' (*note LaTeX Packages::.) + has even more problems: + + - The syntax highlighting (which is used for super-/subscripts) + would be much too slow. + + - With own LaTeX environments, you would need to customize + `texmathp'. + + - It is actually wrong: whether `^' and `_' are + super-/subscripts commands does not depend on whether we are + in TeX's math mode, it depends on its catcodes (which are + changed by commands like `\ref'). + + The display of images (*note Images::.) is controlled by: + +`x-symbol-tex-image-keywords' + The following commands are recognized. Extension EXT stands for + `eps' (which is the default extension for both versions of + `\includegraphics' if the extension is omitted there), `ps', + `gif', `png', `jpeg', `jpg', or `pdf'. Options OPTIONS can be + omitted with their surrounding brackets or preceding comma, + respectively. + + \input{FILE.pstex_t} + \includegraphics[OPTIONS][OPTIONS]{FILE.EXT} + \includegraphics*[OPTIONS][OPTIONS]{FILE.EXT} + \epsfig{file=FILE.EXT,OPTIONS} + \psfig{file=FILE.EXT,OPTIONS} + \epsfbox[OPTIONS]{FILE.EXT} + \epsffile[OPTIONS]{FILE.EXT} + +`x-symbol-tex-master-directory' + Relative file names (*note Image Display::., explicitly or + implicitly) are relative to the directory part of variable + `TeX-master' if it is buffer-local and a string. Otherwise, they + are relative to the directory of the current file. + +`x-symbol-tex-image-searchpath' + Files with implicitly relative names are meant to be searched in a + search path. It defaults to the list of directories specified by + the environment variable `TEXPICTS' or `TEXINPUTS' (*note TeX + environment variables: (kpathsea)TeX environment variables.), + extended by `./' if necessary. + + Each directory in this list is used to expand the file name. The + first expansion naming a readable file is used. Relative + directories in this list are expanded in the master directory + mentioned above. + + This mimics the standard behavior of TeX, omitting the "built-in" + directories of the search path (*note Path sources: (kpathsea)Path + sources.). + +`x-symbol-tex-image-cached-dirs' + The file name in the image command should not have a directory + part or the directory part should be `figures/' if the image + should be cached in the memory cache. + + +File: x-symbol.info, Node: TeX Macro Problems, Next: TeX Macro Conversion, Prev: TeX Macro Features, Up: TeX Macro + +Problems with TeX Macros +------------------------ + + Like with other token languages, the conversion between characters +and TeX macros induce the problem that we have two conflicting +requirements: we would like X-Symbol not to change the file when +visiting and saving a file, and we would like X-Symbol to use characters +for all corresponding macros. *Note Unique Decoding::. + + The additional problem with TeX macros is that there is no fixed and +simple definition of TeX macros, and many users have their personal TeX +style, while many users are probably not aware that the style also +influences TeX's typesetting: + + * The tokens in TeX are not ended by a dedicated character (like + SGML entities are ended by `;'). Instead, we need the next char + to decide whether a macro ends, which would be no problem if TeX + would have a character which has no meaning except separating + tokens (like space in most programming languages). Unfortunately, + this is not the case: after an "control word" (an all-letter + macro), a space has no meaning, but it does produce a space in the + output after characters and other macros, except in math mode. + + During decoding, a text-mode control word has to be replaced + either with its trailing spaces or not be replaced at all. Since + the number of spaces can vary and X-Symbol does not remember the + original TeX sequence of a character, X-Symbol would change the + file if it would use characters for all sequences. + + * During encoding, a space after a character in the buffer must + produce a space in the document output, since users normally do + not care whether the character is represented by a control word or + not. Let us assume that we (Bavarians) want to produce the output + `Mass Bier'. In the info file, you will probably not see any 8bit + characters (the sharp `s' is shown as `ss'). + + - Many people would use `Ma\ss\ Bier'. This is (almost ever) + fine in text mode, but a `\ ' in math mode is not ignored + (whereas the spaces after characters are). If we have text- + and math-mode control word, we have a problem, since + math-mode detection cannot work properly without TeX + processing. + + - Many people would use `Ma\ss{} Bier'. This has less problems + and is therefore used by X-Symbol. The `{}' at the end of + the control word is not used if the character is not followed + by a space, e.g., to produce `Strasse', we use `Stra\ss e'. + Consequently, `Ma\ss\ Bier' in the file would be decoded to + `Mass\ Bier', which would be encoded to the original sequence + in the file. + + - Some people would always use `{}' after a text-mode control + word, even it is not followed by a space, like `Stra\ss{}e'. + This is wrong, since it breaks ligatures and kerns. For + example, compare the output of `\L V' with `\L{}V' using `T1' + font encoding. + + - Up to Version 4.1, X-Symbol surrounded a text-mode control + word with braces, like `Stra{\ss}e'. This was probably even + worse than always adding `{}' at the end of the control word. + It was used, because it is required by BibTeX (*note BibTeX + Macro::.). Unfortunately, BibTeX sends this bad sequence + directly to LaTeX, but this has nothing to do with X-Symbol. + + * The accented characters are not represented by one tokens in TeX. + Most people use `\"a' to produce an `"a', while some use `\"{a}'. + X-Symbol uses the former, it does not even decode the latter + automatically. Up to Version 4.1, X-Symbol used `{\"a}', having + the same problems as using `Stra{\ss}e'. + + * Around a dozen characters can be produced by more than one TeX + macro, like `\neq' and `\ne'. Here, X-Symbol decodes both forms, + because it is probably a bad idea to redefine standard TeX macros. + This will not be done with in style files (*note Unique + Decoding::.). + + * In TeX, you can change the lexer on the fly, i.e., in a strict + sense, any conversion is unsafe without TeX processing. Since the + most likely change is to change the catcode of the character `@' + to a letter (used in LaTeX's style files), this character is + considered a letter by X-Symbol. This means that although both + `\ss @' and `\ss@' usually produce the same output, only the first + is decoded to `ss@'. + + * In TeX, the definitions of macros can also change on the fly i.e., + in a strict sense, any conversion is unsafe without TeX processing. + X-Symbol assumes that you do not do something like that except as + done by the standard LaTeX `\verb' command, and the `verbatim' and + `tabbing' environments. + + +File: x-symbol.info, Node: TeX Macro Conversion, Next: TeX Macro Symbols, Prev: TeX Macro Problems, Up: TeX Macro + +The Conversion of TeX Macros +---------------------------- + + The TeX macros for Latin characters are according to the LaTeX +package `inputenc.sty', v0.97+. Package X-Symbol uses U00B5 for +`\mathmicro', not for `\mu', though! *Note Wishlist LaTeX::. + + It is assumed that you do not redefine standard TeX macros like +`\ne' (*note TeX Macro Conversion::.), if you do so, you should better +use unique decoding (*note Unique Decoding::.). + + The encoding of characters to TeX macros works as follows: + + * If the character is preceded by an odd number of backslashes, + insert a space before the character. + + * Accented characters are encoded without braces, e.g., we encode + `c,' to `\c c'. Accents are encoded with braces, e.g., we use + `\c{ }' and `\u{}'. + + Additionally, the encoding of characters to TeX macros which are +"control words" (all-letter macros), or whose TeX representation ends +with a control word (like `\'\i') works as follows: + + * If the character is followed by a letter, replace the character by + the macro and insert a space. + + * If the macro is a text-mode macro and followed by one or more + blanks, replace the character and insert `{}'. + + * Otherwise, just replace the character. + + The decoding of TeX macros which are control words to characters +works as follows: + + * If the macro is a text-mode macro and followed by `{}' which is + followed by a blank, replace the macro and delete the braces. + + * If the macro is a text-mode macro and followed by one are more + blanks, we have the following rule: + + - If we have exactly one blank, the blank is a space, and it is + not followed by a `%' (comment character), replace the macro + by the corresponding character and delete the space. (The + character following the space must be a letter with unique + decoding, *Note Unique Decoding::.) + + - Otherwise, do *not decode* the macro! + + * Otherwise, just replace the macro. + + To clarify, "letter" means `A'-`Z', `a'-`z', or `@', "blank" means a +space, newline or the end of the buffer (therefore, the last character +in the buffer is always followed by a blank). + + There are three control words which are both text-mode and math mode +macros: `\ldots', `\vdots', and (by accident) `\angle'. They are all +treated like math-mode characters, but their minibuffer info (*note +Info::.) includes `gobbles space' (spaces in the buffer after the +character have no impact on the document), + + Additionally, the following commands and environments are processed +during decoding (but we are just looking for strings, i.e., they are +also processed in comments): + +`x-symbol-tex-verb-delimiter-regexp' + If the command `\verb' is found, its argument is not decoded if it + is delimited by one of the following characters: `-', `!', `#', + `$', `&', `*', `+', `/', `=', `?', `^', `|', or `!'. + +`x-symbol-tex-env-verbatim-regexp' + The contents of the `verbatim' environment is not decoded. To + produce accented characters inside this environment, use the LaTeX + package `inputenc.sty'. + +`x-symbol-tex-env-tabbing-regexp' + Inside a `tabbing' environment, the macro sequences starting with + `\`', `\'', `\=' and `\-' are not decoded. It is probably better + (with or without X-Symbol) to use the LaTeX package `inputenc.sty' + or to the `Tabbing' environment, to be found in the CTAN archives. + + During encoding, these commands and environments are not respected, +since it does not make any sense to have X-Symbol's private characters +in the TeX file. + + Final note: in the info file, you will probably not see any 8bit +characters. + + You might want change the conversion between characters and tokens in +language `tex' by changing: + +`x-symbol-tex-user-table' + You can define you own tokens for X-Symbol characters. E.g., if + you like to have the command `\sqrt' represented by a character + (shadowing the entry for `\surd'), add the following to your + `~/.emacs': + + (setq x-symbol-tex-user-table '((radical (math special) "\\sqrt"))) + + +File: x-symbol.info, Node: TeX Macro Symbols, Prev: TeX Macro Conversion, Up: TeX Macro + +Extra Symbols of Language "TeX Macro" +------------------------------------- + + This section describes what you should put into your private style +file or your document if you want to use extra symbols, i.e., characters +whose info in the echo area (*note Info::.) contains s.th. like +`PACKAGE.sty' or `user'. If you do not use the corresponding +characters, you do not have to do anything, of course. + + The TeX macros `\Box', `\Diamond', `\leadsto', `\Join', `\lhd', +`\mho', `\rhd', `\sqsupset', `\sqsubset', `\unlhd', `\unrhd', are +defined in LaTeX package `latexsym.sty': + + \usepackage{latexsym} + + Note that these macros are also defined `amssymb.sty'. Since the +first four macros are defined differently (better) in `latexsym.sty', +it does make sense to load both LaTeX packages. + + The TeX macros `\boldsymbol', `\circledast', `\circledcirc', +`\circleddash', `\digamma', `\gtrapprox', `\gtrsim', `\lessapprox', +`\lesssim', `\triangleq', `\varkappa' are defined in AMS LaTeX package +`amssymb.sty': + + \usepackage{amssymb} + + The TeX macros `\bigsqcap', `\llbracket', `\rrbracket', +`\llparenthesis', `\rrparenthesis' are defined in the LaTeX package +`stmaryrd.sty': + + \usepackage{stmaryrd} + + The TeX macros `\guilsinglleft', `\guilsinglright', `\dj', `\NG', +`\ng', `\DH', `\DJ', `\dh', `\dj', `\TH', `\th', `\guillemotleft', +`\guillemotright' and the ogonek characters are only defined if you use +T1 font encoding: + + \usepackage[T1]{fontenc} + + The TeX macro `\mathmicro' for U00B5 can be defined by (*note +Wishlist LaTeX::.): + + \let\mathmicro\mu + + You should define the following in your LaTeX file (if you use the +corresponding characters), the first can only be used with T1 font +encoding. + + \DeclareTextSymbol{\textbackslash}{T1}{92} + \newcommand{\nsubset}{\not\subset} + \newcommand{\textflorin}{\textit{f}} + \newcommand{\setB}{{\mathord{\mathbb B}}} + \newcommand{\setC}{{\mathord{\mathbb C}}} + \newcommand{\setN}{{\mathord{\mathbb N}}} + \newcommand{\setQ}{{\mathord{\mathbb Q}}} + \newcommand{\setR}{{\mathord{\mathbb R}}} + \newcommand{\setZ}{{\mathord{\mathbb Z}}} + \newcommand{\coloncolon}{\mathrel{::}} + + The TeX macros `\textordfeminine', `\textordmasculine', +`\textdegree', `\textonequarter', `\textonehalf', `\textthreequarters', +`\mathonesuperior', `\mathtwosuperior', `\maththreesuperior', +`\textcopyright' are only defined when using LaTeX package +`inputenc.sty': + + \usepackage[latin1]{inputenc} + + The TeX macros `\textcent', `\textcurrency', `\textyen', +`\textbrokenbar', `\textmalteseH', `\textmalteseh' are defined as not +available in LaTeX package `inputenc.sty'. *Note Wishlist LaTeX::. If +you use this package and want to define these commands, use +`\renewcommand' (or `\def') after, e.g.: + + \usepackage[latin1]{inputenc} + \usepackage{wasysym} %% defines \cent, \currency, \brokenvert + \usepackage{amssymb} %% defines \yen + \renewcommand{\textcent}{\cent} + \renewcommand{\textcurrency}{\currency} + \renewcommand{\textyen}{\yen} + \renewcommand{\textbrokenbar}{brokenvert} + + +File: x-symbol.info, Node: SGML Entity, Next: BibTeX Macro, Prev: TeX Macro, Up: Supported Languages + +Token Language "SGML entity" (`sgml') +===================================== + + For buffers using the major mode `html-mode', `hm--html-mode', +`html-helper-mode', `sgml-mode' or `xml-mode', we use token language +"SGML entity" (`sgml'). This language provides the display of +super-/subscripts and images. If the buffer visits a file and uses a +HTML mode, X-Symbol mode is automatically turned on. + +* Menu: + +* SGML Entity Basics:: Basics of Language "SGML entity". +* SGML Entity Features:: Super-/Subscripts and Images in HTML. +* SGML Entity Conversion:: How the conversion of SGML entities works. + + +File: x-symbol.info, Node: SGML Entity Basics, Next: SGML Entity Features, Prev: SGML Entity, Up: SGML Entity + +Basics of Language "SGML entity" +-------------------------------- + + The standard behavior can be controlled by the following variables: + +`x-symbol-sgml-modes' +`x-symbol-sgml-auto-style' + The variables known from *Note Minor Mode::. If the buffer uses a + HTML mode, super-/subscripts and images are displayed, otherwise + unique decoding (*note Unique Decoding::.) will be used. + +`x-symbol-sgml-auto-coding-alist' + Used there to automatically deduce the specific encoding of the + file (*note File Coding::.). It searches for the following string + in the current buffer, including the comment: + + <meta http-equiv="content-type" + content="text/html; charset=ENCODING"> + + where ENCODING should be one of `iso-8859-1', `iso-8859-2', + `iso-8859-3', `iso-8859-9', or `iso-8859-15'. 8bit characters are + not encoded if the file if the search was successful (*note + Controlling 8bit Coding::.). + + The input methods and the character info in the echo area are +controlled by: + +`x-symbol-sgml-header-groups-alist' + Defines the headers and their characters for the language specific + Grid and Menu. + +`x-symbol-sgml-extra-menu-items' + There are no special entries in the X-Symbol menu. + +`x-symbol-sgml-electric-ignore' + There is no additional constraint to the ones mentioned in *Note + Input Method Electric::. + +`x-symbol-sgml-class-alist' +`x-symbol-sgml-class-face-alist' + Token classes (*note Char Group::.) are only used to define a + coloring scheme. X-Symbol uses dark orange or dark red for + non-Latin-1 characters in the Grid (*note Input Method Grid::. and + the character info (*note Info::.), dark red for characters + without defined entity names in HTML (*note SGML Entity + Conversion::.). + + +File: x-symbol.info, Node: SGML Entity Features, Next: SGML Entity Conversion, Prev: SGML Entity Basics, Up: SGML Entity + +Super-/Subscripts and Images in HTML +------------------------------------ + + The display of super- and subscripts (*note Super and Subscripts::.) +is controlled by: + +`x-symbol-sgml-font-lock-regexp' +`x-symbol-sgml-font-lock-limit-regexp' +`x-symbol-sgml-font-lock-alist' +`x-symbol-sgml-font-lock-contents-regexp' + The superscript command `<sup>'...`</sup>' and the subscript + command `<sub>'...`</sub>' is recognized. The contents should + contain at least one character which is not a space or a + `nobreakspace'. + + The display of images (*note Images::.) is controlled by: + +`x-symbol-sgml-image-keywords' + The following commands are recognized. Extension EXT stands for + `gif', `png', `jpeg' or `jpg'. + + <img ... src="FILE.EXT" ...> + +`x-symbol-sgml-master-directory' +`x-symbol-sgml-image-searchpath' + Relative file names (*note Image Display::.) are relative to the + directory of the current file. + +`x-symbol-sgml-image-file-truename-alist' + The file name prefix `file:' is ignored. For any other file name + which starts with letters and then a colon, e.g., with `http:' or + `C:\' (which is no URL anyway), the image insertion command will + be skipped. By changing this variable, you could specify that the + prefix `http://www.fmi.uni-passau.de/~wedler/' corresponds to + `~/public_html/'. + +`x-symbol-sgml-image-cached-dirs' + The file name in the image command should not have a directory + part or the directory part should be `images/' or `pictures/' if + the image should be cached in the memory cache. + + +File: x-symbol.info, Node: SGML Entity Conversion, Prev: SGML Entity Features, Up: SGML Entity + +The Conversion of SGML Entities +------------------------------- + + Most character entities of HTML-4.0 are supported, except the +following: uppercase Greek which look like uppercase Latin, +"markup-significant and internationalization" characters, and some +quotes. See `http://www.w3.org/TR/REC-html40/sgml/entities.html'. + + By default, we encode to entity references like `&', and decode +from both entity references and character references like `&'. For +Latin-N characters without defined entity names in HTML (e.g. +`scedilla'), we can only use character references. + + Do not expect Netscape before v6 to display non-Latin-1 characters +correctly (this might work by specifying the charset UTF-8 and using +character references). + + You might want change the conversion between characters and tokens in +language `sgml' by changing: + +`x-symbol-sgml-token-list' + A symbol, which defines whether to use entity references, character + references, or entity references for Latin-1 characters and + character references for others. + +`x-symbol-sgml-user-table' + It is probably not a good idea to change the defined tokens + (except via the variable above), but you might want to add some + definitions: + + (setq x-symbol-sgml-user-table '((circ () 999 "&bcomp;"))) + + +File: x-symbol.info, Node: BibTeX Macro, Next: TeXinfo Command, Prev: SGML Entity, Up: Supported Languages + +Token Language "BibTeX macro" (`bib') +===================================== + + For buffers using the major mode `bibtex-mode', we use token +language "BibTeX macro" (`bib'). This language does not provide the +display of super-/subscripts and images. If the buffer visits a file, +X-Symbol mode is automatically turned on. It is controlled by: + +`x-symbol-bib-modes' +`x-symbol-bib-auto-style' + The variables known from *Note Minor Mode::. There is no automatic + deduction of the file encoding, 8bit characters are usually + encoded, and there is usually no unique decoding. *Note + Conversion::. + + The major difference between this language and the token language +`tex' is that the tokens for text-mode characters are most likely +enclosed by braces. This has some problems (*note TeX Macro +Problems::.), but is required by the program `bibtex'. + + The input methods and most features except super-/subscripts and +images work like in token language `tex' (*note TeX Macro::.): + +`x-symbol-bib-header-groups-alist' +`x-symbol-bib-electric-ignore' +`x-symbol-bib-class-alist' +`x-symbol-bib-class-face-alist' + Like in *Note TeX Macro Features::. + +`x-symbol-bib-extra-menu-items' + There are no special entries in the X-Symbol menu. + + You might want change the conversion between characters and tokens in +language `bib' by changing: + +`x-symbol-bib-user-table' +`x-symbol-tex-user-table' + Use the former for `bib'-only changes, the latter also influences + the conversion with token language `tex'. + + +File: x-symbol.info, Node: TeXinfo Command, Next: External Languages, Prev: BibTeX Macro, Up: Supported Languages + +Token Language "TeXinfo command" (`texi') +========================================= + + For buffers using the major mode `texinfo-mode', we use token +language "TeXinfo command" (`texi'). This language does not provide +the display of super-/subscripts and images. If the buffer visits a +file, X-Symbol mode is automatically turned on. It is controlled by: + +`x-symbol-texi-modes' +`x-symbol-texi-auto-style' + The variables known from *Note Minor Mode::. There is no automatic + deduction of the file encoding, 8bit characters are usually + encoded, and there is usually no unique decoding. *Note + Conversion::. + + With `x-symbol-8bits' having value `nil' (the default), it might +still happen that the saved file contains 8bit characters, since token +language `texi' does not define tokens for all characters in the Latin +charsets supported by X-Symbol. *Note Controlling 8bit Coding::. + + With `x-symbol-unique' having value `nil' (the default), we have +unique decoding anyway, since token language `texi' does only define +one token per character, i.e., the value is not important if +`x-symbol-8bits' is `nil'. *Note Unique Decoding::. + + The input methods and the character info in the echo area are +controlled by: + +`x-symbol-texi-header-groups-alist' + Defines the headers and their characters for the language specific + Grid and Menu. + +`x-symbol-texi-extra-menu-items' + There are no special entries in the X-Symbol menu. + +`x-symbol-texi-electric-ignore' + There is no additional constraint to the ones mentioned in *Note + Input Method Electric::. + +`x-symbol-texi-class-alist' +`x-symbol-texi-class-face-alist' + Only a few token classes (*note Char Group::.) are defined, the + most interesting induces the character info (*note Info::.) to + display `not as code' for `@minus{}' (`@minus{}' should not used + inside `@code' and `@example'). No coloring scheme is defined. + + At least with `makeinfo-4.0', you do not get accented characters in +the info file for the corresponding TeXinfo commands in the `.texi' +file, the HTML output might contain illegal "SGML entities" like +`&140;'. + + At least with `texi2html-1.62', you see accented characters in the +HTML output for the corresponding TeXinfo commands in the `.texi' file, +but the output might also contain illegal "SGML entities" like `&140;'. + + You might want change the conversion between characters and tokens in +language `texi' by changing: + +`x-symbol-texi-user-table' + Extra entries for the conversion. + + +File: x-symbol.info, Node: External Languages, Prev: TeXinfo Command, Up: Supported Languages + +Languages Defined in Other Emacs Packages +========================================= + + It is no problem for other Emacs packages to define their own token +language (*note Extending X-Symbol::.). + + I know of the following package--please check its manual for details. + + * Package ProofGeneral (http://www.proofgeneral.org/) defines token + language "Isabelle symbol". + + +File: x-symbol.info, Node: X-Symbol Internals, Next: Problems, Prev: Supported Languages, Up: Top + +X-Symbol Internals +****************** + + This section is outdated, it currently describes Version 3.4.2 of +X-Symbol. + + Package X-Symbol is distributed in two ways. End-users should use +the *binary package* which contains pre-compiled files. X-Symbol +developers should use the *source package* which contains some +additional files. + +* Menu: + +* Char Representation:: How X-Symbol represents X-Symbol chars. +* Defining Charsets:: How X-Symbol defines additional chars. +* Defining Input Methods:: How X-Symbol defines the input methods. +* Extending X-Symbol:: How to add fonts and token languages. +* Various Internals:: How X-Symbol handles other aspects. +* Design Alternatives:: Why X-Symbol is not designed differently. +* Language Internals:: How X-Symbol handles languages. +* Misc Internals:: Various. TODO. + + +File: x-symbol.info, Node: Char Representation, Next: Defining Charsets, Prev: X-Symbol Internals, Up: X-Symbol Internals + +Internal Representation of X-Symbol Characters +============================================== + + As mentioned in *Note Pseudo Language::, most functions do not +operate on X-Symbol characters directly, they use "x-symbol charsyms". +These charsyms have a symbol property `x-symbol-cstring' which points to +a string, called "cstring", containing the X-Symbol character. + + * Under Emacs and XEmacs/Mule, the string only contains the character + which is a normal Mule character created by `make-char'. + + * Under XEmacs/no-Mule, the string only contains the 8bit character + if the X-Symbol character is a 8bit character according to + `x-symbol-default-coding' (*note Default Coding::.). Otherwise, + the string contains of a "leading character" (with range `\200' to + `\237') and an "octet". Package `font-lock' is used to display + them correctly as X-Symbol characters (*note FAQ Strange + Chars::.). E.g., with `\251' is `copyright', we get + + (get 'Idotaccent 'x-symbol-cstring) + => "\235\251" + + If the character is also a 8bit character in some encoding (*note +File Coding::.), the charsym also has the symbol property +`x-symbol-file-cstrings' for the representation in the file and +property `x-symbol-buffer-cstrings' to recognize character aliases +(*note Char Aliases::.). E.g., under XEmacs/no-Mule, with `\335' is +`Yacute', `\251' is `copyright', we get + + (get 'Idotaccent 'x-symbol-file-cstrings) + => (iso-8859-9 "\335" iso-8859-3 "\251") + (get 'Idotaccent 'x-symbol-buffer-cstrings) + => (iso-8859-9 "\234\335" iso-8859-3 "\235\251") + + The values are plists (*note Property Lists: (lispref)Property +Lists.) mapping the file coding to the strings in the file or the +buffer, respectively. + + After token languages have been initialized, the charsym also has the +symbol properties `x-symbol-tokens' (*note Token Language::.) and +`x-symbol-classes' (*note Char Group::.): + + (get 'Idotaccent 'x-symbol-tokens) + => (sgml "İ" tex "{\\.I}") + (get 'Idotaccent 'x-symbol-classes) + => (sgml (non-l1) tex (text aletter)) + + +File: x-symbol.info, Node: Defining Charsets, Next: Defining Input Methods, Prev: Char Representation, Up: X-Symbol Internals + +Defining X-Symbol Charsets +========================== + + An X-Symbol charset, called "cset" in the code and the docstrings, +handles one font used by package X-Symbol. Each cset must use the same +char registry-encoding as the corresponding variables for the fonts +(*note Installing Fonts Lisp::.). + + You have to tell X-Symbol, how to define Mule charsets with Emacs or +XEmacs/Mule and which leading character to use with XEmacs/no-Mule. As +an example, we use the definition of the Adobe symbol font. + + (defvar x-symbol-xsymb0-cset + '((("adobe-fontspecific") ?\233 -3600) + (xsymb0-left "X-Symbol characters 0, left" 94 ?:) . + (xsymb0-right "X-Symbol characters 0, right" 94 ?\;))) + + Mule charsets (*note Charsets: (lispref)Charsets.) may be used for +94 or 96 characters (this example: 94, only charset with dimension 1 +can be defined with X-Symbol). Thus, if your font provides more +characters, you are likely to use both the left and the right half of +the font to define two Mule charsets. For both of them, you have to +define a unique, free final character/byte of the standard ISO 2022 +escape sequence designating the charset (this example: `:' and `;'). +The remaining free (reserved by Emacs for users) are `>' and `?', the +latter is already used in XEmacs. + + For XEmacs/no-Mule, you have to define the leading character (this +example: `\233'). + +`x-symbol-latin1-cset' +`x-symbol-latin2-cset' +`x-symbol-latin3-cset' +`x-symbol-latin5-cset' + Cset definitions only using the upper halves of the fonts where the + corresponding Mule charsets are known and which define characters + which are considered 8bit characters in the corresponding + encoding, see *Note File Coding::. + +`x-symbol-xsymb0-cset' +`x-symbol-xsymb1-cset' + Cset definitions using both halves of the fonts where no + corresponding Mule charset are yet known. + + +File: x-symbol.info, Node: Defining Input Methods, Next: Extending X-Symbol, Prev: Defining Charsets, Up: X-Symbol Internals + +Defining Input Methods +====================== + + This is probably the hardest section in this manual.... + +* Menu: + +* Input Method Objectives:: Input methods should be intuitive/consistent. +* Intro Char Descriptions:: An example introducing char descriptions. +* Char Descriptions:: The aspects and the contexts of a character. +* Example Char Descriptions:: A complete example defining input methods. +* Customizing Input Methods:: How to customize the input methods. + + +File: x-symbol.info, Node: Input Method Objectives, Next: Intro Char Descriptions, Prev: Defining Input Methods, Up: Defining Input Methods + +Defining Input Methods: Objectives +---------------------------------- + + Input methods should be intuitive. This requires consistency: + + * Characters should be found under the same header in the Grid and + in the Menu. + + * If one character can be modified or rotated to another character + (*note Input Method Context::.), both should stand near to each + other in the Grid. E.g., since `arrowsouthwest' rotates to + `arrowdown', they stand next to each other. + + * The key binding should be similar to the context of input method + Context. If two characters are defined to have the same context, + they should have the same key prefix and the suffix should be a + number which increases with the "modify-to" behavior. E.g., + `reflexsubset' with key binding `C-= < _ 2' modifies to + `reflexsqsubset' with key binding `C-= < _ 3'. + + * Consistent definition of "modify-to" and "rotate-to": if A can be + modified to B and rotated to C and C can be modified to D, B can be + rotated to D in most cases. + + * It should be possible to load character definitions later on, + e.g., when new token languages get initialized. + + - Existing key bindings should not be overwritten. If some of + them have to change, it should be done in a uniform way + (solution: key suffix `1'). + + - Also, modifying or rotating a new character to/from old ones + should be possible without changing the input definitions of + the old characters. + + Observation: It is impossible, especially with the possibility to +load character definitions later on, to define the input methods +directly, i.e., by something like `define-key'. The solution is an +indirect definitions with "character descriptions". + + +File: x-symbol.info, Node: Intro Char Descriptions, Next: Char Descriptions, Prev: Input Method Objectives, Up: Defining Input Methods + +X-Symbol Character Descriptions: Example +---------------------------------------- + + As an example for "character descriptions", look at the definition of +`longarrowright' in `x-symbol-xsymb1-table' (`95' is the encoding in +the font and not of interest here). Some terms are defined in the next +section: + + (longarrowright 95 + (arrow) (size big . arrowright) nil ("->" t "-->") (emdash)) + + With this definition, package X-Symbol automatically defines: + + * Key bindings `C-= - - >' and `C-= - > 2', the latter has suffix 2, + because `C-= - >' is also "wanted" by `arrowright' which now has + the key binding `C-= - > 1' (the "score" of `longarrowright' is + higher, due to `size big'). *Note Input Method Keyboard::. + + * `arrowright' modifies to `longarrowright', which modifies to + `arrowright'. *Note Input Method Context::. + + * `longarrowleft' rotates to `longarrowright', which rotates to + `longarrowboth' (which rotates to `longarrowleft'). (The "rotate + aspects" are inherited from `arrowright'.) *Note Input Method + Context::. + + * The following contexts can be modified to `longarrowright': `-->' + or `minus1' / `endash' / `macron' / `emdash' / `hyphen' and `->' + (since all define context `-') and `emdash' and `>' (since + `emdash' defines context `--'). `->' is used for `arrowright', + which has a lower score, see above. *Note Input Method Context::. + + * Input method Electric will change context `-->' (is tagged with + `t' in the definition) to `longarrowright', also `emdash' and `>' + (only theoretically, since input method Electric will produce + `emdash' only in TeX's text mode, and `longarrowright' only in + TeX's math mode). *Note Input Method Electric::. + + * The character will appear in the Grid under the header `Arrow'. + You will probably recognize that the placement is based on the + modify-to and rotate-to behavior above. *Note Input Method Grid::. + + * The character will appear in the Menu under one of the headers + `Arrow N'". The submenus are sorted alphabetically. *Note Input + Method Menu::. + + Consider that this character would be missing in package X-Symbol and +you want to define your own character (in your own font). With the +current scheme, the one line above is enough! Have fun defining all the +consequences directly instead.... + + +File: x-symbol.info, Node: Char Descriptions, Next: Example Char Descriptions, Prev: Intro Char Descriptions, Up: Defining Input Methods + +Defining Input Methods by Character Descriptions +------------------------------------------------ + + Characters are defined with "character descriptions" which consist +of different "aspects" and "contexts", which can also be inherited from +a "parent" character. All characters which are connected with parents, +form a "component". Aspects and contexts are used to determine the +modify-to and rotate-to chain for characters, the contexts for input +method Context and Electric, the key bindings, and the position in the +Menu and the Grid. + + If you want to check the component, scores, etc of a specific +character, look at the symbol property (e.g., with `M-x +hyper-apropos-get-doc') of the corresponding charsym, e.g., +`arrowright'. See also the docstrings of `x-symbol-init-cset' and +`x-symbol-init-input'. + + Remember, all characters which are connected with parents, form a +component. "Contexts" are the contexts of input method Context (*note +Input Method Context::.). If a table entry of a charsym does not +define its own contexts, they are the same as the contexts of the +charsym in an earlier position in the modify chain (see below), or the +contexts of the first charsym with defined contexts in the modify chain. +The "modify context" of a charsym is the first context. + +`x-symbol-rotate-aspects-alist' + Characters in the same component whose aspects only differ by their + `direction' (`east',...), a key in this alist, are circularly + connected by "rotate-to". The sequence in the "rotate chain" is + determined by "rotate scores" depending on the values in the + "rotate aspects". Charsyms with the same "rotate-aspects" are not + connected (charsyms with the smallest modify scores are preferred). + + (get 'longarrowright 'x-symbol-rotate-aspects) + => (-1500 direction east) + +`x-symbol-modify-aspects-alist' + Characters in the same components whose aspects only differ by + their `size' (`big',...), `shape' (`round', `square'...) and/or + `shift' (`up', `down',...), keys in this alist, are circularly + connected by "modify-to", if all their modify contexts are used + exclusively, i.e., no other modify chain uses any of them. The + sequence in the "modify chain" is determined by "modify scores" + depending on the values in the "modify aspects", the charsym score + defined in the definition tables and the score of the whole cset + (*note Defining Charsets::.). + + (get 'longarrowright 'x-symbol-score) + => -3500 + (get 'longarrowright 'x-symbol-modify-aspects) + => (1500 shift nil shape nil size big) + + Otherwise, the "modify chain" is divided into modify subchains, + which are those charsyms sharing the same modify context. All + modify subchains using the same modify context, build a + "horizontal chain" whose charsyms are circularly connected by + "modify-to". + + We build a "key chain" for all contexts (not just modify contexts), + consisting of all charsyms (sorted according to modify scores) + having the context. Input method Context modifies the context to + the first charsym in the key chain. + +`x-symbol-key-suffix-string' + If there is only one charsym in the key chain, `C-=' plus the + context inserts the charsym. Otherwise, we determine a suffix for + each charsym in the key chain by its index and this string. `C-=' + plus the context plus the suffix inserts the charsym. + + +File: x-symbol.info, Node: Example Char Descriptions, Next: Customizing Input Methods, Prev: Char Descriptions, Up: Defining Input Methods + +Defining Input Methods: Example +------------------------------- + + An example: Modify Modify Rotate Rotate Modify Other + Score Aspect Score Aspect Context Contexts + -------------------------------------------------------------- + charsym 1w 150 nil 100 west `a' `c' + charsym 2w 200 nil 100 west `b' - + charsym 3w 350 big 100 west (`b') (-) + charsym 1e 100 nil 200 east (`a') (`b') + charsym 2e 250 big 200 east `a' `b' + charsym 3e 300 big 200 east `a' - + charsym 1n 100 nil 300 north `d' `c' + charsym 2n 200 big 300 north `c' - + + Assuming that all charsyms form one component, we have: + + Rotate chains: (1w,2w)-1e-1n and 3w-(2e,3e)-2n. + Modify chains: 1w-2w-3w and 1e-2w-3w and 1n-2n. + Horizontal chains: 1e-1w-2e-3e (for modify context `a') + 2w-3w (for modify context `b') + Key chains: 1e-1w-2e-3e (for context `a') + 1e-2w-2e-3w (for context `b') + 1n-1w-2n (for context `c') + 1n (for context `d') + + That makes the following bindings: + + Rotate-to: 1w->1e, 2w->1e, 1e->1n, 1n->1w + 3w->2e, 2e->2n, 3e->2n, 2n->3w + Modify-to: 1e->1w, 1w->2e, 2e->3e, 3e->1e (horizontal chain) + 2w->3w, 3w->2w (horizontal chain) + 1n->2n, 2n->1n (modify chain with exclusive modify contexts) + CONTEXTS: `a'->1e, `b'->1e, `c'->1n, `d'->1n + KEY: `a1'=1e, `a2'=1w, `a3'=2e, `a4'=3e, `b1'=1e, ..., `d'=1n + + +File: x-symbol.info, Node: Customizing Input Methods, Prev: Example Char Descriptions, Up: Defining Input Methods + +Customizing Input Methods +------------------------- + + When defining contexts for characters, you should try to use default +contexts to make them and key bindings as consistent as possible. E.g., +package X-Symbol only defines explicit contexts for 186 of the 437 +characters. + +`x-symbol-group-input-alist' + Defines default scores and bindings for characters of a group + (*note Char Group::.). E.g., the definition (in + `x-symbol-latin1-table') + + (aacute 225 (acute "a" Aacute)) + + defines `aacute' without any explicit contexts, but having the + group `acute' and the subgroup `a'. The default input for the + group is defined by the following element in this variable: + + (acute 0 "%s'" t "'%s") + + That means: 0 is added to the normal "modify-score" of the + character. `%s'' and `'%s' with `%s' substituted by the subgroup, + i.e., `a'' and `'a', are the contexts for `aacute'. The context + `'a' is also used for input method Electric since it is prefixed + by `t'. + +`x-symbol-key-min-length' + It is quite unlikely that a one-character context is not the + prefix of another context, at least when loading additional font + definitions. In order not to have to change key bindings `C-= + KEY' to `C-= KEY 1', it is required that the length of the key + binding without `C-=' is at least 2. + + +File: x-symbol.info, Node: Extending X-Symbol, Next: Various Internals, Prev: Defining Input Methods, Up: X-Symbol Internals + +Extending Package X-Symbol +========================== + + In this section, you are told what to consider and what to do when +extending package X-Symbol with new characters and new token languages. +If you only want to define a token language using existing characters, +you only have to read the last section. + +* Menu: + +* Extending with Fonts:: How to add fonts to X-Symbol. +* Input Definitions:: Guidelines for input definitions. +* Font Definition File:: How to define new character in a file. +* Language Extension File:: Extending an existing language. +* Language Definition File:: Defining a new language. + + +File: x-symbol.info, Node: Extending with Fonts, Next: Input Definitions, Prev: Extending X-Symbol, Up: Extending X-Symbol + +Extending X-Symbol with New Fonts +--------------------------------- + + If you add a new token language to package X-Symbol which should +represent tokens by characters which are not yet defined by package +X-Symbol, you have to add a new font to package X-Symbol, first. + + When adding new fonts to package X-Symbol, consider that X-Symbol +has to run under Emacs, XEmacs/Mule and XEmacs/no-Mule. + + Running under Emacs and XEmacs/Mule requires that you cannot use all +encodings in a font for characters: you should probably only use +encodings 33 to 126 and 160 to 255. You should also use a unique pair +of charset properties `CHARSET_REGISTRY' and `CHARSET_ENCODING'. + + Running under XEmacs/no-Mule can leads to problems when major modes +do not check whether the previous character is an escape character (in +our case, a leading character, *note Char Representation::.) when +looking at a character. Thus, you should probably not use encodings +which represent characters in your default font with a special syntax. + + * In LaTeX buffers, characters in `$%\{}' have a special syntax. + Thus, you should you should probably not use encodings 36, 37, 92, + 123 and 125 for characters which could also be useful with token + languages `tex' and `utex'. + + * In HTML buffers, characters in `&<>' have a special syntax. Thus, + you should you should probably not use encodings 38, 60 and 62 for + characters which could also be useful with token language `sgml'. + + You have to tell package X-Symbol which fonts to use for the normal +text, subscripts and superscripts. *Note Installing Fonts Lisp::. + + You have to tell X-Symbol, how to define Mule charsets with Emacs and +XEmacs/Mule and which leading character to use with XEmacs/no-Mule. +*Note Defining Charsets::. + + +File: x-symbol.info, Node: Input Definitions, Next: Font Definition File, Prev: Extending with Fonts, Up: Extending X-Symbol + +Guidelines for Input Definitions +-------------------------------- + + Read section *Note Defining Input Methods::. Look at the tables in +`x-symbol.el'. Here are some guidelines of how to define the input +methods for new characters: + + 1. Define reasonable character groups for new characters, see *Note + Char Group::. E.g., if you add the IPA font for phonetic + characters, you are likely to define at least one additional + charset group. If you do not know whether to use one or two + groups for a set of characters, use two. + + 2. Define under which Grid/Menu header the character of the new + character group should appear. You may also want to add + additional headers for these characters. *Note Char Group::. + + 3. If reasonable, define default contexts for characters of a group, + see *Note Customizing Input Methods::. + + 4. For the other characters, define contexts by Ascii sequences which + look similar to the character. + + 5. Form a component for a set of characters which are strongly + related to each other. In most cases, characters of a component + are in the same group but not vice versa. E.g., the simple arrows + already defined by package X-Symbol form one component. You form + a component of characters by specifying parents in their + definition, see *Note Char Descriptions::. + + 6. Use aspects to describe the new characters. Add new aspects to + `x-symbol-modify-aspects-alist' and + `x-symbol-rotate-aspects-alist' if necessary (*note Char + Descriptions::.). + + 7. Finish the definition of your font file (*note Font Definition + File::.), load it with `M-x load-file', and initialize the input + methods, e.g., by invoking the grid (`M-x x-symbol-grid'). + + 8. If there are no errors, you are likely to get warnings about equal + modify scores. In this case, the sequence of characters in the + modify-to chain is random, so are the numerical suffixes of key + bindings. + + a. Define a base score for the whole X-Symbol charset ("cset + score") which should be a positive number in order not to + change the key bindings of previously defined X-Symbol + characters. + + b. Define reasonable scores for newly defined aspects and + character groups. + + c. Finally, fine-tune your definitions by charsym scores in the + tables. This should be necessary only for a few characters. + + +File: x-symbol.info, Node: Font Definition File, Next: Language Extension File, Prev: Input Definitions, Up: Extending X-Symbol + +Emacs Lisp File Defining a New Font +----------------------------------- + + Now put all things together in a separate font definition file. You +should not put it in a language definition file. + + Here is a tiny example using only the lower half of the font: + + (provide 'x-symbol-myfont) + (defvar x-symbol-myfont-fonts + '(("-xsymb-myfont-medium-r-normal--14-140-75-75-p-85-xsymb-myfont") + ("-xsymb-myfont_sub-medium-r-normal--12-120-75-75-p-74-xsymb-myfont") + ("-xsymb-myfont_sup-medium-r-normal--12-120-75-75-p-74-xsymb-myfont"))) + + (defvar x-symbol-myfont-cset + '((("xsymb-myfont") ?\200 1000) + (myfont-left "My font characters, left" 94 63) . nil)) + + (defvar x-symbol-myfont-table + '((longarrownortheast 33 (arrow) (size big . arrownortheast)) + (koerper 34 (setsymbol "K")) + (circleS 35 (symbol "S") nil nil "SO"))) + + (x-symbol-init-cset x-symbol-myfont-cset x-symbol-myfont-fonts + x-symbol-myfont-table) + + Due to an XEmacs bug with char syntax `inherit', you should also add +the following line to files `x-symbol-xmas20.el' and +`x-symbol-xmas21.el': + + (modify-syntax-entry ?\200 "\\" (standard-syntax-table)) + + +File: x-symbol.info, Node: Language Extension File, Next: Language Definition File, Prev: Font Definition File, Up: Extending X-Symbol + +Emacs Lisp File Extending a Token Language +------------------------------------------ + + If you want to use the new font to extend an existing token language, +define a new token language which inherits most variables from the +"parent language". E.g., token language `utex' inherits most variables +from `tex', see `x-symbol-utex.el'. + + A language must define variables for all language aspects, see *Note +Language Internals::. Our example defines a language `mytex' using the +additional characters from *Note Font Definition File::. + + First, you have to register the language in a startup file: + + (defvar x-symbol-mytex-name "My TeX macro") + (defvar x-symbol-mytex-modes nil) + (x-symbol-register-language 'mytex 'x-symbol-mytex x-symbol-mytex-modes) + + The language definition file should look like (leaving out most parts +which are similar to the ones in `x-symbol-utex.el'): + + (provide 'x-symbol-mytex) + (require 'x-symbol-tex) + (defvar x-symbol-mytex-required-fonts '(x-symbol-myfont)) + (put 'mytex 'x-symbol-font-lock-keywords 'x-symbol-tex-font-lock-keywords) + + (defvar x-symbol-mytex-user-table nil) + (defvar x-symbol-mytex-myfont-table + '((longarrownortheast (math arrow user) "\\longnortheastarrow") + (koerper (math letter user) "\\setK") + (circleS (math ordinary amssymb) "\\circledS"))) + + (defvar x-symbol-mytex-table + (append x-symbol-mytex-user-table + '(nil) + x-symbol-mytex-myfont-table + x-symbol-tex-table)) + + It is important that you do not define a variable for the language +access `x-symbol-font-lock-keywords', but rather use the variable of +the parent language directly, see *Note Language Internals::. + + During the testing phase, you should probably leave out the `'(nil)' +which prevents warnings about redefinitions for the following elements. + + +File: x-symbol.info, Node: Language Definition File, Prev: Language Extension File, Up: Extending X-Symbol + +Emacs Lisp File Defining a New Token Language +--------------------------------------------- + + You might also want to define a new token language not based on +another language. + + As an example, consider a token language "My Unicode" (`myuc') for +buffers with major mode `myuc-mode'. Thus, we register the language by: + + (defvar x-symbol-myuc-name "My Unicode") + (defvar x-symbol-myuc-modes '(myuc-mode)) + (x-symbol-register-language 'myuc 'x-symbol-myuc x-symbol-myuc-modes) + + Each token if language `myuc' consists of `#' plus the hexadecimal +representation of the Unicode with hexadecimal values where the case of +digits is not important and the preferred case is upcase. A single `#' +is represented by the token `##'. In order to be more flexible, we +want to define the tokens by their decimal value in the table. There +are no subscript and no images. The code below (`x-symbol-myuc.el') is +included in the source distribution of package X-Symbol. + + (provide 'x-symbol-myuc) + (defvar x-symbol-myuc-required-fonts nil) + (defvar x-symbol-myuc-modeline-name "myuc") + (defvar x-symbol-myuc-class-alist + '((VALID "My Unicode" (x-symbol-info-face)) + (INVALID "no My Unicode" (red x-symbol-info-face)))) + (defvar x-symbol-myuc-font-lock-keywords nil) + (defvar x-symbol-myuc-image-keywords nil) + ... + + (defvar x-symbol-myuc-case-insensitive 'upcase) + (defvar x-symbol-myuc-token-shape '(?# "#[0-9A-Fa-f]+\\'" . "[0-9A-Fa-f]")) + (defvar x-symbol-myuc-exec-specs '(nil (nil . "#[0-9A-Fa-f]+"))) + (defvar x-symbol-myuc-input-token-ignore nil) + + (defun x-symbol-myuc-default-token-list (tokens) + (list (format "#%X" (car tokens)))) + (defvar x-symbol-myuc-token-list 'x-symbol-myuc-default-token-list) + (defvar x-symbol-myuc-user-table nil) + (defvar x-symbol-myuc-xsymb0-table + '((alpha () 945) (beta () 946))) + + (defvar x-symbol-myuc-table + (append x-symbol-myuc-user-table x-symbol-myuc-xsymb0-table)) + ... + + +File: x-symbol.info, Node: Various Internals, Next: Design Alternatives, Prev: Extending X-Symbol, Up: X-Symbol Internals + +Various Internals +================= + +* Menu: + +* Tagging Insert Commands:: Don't break input methods Token and Electric. +* Avoiding Flickering:: Moving cursor in invisible commands. + + +File: x-symbol.info, Node: Tagging Insert Commands, Next: Avoiding Flickering, Prev: Various Internals, Up: Various Internals + +Tagging Insert Commands for Token and Electric +---------------------------------------------- + + Input methods Token (*note Input Method Token::.) and Electric +(*note Input Method Electric::.) stop their auto replacement if you use +a command which is not an insert command. + +`self-insert-command' +`newline' +`newline-and-indent' +`reindent-then-newline-and-indent' +`tex-insert-quote' +`TeX-insert-quote' +`TeX-insert-punctuation' +`TeX-insert-dollar' +`sgml-close-angle' +`sgml-slash' + These commands and commands aliased to these are recognized as + input commands by having a non-`nil' value of its symbol property + `x-symbol-input'. + + +File: x-symbol.info, Node: Avoiding Flickering, Prev: Tagging Insert Commands, Up: Various Internals + +Avoiding Hide/Show-Invisible Flickering +--------------------------------------- + + Starting a command makes a previously revealed super- or subscript +command (*note Super and Subscripts::.) invisible again. Repeatedly +invoking commands which moves the point just by a small amount can lead +to some flickering. + +`forward-char' +`forward-char-command' +`backward-char' +`backward-char-command' + If the point position after the execution of these commands is + still "at" the super- or subscript command, the command won't be + made invisible at the first place. Each of these four commands + have a function (`1+' and `1-') as the value of its symbol property + `x-symbol-point-function' which returns the position "after" when + called with the position "before". + + +File: x-symbol.info, Node: Design Alternatives, Next: Language Internals, Prev: Various Internals, Up: X-Symbol Internals + +Design Alternatives +=================== + + This section describes potential design alternatives and why they +were not used. + +* Menu: + +* Alt Token Representations:: Why we need the conversion. +* Alt Global Mode:: How to turn on X-Symbol globally. +* Alt Auto Conversion:: When do we convert automatically. + + +File: x-symbol.info, Node: Alt Token Representations, Next: Alt Global Mode, Prev: Design Alternatives, Up: Design Alternatives + +Alternative Token Representations +--------------------------------- + + Package X-Symbol represents tokens in the file by characters in the +buffer. This requires an automatic conversion when visiting a file or +saving a buffer, see *Note Conversion::. + + Another possibility would be to use the tokens directly in the buffer +and just display them differently. You would need no conversion and you +could copy the text easily to a message buffer. This could be done by a +special face and an additional font-lock keyword for every token. The +disadvantages make this approach unfeasible: + + * The editing commands would work on the tokens which are invisible + for the user. + + * Extremely resource and startup-time consuming. If as many + characters should be supported as done by package X-Symbol, + including superscripts and subscripts, more than 2000 faces with + display tables would have to be defined even without considering + char aliases! + + * Time consuming. More than 2000 entries in you font-lock keywords + would slow down the fontification considerably, which would be too + much even when using `lazy-shot'! + + Another possibility would be to adapt TeX to the representations of +the corresponding characters in Emacs' buffer. Again, you would need no +conversion. The disadvantages make this approach too restrictive: + + * You cannot adopt SGML to this approach. + + * You cannot read normal LaTeX files directly, you do not write + normal LaTeX files. + + * You would have different TeX versions: one for X-Symbol with Emacs + and XEmacs/Mule, one with XEmacs/no-Mule. + + * If you are not an extremely good TeX hacker, it would be impossible + to adopt this approach to support more than 256 characters. + + A third alternative would be very similar to the method used in this +package. There would be just a slight difference when running under +XEmacs/no-Mule: the internal representation of a character is always +just one character, but we would also provide font properties for +characters not of your default font. The disadvantages make this +approach too unsafe: + + * Problems with current search/replace commands. + + * Problems with the current version of `font-lock' (it should *never* + overwrite the font property for this character, even if the + character matches some MATCH in `font-lock-keywords' and OVERWRITE + is non-`nil'). This gets even more difficult with + superscripts/subscripts. + + * Unless you can provide a syntax table for faces (you cannot), + characters in different faces with the same encoding are in the + same syntax class, which is irritating: e.g., `\leftrightarrow' + and `\approx' would be delimiters. + + +File: x-symbol.info, Node: Alt Global Mode, Next: Alt Auto Conversion, Prev: Alt Token Representations, Up: Design Alternatives + +Alternative Ways to Turn on X-Symbol Globally +--------------------------------------------- + + This package hooks itself into `hack-local-variables-hook' which +makes the installation very simple. + + Another possibility would be to use the major-mode hooks which is the +normal way how to turn on a minor mode. The disadvantages are: + + * The installation is more complicated. + + * Local variables in files are not yet processed (this was the main + reason not to do it this way). + + Another possibility would be to hook X-Symbol into +`find-file-hooks', as it is done in old versions of package X-Symbol. +It would be as easy as the current approach but we would have to be +careful with sequence of functions in `find-file-hooks', especially +with the function hooked in by `font-lock'. + + +File: x-symbol.info, Node: Alt Auto Conversion, Prev: Alt Global Mode, Up: Design Alternatives + +Alternative Auto Conversion Methods +----------------------------------- + + Without package `crypt', this package automatically decodes tokens +when turning on the minor mode (in `hack-local-variables-hook', *note +Alt Global Mode::.) or in `after-insert-file-functions'. This package +automatically encodes characters in `write-region-annotate-functions'. +The disadvantage is that the possibility to change buffers in +`write-region-annotate-functions' is not official (*note Wishlist +Emacs::.), i.e., not mentioned in the docstring (only mentioned for +corresponding encode-functions of package `format' which use a similar +loop in the C code). + + With package `crypt', this package automatically decodes tokens when +turning on the minor mode. This package automatically encodes +characters in `write-file-hooks'. The disadvantage is that the +encoding is slower (use `jka-compr' instead `crypt') and the problem +with `vc-next-action' (*note Spurious Encodings::.). + + Without package `crypt', Version 2.6 of this package automatically +encoded characters in `write-file-data-hooks'. The advantage was that +changing buffers there is official, the disadvantage is that it is also +more complicated. + + A totally different method would be to use package `format'. +Unfortunately, this is not really possible, since a REGEXP in +`format-alist' is much too weak, i.e., X-Symbol's decoding does not +change any file headers which would represent the file format. In +XEmacs, this package also fails to work properly with `jka-compr' and +`crypt'. + + +File: x-symbol.info, Node: Language Internals, Next: Misc Internals, Prev: Design Alternatives, Up: X-Symbol Internals + +Language Internals +================== + + In order to use a token language or accessing one of the language +dependent values, the following conditions must be met: + + * The language must be "registered". This makes it possible to + select the language in the menus. It also prevents to load a + potentially dangerous file when a file specifies a buffer-local + value of `x-symbol-language'. + + `x-symbol-register-language' + Registering a language includes stating the name of the + feature (i.e., a file) which provides the language. The name + of the language must have been already defined. + + * The file providing the language must have been "loaded". This will + be done automatically when the language is initialized. + Customizing X-Symbol will also load the language files. + + * The language must be "initialized". This will be done + automatically if the language is used. This loads the language + file and fails if the language has not been registered. If some + minor language information is needed, e.g., in the highlight menu + of the Grid (*note Input Method Grid::.), you should initialize + the language explicitly, e.g., by the following command: + + `M-x x-symbol-init-language-interactive' + Initialized a token language if it is not already initialized. + + Language dependent values are accessed by language accesses: + +`x-symbol-language-value' + Returns the language depending value. Also initializes language if + necessary. E.g., we get the name of a language by the language + access `x-symbol-name'. With a simplified expansion, we get + + (x-symbol-language-value 'x-symbol-name 'tex) + ==> (symbol-value (get 'tex 'x-symbol-name)) + => (symbol-value 'x-symbol-tex-name) + => "TeX macro" + +`x-symbol-language-access-alist' + List of all language accesses. A token language *must* define all + variables accessed by language accesses. A "language access" is a + property of the language symbol, its value is the symbol naming a + variable whose value is used. + + If the language is a derived language, e.g., like language `utex', + the language access `x-symbol-font-lock-keywords', should point + directly to the variable of the parent language (here `tex'), see + file `x-symbol-utex.el'. + + +File: x-symbol.info, Node: Misc Internals, Prev: Language Internals, Up: X-Symbol Internals + +Miscellaneous Internals +======================= + + TODO. This is currently just a collection of unrelated stuff. + + Characters might also define a "subgroup" which is a string defining +some order on characters in the same group (*note Char Group::.) and is +also used for default contexts/bindings (*note Customizing Input +Methods::.). + +`x-symbol-group-syntax-alist' + Lists all valid character groups. Under Emacs and XEmacs/Mule, + this list also determines the syntax of characters. + + The character group could probably also be used to define character +categories if they are implemented in XEmacs. + + +File: x-symbol.info, Node: Problems, Next: History, Prev: X-Symbol Internals, Up: Top + +Problems, Troubleshooting +************************* + + This section is based on a successful installation of package +X-Symbol. *Note Checking Installation::. + +* Menu: + +* Nomule Problems:: X-Symbol provides a *poor* man's Mule. +* Spurious Encodings:: Some commands turn off X-Symbol mode. +* No Encoding:: The encoding does not work in a rare case. +* FAQ:: Frequently asked questions. +* Bug Reports:: How to contact the maintainer of X-Symbol. + + +File: x-symbol.info, Node: Nomule Problems, Next: Spurious Encodings, Prev: Problems, Up: Problems + +Problems under XEmacs/no-Mule +============================= + + If you use package X-Symbol under XEmacs/no-Mule, there are some +annoyances which result from the fact that additional "X-Symbol +characters" are represented by two characters internally. Package +X-Symbol just provides a kind of "*poor* man's Mule", see *Note Poor +Mans Mule::. This means: I have provided workarounds for the most +annoying ones, but some remain (and will remain: I am not going to +provide workarounds for these): + + * If `font-lock' is not prepared to display these two-character + sequences, i.e., if you installation is incomplete (*note Role of + font-lock::.), they look like `\233a' instead `alpha'. + + * Commands which add more than one entry to the `buffer-undo-list' + and involve X-Symbol characters might lead to strange results, + e.g. `C-t' (`transpose-chars') with point between character + `alpha' and `b', leads to `beta'`a'. Simple deletion and + insertion works OK, though. + + * Selecting or inserting a rectangle with X-Symbol characters on the + left or right margin might not work properly. + + * Be careful with `M-%' (`query-replace'): the first character of + FROM-STRING can probably match the second of the two "internal" + characters of an X-Symbol character. + + * If you use `C-x '' (`expand-abbrev') without `M-'' + (`abbrev-prefix-mark') and the last word before point starts + directly after a X-Symbol character, `C-x '' could behave strange: + + - If `words-include-escapes' is `t', there will be no expansion. + + - If `words-include-escapes' is `nil', the second "internal" + character could be the first character of the last word + before point which is going to be replaced by the abbrev + mechanism. + + * If the character under point is a X-Symbol character, you will not + see the cursor if you exit a command with an error or with quit + (`C-g'). Unfortunately, XEmacs (as opposed to Emacs) does not run + the hooks in `post-command-hook' in these cases. Solution: move + point right (`C-f'). + + * If you provide prefix arguments to commands, they are likely to + consider just "internal" characters. E.g., `C-u 2 C-f' before + `alpha' behaves like `C-f'. + + * Column position considers "internal" characters, e.g., `C-n' might + jump to an unexpected position (well, typically just one character + left/right from the expected position, if at all). + + * Auto-filling also considers "internal" characters, i.e., might + break the line too early. + + * There are no syntax definitions for the new characters, e.g., + `M-C-f' before `floorleft' does not move to the closing + `floorright'. + + * In some cases, e.g., when using the minibuffer for input via `M-%' + or `C-s', the internal representation of X-Symbol characters + (*note Char Representation::.) are displayed directly (*note FAQ + Strange Chars::.) + + +File: x-symbol.info, Node: Spurious Encodings, Next: No Encoding, Prev: Nomule Problems, Up: Problems + +Spurious Encodings +================== + + In rare cases, some commands (mostly from package `vc') encode +characters to tokens or even turn off X-Symbol mode. Package X-Symbol +will not provide a workaround for these problems, because the situations +in which they appear are too rare, the workarounds are easy, and the +problems are not really caused by package X-Symbol. + + * Doing the next logical version control operation (`C-x v v' and + friends) encode characters to tokens when using package `crypt'. + + Solution: use package `jka-compr' instead `crypt' (this is + recommended anyway, *note File IO Packages::.). Or kill the + buffer and revisit the file. + + * When using AucTeX with its default-mode algorithm, getting rid of + the recently checked-in version of a file without reverting the + buffer afterwards (`C-u C-x v c') turns off X-Symbol mode without + encoding the characters, e.g. under XEmacs/no-Mule, you see some + strange characters like `\233a'. + + Explanation: when using AucTeX's `TeX-default-mode', the final + `major-mode' is different from the initial `major-mode' deduced + using `auto-mode-alist'. If this is the case, the VC command + executes `normal-mode' which kills all local-variables including + turning-off `x-symbol-mode'. + + Solution: Turn on X-Symbol mode or change `auto-mode-alist' to + directly choose `latex-mode': + + (push '("\\[tT]e[xX]\\'" . latex-mode) auto-mode-alist) + + * When using AucTeX with its default-mode algorithm, writing a LaTeX + buffer into a file with another file name turns off X-Symbol mode. + + Explanation: Emacs sets the major mode with the file name. When + using AucTeX's `TeX-default-mode', we get the problems as + described in the previous item. + + Solution: Set `change-major-mode-with-file-name' to `nil' or use + the solution from the previous item. + + +File: x-symbol.info, Node: No Encoding, Next: FAQ, Prev: Spurious Encodings, Up: Problems + +The Encoding Does Not Work +========================== + + In a rare case, X-Symbol cannot do its encoding, i.e., convert the +characters to tokens. + + * `M-x write-region' fails to do the encoding if you use package + `crypt'. + + Explanation: with package `crypt', the encoding has to be done by a + function in `write-file-hooks' which is not used by `write-region'. + + Solution: use package `jka-compr' instead `crypt' (this is + recommended anyway, *note File IO Packages::.). Or visit the + region file and save it again via `C-x C-s'. + + +File: x-symbol.info, Node: FAQ, Next: Bug Reports, Prev: No Encoding, Up: Problems + +Frequently Asked Questions +========================== + + It is assumed that you had successfully installed package X-Symbol, +see *Note Checking Installation::. + +* Menu: + +* FAQ XEmacs Core:: XEmacs crashes when using input method Token +* FAQ font-lock:: X-Symbol's fontification does not work. +* FAQ Strange Chars:: The buffer contains strange characters +* FAQ No Subscripts:: I cannot see any/some super-/subscripts. +* FAQ Stupid Subscripts:: I see subscripts where I don't want them. +* FAQ Font Size:: The characters are too small or too big. +* FAQ Conversion:: The conversion changes some tokens. +* FAQ Additional Spaces:: A space is added during the encoding. +* FAQ 8bit Chars:: I do not want 8bit characters in the file. +* FAQ Hyphen:: I cannot distinguish `hyphen' from `-'. +* FAQ Spell Check:: I have problems with spell-checking. +* FAQ News and Mail:: I want to use X-Symbol in Gnus or VM. + + +File: x-symbol.info, Node: FAQ XEmacs Core, Next: FAQ font-lock, Prev: FAQ, Up: FAQ + +XEmacs Crashes when using Input Method Token +-------------------------------------------- + + It has been reported that XEmacs-21.0 to XEmacs-21.1.8 might produce +cores when you use input method Token. That's why I strongly recommend +to use XEmacs-21.1.9 or higher with package X-Symbol, see *Note +Requirements::. + + You get a warning during X-Symbol's initialization when using these +XEmacs versions. If you don't want to upgrade, but also don't want to +see the warning, you might want to set variable +`x-symbol-xmas-warn-about-core' to `nil'. + + A core in XEmacs always indicates a bug in XEmacs itself, not in a +Lisp package like X-Symbol. Thus, send a bug report to the XEmacs team +if you get cores with the *newest* version of XEmacs (please put me in +the CC). + + +File: x-symbol.info, Node: FAQ font-lock, Next: FAQ Strange Chars, Prev: FAQ XEmacs Core, Up: FAQ + +X-Symbol's Fontification does Not Work +-------------------------------------- + + In this case, super- and subscripts are not properly displayed +(*note FAQ No Subscripts::.) and under XEmacs/no-Mule, the buffer +contains s.th. like `\233a' (*note FAQ Strange Chars::.). Possible +causes: + + * You have turned off `font-lock' or `font-lock' is out of sync. + Use `M-x x-symbol-fontify'. *Note Role of font-lock::. + + * The font-lock keywords of the current buffer are not prepared to + display X-Symbol characters. *Note Role of font-lock::. + + * You use package `fast-lock'. Solution: set `fast-lock-save-faces' + to `nil' (done by default installation). + + * You use some version control commands. You have probably noticed + that these versions control commands also turn off `font-lock' in + modes where you don't use X-Symbol, i.e., this is not a problem of + package X-Symbol. *note Wishlist Emacs::. and *Note Spurious + Encodings::. + + +File: x-symbol.info, Node: FAQ Strange Chars, Next: FAQ No Subscripts, Prev: FAQ font-lock, Up: FAQ + +The Buffer Contains Strange Characters +-------------------------------------- + + If you see s.th. like `\233a', you see the internal representation +of X-Symbol characters under XEmacs/no-Mule (*note Char +Representation::.) directly. Possible causes: + + * You have `font-lock' problems, see *Note FAQ font-lock::. + + * More complicated editing commands like `C-t' may produce strange + character sequences which do not represent X-Symbol characters, see + *Note Nomule Problems::. + + * In some cases, e.g., when using the minibuffer for input via `M-%' + or `C-s', it would be too much work to fontify these character + sequences in order to display proper X-Symbol characters. *Note + Nomule Problems::. + + If Emacs shows some strange glyphs for some characters in your +buffers but not the Grid, there is a font in you font path which +pretends to have charset registry-encoding `adobe-fontspecific', but in +fact uses another encoding. E.g., Mathematica's fonts cause the +characters intersection and union to mix up. Possible solutions: + + * Delete that font from the font path. Maybe moving it at the end + also works. + + * In Emacs-21, you have the chance to disable the use of some fonts + (if you know something similar for XEmacs, please let me know). + For example, to disable the fonts from Mathematica, use + + (setq face-ignored-fonts '("\\`-wri-math1")) + + * If the characters show up correctly initially, but mix up after + some font changing command, don't use that command. E.g., the + font selection in XEmacs via the Options menu seems to loose some + information about the original font. OK, this is not really a + satisfying solution, but the whole issue isn't my fault, either. + + +File: x-symbol.info, Node: FAQ No Subscripts, Next: FAQ Stupid Subscripts, Prev: FAQ Strange Chars, Up: FAQ + +I Cannot See any/some Super- or Subscripts +------------------------------------------ + + If you cannot select `Super-/Subscripts' in the menu, the first of +the following points is more likely the cause, the others otherwise. + + * You have `font-lock' problems, see *Note FAQ font-lock::. + + * There are cases where super- and subscripts are not displayed, see + *Note Super and Subscripts::. + + * The argument in braces are not correctly recognized, since the + `font-lock' syntax-table is not correct. It should include `{' as + the only open parenthesis and `}' as the only close parenthesis + character. Note that this is quite difficult to archive under + Emacs and XEmacs/Mule. This is a minor bug in the corresponding + `font-lock' package, but would require other changes there, + therefore not likely to be fixed. Fortunately, this does not + happen often. + + +File: x-symbol.info, Node: FAQ Stupid Subscripts, Next: FAQ Font Size, Prev: FAQ No Subscripts, Up: FAQ + +I See Super- and Subscripts where I Don't Want Them. +---------------------------------------------------- + + E.g., I see a subscript in arguments of `\label'. Package X-Symbol +only uses super- and subscripts if they are in braces, if the +`asciicircum'/`underscore' has not been fontified yet or is only +fontified with faces which are allowed by +`x-symbol-tex-font-lock-allowed-faces', see *Note Super and +Subscripts::. + + * You use the default `tex-font-lock-keywords': The argument of + `\include' and friends are not fontified by these, i.e., the use + of super- and subscripts are not prohibited. Solution: add your + own keyword for these commands or use package `font-latex', see + below. + + * You use package `font-latex'. Solution: set + `font-lock-maximum-decoration' to value `t', 2 or higher. Package + X-Symbol will still use subscripts in `\verb', in the `verbatim' + environment, in the argument of `\includegraphics' and probably + other commands. Some of these problems will probably be solved by + future versions of `font-latex'. + + * You use my font-lock keywords (file `x-font-lock.el'): everything + should work fine. Please note that this file is not meant to be a + replacement of `font-latex.el' useful to all users. Also, + highlighting is a matter of taste, i.e., I am not going to change + the `x-font-lock.el' to support LaTeX-2.09, TeX's math regions, + other likings, etc. + + * You use your own font-lock keywords for TeX. In this case, you be + able to adapt the solutions from the previous points to your + situation. + + +File: x-symbol.info, Node: FAQ Font Size, Next: FAQ Conversion, Prev: FAQ Stupid Subscripts, Up: FAQ + +The Characters are Too Small or Too Big +--------------------------------------- + + Why aren't there more different font sizes? Because nobody +(including the author) was in the mood to design them (actually only +the xsymb1 font needs to be designed). *Please do only ask the author +whether they are in work if you are serious to do it yourself +otherwise!* + + Why do I get a lower-case letter when I should get a capital letter +(or vice versa)? Please convince yourself (*note Info::.) that you +actually get the correct letter--they are just of different sizes. +*Note Installing Fonts Lisp::. + + I was told that the xsymb1 font scales reasonably well to a larger +font size--if you don't think so, design a new font and send me the +result. + + +File: x-symbol.info, Node: FAQ Conversion, Next: FAQ Additional Spaces, Prev: FAQ Font Size, Up: FAQ + +The Conversion Changes Some Tokens +---------------------------------- + + In most token languages, a character might be represented by +different tokens. If this character is encoded (when saving the +buffer), the canonical representation is saved. *Note Unique +Decoding::. + + * Solution: Do not redefine standard TeX macros or use unique + decoding. + + +File: x-symbol.info, Node: FAQ Additional Spaces, Next: FAQ 8bit Chars, Prev: FAQ Conversion, Up: FAQ + +A Space is Added During the Encoding +------------------------------------ + + A space is added after some characters during the encoding to tokens. +With token languages `tex' and `utex' (not with language `sgml'), there +must be a space after the token to recognize its end in some cases. + + E.g., if your buffer contains `a+b' (where + stands for the +character `circleplus'), this is encoded to `a\oplus b' (note the space +after `\oplus'). Decoding it yields `a+ b'. + + I admit, this looks ugly. The space is only added if the symbol +character is followed by a letter or by `@'. Thus, decoding +`a\oplus\beta' yields `a+b' (without space!). + + * Suggestion: Also use a space before `\oplus'. The alternative + would be to delete the space which other people won't like. + + *Note TeX Macro Conversion:: for an exact description. + + +File: x-symbol.info, Node: FAQ 8bit Chars, Next: FAQ Hyphen, Prev: FAQ Additional Spaces, Up: FAQ + +I Don't Want 8bit Characters in the File +---------------------------------------- + + By default, these are not encoded if the buffer-local variable +`x-symbol-8bits' is non-`nil'. + + By default, this variable is only set to non-`nil', if something like + + \usepackage[latin1]{inputenc} + + is found at the beginning of the file. That line does not make +sense if you do not have 8bit characters in the file, i.e., delete it. +*Note File Coding::. Note: commenting the line is not enough! (I do +not run LaTeX to check for the line, I just do plain text search.) + + +File: x-symbol.info, Node: FAQ Hyphen, Next: FAQ Spell Check, Prev: FAQ 8bit Chars, Up: FAQ + +I Cannot Distinguish Character `hyphen' from `-' +------------------------------------------------ + + In most fonts, the Latin character `hyphen' cannot be distinguish +from the Ascii character `-'. If you do not want to decode the +corresponding token `\-' or `­', put the following into your +`~/.emacs': + + (setq x-symbol-tex-user-table '((hyphen))) + (setq x-symbol-sgml-user-table '((hyphen))) + + A better alternative would be to make `font-lock' display these +character in a different color. + + +File: x-symbol.info, Node: FAQ Spell Check, Next: FAQ News and Mail, Prev: FAQ Hyphen, Up: FAQ + +Problems with Spell-checking +---------------------------- + + As explained in *Note Miscellaneous Packages::, `ispell' assumes the +buffer contents to be the same as the file contents and does not provide +any hook to fix this. This might break `ispell-word' and +`ispell-region'. Possible symptoms: + + * A word which contains letters which the program `ispell' does not + know about is either not spell-checked or parts of it are + spell-checked as independent words. + + Solution: Use the `ispell's 8bit dictionaries even if you do not + store 8bit characters in the file. This should fix the problem for + almost every word, except, e.g., words containing the Latin-9 + character `oe' if you use a Latin-1 encoding. + + * Spell-checking might stop with the error message `Ispell + misalignment'. I can reproduce this only with Emacs, not with + XEmacs. + + Question: If you know some settings (like for + `process-coding-system-alist') which solves this problem, please + let me know! + + Solution: turn X-Symbol off before spell-checking your buffer. + This is of course no option if you use `flyspell'. + + The real solution would be to fix `ispell', at least by providing a +useful hook which allows X-Symbol to fix the problem. *Note Wishlist +Emacs::. You are strongly encouraged to send a patch to the maintainer +of `ispell', you even get a paragraph here in *Note Acknowledgments::! + + +File: x-symbol.info, Node: FAQ News and Mail, Prev: FAQ Spell Check, Up: FAQ + +How to Use X-Symbol with Gnus or VM +----------------------------------- + + You can also use X-Symbol to read and write your News and Mails. +This sections includes coding for your `~/.emacs' if you want to do so. +It has been tested for GNUS-5.8.8 and VM-6.96; if you use RMAIL or +MH-E, you have to try to find a solution yourself (please send it to +me). Support for GNUS might become a standard part of X-Symbol. + + (custom-set-variables + '(x-symbol-auto-style-alist + '(((mail-mode message-mode gnus-article-mode vm-presentation-mode) + tex nil nil nil nil t nil)))) + + This is optional (you might want to use the Custom interface for the +same effect) and tells Emacs/X-Symbol to use token language `tex' and +to display super-/subscripts (if `font-lock' is enabled), X-Symbol is +not automatically turned on. *Note Minor Mode::. + + (defun x-symbol-x-mail-send-hook () + (if x-symbol-mode (x-symbol-mode 0))) + (add-hook 'mail-send-hook 'x-symbol-x-mail-send-hook) + (add-hook 'message-send-hook 'x-symbol-x-mail-send-hook) + (add-hook 'vm-mail-send-hook 'x-symbol-x-mail-send-hook) + + This tells tells Emacs to automatically turn off X-Symbol (which +includes encoding characters to token) before actually sending the +message. + + (defun x-symbol-x-gnus-prepare () + (when x-symbol-mode + (setq x-symbol-mode nil) + (x-symbol-mode-internal nil))) + (add-hook 'gnus-article-prepare-hook 'x-symbol-x-gnus-prepare) + + Since GNUS reuses the `*Article*' buffer, where X-Symbol could have +been turned on previously, we must make sure that X-Symbol is turned +off with the new article. + + (defun x-symbol-x-vm-prepare () + (and (boundp 'vm-presentation-buffer) + (buffer-live-p vm-presentation-buffer) + (save-excursion + (set-buffer vm-presentation-buffer) + (when x-symbol-mode + (setq x-symbol-mode nil) + (x-symbol-mode-internal nil))))) + (add-hook 'vm-select-message-hook 'x-symbol-x-gnus-prepare) + + The same thing for VM, although the hook is not as nice as GNUS' +one; the function therefore might depend a bit too much on VM's interna. + + (put 'vm-mode 'x-symbol-mode-disable + "Use VM Presentation Mode to turn on X-Symbol") + (custom-set-variables '(vm-fill-paragraphs-containing-long-lines 80)) + + You cannot use X-Symbol in VM Mode, only in VM Presentation Mode +(X-Symbol would change your `INBOX'). The first (optional) Emacs Lisp +expression gives you a better error message when you try to turn on +X-Symbol Mode in VM Mode. The second line makes sure that VM always +uses VM Presentation Mode to display the articles. + + +File: x-symbol.info, Node: Bug Reports, Prev: FAQ, Up: Problems + +How to Send a Bug/Problem Report +================================ + + Bug fixes, bug/problem reports, improvements, and suggestions are +strongly appreciated. So are corrections to this manual (better +explanations, correcting my English, ...). Especially useful would be +some feedback by people using default fonts with a charset +registry-encoding other than `iso8859-1' (Western encoding). + + Please read this section carefully, even if you generally know how to +send a bug report (*note Bugs: (xemacs)Bugs.). This might look tedious +to you, but it actually saves a lot of time (your time, too). + + For each bug/problem report or question you want to send to the +maintainer, please use the following sequence: + + 1. Make sure that you use the *newest version* of X-Symbol. You are + reading Edition 4.5 (XEmacs) of the manual for X-Symbol 4.5. + + 2. Read the manual, especially *Note Checking Installation::, *Note + Problems:: and *Note FAQ::. The four indexes (*note Indexes::.) + might also lead you to an answer to your question. + + 3. Use `M-x x-symbol-package-bug' (also to be found in X-Symbol's + Command submenu) to write your report describing *one* bug or + problem, i.e., use *different mails* for *unrelated problems*. + Please do not "reuse" a mail thread with the maintainer, i.e., if + you start a section with "Here is another problem", you do + something wrong. + + If Emacs is not your mail tool, copy the Subject header line and + the message body from Emacs' `*mail*' buffer to your mail tool. + + If `M-x x-symbol-package-bug' fails to work, you have a problem + with your installation and your report should be about this + problem. In this case, use `x-symbol VERSION; SUMMARY' as Subject + header where VERSION is the version of X-Symbol and SUMMARY is a + brief summary of your installation problem. + + (*Rationale*: This command automatically extracts some essential + information without any work by you. Don't waste your time + pondering whether you should really use this command to write your + report.) + + 4. Start your report with: + + In the manual, I checked the sections SECTION1, SECTION2, + ..., but didn't find anything which helped me with the + following problem: + + The sections SECTION1, SECTION2, etc are names (not numbers!) of + the sections (not whole chapters!) in the manual where you would + expect an answer to your question/problem/bug. + + If you didn't know which sections to inspect, please check the + indexes. If they are not helpful, send me words/terms which + should be included in the indexes. + + (*Rationale*: This way, I get an idea where to improve the manual, + especially by adding cross references.) + + 5. If buffer `*Warnings*' does not exist in the buffer menu, + everything is fine so far. So is (for me as the author of package + X-Symbol), if `X-Symbol' is not mentioned there. Otherwise, + include the contents of buffer `*Warnings*' into your bug report. + + Temporary Emacs (< v21.4) note: the warnings might be somewhere + hidden in buffer `*Messages*'; please check that buffer. + + 6. Put the parts of the code from `~/.emacs' and the system-wide files + which causes the problem into a fresh file `MY-PROBLEM.el'. The + problem/error should be visible when invoking + + xemacs -no-site-file -q -l MY-PROBLEM.el + + In the minimal case, `MY-PROBLEM.EL' just contains the following + line (*note Installing Lisp::.): + + (x-symbol-initialize) + + If the error has disappeared after you have included your complete + `~/.xemacs/init.el' and `~/.emacs', the problem is likely caused + by some code of your system-wide installation. Include the code, + which can be found using command `M-x find-library' with files + `site-start' and `default' (everything is fine if these files do + not exist). + + If you use `x-symbol-site.el' (its use is deprecated), copy its + contents into `MY-PROBLEM.EL' and delete the corresponding `load' + command. + + Attach the file `MY-PROBLEM.el' to your report. *Please try to + minimize the size of `MY-PROBLEM.el'*! A standard technique is + recursive halving: Delete the second half of `MY-PROBLEM.EL'. If + the problem disappears, delete the first half instead. Do the + same with the smaller file again, .... + + (*Rationale*: Most problems are a consequence of some specific + customizations, but I don't have time to debug each user's init + file.) + + 7. If you have set variable `custom-file' in `MY-PROBLEM.el', attach + the corresponding file to your report. + + 8. If the error can only be reproduced in combination with another + Emacs package, please send me: + + - If it is included in the standard Emacs/XEmacs distribution / + if is an XEmacs package: the version you use if it is not + that from the Emacs/XEmacs distribution (use `M-x + find-library' to check whether you really use the version + from the Emacs/XEmacs distribution). + + - If it is a non-standard (and non-obscure) package: the URL of + the distribution and/or the source. + + - Otherwise: include its code into `MY-PROBLEM.el' and delete + the corresponding `load' or `require' command. Then, reduce + the size of `MY-PROBLEM.el' as described above. + + 9. If the problem is not reproducible with an *arbitrary* (`.tex', + `.html', ...) file, try to minimize the file such that the problem + can be still reproducible, and include the file with its full file + name into your bug report. + + (*Rationale*: Most problems are only reproducible with specific + files.) + + 10. Finally, include the exact key sequence which causes the problem + into your bug report. You should also tell me the name of the + buffer in which the problem occurred and how you have created that + buffer (e.g., by `C-x C-f FILE <RET>'). + + At best, you start your Emacs, and then try to reproduce the + problem as fast as possible (i.e., with a minimum number of + key/mouse strokes). + + As soon as the problem appears, press `C-h l' and include the + contents of buffer `*Help*' in your bug report. + + (*Rationale*: Most problems are only reproducible with point being + at a specific position in the file, with specific key sequences, + etc.) + + 11. If you have problem with the display of images, please include the + output of the shell commands `convert -h' and `convert -list + Format' in your bug report. If the first command fails, you have a + problem with the program `convert', not X-Symbol. + + 12. If necessary, include a screen-shot in your bug report. + + 13. If you could not use `M-x x-symbol-package-bug', include the + contents of buffer `*Help*' after the following actions: + + - Type `C-h v x-symbol-version <RET>'. + + - Type `C-h v emacs-version <RET>'. + + - Type `C-h v features <RET>'. + + + If you have solved your problem during this sequence, but you think +your situation is worth to be mention in this manual (e.g., in *Note +Package Integration::), I would appreciate if you would send me a some +new text for this manual or a normal bug report together with your +solution. + + +File: x-symbol.info, Node: History, Next: Indexes, Prev: Problems, Up: Top + +History and Projects +******************** + +* Menu: + +* News:: Changes in recent versions. +* Wishlist:: Projects for X-Symbol. +* Open Questions:: How you can contribute. +* Acknowledgments:: People having contributed. + + +File: x-symbol.info, Node: News, Next: Wishlist, Prev: History, Up: History + +News: Changes in Recent Versions of X-Symbol +============================================ + + This is the complete history of X-Symbol. It just lists the major +changes before Version 3.0. + +* Menu: + +* Changes 4.5:: Released Mar 2003 as beta. +* Changes 4.4:: Released June 2002 as beta. +* Changes 4.1:: Released Mar 2002 as beta. +* Changes 3.4:: Released Mar 2002. +* Changes 3.3:: Released Jan 1999. +* Changes 3.2:: Released Dec 1998. +* Changes 3.1:: Released Oct 1998. +* Changes 3.0:: Released Sep 1998 as beta. +* Changes Old:: Overview of old releases. + + +File: x-symbol.info, Node: Changes 4.5, Next: Changes 4.4, Prev: News, Up: News + +Changes in X-Symbol 4.5 +----------------------- + + Version 4.5 has been released on March 2003 as beta. + + * X-Symbol finally respects the Mule coding system of each + individual buffer. + + * Bug fix: would mess up encoding of math-mode characters with token + language `bib'. Other conversion fixes for languages `bib' and + `texi'. + + * Bug fix (workaround for bug in XEmacs): auto-save files would have + length 0. + + * Bug fix (Emacs): package now works with package `crypt'/`crypt++'. + + * Token language `sgml': always encode characters to entity + references by default (not possible with most Latin-N characters, + where we still use character entities). Include `hm--html-mode', + `html-helper-mode', remove `sgml-mode' as typical major modes. + + * Token language `tex': support some symbols of package + `stmaryrd.sty'. + + * Change the auto-style, formerly auto-mode, mechanism. + + * Image support when running on Emacs. + + * New input method Quail, a usual Mule input method. + + * Corrected Latin-5 definitions. Support Latin-5 ("Turkish") on + XEmacs running under Windows. + + * X-Symbol works with Emacs/XEmacs running under a character + terminal. + + * Improments for external languages. Super-/subscript matching of + token languages has changed. + + * X-Symbol can use package `format' and does not require special + fonts for super-/subscripts with Emacs-21.4+. Still open whether + this will be used.... + + * Dropped support for XEmacs-20.3. + + * Various bug fixes and minor changes. + + +File: x-symbol.info, Node: Changes 4.4, Next: Changes 4.1, Prev: Changes 4.5, Up: News + +Changes in X-Symbol 4.2, 4.3, 4.4 +--------------------------------- + + Version 4.4 has been released on June 2002 as beta. + + * Token language TeX has changed: no excessive use of braces + anymore, no excessive normalization, and aware of environments + `{tabbing}' and `{verbatim}', and macro `\verb'. Reading and + saving "old-encoded" files works without changes in the file (the + buffer looks different), there is also a command to remove the + unwanted braces around accented letters. + + * New token language "BibTeX Macro" (`bib', similar to old `tex'), + used for BibTeX files. + + * Nuked executables, the Lisp conversion for all languages is now 2-5 + times faster. + + * Latin-9 support. Latin-9 font included in distribution. + + * Works with XEmacs-21.4+ on Windows. Of course, it just supports a + limited number of characters and no super- and subscripts there + due to missing fonts. + + * More likely to save 8bit characters in the file by default: also + look for 8bit characters in the file when visiting the file, also + inspect master file (`TeX-master') with token language `tex'. + + * New buffer-local variable `x-symbol-unique': when non-`nil', + decodes much less tokens to avoid near to all normalizations, used + for TeX's style files (but X-Symbol is not automatically turned + on). Dropped token language `utex'. + + * Menu changes, new commands: submenu "Conversion", menu items "Copy + Encoded", "Paste Decoded" and others. + + * Special coding for `preview-latex'. Using X-Symbol now only gives + a 10% overhead of `preview's parsing time. + + * X-Symbol now works with WhizzyTeX. + + * The interface for defining a token language has changed, it is + also much more general, useful for ProofGeneral. + + * Changed final bytes of ISO 2022 escape sequence for X-Symbol + charsets since Emacs reserves the characters `0-9' for itself. + Does XEmacs has any policy here (it also uses `?')? + + * Dropped workaround for minor bug in XEmacs-20.X. + + * Various bug fixes and minor changes. + + +File: x-symbol.info, Node: Changes 4.1, Next: Changes 3.4, Prev: Changes 4.4, Up: News + +Changes in X-Symbol 4.1 +----------------------- + + Version 4.1 has been released on Mar 2002 as beta. + + * X-Symbol works with Emacs-21.1 or higher. Porting is not + complete, yet. + + * New token language "TeXinfo command" (`texi'). + + * Slightly different definition of "valid character". + + * Remove the "local if set" and "default: ..." submenu stuff. + + +File: x-symbol.info, Node: Changes 3.4, Next: Changes 3.3, Prev: Changes 4.1, Up: News + +Changes in X-Symbol 3.4 +----------------------- + + Version 3.4 has been released on Mar 2002. + + * Moved to SourceForge.net. Added files for nicer HTML output of + manual. + + * Would sometimes perform strange conversions when + `global-flyspell-mode' is enabled. + + * Bug fixes: command `M-x write-region' would always save the whole + buffer if X-Symbol is enabled for that buffer, writing a remote + file via ange-ftp would not work (was OK with efs). + + * Automatically deduce default coding via `locale -ck LC_CTYPE'. + + * Issue warning when running on XEmacs-21.0 to XEmacs-21.1.8. Update + manual: XEmacs user package directory is `~/.xemacs/packages'. + + * Directories ending with `//' in image search paths are recursive. + + * New characters used for token languages "TeX macro" and "Isabelle + symbol". + + * Make sure to convert just the first part of a multi-part image. + + * Source distribution includes files for building an RPM package, all + files also compile without Mule support. + + * Minor changes. Manual changes. + + +File: x-symbol.info, Node: Changes 3.3, Next: Changes 3.2, Prev: Changes 3.4, Up: News + +Changes in X-Symbol 3.3 +----------------------- + + Version 3.3 has been released on Jan 1999. + + * Package X-Symbol is really a proper XEmacs package: no need to + create fonts and to set the font path. With XEmacs/no-Mule, I + still recommend to create the executables (type `M-x + x-symbol-exec-create'). + + * New functions used for interaction with Emacs package `comint'. + This is necessary for new token language "Isabelle symbol", to be + distributed with Emacs package + ProofGeneral (http://www.proofgeneral.org/). + + * New characters used for token languages "TeX macro" and "Isabelle + symbol". + + * Minor changes. Manual changes. + + +File: x-symbol.info, Node: Changes 3.2, Next: Changes 3.1, Prev: Changes 3.3, Up: News + +Changes in X-Symbol 3.2 +----------------------- + + Version 3.2 has been released on Dec 1998. + + * Package X-Symbol is a proper XEmacs package. The installation + process is much easier (using the binary package). It has + changed, though! The use of file `x-symbol-site.el' is deprecated. + + * Reverting the buffer and using `vc' commands do not encode + characters when not using `crypt'. (This did not work always.) + + * Workaround for bug (segfault) in XEmacs-21/Mule betas. + + * Command `x-symbol-package-bug' is less restrictive. Please use + this command to contact the maintainer. + + * Bug fixes. Minor changes. Manual changes. + + +File: x-symbol.info, Node: Changes 3.1, Next: Changes 3.0, Prev: Changes 3.2, Up: News + +Changes in X-Symbol 3.1 +----------------------- + + Version 3.1 has been released on Oct 1998. + + * TeX macro `\mu' is represented by a character in the Adobe Symbol + font, not in a Latin-{1,3,5} font anymore. + + * Support for most SGML entities in HTML-4.0 specification. + + * Additional characters for `\therefore'/`∴', `‾' and + `€'. + + * Package X-Symbol has been customized. + + * The documentation has been completed (as TeXinfo file). + + * Handle special URL prefixes `file:', `http:' for images. + + * Bug fixes, configuration changes. + + +File: x-symbol.info, Node: Changes 3.0, Next: Changes Old, Prev: Changes 3.1, Up: News + +Changes in X-Symbol 3.0 +----------------------- + + Version 3.0 has been released on Sep 1998 as beta. + + * Package X-Symbol now works on XEmacs with and without Mule support. + Dropped support for XEmacs 19.13 to 19.16/20.2. + + * Full support of token language `sgml' (executables, subscripts, + images). + + * X-Symbol is a proper minor mode. + + * Easier (automatic) 8bit character control (e.g., for `\times' + `\pm',...). By default, the encoding when saving only writes 8bit + characters, if `\usepackage[latinN]{inputenc}' with N=1,2,3,5 was + found in the first 10000 characters of the file (including + commentary). + + * Package X-Symbol can be easily extended with new token languages + and fonts due to its modular design. It consistently handles + situations where an entry for an additional character defines the + same preferred key binding (and context) as for a previously + defined character + + * Key bindings have completely changed. They are now consistent + with the contexts of input method Context (which have changed a + bit). + + * The keys `@' and `!' are not used anymore as Modify- and + Rotate-Key. The Rotate key (instead of the Modify-Key) is used to + "Greek"ify the previous Ascii char. + + * Input method Aggressive Context is now called input method + Electric and is much more restrictive (using package `texmathp' + with language "TeX macro"). + + * Easier installation despite many additional features. + + * Supports more characters. + + * Nicer grid, info in echo area. + + * Better cooperation with packages: `vc' (check-out does not convert + characters), `reftex' (no strange characters `\237', help with + label creation), `auctex', `ispell', `font-latex' (no annoyances + with `\exists'). + + * Safer use of executables. + + * The code has completely changed. You have to redo your + installation. + + +File: x-symbol.info, Node: Changes Old, Prev: Changes 3.0, Up: News + +Changes in Old Releases. +------------------------ + + This sections gives just an overview of the major changes in the +releases. + + Version 2.6 has been released on Oct 1998. + + * Fixed serious bug when used under tty. + + Version 2.5 has been released on Mar 1998. + + * Image support. + + Version 2.4 has been released on Mar 1997. + + * Token language `sgml'. (X-Symbol can handle more then token + language `tex'.) + + * Input method Aggressive Context (precursor of input method + Electric), input method Context has been much improved. + + * Fixed performance bug when saving a file with package `crypt'. + + * Control of Conversion and 8bit character has changed. + + Version 2.3 has been released on Sep 1996. + + * Distributed with own font for more math characters. + + * Info for the character around point in echo area. + + Version 2.2 has been released on June 1996. + + * Input method Grid. Help when using input method Keyboard. + + * Control of Conversion and 8bit character has changed. + + Version 2.1 has been released on April 1996. + + * Fixed serious performance bug when loading files with + font-lock/lazy-lock. Use executables for conversion of large + buffers. + + * The package `iso-cvt' is not integrated anymore. Now this package + can also convert to/from Latin-1 characters, it is much faster. + + * Menu support, including input method Menu. + + * `isearch' works with X-Symbol characters. + + * First multi-file version. + + Version 1.4 has been released on Feb 1996. + + * Provide some kind of "poor man's Mule" to remove most + Nomule-Problems. + + Version 1.3 has been released on Jan 1996. + + * Input method Abbrev (precursor of input method Token). + + * Super-/subscript support. + + Version 1.2 has been released on Jan 1996. It was the first release. + + * Conversion between characters and TeX tokens. Do so automatically + when visiting a file and saving the buffer. + + * Input method Keyboard. + + +File: x-symbol.info, Node: Wishlist, Next: Open Questions, Prev: News, Up: History + +Wishlist: Projects for X-Symbol +=============================== + + You are encouraged to try to provide a solution to one of the +problems of this section. In fact, it is quite unlikely that I do it +myself without any contributions from you, see also *Note Open +Questions::. + + Providing a solution to these problems is the second way of making +your name appear in *Note Acknowledgments::. + +* Menu: + +* Wishlist Languages:: Additional token languages. +* Wishlist Fonts:: Automatically generated fonts. +* Wishlist Emacs:: Changes in Emacs/XEmacs. +* Wishlist LaTeX:: Changes in LaTeX. +* Wishlist Various:: Other changes. +* Wishlist Rejected:: Rejected Suggestions for X-Symbol. + + +File: x-symbol.info, Node: Wishlist Languages, Next: Wishlist Fonts, Prev: Wishlist, Up: Wishlist + +Wishlist: Additional Token Languages +------------------------------------ + + Making a contribution here would require just a basic knowledge of +Emacs and X-Symbol. In fact, I would do the non-trivial part of the +Emacs Lisp part (*note Extending X-Symbol::.) for general-interest +token languages (e.g., AmsTeX). + + It is likely that this would require additional fonts: available +fonts (e.g., IPA font), hand-crafted, or generated (*note Wishlist +Fonts::.). + + +File: x-symbol.info, Node: Wishlist Fonts, Next: Wishlist Emacs, Prev: Wishlist Languages, Up: Wishlist + +Wishlist: Generated Fonts +------------------------- + + One direction of font generation would be from `.bdf' or `.pcf' font +files to Windows fonts to get rid of the limited support for XEmacs on +Windows (*note Requirements::.). If you have successfully converted +X-Symbol's fonts from the Unix format to the Windows format (via +`bdftofon' or whatever) or if you have free and real Latin-N fonts for +Windows, please *let me know*! I would also appreciate if you would +actively try to get those missing Windows fonts. + + Solofo Ramangalahy suggests to automatically generate the `.bdf' +fonts from other sources. This would have various advantages: + + * We could easily create different sizes for our symbol font. + + * It would be quite simple to create a `.bdf' font for AmsTeX + macros, calligraphical letters etc, which would be displayed as + X-Symbol characters by package X-Symbol. + + * We could easily create different sizes for our symbol font. + + Solofo has worked on Postscript fonts. Although the results are good +for big sizes, this cannot replace bdf fonts for "small" sizes like 14. +Besides, the X font server is not very good for postscript fonts +(compared with ATM where you have anti-aliasing for example). Now that +XEmacs run under Windows, it may be that the result is better under +Windows than under Unix. This has not been tested. + + An other possibility is to use true type fonts as true type font +servers can achieve better results with good hinted fonts. This has +not been done yet. + + There are also some problems which are not optimally solved in the +current xsymb font either: + + * Different TeX macros (same appearance, different TeX class = + different spacing) use the same MetaFont character, e.g., `\dagger' + and `\dag'. Therefore, we need different X11 characters for them. + + * Some Ascii characters have a special meaning in TeX. The + corresponding MetaFont character is therefore produced by a TeX + macro, e.g., `{' by `\{'. We need a X11 character which looks + similar to the character but not exactly like it. + + We could ask the question whether we should really distinguish the +characters by appearance...we have the minibuffer info for the X-Symbol +character anyway.... Here are the options: + + - distinguished by size/underlining/miscellaneous (currently used), + + - distinguished by different spacing (my current favorite), + + - not distinguished + + Solofo Ramangalahy originally though of generating the `.bdf' fonts +out of TeX fonts (`.mf', `.pk') by `mftobdf' of SeeTeX, which can be +found at `CTAN/dviware/seetex/' among others distributions having this +tool. He dropped this idea for the following reason: + + The created fonts need some correction by hand, since it's + difficult to make good fonts at small size. MF fonts were created + to be printed at high resolutions (in the MetaFont book, cheapo is + 200 pixel per inch, resolution of screens are around 100 pixel per + inch). The parameters `blacker', `fillin' and `o_correction' are + not sufficient for tuning the computer modern fonts at low + resolutions (they will not do the job of hints of a postscript + font). + + +File: x-symbol.info, Node: Wishlist Emacs, Next: Wishlist LaTeX, Prev: Wishlist Fonts, Up: Wishlist + +Wishlist: Changes in Emacs/XEmacs +--------------------------------- + + Changes in Emacs and/or XEmacs would improve package X-Symbol, too: + + * In Emacs: a package system similar to XEmacs' one. The + installation would be easier. + + * The package `ispell' assumes the buffer contents to be the same as + the file contents and does not provide any hook to fix this. This + should be fixed in `ispell' (it will be better in Emacs-21.4), + *Note Miscellaneous Packages::. + + * Some versions control commands turn off `font-lock'. This should + be changed. + + * Provide a face property `raise': we wouldn't need extra fonts for + super- and subscripts. Emacs: it's already a display property, + make it a face property, too (or make `font-lock' set properties + other than faces). XEmacs: no such property, yet. + + * You are sometimes unnecessarily asked (because X-Symbol will + encode the corresponding characters anyway) for a safe coding + system. In Emacs (will be fixed in Emacs-21.4) for non-default + Latin characters. In XEmacs, for all non-default characters if + you use package `latin-unity' (*note File IO Packages::.). + + * In Emacs, will be fixed in 21.4. Using `isearch' and the input + method Grid would not work. + + * In XEmacs, fixed in 21.X. In `after-insert-file-functions', there + should be a possibility to get to know the start position of the + region which is inserted. If `insert-file-contents' is called with + argument `replace' being non-`nil', it is not always point. + + * In Emacs and XEmacs, will be fixed in Emacs-21.4. Make + possibility to change buffers in `write-region-annotate-functions' + official, see *Note Alt Auto Conversion::, have a way to get the + original buffer. + + * Since `font-lock' uses duplicable text properties in some cases, I + need a function like `insert-buffer-substring-without-extents'. + (Currently, I remove the extents afterwards, which looks slow for + me.) + + * In XEmacs. Run hooks in `post-command-hook' even if command exits + with an error or quit (as it is in Emacs) or having some + `post-error-or-quit-hook'. *Note Nomule Problems::. + + * In XEmacs. There are some bugs in package `custom'/`widget' + (XEmacs-21.0-b59) which are visible during the customization of + X-Symbol. + + +File: x-symbol.info, Node: Wishlist LaTeX, Next: Wishlist Various, Prev: Wishlist Emacs, Up: Wishlist + +Wishlist: Changes in LaTeX +-------------------------- + + Changes in LaTeX, especially `inputenc.sty', would improve package +X-Symbol, too: + + * To make the definition of the character U00B5 consistent with + Unicode, `inputenc.sty' should define the character to stand not + for the token `\mu' (U03BC is the right character), but for an + extra token, e.g., something like `\textmicro'. X-Symbol uses + `\mathmicro' here in order to avoid changing `\mu' to the + character U00B5 if you have chosen to store 8bit characters. + + * Use same encoding for both text and math, i.e. use `periodcentered' + for both `\textperiodcentered' (the default) and `\cdot'. At + least provide text-and-math versions for characters where no + alternative is more obvious than the other. If that is not + possible, always choose text mode except for `\lnot', `\pm', + `\times' and `\division': use `\textonesuperior' for U00B9, + \texttwosuperior for U00B2, and `\textthreesuperior' for U00B3. + + * The TeX macros `\textcent', `\textcurrency', `\textbrokenbar', + `\textyen' are defined as not available with OT1 and T1 font + encoding. This should be changed. + + +File: x-symbol.info, Node: Wishlist Various, Next: Wishlist Rejected, Prev: Wishlist LaTeX, Up: Wishlist + +Various Projects for X-Symbol +----------------------------- + + The following suggestions seem to be useful, though not essential: + + * It would be nice if we could print the buffer contents. + Currently, you see strange characters instead X-Symbol's own + characters. + + Printing non-standard fonts is only possible via the Emacs package + `ps-print'. A newer version of `ps-print' might be probably + already capable of doing it. Thus, you are encouraged to help the + XEmacs team updating this package. + + +File: x-symbol.info, Node: Wishlist Rejected, Prev: Wishlist Various, Up: Wishlist + +Rejected Suggestions for X-Symbol +--------------------------------- + + The following suggestions seem to be not useful enough to be worth +the additional effort and increased package size. I might be convinced +otherwise by patches (i.e., code, not text), though: + + * It would be nice if X-Symbol would replace the token with the last + character of the token if this is possible (*note Input Method + Token::.), not just with the next character. Well, during typing, + this is not really annoying and after a while, you will use input + method Token only for very short tokens. + + +File: x-symbol.info, Node: Open Questions, Next: Acknowledgments, Prev: Wishlist, Up: History + +Open Questions +============== + + This section lists some minor open questions. + + * Loading file `x-symbol.el' will initialize package X-Symbol (via + function `x-symbol-initialize'), since all functions will need the + initialization. In my opinion, this is no problem, since all + customization options are defined an other files which do not + require file `x-symbol.el'. Thus, customizing package X-Symbol + will not initialize package X-Symbol. + + The alternative would be to call function `x-symbol-initialize' in + every function which can be autoloaded. This seems quite tedious + to me. Also, I do not see a reason not to call + `x-symbol-initialize' top-level in file `x-symbol.el'. If I am + wrong here, please let me know (with an explanation). + Batch-compilation might be an issue... + + * When is necessary to set `x-symbol-auto-conversion-method' to + `slowest'? Of course, it is only necessary when using `crypt'. + Is the other necessary condition to use the computer pool of the + University of Edinburgh? + + +File: x-symbol.info, Node: Acknowledgments, Prev: Open Questions, Up: History + +Acknowledgments +=============== + + Stefan Monnier did many of the changes necessary for porting +X-Symbol to Emacs-21. Fortunately, he not only changed X-Symbol to use +a quite different API on Emacs for things like charsets and menus, he +also made the necessary changes in Emacs itself. Before that, Sang-Min +Lee started porting X-Symbol to Emacs-20.4, which was important for +moving the status of the Emacs port of X-Symbol from "todo" to "in +work". + + David Kastrup demonstrated that the old way of encoding characters to +TeX macros generally inhibited ligatures and kerns, i.e., it was worse +than expected. He also discussed the details of how to do the encoding +and decoding right. Christophe Raffalli suggested to use a decode +method which can be used for a larger class of token languages. He +also proved that it is faster. + + Package `math-mode' by Renaud Marlet and the extension of it by +Julian Bradfield gave the basic idea for the following features: +supporting TeX's math macros, input methods token, context/electric, +super-/subscript support. The shell script `makesub' is a merge and +change of the scripts `makesupers' and `makesub' by Julian. + + The font `xsymb0', which is distributed with this package, is a +minor modification (appearance) of the Adobe symbol font, thanks to its +non-restrictive copyright. You may use the Adobe font instead. The +special images are from package `frame-icon'. + + The idea for Help during an X-Symbol key sequence is from package +`x-compose'. The general idea for showing some info in the echo area +is from package `eldoc'. The trick which stops `expand-abbrev' is from +package `mail-abbrevs'. The idea for +`x-symbol-image-cache-directories' is from package `fast-lock'. The +code for image command parsing is influenced by some code in package +`font-lock'. The code around `x-symbol-image-delete-extents' is based +on some code in package `bib-cite'. + + Thanks for patches/reports/suggestions to: Vladimir Alexiev, David +Aspinall, Masayuki Ataka, Neal Becker, Matthias Berberich, Stefano +Bianchi, Janusz S. Bien, Uwe Brauer, Alastair Burt, John Collins, +Laurent Descamps, Frederic Devernay, Carsten Dominik, Steve Dunham, +Michael Ebner, Stephen Eglen, Paul Furnanz, Jeffrey Grandy, Clemens +Gr"opl, Kenichi Handa, Meik Hellmund, Ryurick M. Hristev, Adriaan +Joubert, Marcin Kasperski, David Kastrup, Richard Ketchersid, Felix E. +Klee, Gerwin Klein, Thomas Kleymann, Ekkehard Koehler, Fred Labrosse, +Jan-Ake Larsson, Bernhard Lehner, Stefan Monnier, Harald Muehlboeck, +Karsten Muehlmann, Jakub Narebski, Peter Mo/ller Neergaard, Raymond +Nijssen, David von Oheimb, Alex Ott, Sudeep Kumar Palat, Arshak +Petrosyan, Jim Radford, Christophe Raffalli, Solofo Ramangalahy, +Marciano Siniscalchi, Richard M. Stallman, Alex Russell, Eli Tziperman, +Jan Vroonhof, Markus Wenzel, Sabine Wetzel, Pierre-Henri Wuillemin, +Roland Zumkeller, Marco Zunino, Gerard Zwaan. + + Thanks for general information to: Per Abrahamsen, Steve L. Baur, +Kenichi Handa, David Kastrup, Gerd Moellmann, Stefan Monnier, Primoz +Peterlin, Martin Ramsch, Peter Schmitt, Toby Speight, Jan Vroonhof, Eli +Zaretskii. + + I made use of information from the following URLs: + + `http://www.w3.org/TR/REC-html40/sgml/entities.html' + `http://www.fmi.uni-passau.de/~ramsch/iso8859-1.html' + `http://czyborra.com/charsets/iso8859.html' + `http://www.bbsinc.com/iso8859.html' + `http://www.bbsinc.com/iso8879.html' + `http://ppewww.ph.gla.ac.uk/~flavell/charset/internat.html' + `http://ppewww.ph.gla.ac.uk/~flavell/iso8859/iso8859-pointers.html' + `http://sizif.mf.uni-lj.si/linux/cee/iso8859-2.html' + + I do not intend to update this list in the future--this is just an +"Acknowledgment" section. + + +File: x-symbol.info, Node: Indexes, Prev: History, Up: Top + +Indexes +******* + + You should consult the following indexes if you are interested in a +specific feature or aspect of package X-Symbol. You should also consult +them before sending a report to the maintainer (*note Bug Reports::.), + +* Menu: + +* Key Index:: Key sequences. +* Program Index:: Programs and Emacs packages. +* Variable Index:: Commands, functions, variables. +* Concept Index:: Various topics. + + The links lead you to the manual sections describing X-Symbol's +commands and variables. *Note About::. + + +File: x-symbol.info, Node: Key Index, Next: Program Index, Prev: Indexes, Up: Indexes + +Key Index +========= + +* Menu: + +* <button1>: Input Method Keyboard. +* <button2> <1>: Input Method Grid. +* <button2> <2>: Input Method Keyboard. +* <button2> <3>: Input Method Grid. +* <button2>: Image Editor. +* <button3> <1>: Input Method Grid. +* <button3> <2>: Image Editor. +* <button3>: Input Method Keyboard. +* <help>: Input Method Keyboard. +* <multi-key>: Introducing Input Methods. +* <RET>: Input Method Grid. +* <SPC>: Input Method Grid. +* ?: Input Method Grid. +* C-,: Input Method Context. +* C-.: Input Method Context. +* C-=: Introducing Input Methods. +* C-= <down>: Input Method Context. +* C-= <help>: Input Method Keyboard. +* C-= <left>: Input Method Context. +* C-= <RET>: Input Method Read Token. +* C-= <right>: Input Method Context. +* C-= <TAB>: Input Method Read Token. +* C-= <up>: Input Method Context. +* C-= C-=: Input Method Grid. +* C-= C-h: Input Method Keyboard. +* C-h: Input Method Keyboard. +* h: Input Method Grid. +* i: Input Method Grid. +* M-<end>: Input Method Keyboard. +* M-<home>: Input Method Keyboard. +* M-<next>: Input Method Keyboard. +* M-<prior>: Input Method Keyboard. +* q: Input Method Grid. + + +File: x-symbol.info, Node: Program Index, Next: Variable Index, Prev: Key Index, Up: Indexes + +Program and Package Index +========================= + +* Menu: + +* abbrev: Miscellaneous Packages. +* amssymb.sty: TeX Macro Symbols. +* ange-ftp: File IO Packages. +* auctex <1>: Requirements. +* auctex <2>: LaTeX Packages. +* auctex: Spurious Encodings. +* bdftofon: Wishlist Fonts. +* bib-cite: LaTeX Packages. +* bibtex: BibTeX Macro. +* comint: File IO Packages. +* completion: Miscellaneous Packages. +* convert <1>: Installing Image Converter. +* convert <2>: Images. +* convert <3>: Requirements. +* convert: Image Conversion. +* crypt <1>: No Encoding. +* crypt <2>: File IO Packages. +* crypt <3>: Open Questions. +* crypt: Spurious Encodings. +* crypt++: File IO Packages. +* desktop: Miscellaneous Packages. +* display: Image Editor. +* efs: File IO Packages. +* Emacs: Requirements. +* Exceed: Installing Fonts Exceed. +* fast-lock: Syntax Hiliting Packages. +* flyspell: Miscellaneous Packages. +* font-latex <1>: Syntax Hiliting Packages. +* font-latex: FAQ Stupid Subscripts. +* font-lock <1>: FAQ Stupid Subscripts. +* font-lock <2>: FAQ font-lock. +* font-lock <3>: Char Representation. +* font-lock <4>: Requirements. +* font-lock: Syntax Hiliting Packages. +* fontenc.sty: TeX Macro Symbols. +* format: Alt Auto Conversion. +* frame-icon: Acknowledgments. +* func-menu: Miscellaneous Packages. +* GNU texinfo: TeXinfo Command. +* Gnus: FAQ News and Mail. +* inputenc.sty <1>: TeX Macro Symbols. +* inputenc.sty: Wishlist LaTeX. +* iso-cvt: File IO Packages. +* iso-sgml: File IO Packages. +* ispell <1>: FAQ Spell Check. +* ispell <2>: Miscellaneous Packages. +* ispell: Wishlist Emacs. +* jka-compr: File IO Packages. +* latex2html <1>: Installing Manual. +* latex2html: Requirements. +* latexsym.sty: TeX Macro Symbols. +* latin-unity <1>: Char Aliases. +* latin-unity: File IO Packages. +* lazy-lock: Syntax Hiliting Packages. +* lazy-shot <1>: Requirements. +* lazy-shot: Syntax Hiliting Packages. +* makeinfo <1>: TeXinfo Command. +* makeinfo <2>: Requirements. +* makeinfo: Installing Manual. +* math-mode: Acknowledgments. +* Mathematica: FAQ Strange Chars. +* Message: FAQ News and Mail. +* Netscape: SGML Entity. +* perl: Installing Fonts. +* preview-latex: LaTeX Packages. +* ProofGeneral <1>: External Languages. +* ProofGeneral: Miscellaneous Packages. +* ps-print: Wishlist Various. +* psgml: Miscellaneous Packages. +* psgml-html: Miscellaneous Packages. +* reftex <1>: Ascii Representation. +* reftex: LaTeX Packages. +* session: Miscellaneous Packages. +* stmaryrd.sty: TeX Macro Symbols. +* texi2dvi <1>: Installing Manual. +* texi2dvi: Requirements. +* texi2html: TeXinfo Command. +* texinfo: TeXinfo Command. +* texmathp <1>: TeX Macro Basics. +* texmathp <2>: Requirements. +* texmathp: LaTeX Packages. +* vc <1>: Spurious Encodings. +* vc <2>: Wishlist Emacs. +* vc: File IO Packages. +* VM: FAQ News and Mail. +* x-compose: Miscellaneous Packages. +* XEmacs: Requirements. +* xfd: Installing Fonts. +* xfig: Image Editor. +* xfontsel: Installing Fonts. +* xset: Installing Fonts. + + +File: x-symbol.info, Node: Variable Index, Next: Concept Index, Prev: Program Index, Up: Indexes + +Command, Function and Variable Index +==================================== + +* Menu: + +* after-insert-file-functions <1>: Wishlist Emacs. +* after-insert-file-functions: Alt Auto Conversion. +* backward-char: Avoiding Flickering. +* backward-char-command: Avoiding Flickering. +* change-major-mode-with-file-name: Spurious Encodings. +* comint-input-sender: File IO Packages. +* fast-lock-save-faces <1>: FAQ font-lock. +* fast-lock-save-faces: Syntax Hiliting Packages. +* font-lock-auto-fontify: Syntax Hiliting Packages. +* font-lock-maximum-decoration: Syntax Hiliting Packages. +* forward-char: Avoiding Flickering. +* forward-char-command: Avoiding Flickering. +* global-flyspell-mode: Miscellaneous Packages. +* gnus: FAQ News and Mail. +* gnus-article-prepare-hook: FAQ News and Mail. +* hack-local-variables-hook: Alt Auto Conversion. +* isearch: Wishlist Emacs. +* ispell-region: FAQ Spell Check. +* ispell-word: FAQ Spell Check. +* kill-ring: Copy with Conversion. +* LaTeX-math-insert-function: LaTeX Packages. +* mail: FAQ News and Mail. +* mail-send-hook: FAQ News and Mail. +* message-mail: FAQ News and Mail. +* message-send-hook: FAQ News and Mail. +* newline: Tagging Insert Commands. +* newline-and-indent: Tagging Insert Commands. +* post-command-hook: Wishlist Emacs. +* reftex-translate-to-ascii-function: LaTeX Packages. +* reindent-then-newline-and-indent: Tagging Insert Commands. +* save-buffer: File IO Packages. +* self-insert-command: Tagging Insert Commands. +* sgml-close-angle: Tagging Insert Commands. +* sgml-slash: Tagging Insert Commands. +* TeX-insert-dollar: Tagging Insert Commands. +* TeX-insert-punctuation: Tagging Insert Commands. +* TeX-insert-quote: Tagging Insert Commands. +* tex-insert-quote: Tagging Insert Commands. +* TeX-master <1>: TeX Macro Basics. +* TeX-master <2>: TeX Macro Features. +* TeX-master: LaTeX Packages. +* TeX-next-error: LaTeX Packages. +* TeX-region-hook: LaTeX Packages. +* TeX-translate-location-hook: LaTeX Packages. +* TEXINPUTS: TeX Macro Features. +* TEXPICTS: TeX Macro Features. +* vc-next-action: File IO Packages. +* vm: FAQ News and Mail. +* vm-mail: FAQ News and Mail. +* vm-mail-send-hook: FAQ News and Mail. +* vm-mode: FAQ News and Mail. +* vm-presentation-mode: FAQ News and Mail. +* vm-select-message-hook: FAQ News and Mail. +* write-file: Spurious Encodings. +* write-file-data-hooks: Alt Auto Conversion. +* write-file-hooks <1>: No Encoding. +* write-file-hooks: Alt Auto Conversion. +* write-region: No Encoding. +* write-region-annotate-functions <1>: Alt Auto Conversion. +* write-region-annotate-functions: Wishlist Emacs. +* x-symbol-8bits: Controlling 8bit Coding. +* x-symbol-after-init-input-hook: Customizing Input Method. +* x-symbol-auto-8bit-search-limit: Controlling 8bit Coding. +* x-symbol-auto-coding-search-limit: File Coding. +* x-symbol-auto-conversion-method <1>: File IO Packages. +* x-symbol-auto-conversion-method: Open Questions. +* x-symbol-auto-key-autoload: Introducing Input Methods. +* x-symbol-auto-mode-suffixes: Minor Mode. +* x-symbol-auto-style-alist: Minor Mode. +* x-symbol-bib-auto-style: BibTeX Macro. +* x-symbol-bib-class-alist: BibTeX Macro. +* x-symbol-bib-class-face-alist: BibTeX Macro. +* x-symbol-bib-electric-ignore: BibTeX Macro. +* x-symbol-bib-extra-menu-items: BibTeX Macro. +* x-symbol-bib-header-groups-alist: BibTeX Macro. +* x-symbol-bib-modes: BibTeX Macro. +* x-symbol-bib-user-table: BibTeX Macro. +* x-symbol-character-info: Info. +* x-symbol-charsym-ascii-alist: Ascii Representation. +* x-symbol-charsym-ascii-groups: Ascii Representation. +* x-symbol-coding: File Coding. +* x-symbol-compose-key: Introducing Input Methods. +* x-symbol-context-ignore: Input Method Context. +* x-symbol-context-info: Info. +* x-symbol-context-info-ignore: Info. +* x-symbol-context-info-ignore-groups: Info. +* x-symbol-context-info-ignore-regexp: Info. +* x-symbol-context-info-threshold: Info. +* x-symbol-context-init-ignore: Input Method Context. +* x-symbol-copy-region-encoded: Copy with Conversion. +* x-symbol-decode: Conversion Commands. +* x-symbol-decode-recode: Conversion Commands. +* x-symbol-default-coding: Default Coding. +* x-symbol-default-context-info-ignore: Info. +* x-symbol-electric-ignore: Input Method Electric. +* x-symbol-electric-input: Input Method Electric. +* x-symbol-encode: Conversion Commands. +* x-symbol-encode-recode: Conversion Commands. +* x-symbol-font-sizes: Installing Fonts Lisp. +* x-symbol-fontify <1>: FAQ font-lock. +* x-symbol-fontify: Role of font-lock. +* x-symbol-grid: Input Method Grid. +* x-symbol-grid-ignore-charsyms: Input Method Grid. +* x-symbol-grid-reuse: Input Method Grid. +* x-symbol-grid-tab-width: Input Method Grid. +* x-symbol-group-input-alist <1>: Customizing Input Methods. +* x-symbol-group-input-alist: Customizing Input Method. +* x-symbol-group-syntax-alist: Misc Internals. +* x-symbol-header-groups-alist: Customizing Input Method. +* x-symbol-heading-strut-glyph: Input Method Grid. +* x-symbol-help: Input Method Keyboard. +* x-symbol-idle-delay <1>: Super and Subscripts. +* x-symbol-idle-delay: Info. +* x-symbol-image: Image Display. +* x-symbol-image-cache-directories: Image Caching. +* x-symbol-image-colormap-allocation: Image Conversion. +* x-symbol-image-convert-colormap: Image Conversion. +* x-symbol-image-convert-file-alist: Image Conversion. +* x-symbol-image-convert-mono-regexp: Image Conversion. +* x-symbol-image-convert-program <1>: Installing Image Converter. +* x-symbol-image-convert-program: Image Conversion. +* x-symbol-image-converter <1>: Installing Image Converter. +* x-symbol-image-converter: Image Conversion. +* x-symbol-image-current-marker: Image Editor. +* x-symbol-image-data-directory: Special Images. +* x-symbol-image-editor: Image Editor. +* x-symbol-image-editor-alist: Image Editor. +* x-symbol-image-max-height: Image Conversion. +* x-symbol-image-max-width: Image Conversion. +* x-symbol-image-parse-buffer: Image Caching. +* x-symbol-image-scale-method: Image Editor. +* x-symbol-image-searchpath-follow-symlink: Image Display. +* x-symbol-image-special-glyphs: Special Images. +* x-symbol-image-start-convert-color: Image Conversion. +* x-symbol-image-start-convert-colormap: Image Conversion. +* x-symbol-image-start-convert-mono: Image Conversion. +* x-symbol-image-start-convert-truecolor: Image Conversion. +* x-symbol-image-temp-name: Image Caching. +* x-symbol-image-update-cache: Image Caching. +* x-symbol-image-use-remote: Image Caching. +* x-symbol-init-language-interactive: Language Internals. +* x-symbol-initialize <1>: Open Questions. +* x-symbol-initialize: Installing Lisp. +* x-symbol-installer-address <1>: Package Information. +* x-symbol-installer-address: System-wide Installation. +* x-symbol-key-min-length: Customizing Input Methods. +* x-symbol-key-suffix-string: Char Descriptions. +* x-symbol-LANG-auto-style: Minor Mode. +* x-symbol-LANG-class-alist: Char Group. +* x-symbol-LANG-class-face-alist: Char Group. +* x-symbol-LANG-electric-ignore: Input Method Electric. +* x-symbol-LANG-extra-menu-items: Minor Mode. +* x-symbol-LANG-font-lock-keywords: Super and Subscripts. +* x-symbol-LANG-header-groups-alist: Char Group. +* x-symbol-LANG-image-cached-dirs: Image Caching. +* x-symbol-LANG-image-keywords: Image Display. +* x-symbol-LANG-image-searchpath: Image Display. +* x-symbol-LANG-master-directory: Image Display. +* x-symbol-LANG-modes: Minor Mode. +* x-symbol-language: Token Language. +* x-symbol-language-access-alist: Language Internals. +* x-symbol-language-value: Language Internals. +* x-symbol-latin-force-use: Installing Fonts Lisp. +* x-symbol-latin1-cset: Defining Charsets. +* x-symbol-latin1-fonts: Installing Fonts Lisp. +* x-symbol-latin2-cset: Defining Charsets. +* x-symbol-latin2-fonts: Installing Fonts Lisp. +* x-symbol-latin3-cset: Defining Charsets. +* x-symbol-latin3-fonts: Installing Fonts Lisp. +* x-symbol-latin5-cset: Defining Charsets. +* x-symbol-latin5-fonts: Installing Fonts Lisp. +* x-symbol-latin9-fonts: Installing Fonts Lisp. +* x-symbol-list-bury: Input Method Grid. +* x-symbol-list-info: Input Method Grid. +* x-symbol-list-mode-hook: Customizing Input Method. +* x-symbol-local-grid: Input Method Grid. +* x-symbol-local-menu: Input Method Menu. +* x-symbol-map-default-keys-alist: Input Method Keyboard. +* x-symbol-menu-max-items: Input Method Menu. +* x-symbol-mode: Minor Mode. +* x-symbol-modeline-state-list: Minor Mode. +* x-symbol-modify-aspects-alist: Char Descriptions. +* x-symbol-modify-key: Input Method Context. +* x-symbol-mule-change-default-face: Installing Fonts Lisp. +* x-symbol-nomule-fontify-cstrings: Poor Mans Mule. +* x-symbol-package-bug: Package Information. +* x-symbol-package-info: Package Information. +* x-symbol-package-url <1>: System-wide Installation. +* x-symbol-package-url: Package Information. +* x-symbol-package-web: Package Information. +* x-symbol-read-token: Input Method Read Token. +* x-symbol-read-token-direct: Input Method Read Token. +* x-symbol-register-language: Language Internals. +* x-symbol-reveal-invisible: Super and Subscripts. +* x-symbol-revealed-face: Super and Subscripts. +* x-symbol-rotate-aspects-alist: Char Descriptions. +* x-symbol-rotate-key: Input Method Context. +* x-symbol-rotate-prefix-alist: Input Method Context. +* x-symbol-rotate-suffix-char: Input Method Context. +* x-symbol-sgml-auto-coding-alist: SGML Entity Basics. +* x-symbol-sgml-auto-style: SGML Entity Basics. +* x-symbol-sgml-class-alist: SGML Entity Basics. +* x-symbol-sgml-class-face-alist: SGML Entity Basics. +* x-symbol-sgml-electric-ignore: SGML Entity Basics. +* x-symbol-sgml-extra-menu-items: SGML Entity Basics. +* x-symbol-sgml-font-lock-alist: SGML Entity Features. +* x-symbol-sgml-font-lock-contents-regexp: SGML Entity Features. +* x-symbol-sgml-font-lock-limit-regexp: SGML Entity Features. +* x-symbol-sgml-font-lock-regexp: SGML Entity Features. +* x-symbol-sgml-header-groups-alist: SGML Entity Basics. +* x-symbol-sgml-image-cached-dirs: SGML Entity Features. +* x-symbol-sgml-image-file-truename-alist: SGML Entity Features. +* x-symbol-sgml-image-keywords: SGML Entity Features. +* x-symbol-sgml-image-searchpath: SGML Entity Features. +* x-symbol-sgml-master-directory: SGML Entity Features. +* x-symbol-sgml-modes: SGML Entity Basics. +* x-symbol-sgml-token-list: SGML Entity Conversion. +* x-symbol-sgml-token-list-code: SGML Entity Conversion. +* x-symbol-sgml-token-list-name: SGML Entity Conversion. +* x-symbol-sgml-token-list-netscape: SGML Entity Conversion. +* x-symbol-sgml-user-table: SGML Entity Conversion. +* x-symbol-subscripts: Super and Subscripts. +* x-symbol-temp-grid: Input Method Grid. +* x-symbol-temp-help: Input Method Keyboard. +* x-symbol-tex-auto-coding-alist: TeX Macro Basics. +* x-symbol-tex-auto-style: TeX Macro Basics. +* x-symbol-tex-class-alist: TeX Macro Basics. +* x-symbol-tex-class-face-alist: TeX Macro Basics. +* x-symbol-tex-coding-master: TeX Macro Basics. +* x-symbol-tex-electric-ignore: TeX Macro Basics. +* x-symbol-tex-electric-ignore-regexp: TeX Macro Basics. +* x-symbol-tex-env-tabbing-regexp: TeX Macro Conversion. +* x-symbol-tex-env-verbatim-regexp: TeX Macro Conversion. +* x-symbol-tex-error-location: LaTeX Packages. +* x-symbol-tex-extra-menu-items: TeX Macro Basics. +* x-symbol-tex-font-lock-allowed-faces: TeX Macro Features. +* x-symbol-tex-font-lock-limit-regexp: TeX Macro Features. +* x-symbol-tex-header-groups-alist: TeX Macro Basics. +* x-symbol-tex-image-cached-dirs: TeX Macro Features. +* x-symbol-tex-image-keywords: TeX Macro Features. +* x-symbol-tex-image-searchpath: TeX Macro Features. +* x-symbol-tex-master-directory: TeX Macro Features. +* x-symbol-tex-modes: TeX Macro Basics. +* x-symbol-tex-preview-locations: LaTeX Packages. +* x-symbol-tex-token-suppress-space: TeX Macro Basics. +* x-symbol-tex-user-table <1>: TeX Macro Conversion. +* x-symbol-tex-user-table: BibTeX Macro. +* x-symbol-tex-verb-delimiter-regexp: TeX Macro Conversion. +* x-symbol-texi-auto-style: TeXinfo Command. +* x-symbol-texi-class-alist: TeXinfo Command. +* x-symbol-texi-class-face-alist: TeXinfo Command. +* x-symbol-texi-electric-ignore: TeXinfo Command. +* x-symbol-texi-extra-menu-items: TeXinfo Command. +* x-symbol-texi-header-groups-alist: TeXinfo Command. +* x-symbol-texi-modes: TeXinfo Command. +* x-symbol-texi-user-table: TeXinfo Command. +* x-symbol-token-input: Input Method Token. +* x-symbol-translate-to-ascii: Ascii Representation. +* x-symbol-unalias: Char Aliases. +* x-symbol-unique: Unique Decoding. +* x-symbol-user-table: Customizing Input Method. +* x-symbol-valid-charsym-function: Introducing Input Methods. +* x-symbol-xsymb0-cset: Defining Charsets. +* x-symbol-xsymb0-fonts: Installing Fonts Lisp. +* x-symbol-xsymb1-cset: Defining Charsets. +* x-symbol-xsymb1-fonts: Installing Fonts Lisp. +* x-symbol-yank-decoded: Copy with Conversion. + + +File: x-symbol.info, Node: Concept Index, Prev: Variable Index, Up: Indexes + +Concept Index +============= + +* Menu: + +* .emacs: Installing Lisp. +* 8bit Character Problems: FAQ 8bit Chars. +* 8bit Coding Control: Controlling 8bit Coding. +* 8bit File Coding: File Coding. +* Abbrev Problems: Nomule Problems. +* Abbrev, Token : Input Method Token. +* About: About. +* Accessing Language Depending Variables: Language Internals. +* Acknowledgments: Acknowledgments. +* Adding Fonts: Extending with Fonts. +* Additional Spaces: FAQ Additional Spaces. +* Adobe: Acknowledgments. +* Aggressive Context : Input Method Electric. +* Aliases of Characters: Char Aliases. +* Allowed Character: Introducing Input Methods. +* Alternative Auto Conversion: Alt Auto Conversion. +* Alternative Global Mode: Alt Global Mode. +* Alternative Token Representations: Alt Token Representations. +* AmsTeX: Wishlist Languages. +* Annoyances: Problems. +* Annoying Subscripts: FAQ Stupid Subscripts. +* Ascii Representation: Ascii Representation. +* Ascii Sequence Input: Input Method Context. +* Aspects of Characters: Char Descriptions. +* Auto Conversion, Alternatives: Alt Auto Conversion. +* Auto Initialization: Open Questions. +* Automatic Context: Input Method Electric. +* Automatic Conversion: Conversion Commands. +* Avoiding Flickering: Avoiding Flickering. +* Basic Installation: Installing Files. +* Basics: Concepts. +* Basics SGML Entity: SGML Entity Basics. +* Basics TeX Macro: TeX Macro Basics. +* bib: BibTeX Macro. +* BibTeX: BibTeX Macro. +* BibTeX macro: BibTeX Macro. +* Big Characters: FAQ Font Size. +* Binary Distribution: Installing Files. +* Binary Package: Requirements. +* Bradfield, Julien: Acknowledgments. +* Brief Summary: Summary. +* Buffer Printing: Wishlist Various. +* Bug Reports: Bug Reports. +* Bugs: Problems. +* Built-in Languages: Supported Languages. +* Caching of Images: Image Caching. +* Category of Character: Char Group. +* Changes: News. +* Changes in Emacs: Wishlist Emacs. +* Changes in LaTeX: Wishlist LaTeX. +* Changes in XEmacs: Wishlist Emacs. +* Char Aliases: Char Aliases. +* Character Aliases: Char Aliases. +* Character Descriptions: Char Descriptions. +* Character Descriptions, Example <1>: Intro Char Descriptions. +* Character Descriptions, Example: Example Char Descriptions. +* Character Descriptions, Intro: Intro Char Descriptions. +* Character Group: Char Group. +* Character Info: Info. +* Character Insertion: Input Methods. +* Character Problems: FAQ Strange Chars. +* Character Sequence Input: Input Method Context. +* Character Terminal: Requirements. +* Charset: Defining Charsets. +* Charsym <1>: Char Representation. +* Charsym: Pseudo Language. +* Checking Installation: Checking Installation. +* Choosing SGML Entity: SGML Entity Basics. +* Choosing TeX Macro: TeX Macro Basics. +* Classes of Tokens: Char Group. +* Coding in File: File Coding. +* Coding, Default: Default Coding. +* Coloring Scheme: Char Group. +* Colormap: Image Conversion. +* Component of Characters: Char Descriptions. +* Compose Key: Introducing Input Methods. +* Compression Packages: File IO Packages. +* Concepts: Concepts. +* Consistent Input Methods: Input Method Objectives. +* Contacting the Maintainer: Bug Reports. +* Context Info: Info. +* Context, Input Method: Input Method Context. +* Contributions <1>: Acknowledgments. +* Contributions: Wishlist. +* Controlling 8bit Coding: Controlling 8bit Coding. +* Controlling Images: Image Display. +* Conversion: Conversion. +* Conversion Commands: Conversion Commands. +* Conversion of SGML Entities: SGML Entity Conversion. +* Conversion of TeX Macros: TeX Macro Conversion. +* Conversion Problems: FAQ Conversion. +* convert Installation: Installing Image Converter. +* Converting Images: Image Conversion. +* Copy and Conversion: Copy with Conversion. +* Copy Encoded: Copy with Conversion. +* Copying: Copying. +* Copyright: Copying. +* Core XEmacs: FAQ XEmacs Core. +* Crash XEmacs: FAQ XEmacs Core. +* Cset: Defining Charsets. +* Cstring: Char Representation. +* Cursor, Invisible: Super and Subscripts. +* Customizing Input Methods: Customizing Input Methods. +* Customizing Method Internals: Customizing Input Method. +* Decoding: Conversion. +* Default Coding: Default Coding. +* Default Encoding: Default Coding. +* Default Font: Default Coding. +* Default Languages: Supported Languages. +* default.el: System-wide Installation. +* Defined Character: Introducing Input Methods. +* Defining Input Methods: Defining Input Methods. +* Defining tex: TeX Macro Symbols. +* Designing Images: Image Editor. +* Documentation: Installing Manual. +* Echo Area Info: Info. +* Editing Image Files: Image Editor. +* Electric, Input Method: Input Method Electric. +* Elisp Installation: Installing Lisp. +* Emacs Changes: Wishlist Emacs. +* Email to the Maintainer: Bug Reports. +* Encoding: Conversion. +* Encoding in File: File Coding. +* Encoding Problems <1>: FAQ Additional Spaces. +* Encoding Problems: FAQ Conversion. +* Encoding, Default: Default Coding. +* Encryption Packages: File IO Packages. +* Escape Character Problems: FAQ Strange Chars. +* Exclusive Modify Chain: Char Descriptions. +* Explicit Conversion: Conversion Commands. +* Extending with Fonts: Extending with Fonts. +* Extending X-Symbol: Extending X-Symbol. +* External Languages: External Languages. +* Extra Symbols for TeX: TeX Macro Symbols. +* Extract Tarball: Installing Files. +* FAQ X-Symbol: FAQ. +* Features of X-Symbol: Features. +* Features SGML Entity: SGML Entity Features. +* Features TeX Macro: TeX Macro Features. +* File Cache for Images: Image Caching. +* File Coding: File Coding. +* File I/O Packages: File IO Packages. +* Fill Problems: Nomule Problems. +* Final Byte: Defining Charsets. +* Final Installation Checks: Checking Installation. +* Flickering, Invisible: Avoiding Flickering. +* Font Definition File: Font Definition File. +* Font Extension: Extending with Fonts. +* Font Lisp Installation: Installing Fonts Lisp. +* Font Lisp Setup: Installing Fonts Lisp. +* Font Size: FAQ Font Size. +* Font, Default: Default Coding. +* font-lock Packages: Syntax Hiliting Packages. +* font-lock Problems: FAQ font-lock. +* font-lock Use: Role of font-lock. +* Fonts <1>: Installing Fonts Exceed. +* Fonts: Installing Fonts. +* Fonts for Windows: Wishlist Fonts. +* Fonts from Other Sources: Wishlist Fonts. +* Foreign Languages: External Languages. +* Frequently Asked Questions: FAQ. +* Funny Characters: FAQ Strange Chars. +* Future Features: Wishlist. +* General Public License: Copying. +* Generated Fonts: Wishlist Fonts. +* Global Mode, Alternatives: Alt Global Mode. +* Glyph Caching: Image Caching. +* Glyph for Specific Situations: Special Images. +* Glyphs: Images. +* GPL: Copying. +* Greek Input: Input Method Context. +* Grid, Input Method: Input Method Grid. +* Group of Characters: Char Group. +* Guidelines, Font Extension: Extending with Fonts. +* Guidelines, Input Definitions: Input Definitions. +* Highlighted Character: Input Method Grid. +* History: News. +* Horizontal Chain: Char Descriptions. +* HTML <1>: Installing Manual. +* HTML: SGML Entity. +* Hyphen Versus Minus: FAQ Hyphen. +* I/O Packages: File IO Packages. +* Image Cache File: Image Conversion. +* Image Caching: Image Caching. +* Image Commands: Image Display. +* Image Control: Image Display. +* Image Conversion: Image Conversion. +* Image Converter Installation: Installing Image Converter. +* Image Display: Image Display. +* Image Editor: Image Editor. +* Image Highlight Menu: Image Editor. +* Image Keywords: Image Display. +* Images: Images. +* Images for Specific Situations: Special Images. +* Info: Installing Manual. +* Info in Echo Area: Info. +* Info Pages: About. +* Initialized Language: Language Internals. +* Initializing tex: TeX Macro Symbols. +* Input Definitions, Guidelines: Input Definitions. +* Input Method Context: Input Method Context. +* Input Method Electric: Input Method Electric. +* Input Method Grid: Input Method Grid. +* Input Method Internals: Defining Input Methods. +* Input Method Keyboard: Input Method Keyboard. +* Input Method Menu: Input Method Menu. +* Input Method Objectives: Input Method Objectives. +* Input Method Quail: Input Method Quail. +* Input Method Read Token: Input Method Read Token. +* Input Method Token <1>: Input Method Token. +* Input Method Token <2>: Wishlist Rejected. +* Input Method Token: FAQ XEmacs Core. +* Input Methods: Input Methods. +* Input Methods Customization <1>: Customizing Input Methods. +* Input Methods Customization: Customizing Input Method. +* Input Methods, Common: Introducing Input Methods. +* Input Methods, General: Introducing Input Methods. +* Input Methods, Standard: Introducing Input Methods. +* inputenc.sty Changes: Wishlist LaTeX. +* Insert Commands, Tagging: Tagging Insert Commands. +* Installation: Installation. +* Installation Checks: Checking Installation. +* Installing convert: Installing Image Converter. +* Installing Fonts <1>: Installing Fonts. +* Installing Fonts: Installing Fonts Exceed. +* Installing Image Converter: Installing Image Converter. +* Installing Lisp: Installing Lisp. +* Installing Manual: Installing Manual. +* Installing System-wide: System-wide Installation. +* Installing tex: TeX Macro Symbols. +* Integrating font-lock Packages: Syntax Hiliting Packages. +* Integrating I/O Packages: File IO Packages. +* Integrating LaTeX Packages: LaTeX Packages. +* Integrating Package: Package Integration. +* Interactive Conversion: Conversion Commands. +* Internals, Input Method: Defining Input Methods. +* Internals, Languages: Language Internals. +* Internals, X-Symbol: X-Symbol Internals. +* Introduction: Introduction. +* Invisible Flickering: Avoiding Flickering. +* Invisible Point: Nomule Problems. +* Invisible, Revealing: Super and Subscripts. +* IPA Fonts: Wishlist Languages. +* Isabelle Symbol: External Languages. +* Key Chain: Char Descriptions. +* Key Prefix: Introducing Input Methods. +* Keyboard, Input Method: Input Method Keyboard. +* Keywords for Images: Image Display. +* Keywords for Subscripts: Super and Subscripts. +* Label Creation: Ascii Representation. +* Label Subscripts: FAQ Stupid Subscripts. +* Language: Token Language. +* Language Access: Language Internals. +* Language Additions: Wishlist Languages. +* Language bib: BibTeX Macro. +* Language Definition File <1>: Language Extension File. +* Language Definition File: Language Definition File. +* Language Internals: Language Internals. +* Language sgml: SGML Entity. +* Language tex: TeX Macro. +* Language texi: TeXinfo Command. +* Languages in Distribution: Supported Languages. +* LaTeX: TeX Macro. +* LaTeX Changes: Wishlist LaTeX. +* LaTeX Packages: LaTeX Packages. +* Latin Character Aliases: Char Aliases. +* Latin File Coding: File Coding. +* Latin in File: Controlling 8bit Coding. +* Leading Character: Char Representation. +* License: Copying. +* Lisp Installation: Installing Lisp. +* Loaded Language: Language Internals. +* Mail Reader: FAQ News and Mail. +* Maintainer Address: Bug Reports. +* Manual <1>: About. +* Manual: Installing Manual. +* Marlet, Renaud: Acknowledgments. +* Memory Cache for Images: Image Caching. +* Menu, Input Method: Input Method Menu. +* Minibuffer Completion, Token: Input Method Read Token. +* Minibuffer Info: Info. +* Minor Mode: Minor Mode. +* Minus Versus Hyphen: FAQ Hyphen. +* Miscellaneous Packages: Miscellaneous Packages. +* Mode: Minor Mode. +* Modify Aspects: Char Descriptions. +* Modify Chain <1>: Input Method Context. +* Modify Chain: Char Descriptions. +* Modify Scores: Char Descriptions. +* More Token Languages: Wishlist Languages. +* MS-Windows: Requirements. +* MS-Windows Fonts: Wishlist Fonts. +* Mule Character: Char Representation. +* Mule Input Method: Input Method Quail. +* New Features: News. +* News Reader: FAQ News and Mail. +* No 8bit Characters: FAQ 8bit Chars. +* No Encoding: No Encoding. +* No fontification: FAQ font-lock. +* No Mule: Poor Mans Mule. +* No Subscripts: FAQ No Subscripts. +* Nomule Problems: Nomule Problems. +* Objectives, Input Methods: Input Method Objectives. +* Octet: Char Representation. +* Old Version: Requirements. +* Online Help: About. +* Open Questions: Open Questions. +* Other Languages: External Languages. +* Other Packages: Package Integration. +* Overview: Introduction. +* Package Information: Package Information. +* Package Integration: Package Integration. +* Parent Character: Char Descriptions. +* Parenthesis Problems: Nomule Problems. +* Paste and Conversion: Copy with Conversion. +* Paste Decoded: Copy with Conversion. +* Point, Invisible: Super and Subscripts. +* Poor Man's Mule: Poor Mans Mule. +* Postscript: Installing Manual. +* Prefix Argument: Introducing Input Methods. +* Prefix Key: Introducing Input Methods. +* Print Buffer: Wishlist Various. +* Problem Reports: Bug Reports. +* Problems: Problems. +* Problems TeX Macro: TeX Macro Problems. +* Project: Wishlist. +* Provided Languages: Supported Languages. +* Pseudo Language: Pseudo Language. +* Questions I Have: Open Questions. +* Read Token, Input Method: Input Method Read Token. +* Recoding: File Coding. +* Recognizing Insert Commands: Tagging Insert Commands. +* Rectangle Problems: Nomule Problems. +* Registered Languages: Language Internals. +* Rejected Suggestions: Wishlist Rejected. +* Remapping Characters: Char Aliases. +* Remote File Packages: File IO Packages. +* Replace Problems: Nomule Problems. +* Replace Token: Input Method Token. +* Reports of Bugs: Bug Reports. +* Representation of Characters: Ascii Representation. +* Requirements: Requirements. +* Restricted Decoding: Unique Decoding. +* Revert Buffer Problems: Spurious Encodings. +* Role of font-lock: Role of font-lock. +* Rotate Aspects: Char Descriptions. +* Rotate Chain <1>: Char Descriptions. +* Rotate Chain: Input Method Context. +* Rotate Scores: Char Descriptions. +* Scale Factor, Images: Image Editor. +* Score of a Character: Char Descriptions. +* SGML entity: SGML Entity. +* SGML Entity Basics: SGML Entity Basics. +* SGML Entity Conversion: SGML Entity Conversion. +* SGML Entity Features: SGML Entity Features. +* SGML Entity Images: SGML Entity Features. +* SGML Entity Modes: SGML Entity Basics. +* SGML Entity Subscripts: SGML Entity Features. +* SGML Entity Superscripts: SGML Entity Features. +* SGML Entity Use: SGML Entity Basics. +* Similar Characters: Char Group. +* site-start.el: System-wide Installation. +* Small Characters: FAQ Font Size. +* Source Package: Requirements. +* Space Problems: FAQ Additional Spaces. +* Special Fonts: Role of font-lock. +* Special Images: Special Images. +* Spell Checking: FAQ Spell Check. +* Spurious Encodings: Spurious Encodings. +* Storing 8bit Characters: Controlling 8bit Coding. +* Strange Characters: FAQ Strange Chars. +* Stupid Subscripts: FAQ Stupid Subscripts. +* Subscript Problems <1>: FAQ Stupid Subscripts. +* Subscript Problems: FAQ No Subscripts. +* Subscripts: Super and Subscripts. +* Summary: Summary. +* Superscript Problems <1>: FAQ No Subscripts. +* Superscript Problems: FAQ Stupid Subscripts. +* Superscripts: Super and Subscripts. +* Supported Features: Features. +* Supported Languages: Supported Languages. +* Syntax Highlighting Packages: Syntax Hiliting Packages. +* Syntax of Character: Char Group. +* System-wide Installation: System-wide Installation. +* Table of Characters: Input Method Grid. +* Tagging Insert Commands: Tagging Insert Commands. +* Tarball: Installing Files. +* Terminology: Concepts. +* tex: TeX Macro. +* TeX macro: TeX Macro. +* TeX Macro Basics: TeX Macro Basics. +* TeX Macro Conversion: TeX Macro Conversion. +* TeX Macro Features: TeX Macro Features. +* TeX Macro Images: TeX Macro Features. +* TeX Macro Installation: TeX Macro Symbols. +* TeX Macro Modes: TeX Macro Basics. +* TeX Macro Problems: TeX Macro Problems. +* TeX Macro Subscripts: TeX Macro Features. +* TeX Macro Superscripts: TeX Macro Features. +* TeX Macro Use: TeX Macro Basics. +* texi: TeXinfo Command. +* Texinfo: Installing Manual. +* TeXinfo command: TeXinfo Command. +* Thanks: Acknowledgments. +* Token Changes: FAQ Conversion. +* Token Classes: Char Group. +* Token Language: Token Language. +* Token Language bib: BibTeX Macro. +* Token Language Internals: Language Internals. +* Token Language sgml: SGML Entity. +* Token Language tex: TeX Macro. +* Token Language texi: TeXinfo Command. +* Token Problems: FAQ Additional Spaces. +* Token Representation, Alternatives: Alt Token Representations. +* Token, Input Method: Input Method Token. +* transpose-chars Problems: Nomule Problems. +* Troubleshooting: Problems. +* TTY: Requirements. +* Turn on Globally, Alternatives: Alt Global Mode. +* Uncompress Tarball: Installing Files. +* Unique Decoding: Unique Decoding. +* Unique TeX macro: Unique Decoding. +* URL for X-Symbol: Package Information. +* Valid Character: Introducing Input Methods. +* Various Questions: Open Questions. +* vc Problems: Spurious Encodings. +* Version Control Problems: Spurious Encodings. +* Warranty: Copying. +* Web Pages: About. +* Window System: Requirements. +* Windows <1>: Installing Fonts Exceed. +* Windows <2>: Requirements. +* Windows: Installing Fonts Exceed. +* Windows Fonts: Wishlist Fonts. +* Wishlist: Wishlist. +* write-file Problems: Spurious Encodings. +* write-region Problems: No Encoding. +* WWW Browsing: Package Information. +* X: Requirements. +* X-Server: Installing Fonts Exceed. +* X-Symbol Charsym: Pseudo Language. +* X-Symbol in a Nutshell: Summary. +* X-Symbol Internals: X-Symbol Internals. +* X-Symbol Mode: Minor Mode. +* X11 Fonts: Installing Fonts. +* XEmacs Changes: Wishlist Emacs. +* XEmacs Core: FAQ XEmacs Core. +* XEmacs without Mule: Poor Mans Mule. +* Yank Decoded: Copy with Conversion. +* Your Contribution: Wishlist. + + + +Tag Table: +Node: Top1403 +Node: Introduction12086 +Node: Copying12710 +Node: Summary14748 +Node: About18257 +Node: Installation20065 +Node: Requirements21694 +Node: Installing Files23374 +Node: System-wide Installation24919 +Node: Installing Lisp26697 +Node: Installing Image Converter28465 +Node: Package Integration29959 +Node: LaTeX Packages31272 +Node: Syntax Hiliting Packages34193 +Node: File IO Packages35670 +Node: Miscellaneous Packages37745 +Node: Installing Fonts39703 +Node: Installing Fonts Exceed43260 +Node: Installing Fonts Lisp45517 +Node: Installing Manual48570 +Node: Checking Installation49732 +Node: Concepts51230 +Node: Token Language52018 +Node: Conversion53584 +Node: Default Coding54887 +Node: File Coding57325 +Node: Controlling 8bit Coding60802 +Node: Unique Decoding62802 +Node: Conversion Commands64870 +Node: Copy with Conversion66780 +Node: Char Aliases68622 +Node: Minor Mode70734 +Node: Poor Mans Mule74596 +Node: Role of font-lock76133 +Node: Char Group77412 +Node: Input Methods79733 +Node: Introducing Input Methods81246 +Node: Input Method Token83328 +Node: Input Method Read Token84627 +Node: Input Method Menu85580 +Node: Input Method Grid87058 +Node: Input Method Keyboard90524 +Node: Input Method Context92738 +Node: Input Method Electric94978 +Node: Input Method Quail97704 +Node: Customizing Input Method98402 +Node: Features100049 +Node: Super and Subscripts100739 +Node: Images103379 +Node: Image Display104209 +Node: Image Conversion106118 +Node: Image Caching108865 +Node: Special Images111605 +Node: Image Editor112907 +Node: Info114690 +Node: Ascii Representation116834 +Node: Package Information117982 +Node: Supported Languages118906 +Node: Pseudo Language119606 +Node: TeX Macro120648 +Node: TeX Macro Basics121465 +Node: TeX Macro Features124641 +Node: TeX Macro Problems128206 +Node: TeX Macro Conversion133153 +Node: TeX Macro Symbols137380 +Node: SGML Entity140578 +Node: SGML Entity Basics141306 +Node: SGML Entity Features143224 +Node: SGML Entity Conversion144938 +Node: BibTeX Macro146341 +Node: TeXinfo Command147981 +Node: External Languages150629 +Node: X-Symbol Internals151105 +Node: Char Representation152096 +Node: Defining Charsets154357 +Node: Defining Input Methods156374 +Node: Input Method Objectives156995 +Node: Intro Char Descriptions158916 +Node: Char Descriptions161438 +Node: Example Char Descriptions165065 +Node: Customizing Input Methods167013 +Node: Extending X-Symbol168503 +Node: Extending with Fonts169274 +Node: Input Definitions171192 +Node: Font Definition File173767 +Node: Language Extension File175116 +Node: Language Definition File177145 +Node: Various Internals179280 +Node: Tagging Insert Commands179603 +Node: Avoiding Flickering180378 +Node: Design Alternatives181268 +Node: Alt Token Representations181725 +Node: Alt Global Mode184582 +Node: Alt Auto Conversion185510 +Node: Language Internals187150 +Node: Misc Internals189653 +Node: Problems190365 +Node: Nomule Problems190980 +Node: Spurious Encodings194041 +Node: No Encoding196055 +Node: FAQ196712 +Node: FAQ XEmacs Core197838 +Node: FAQ font-lock198701 +Node: FAQ Strange Chars199776 +Node: FAQ No Subscripts201637 +Node: FAQ Stupid Subscripts202650 +Node: FAQ Font Size204372 +Node: FAQ Conversion205224 +Node: FAQ Additional Spaces205688 +Node: FAQ 8bit Chars206636 +Node: FAQ Hyphen207308 +Node: FAQ Spell Check207915 +Node: FAQ News and Mail209449 +Node: Bug Reports212198 +Node: History219592 +Node: News219957 +Node: Changes 4.5220739 +Node: Changes 4.4222388 +Node: Changes 4.1224566 +Node: Changes 3.4225025 +Node: Changes 3.3226188 +Node: Changes 3.2226953 +Node: Changes 3.1227709 +Node: Changes 3.0228378 +Node: Changes Old230384 +Node: Wishlist232429 +Node: Wishlist Languages233266 +Node: Wishlist Fonts233832 +Node: Wishlist Emacs237143 +Node: Wishlist LaTeX239607 +Node: Wishlist Various240907 +Node: Wishlist Rejected241547 +Node: Open Questions242231 +Node: Acknowledgments243408 +Node: Indexes247246 +Node: Key Index247882 +Node: Program Index250066 +Node: Variable Index255655 +Node: Concept Index271896 + +End Tag Table |