aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar David Aspinall <da@inf.ed.ac.uk>2003-03-03 20:15:29 +0000
committerGravatar David Aspinall <da@inf.ed.ac.uk>2003-03-03 20:15:29 +0000
commit802550084d24492db40f2dcc4a1e238b81142589 (patch)
tree80fb7ce4ff7d8fa72692355972d781fb410cd437
parentf43c7f921d796946b7888c800df49b12790fd469 (diff)
Deleted file
-rw-r--r--x-symbol/README38
-rw-r--r--x-symbol/etc/abacus.xbm39
-rw-r--r--x-symbol/etc/colormap66.xpm76
-rw-r--r--x-symbol/etc/filing.xbm39
-rw-r--r--x-symbol/etc/rgb.txt753
-rw-r--r--x-symbol/etc/scroll2.xbm39
-rw-r--r--x-symbol/etc/splat.xbm44
-rw-r--r--x-symbol/etc/stopsign.xbm38
-rw-r--r--x-symbol/lisp/x-symbol-myuc.el118
-rw-r--r--x-symbol/lisp/x-symbol-site.el75
-rw-r--r--x-symbol/man/x-symbol.texi-exp7493
-rw-r--r--x-symbol/man/x-symbol.texi.27476
12 files changed, 0 insertions, 16228 deletions
diff --git a/x-symbol/README b/x-symbol/README
deleted file mode 100644
index 8fc52024..00000000
--- a/x-symbol/README
+++ /dev/null
@@ -1,38 +0,0 @@
-### README --- semi WYSIWYG for LaTeX, HTML, etc, using additional fonts
-
-## Author: Christoph Wedler <wedler@users.sourceforge.net>
-## Maintainer: (Please use `M-x x-symbol-package-bug' to contact the maintainer)
-## Version: 4.4
-## Keywords: WYSIWYG, LaTeX, HTML, wp, math, internationalization
-## X-URL: http://x-symbol.sourceforge.net/
-
-
-You have downloaded the source distribution of the beta version of package
-X-Symbol. It is intended to be used by developers. Most users are better
-off with the binary distribution x-symbol-VERSION-pkg.tar.gz.
-
-## Emacs: ====================================================================
-
-The installation of X-Symbol on Emacs can be improved.
-
-If you do not want to use the binary distribution and follow the installation
-instructions on the web page, you might want to try "lisp/Makefile". For the
-info file, check "man/Makefile".
-
-Any help in improving the installation of X-Symbol on Emacs is highly
-appreciated! Err, that means, I very much prefer patches to suggestions in
-this area...
-
-The best mid- to long-term contribution would be to help the Emacs team with
-the implementation of a package system. It has already considered as useful,
-the authors of XEmacs' package system have signed papers, there are just people
-missing doing the work...
-
-## XEmacs: ===================================================================
-
-Check & use the Makefile in this directory.
-
-If you want to produce & compile all lisp files, produce the info files and
-produce & compile & install the font files, invoke
-
- make -k all
diff --git a/x-symbol/etc/abacus.xbm b/x-symbol/etc/abacus.xbm
deleted file mode 100644
index f0a6b220..00000000
--- a/x-symbol/etc/abacus.xbm
+++ /dev/null
@@ -1,39 +0,0 @@
-#define abicus_width 64
-#define abicus_height 54
-static char abicus_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
- 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xfe, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x2f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2f,
- 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2f, 0x2e, 0x0e, 0x87, 0x83,
- 0xe0, 0x70, 0x38, 0x2e, 0x2e, 0x9d, 0x4e, 0x87, 0xd0, 0xe9, 0x74, 0x2e,
- 0x2e, 0x9f, 0xcf, 0x87, 0xf0, 0xf9, 0x7c, 0x2e, 0x2e, 0x0e, 0x87, 0x83,
- 0xe0, 0x70, 0x38, 0x2e, 0x2e, 0x9d, 0x0e, 0x81, 0xd0, 0xe9, 0x74, 0x2e,
- 0x2e, 0x9f, 0x0f, 0xc1, 0xf1, 0xf9, 0x7c, 0x2e, 0x2e, 0x0e, 0x07, 0xa1,
- 0xe3, 0x70, 0x38, 0x2e, 0x2e, 0x04, 0x02, 0xe1, 0x43, 0x20, 0x10, 0x2e,
- 0x2e, 0x04, 0x82, 0xc3, 0x41, 0x20, 0x10, 0x2e, 0x2e, 0x04, 0x42, 0xa7,
- 0x43, 0x20, 0x10, 0x2e, 0x3e, 0x04, 0xc2, 0xe7, 0x43, 0x20, 0x10, 0x3e,
- 0x22, 0x04, 0x82, 0xc3, 0x41, 0x20, 0x10, 0x22, 0xea, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x2b, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20,
- 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x20, 0xea, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x2b, 0x22, 0x04, 0x82, 0x83, 0x40, 0x20, 0x10, 0x22,
- 0x3e, 0x04, 0x42, 0x87, 0x40, 0x20, 0x10, 0x3e, 0x2e, 0x04, 0xc2, 0x87,
- 0x40, 0x20, 0x10, 0x2e, 0x2e, 0x04, 0x82, 0x83, 0x40, 0x20, 0x10, 0x2e,
- 0x2e, 0x04, 0x42, 0x87, 0x40, 0x20, 0x10, 0x2e, 0x2e, 0x04, 0xc2, 0x87,
- 0x40, 0x20, 0x10, 0x2e, 0x2e, 0x04, 0x82, 0x83, 0x40, 0x20, 0x10, 0x2e,
- 0x2e, 0x04, 0x02, 0x81, 0x40, 0x20, 0x10, 0x2e, 0x2e, 0x0e, 0x07, 0xc1,
- 0xe1, 0x70, 0x38, 0x2e, 0x2e, 0x9d, 0x0e, 0xa1, 0xd3, 0xe9, 0x74, 0x2e,
- 0x2e, 0x9f, 0x0f, 0xe1, 0xf3, 0xf9, 0x7c, 0x2e, 0x2e, 0x0e, 0x07, 0xc1,
- 0xe1, 0x70, 0x38, 0x2e, 0x2e, 0x9d, 0x0e, 0xa1, 0xd3, 0xe9, 0x74, 0x2e,
- 0x2e, 0x9f, 0x0f, 0xe1, 0xf3, 0xf9, 0x7c, 0x2e, 0x2e, 0x0e, 0x87, 0xc3,
- 0xe1, 0x70, 0x38, 0x2e, 0x2e, 0x9d, 0x4e, 0xa7, 0xd3, 0xe9, 0x74, 0x2e,
- 0x2e, 0x9f, 0xcf, 0xe7, 0xf3, 0xf9, 0x7c, 0x2e, 0x2e, 0x0e, 0x87, 0xc3,
- 0xe1, 0x70, 0x38, 0x2e, 0x2e, 0x9d, 0x4e, 0xa7, 0xd3, 0xe9, 0x74, 0x2e,
- 0x2e, 0x9f, 0xcf, 0xe7, 0xf3, 0xf9, 0x7c, 0x2e, 0x2e, 0x0e, 0x87, 0xc3,
- 0xe1, 0x70, 0x38, 0x2e, 0x2e, 0x9d, 0x4e, 0xa7, 0xd3, 0xe9, 0x74, 0x2e,
- 0x2e, 0x9f, 0xcf, 0xe7, 0xf3, 0xf9, 0x7c, 0x2e, 0x2e, 0x0e, 0x87, 0xc3,
- 0xe1, 0x70, 0x38, 0x2e, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2f,
- 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0xfe, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x2f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2f,
- 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/x-symbol/etc/colormap66.xpm b/x-symbol/etc/colormap66.xpm
deleted file mode 100644
index f077adac..00000000
--- a/x-symbol/etc/colormap66.xpm
+++ /dev/null
@@ -1,76 +0,0 @@
-/* XPM */
-static char *xsymb[] = {
-/* width height ncolors chars_per_pixel */
-"22 3 66 1",
-/* colors */
-"0 c Black",
-"1 c Gray5",
-"2 c Gray10",
-"3 c Gray15",
-"4 c Gray20",
-"5 c Gray25",
-"6 c Gray30",
-"7 c Gray35",
-"8 c Gray40",
-"9 c Gray45",
-": c Gray50",
-"; c Gray55",
-"< c Gray60",
-"= c Gray65",
-"> c Gray70",
-"@ c Gray75",
-"A c Gray80",
-"B c Gray85",
-"C c Gray90",
-"D c Gray95",
-"E c forestgreen",
-"F c firebrick1",
-"G c firebrick2",
-"H c firebrick3",
-"I c firebrick4",
-"J c blue1",
-"K c blue2",
-"L c blue3",
-"M c blue4",
-"N c red1",
-"O c red2",
-"P c red3",
-"Q c red4",
-"R c paleturquoise1",
-"S c paleturquoise2",
-"T c paleturquoise3",
-"U c paleturquoise4",
-"V c purple1",
-"W c purple2",
-"X c purple3",
-"Y c purple4",
-"Z c LemonChiffon",
-"` c yellow1",
-"a c yellow2",
-"b c yellow3",
-"c c yellow4",
-"d c pink1",
-"e c pink2",
-"f c pink3",
-"g c pink4",
-"h c darkseagreen1",
-"i c darkseagreen2",
-"j c darkseagreen3",
-"k c darkseagreen4",
-"l c khaki1",
-"m c khaki2",
-"n c khaki3",
-"o c khaki4",
-"p c navajowhite1",
-"q c navajowhite2",
-"r c navajowhite3",
-"s c navajowhite4",
-"t c rosybrown1",
-"u c rosybrown2",
-"v c rosybrown3",
-"w c rosybrown4",
-/* pixels */
-"0123456789:;<=>@ABCDEF",
-"GHIJKLMNOPQRSTUVWXYZ`a",
-"bcdefghijklmnopqrstuvw"
-};
diff --git a/x-symbol/etc/filing.xbm b/x-symbol/etc/filing.xbm
deleted file mode 100644
index 6142290f..00000000
--- a/x-symbol/etc/filing.xbm
+++ /dev/null
@@ -1,39 +0,0 @@
-#define filing_width 64
-#define filing_height 54
-static char filing_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x06, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xc0, 0x13, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x44,
- 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x11, 0x91, 0x01, 0x00, 0x00,
- 0x00, 0xf0, 0x44, 0x44, 0x44, 0x06, 0x00, 0x00, 0x00, 0x1c, 0x11, 0x11,
- 0x11, 0x19, 0x00, 0x00, 0x00, 0x4c, 0x44, 0x44, 0x44, 0x74, 0x00, 0x00,
- 0x00, 0x34, 0x11, 0x11, 0x11, 0x6e, 0x00, 0x00, 0x00, 0xc4, 0x44, 0x44,
- 0xc4, 0x55, 0x00, 0x00, 0x00, 0x04, 0x13, 0x11, 0xb9, 0x6a, 0x00, 0x00,
- 0x00, 0x04, 0x4c, 0x44, 0x57, 0x55, 0x00, 0x00, 0x00, 0x04, 0x30, 0xf1,
- 0xaa, 0x6a, 0x00, 0x00, 0x00, 0x04, 0xc0, 0x5c, 0x55, 0x55, 0x00, 0x00,
- 0x00, 0x04, 0x00, 0xab, 0xaa, 0x6a, 0x00, 0x00, 0x00, 0x84, 0x00, 0x56,
- 0x55, 0x55, 0x00, 0x00, 0x00, 0x84, 0x01, 0xaa, 0xaa, 0x6a, 0x00, 0x00,
- 0x00, 0x04, 0x16, 0x56, 0x55, 0x55, 0x00, 0x00, 0x00, 0x04, 0x18, 0xaa,
- 0xaa, 0x6a, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x56, 0x55, 0x55, 0x00, 0x00,
- 0x00, 0x1d, 0x00, 0xaa, 0xaa, 0x6a, 0x00, 0x00, 0x00, 0x71, 0x00, 0x56,
- 0x55, 0x55, 0x00, 0x00, 0x00, 0xc1, 0x01, 0xaa, 0xaa, 0x6a, 0x00, 0x00,
- 0x00, 0x01, 0x07, 0x56, 0x55, 0x55, 0x00, 0x00, 0x00, 0x01, 0x1c, 0xaa,
- 0xaa, 0x6a, 0x00, 0x00, 0x00, 0x01, 0x70, 0x56, 0x55, 0x55, 0x00, 0x00,
- 0x00, 0x01, 0xc0, 0xab, 0xaa, 0x6a, 0x00, 0x00, 0x00, 0x21, 0x00, 0x57,
- 0x55, 0x55, 0x00, 0x00, 0x00, 0x61, 0x00, 0xab, 0xaa, 0x6a, 0x00, 0x00,
- 0x00, 0x81, 0x05, 0x57, 0x55, 0x55, 0x00, 0x00, 0x00, 0x01, 0x06, 0xab,
- 0xaa, 0x6a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x57, 0x55, 0x55, 0x00, 0x00,
- 0x00, 0x0c, 0x00, 0xab, 0xaa, 0x6a, 0x00, 0x00, 0x00, 0x34, 0x00, 0x57,
- 0x55, 0x55, 0x00, 0x00, 0x00, 0xc4, 0x00, 0xab, 0xaa, 0x6a, 0x00, 0x00,
- 0x00, 0x04, 0x03, 0x57, 0x55, 0x55, 0x00, 0x00, 0x00, 0x04, 0x0c, 0xab,
- 0xaa, 0x6a, 0x00, 0x00, 0x00, 0x04, 0x30, 0x57, 0x55, 0x55, 0x00, 0x00,
- 0x00, 0x04, 0xc0, 0xab, 0xaa, 0x6a, 0x00, 0x00, 0x00, 0x84, 0x00, 0x56,
- 0x55, 0x55, 0x00, 0x00, 0x00, 0x84, 0x01, 0xaa, 0xaa, 0x6a, 0x00, 0x00,
- 0x00, 0x04, 0x16, 0x56, 0x55, 0x55, 0x00, 0x00, 0x00, 0x04, 0x18, 0xaa,
- 0xaa, 0x6a, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x56, 0x55, 0x75, 0x00, 0x00,
- 0x00, 0x30, 0x00, 0xaa, 0xaa, 0xbe, 0x01, 0x00, 0x00, 0xc0, 0x00, 0x56,
- 0xd5, 0xef, 0x06, 0x00, 0x00, 0x00, 0x03, 0xaa, 0xfa, 0xbb, 0x1b, 0x00,
- 0x00, 0x00, 0x0c, 0x56, 0xef, 0xee, 0x6e, 0x00, 0x00, 0x00, 0x30, 0xea,
- 0xbb, 0xbb, 0x3b, 0x00, 0x00, 0x00, 0xc0, 0xfe, 0xee, 0xee, 0x6e, 0x00,
- 0x00, 0x00, 0x00, 0xbf, 0xbb, 0xbb, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/x-symbol/etc/rgb.txt b/x-symbol/etc/rgb.txt
deleted file mode 100644
index 7637245f..00000000
--- a/x-symbol/etc/rgb.txt
+++ /dev/null
@@ -1,753 +0,0 @@
-! $XConsortium: /usr/X/lib/X11/rgb.txt,v 10.41 94/02/20 18:39:36 rws Exp $
-255 250 250 snow
-248 248 255 ghost white
-248 248 255 GhostWhite
-245 245 245 white smoke
-245 245 245 WhiteSmoke
-220 220 220 gainsboro
-255 250 240 floral white
-255 250 240 FloralWhite
-253 245 230 old lace
-253 245 230 OldLace
-250 240 230 linen
-250 235 215 antique white
-250 235 215 AntiqueWhite
-255 239 213 papaya whip
-255 239 213 PapayaWhip
-255 235 205 blanched almond
-255 235 205 BlanchedAlmond
-255 228 196 bisque
-255 218 185 peach puff
-255 218 185 PeachPuff
-255 222 173 navajo white
-255 222 173 NavajoWhite
-255 228 181 moccasin
-255 248 220 cornsilk
-255 255 240 ivory
-255 250 205 lemon chiffon
-255 250 205 LemonChiffon
-255 245 238 seashell
-240 255 240 honeydew
-245 255 250 mint cream
-245 255 250 MintCream
-240 255 255 azure
-240 248 255 alice blue
-240 248 255 AliceBlue
-230 230 250 lavender
-255 240 245 lavender blush
-255 240 245 LavenderBlush
-255 228 225 misty rose
-255 228 225 MistyRose
-255 255 255 white
- 0 0 0 black
- 47 79 79 dark slate gray
- 47 79 79 DarkSlateGray
- 47 79 79 dark slate grey
- 47 79 79 DarkSlateGrey
-105 105 105 dim gray
-105 105 105 DimGray
-105 105 105 dim grey
-105 105 105 DimGrey
-112 128 144 slate gray
-112 128 144 SlateGray
-112 128 144 slate grey
-112 128 144 SlateGrey
-119 136 153 light slate gray
-119 136 153 LightSlateGray
-119 136 153 light slate grey
-119 136 153 LightSlateGrey
-190 190 190 gray
-190 190 190 grey
-211 211 211 light grey
-211 211 211 LightGrey
-211 211 211 light gray
-211 211 211 LightGray
- 25 25 112 midnight blue
- 25 25 112 MidnightBlue
- 0 0 128 navy
- 0 0 128 navy blue
- 0 0 128 NavyBlue
-100 149 237 cornflower blue
-100 149 237 CornflowerBlue
- 72 61 139 dark slate blue
- 72 61 139 DarkSlateBlue
-106 90 205 slate blue
-106 90 205 SlateBlue
-123 104 238 medium slate blue
-123 104 238 MediumSlateBlue
-132 112 255 light slate blue
-132 112 255 LightSlateBlue
- 0 0 205 medium blue
- 0 0 205 MediumBlue
- 65 105 225 royal blue
- 65 105 225 RoyalBlue
- 0 0 255 blue
- 30 144 255 dodger blue
- 30 144 255 DodgerBlue
- 0 191 255 deep sky blue
- 0 191 255 DeepSkyBlue
-135 206 235 sky blue
-135 206 235 SkyBlue
-135 206 250 light sky blue
-135 206 250 LightSkyBlue
- 70 130 180 steel blue
- 70 130 180 SteelBlue
-176 196 222 light steel blue
-176 196 222 LightSteelBlue
-173 216 230 light blue
-173 216 230 LightBlue
-176 224 230 powder blue
-176 224 230 PowderBlue
-175 238 238 pale turquoise
-175 238 238 PaleTurquoise
- 0 206 209 dark turquoise
- 0 206 209 DarkTurquoise
- 72 209 204 medium turquoise
- 72 209 204 MediumTurquoise
- 64 224 208 turquoise
- 0 255 255 cyan
-224 255 255 light cyan
-224 255 255 LightCyan
- 95 158 160 cadet blue
- 95 158 160 CadetBlue
-102 205 170 medium aquamarine
-102 205 170 MediumAquamarine
-127 255 212 aquamarine
- 0 100 0 dark green
- 0 100 0 DarkGreen
- 85 107 47 dark olive green
- 85 107 47 DarkOliveGreen
-143 188 143 dark sea green
-143 188 143 DarkSeaGreen
- 46 139 87 sea green
- 46 139 87 SeaGreen
- 60 179 113 medium sea green
- 60 179 113 MediumSeaGreen
- 32 178 170 light sea green
- 32 178 170 LightSeaGreen
-152 251 152 pale green
-152 251 152 PaleGreen
- 0 255 127 spring green
- 0 255 127 SpringGreen
-124 252 0 lawn green
-124 252 0 LawnGreen
- 0 255 0 green
-127 255 0 chartreuse
- 0 250 154 medium spring green
- 0 250 154 MediumSpringGreen
-173 255 47 green yellow
-173 255 47 GreenYellow
- 50 205 50 lime green
- 50 205 50 LimeGreen
-154 205 50 yellow green
-154 205 50 YellowGreen
- 34 139 34 forest green
- 34 139 34 ForestGreen
-107 142 35 olive drab
-107 142 35 OliveDrab
-189 183 107 dark khaki
-189 183 107 DarkKhaki
-240 230 140 khaki
-238 232 170 pale goldenrod
-238 232 170 PaleGoldenrod
-250 250 210 light goldenrod yellow
-250 250 210 LightGoldenrodYellow
-255 255 224 light yellow
-255 255 224 LightYellow
-255 255 0 yellow
-255 215 0 gold
-238 221 130 light goldenrod
-238 221 130 LightGoldenrod
-218 165 32 goldenrod
-184 134 11 dark goldenrod
-184 134 11 DarkGoldenrod
-188 143 143 rosy brown
-188 143 143 RosyBrown
-205 92 92 indian red
-205 92 92 IndianRed
-139 69 19 saddle brown
-139 69 19 SaddleBrown
-160 82 45 sienna
-205 133 63 peru
-222 184 135 burlywood
-245 245 220 beige
-245 222 179 wheat
-244 164 96 sandy brown
-244 164 96 SandyBrown
-210 180 140 tan
-210 105 30 chocolate
-178 34 34 firebrick
-165 42 42 brown
-233 150 122 dark salmon
-233 150 122 DarkSalmon
-250 128 114 salmon
-255 160 122 light salmon
-255 160 122 LightSalmon
-255 165 0 orange
-255 140 0 dark orange
-255 140 0 DarkOrange
-255 127 80 coral
-240 128 128 light coral
-240 128 128 LightCoral
-255 99 71 tomato
-255 69 0 orange red
-255 69 0 OrangeRed
-255 0 0 red
-255 105 180 hot pink
-255 105 180 HotPink
-255 20 147 deep pink
-255 20 147 DeepPink
-255 192 203 pink
-255 182 193 light pink
-255 182 193 LightPink
-219 112 147 pale violet red
-219 112 147 PaleVioletRed
-176 48 96 maroon
-199 21 133 medium violet red
-199 21 133 MediumVioletRed
-208 32 144 violet red
-208 32 144 VioletRed
-255 0 255 magenta
-238 130 238 violet
-221 160 221 plum
-218 112 214 orchid
-186 85 211 medium orchid
-186 85 211 MediumOrchid
-153 50 204 dark orchid
-153 50 204 DarkOrchid
-148 0 211 dark violet
-148 0 211 DarkViolet
-138 43 226 blue violet
-138 43 226 BlueViolet
-160 32 240 purple
-147 112 219 medium purple
-147 112 219 MediumPurple
-216 191 216 thistle
-255 250 250 snow1
-238 233 233 snow2
-205 201 201 snow3
-139 137 137 snow4
-255 245 238 seashell1
-238 229 222 seashell2
-205 197 191 seashell3
-139 134 130 seashell4
-255 239 219 AntiqueWhite1
-238 223 204 AntiqueWhite2
-205 192 176 AntiqueWhite3
-139 131 120 AntiqueWhite4
-255 228 196 bisque1
-238 213 183 bisque2
-205 183 158 bisque3
-139 125 107 bisque4
-255 218 185 PeachPuff1
-238 203 173 PeachPuff2
-205 175 149 PeachPuff3
-139 119 101 PeachPuff4
-255 222 173 NavajoWhite1
-238 207 161 NavajoWhite2
-205 179 139 NavajoWhite3
-139 121 94 NavajoWhite4
-255 250 205 LemonChiffon1
-238 233 191 LemonChiffon2
-205 201 165 LemonChiffon3
-139 137 112 LemonChiffon4
-255 248 220 cornsilk1
-238 232 205 cornsilk2
-205 200 177 cornsilk3
-139 136 120 cornsilk4
-255 255 240 ivory1
-238 238 224 ivory2
-205 205 193 ivory3
-139 139 131 ivory4
-240 255 240 honeydew1
-224 238 224 honeydew2
-193 205 193 honeydew3
-131 139 131 honeydew4
-255 240 245 LavenderBlush1
-238 224 229 LavenderBlush2
-205 193 197 LavenderBlush3
-139 131 134 LavenderBlush4
-255 228 225 MistyRose1
-238 213 210 MistyRose2
-205 183 181 MistyRose3
-139 125 123 MistyRose4
-240 255 255 azure1
-224 238 238 azure2
-193 205 205 azure3
-131 139 139 azure4
-131 111 255 SlateBlue1
-122 103 238 SlateBlue2
-105 89 205 SlateBlue3
- 71 60 139 SlateBlue4
- 72 118 255 RoyalBlue1
- 67 110 238 RoyalBlue2
- 58 95 205 RoyalBlue3
- 39 64 139 RoyalBlue4
- 0 0 255 blue1
- 0 0 238 blue2
- 0 0 205 blue3
- 0 0 139 blue4
- 30 144 255 DodgerBlue1
- 28 134 238 DodgerBlue2
- 24 116 205 DodgerBlue3
- 16 78 139 DodgerBlue4
- 99 184 255 SteelBlue1
- 92 172 238 SteelBlue2
- 79 148 205 SteelBlue3
- 54 100 139 SteelBlue4
- 0 191 255 DeepSkyBlue1
- 0 178 238 DeepSkyBlue2
- 0 154 205 DeepSkyBlue3
- 0 104 139 DeepSkyBlue4
-135 206 255 SkyBlue1
-126 192 238 SkyBlue2
-108 166 205 SkyBlue3
- 74 112 139 SkyBlue4
-176 226 255 LightSkyBlue1
-164 211 238 LightSkyBlue2
-141 182 205 LightSkyBlue3
- 96 123 139 LightSkyBlue4
-198 226 255 SlateGray1
-185 211 238 SlateGray2
-159 182 205 SlateGray3
-108 123 139 SlateGray4
-202 225 255 LightSteelBlue1
-188 210 238 LightSteelBlue2
-162 181 205 LightSteelBlue3
-110 123 139 LightSteelBlue4
-191 239 255 LightBlue1
-178 223 238 LightBlue2
-154 192 205 LightBlue3
-104 131 139 LightBlue4
-224 255 255 LightCyan1
-209 238 238 LightCyan2
-180 205 205 LightCyan3
-122 139 139 LightCyan4
-187 255 255 PaleTurquoise1
-174 238 238 PaleTurquoise2
-150 205 205 PaleTurquoise3
-102 139 139 PaleTurquoise4
-152 245 255 CadetBlue1
-142 229 238 CadetBlue2
-122 197 205 CadetBlue3
- 83 134 139 CadetBlue4
- 0 245 255 turquoise1
- 0 229 238 turquoise2
- 0 197 205 turquoise3
- 0 134 139 turquoise4
- 0 255 255 cyan1
- 0 238 238 cyan2
- 0 205 205 cyan3
- 0 139 139 cyan4
-151 255 255 DarkSlateGray1
-141 238 238 DarkSlateGray2
-121 205 205 DarkSlateGray3
- 82 139 139 DarkSlateGray4
-127 255 212 aquamarine1
-118 238 198 aquamarine2
-102 205 170 aquamarine3
- 69 139 116 aquamarine4
-193 255 193 DarkSeaGreen1
-180 238 180 DarkSeaGreen2
-155 205 155 DarkSeaGreen3
-105 139 105 DarkSeaGreen4
- 84 255 159 SeaGreen1
- 78 238 148 SeaGreen2
- 67 205 128 SeaGreen3
- 46 139 87 SeaGreen4
-154 255 154 PaleGreen1
-144 238 144 PaleGreen2
-124 205 124 PaleGreen3
- 84 139 84 PaleGreen4
- 0 255 127 SpringGreen1
- 0 238 118 SpringGreen2
- 0 205 102 SpringGreen3
- 0 139 69 SpringGreen4
- 0 255 0 green1
- 0 238 0 green2
- 0 205 0 green3
- 0 139 0 green4
-127 255 0 chartreuse1
-118 238 0 chartreuse2
-102 205 0 chartreuse3
- 69 139 0 chartreuse4
-192 255 62 OliveDrab1
-179 238 58 OliveDrab2
-154 205 50 OliveDrab3
-105 139 34 OliveDrab4
-202 255 112 DarkOliveGreen1
-188 238 104 DarkOliveGreen2
-162 205 90 DarkOliveGreen3
-110 139 61 DarkOliveGreen4
-255 246 143 khaki1
-238 230 133 khaki2
-205 198 115 khaki3
-139 134 78 khaki4
-255 236 139 LightGoldenrod1
-238 220 130 LightGoldenrod2
-205 190 112 LightGoldenrod3
-139 129 76 LightGoldenrod4
-255 255 224 LightYellow1
-238 238 209 LightYellow2
-205 205 180 LightYellow3
-139 139 122 LightYellow4
-255 255 0 yellow1
-238 238 0 yellow2
-205 205 0 yellow3
-139 139 0 yellow4
-255 215 0 gold1
-238 201 0 gold2
-205 173 0 gold3
-139 117 0 gold4
-255 193 37 goldenrod1
-238 180 34 goldenrod2
-205 155 29 goldenrod3
-139 105 20 goldenrod4
-255 185 15 DarkGoldenrod1
-238 173 14 DarkGoldenrod2
-205 149 12 DarkGoldenrod3
-139 101 8 DarkGoldenrod4
-255 193 193 RosyBrown1
-238 180 180 RosyBrown2
-205 155 155 RosyBrown3
-139 105 105 RosyBrown4
-255 106 106 IndianRed1
-238 99 99 IndianRed2
-205 85 85 IndianRed3
-139 58 58 IndianRed4
-255 130 71 sienna1
-238 121 66 sienna2
-205 104 57 sienna3
-139 71 38 sienna4
-255 211 155 burlywood1
-238 197 145 burlywood2
-205 170 125 burlywood3
-139 115 85 burlywood4
-255 231 186 wheat1
-238 216 174 wheat2
-205 186 150 wheat3
-139 126 102 wheat4
-255 165 79 tan1
-238 154 73 tan2
-205 133 63 tan3
-139 90 43 tan4
-255 127 36 chocolate1
-238 118 33 chocolate2
-205 102 29 chocolate3
-139 69 19 chocolate4
-255 48 48 firebrick1
-238 44 44 firebrick2
-205 38 38 firebrick3
-139 26 26 firebrick4
-255 64 64 brown1
-238 59 59 brown2
-205 51 51 brown3
-139 35 35 brown4
-255 140 105 salmon1
-238 130 98 salmon2
-205 112 84 salmon3
-139 76 57 salmon4
-255 160 122 LightSalmon1
-238 149 114 LightSalmon2
-205 129 98 LightSalmon3
-139 87 66 LightSalmon4
-255 165 0 orange1
-238 154 0 orange2
-205 133 0 orange3
-139 90 0 orange4
-255 127 0 DarkOrange1
-238 118 0 DarkOrange2
-205 102 0 DarkOrange3
-139 69 0 DarkOrange4
-255 114 86 coral1
-238 106 80 coral2
-205 91 69 coral3
-139 62 47 coral4
-255 99 71 tomato1
-238 92 66 tomato2
-205 79 57 tomato3
-139 54 38 tomato4
-255 69 0 OrangeRed1
-238 64 0 OrangeRed2
-205 55 0 OrangeRed3
-139 37 0 OrangeRed4
-255 0 0 red1
-238 0 0 red2
-205 0 0 red3
-139 0 0 red4
-255 20 147 DeepPink1
-238 18 137 DeepPink2
-205 16 118 DeepPink3
-139 10 80 DeepPink4
-255 110 180 HotPink1
-238 106 167 HotPink2
-205 96 144 HotPink3
-139 58 98 HotPink4
-255 181 197 pink1
-238 169 184 pink2
-205 145 158 pink3
-139 99 108 pink4
-255 174 185 LightPink1
-238 162 173 LightPink2
-205 140 149 LightPink3
-139 95 101 LightPink4
-255 130 171 PaleVioletRed1
-238 121 159 PaleVioletRed2
-205 104 137 PaleVioletRed3
-139 71 93 PaleVioletRed4
-255 52 179 maroon1
-238 48 167 maroon2
-205 41 144 maroon3
-139 28 98 maroon4
-255 62 150 VioletRed1
-238 58 140 VioletRed2
-205 50 120 VioletRed3
-139 34 82 VioletRed4
-255 0 255 magenta1
-238 0 238 magenta2
-205 0 205 magenta3
-139 0 139 magenta4
-255 131 250 orchid1
-238 122 233 orchid2
-205 105 201 orchid3
-139 71 137 orchid4
-255 187 255 plum1
-238 174 238 plum2
-205 150 205 plum3
-139 102 139 plum4
-224 102 255 MediumOrchid1
-209 95 238 MediumOrchid2
-180 82 205 MediumOrchid3
-122 55 139 MediumOrchid4
-191 62 255 DarkOrchid1
-178 58 238 DarkOrchid2
-154 50 205 DarkOrchid3
-104 34 139 DarkOrchid4
-155 48 255 purple1
-145 44 238 purple2
-125 38 205 purple3
- 85 26 139 purple4
-171 130 255 MediumPurple1
-159 121 238 MediumPurple2
-137 104 205 MediumPurple3
- 93 71 139 MediumPurple4
-255 225 255 thistle1
-238 210 238 thistle2
-205 181 205 thistle3
-139 123 139 thistle4
- 0 0 0 gray0
- 0 0 0 grey0
- 3 3 3 gray1
- 3 3 3 grey1
- 5 5 5 gray2
- 5 5 5 grey2
- 8 8 8 gray3
- 8 8 8 grey3
- 10 10 10 gray4
- 10 10 10 grey4
- 13 13 13 gray5
- 13 13 13 grey5
- 15 15 15 gray6
- 15 15 15 grey6
- 18 18 18 gray7
- 18 18 18 grey7
- 20 20 20 gray8
- 20 20 20 grey8
- 23 23 23 gray9
- 23 23 23 grey9
- 26 26 26 gray10
- 26 26 26 grey10
- 28 28 28 gray11
- 28 28 28 grey11
- 31 31 31 gray12
- 31 31 31 grey12
- 33 33 33 gray13
- 33 33 33 grey13
- 36 36 36 gray14
- 36 36 36 grey14
- 38 38 38 gray15
- 38 38 38 grey15
- 41 41 41 gray16
- 41 41 41 grey16
- 43 43 43 gray17
- 43 43 43 grey17
- 46 46 46 gray18
- 46 46 46 grey18
- 48 48 48 gray19
- 48 48 48 grey19
- 51 51 51 gray20
- 51 51 51 grey20
- 54 54 54 gray21
- 54 54 54 grey21
- 56 56 56 gray22
- 56 56 56 grey22
- 59 59 59 gray23
- 59 59 59 grey23
- 61 61 61 gray24
- 61 61 61 grey24
- 64 64 64 gray25
- 64 64 64 grey25
- 66 66 66 gray26
- 66 66 66 grey26
- 69 69 69 gray27
- 69 69 69 grey27
- 71 71 71 gray28
- 71 71 71 grey28
- 74 74 74 gray29
- 74 74 74 grey29
- 77 77 77 gray30
- 77 77 77 grey30
- 79 79 79 gray31
- 79 79 79 grey31
- 82 82 82 gray32
- 82 82 82 grey32
- 84 84 84 gray33
- 84 84 84 grey33
- 87 87 87 gray34
- 87 87 87 grey34
- 89 89 89 gray35
- 89 89 89 grey35
- 92 92 92 gray36
- 92 92 92 grey36
- 94 94 94 gray37
- 94 94 94 grey37
- 97 97 97 gray38
- 97 97 97 grey38
- 99 99 99 gray39
- 99 99 99 grey39
-102 102 102 gray40
-102 102 102 grey40
-105 105 105 gray41
-105 105 105 grey41
-107 107 107 gray42
-107 107 107 grey42
-110 110 110 gray43
-110 110 110 grey43
-112 112 112 gray44
-112 112 112 grey44
-115 115 115 gray45
-115 115 115 grey45
-117 117 117 gray46
-117 117 117 grey46
-120 120 120 gray47
-120 120 120 grey47
-122 122 122 gray48
-122 122 122 grey48
-125 125 125 gray49
-125 125 125 grey49
-127 127 127 gray50
-127 127 127 grey50
-130 130 130 gray51
-130 130 130 grey51
-133 133 133 gray52
-133 133 133 grey52
-135 135 135 gray53
-135 135 135 grey53
-138 138 138 gray54
-138 138 138 grey54
-140 140 140 gray55
-140 140 140 grey55
-143 143 143 gray56
-143 143 143 grey56
-145 145 145 gray57
-145 145 145 grey57
-148 148 148 gray58
-148 148 148 grey58
-150 150 150 gray59
-150 150 150 grey59
-153 153 153 gray60
-153 153 153 grey60
-156 156 156 gray61
-156 156 156 grey61
-158 158 158 gray62
-158 158 158 grey62
-161 161 161 gray63
-161 161 161 grey63
-163 163 163 gray64
-163 163 163 grey64
-166 166 166 gray65
-166 166 166 grey65
-168 168 168 gray66
-168 168 168 grey66
-171 171 171 gray67
-171 171 171 grey67
-173 173 173 gray68
-173 173 173 grey68
-176 176 176 gray69
-176 176 176 grey69
-179 179 179 gray70
-179 179 179 grey70
-181 181 181 gray71
-181 181 181 grey71
-184 184 184 gray72
-184 184 184 grey72
-186 186 186 gray73
-186 186 186 grey73
-189 189 189 gray74
-189 189 189 grey74
-191 191 191 gray75
-191 191 191 grey75
-194 194 194 gray76
-194 194 194 grey76
-196 196 196 gray77
-196 196 196 grey77
-199 199 199 gray78
-199 199 199 grey78
-201 201 201 gray79
-201 201 201 grey79
-204 204 204 gray80
-204 204 204 grey80
-207 207 207 gray81
-207 207 207 grey81
-209 209 209 gray82
-209 209 209 grey82
-212 212 212 gray83
-212 212 212 grey83
-214 214 214 gray84
-214 214 214 grey84
-217 217 217 gray85
-217 217 217 grey85
-219 219 219 gray86
-219 219 219 grey86
-222 222 222 gray87
-222 222 222 grey87
-224 224 224 gray88
-224 224 224 grey88
-227 227 227 gray89
-227 227 227 grey89
-229 229 229 gray90
-229 229 229 grey90
-232 232 232 gray91
-232 232 232 grey91
-235 235 235 gray92
-235 235 235 grey92
-237 237 237 gray93
-237 237 237 grey93
-240 240 240 gray94
-240 240 240 grey94
-242 242 242 gray95
-242 242 242 grey95
-245 245 245 gray96
-245 245 245 grey96
-247 247 247 gray97
-247 247 247 grey97
-250 250 250 gray98
-250 250 250 grey98
-252 252 252 gray99
-252 252 252 grey99
-255 255 255 gray100
-255 255 255 grey100
-169 169 169 dark grey
-169 169 169 DarkGrey
-169 169 169 dark gray
-169 169 169 DarkGray
-0 0 139 dark blue
-0 0 139 DarkBlue
-0 139 139 dark cyan
-0 139 139 DarkCyan
-139 0 139 dark magenta
-139 0 139 DarkMagenta
-139 0 0 dark red
-139 0 0 DarkRed
-144 238 144 light green
-144 238 144 LightGreen
diff --git a/x-symbol/etc/scroll2.xbm b/x-symbol/etc/scroll2.xbm
deleted file mode 100644
index 606b24c9..00000000
--- a/x-symbol/etc/scroll2.xbm
+++ /dev/null
@@ -1,39 +0,0 @@
-#define scroll_width 64
-#define scroll_height 54
-static char scroll_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0,
- 0x07, 0x10, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x20, 0x00, 0x00,
- 0x00, 0xf0, 0x7f, 0x00, 0x00, 0x40, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00,
- 0x00, 0x40, 0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x40, 0xc0, 0x3f,
- 0x06, 0x0c, 0x00, 0x00, 0x00, 0x40, 0x38, 0x20, 0xf2, 0x18, 0x00, 0x00,
- 0x00, 0x20, 0x06, 0x20, 0x99, 0x31, 0x00, 0x00, 0x00, 0xa0, 0xe1, 0x13,
- 0x09, 0x62, 0x40, 0x01, 0x00, 0x41, 0x1e, 0x1e, 0xc9, 0x64, 0xe8, 0x04,
- 0x4a, 0x30, 0x00, 0x08, 0x92, 0x54, 0x10, 0x80, 0x22, 0x8c, 0x7f, 0x04,
- 0x62, 0xce, 0x00, 0x30, 0x01, 0x73, 0xc0, 0x03, 0x0c, 0x83, 0x00, 0x20,
- 0x80, 0x00, 0x00, 0x03, 0xf0, 0x80, 0x00, 0x00, 0x60, 0xf8, 0x87, 0x00,
- 0x00, 0x80, 0x00, 0x00, 0x90, 0x07, 0x7c, 0x00, 0x00, 0x80, 0x00, 0x19,
- 0x0c, 0x00, 0x30, 0x00, 0x00, 0x00, 0xb1, 0x04, 0x83, 0x7f, 0x08, 0x00,
- 0x00, 0x00, 0x11, 0x83, 0x7c, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x21, 0x40,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x30, 0xfc, 0xc1, 0x01, 0x00,
- 0x00, 0x00, 0x02, 0xc8, 0x03, 0x3f, 0x01, 0x00, 0x00, 0x00, 0x02, 0x06,
- 0x00, 0x8c, 0x01, 0x00, 0x00, 0x00, 0x82, 0xe1, 0x87, 0x43, 0x01, 0x00,
- 0x00, 0x00, 0x64, 0x1e, 0x78, 0x80, 0x02, 0x00, 0x00, 0x00, 0x10, 0x00,
- 0x38, 0x40, 0x03, 0x00, 0x00, 0x00, 0x8c, 0x0f, 0x07, 0x80, 0x02, 0x00,
- 0x00, 0x00, 0x72, 0xf0, 0x01, 0x40, 0x05, 0x00, 0x00, 0x80, 0x01, 0x3e,
- 0x00, 0x80, 0x06, 0x00, 0x00, 0xe0, 0xc0, 0x01, 0x00, 0x40, 0x05, 0x00,
- 0x00, 0x30, 0x3f, 0x00, 0x00, 0x80, 0x8a, 0x01, 0x00, 0x18, 0x10, 0x00,
- 0x00, 0x40, 0x5d, 0x06, 0x00, 0x0f, 0x10, 0x00, 0x00, 0xa0, 0x3a, 0x0c,
- 0xc0, 0x07, 0x20, 0x00, 0x00, 0x50, 0x1d, 0x18, 0xe0, 0x07, 0x20, 0x00,
- 0x00, 0xa8, 0x06, 0x30, 0xf8, 0x01, 0x20, 0x00, 0x00, 0xd4, 0x01, 0x28,
- 0x3c, 0x3e, 0x60, 0x00, 0x00, 0x3f, 0x00, 0x34, 0x8e, 0xc1, 0x40, 0xe0,
- 0xff, 0x00, 0x00, 0x2a, 0x41, 0x7f, 0x41, 0x78, 0x00, 0x00, 0x00, 0x35,
- 0xc0, 0x00, 0x41, 0x86, 0x01, 0x00, 0xa0, 0x1a, 0x80, 0xdb, 0x40, 0x32,
- 0x03, 0x00, 0x54, 0x0f, 0x80, 0x24, 0x81, 0x5a, 0x06, 0x00, 0xea, 0x00,
- 0x40, 0x24, 0x81, 0x92, 0x06, 0x40, 0x3f, 0x00, 0x20, 0x42, 0x82, 0x44,
- 0x06, 0xe0, 0x01, 0x00, 0x10, 0x81, 0x0c, 0x39, 0x03, 0x1f, 0x00, 0x00,
- 0xcc, 0xff, 0x11, 0x82, 0xf1, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x1f, 0xcc,
- 0x0c, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x1f, 0xf0, 0x03, 0x00, 0x00, 0x00,
- 0xfc, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x1f, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xc0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/x-symbol/etc/splat.xbm b/x-symbol/etc/splat.xbm
deleted file mode 100644
index 48eac458..00000000
--- a/x-symbol/etc/splat.xbm
+++ /dev/null
@@ -1,44 +0,0 @@
-#define splat_width 65
-#define splat_height 54
-static char splat_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x04, 0xc0, 0x80, 0x03, 0x0e, 0x00,
- 0x43, 0x00, 0x00, 0x08, 0xa0, 0x01, 0x01, 0x04, 0x82, 0x23, 0x00, 0x00,
- 0x00, 0xe0, 0x01, 0x01, 0x00, 0x03, 0x11, 0x00, 0x00, 0x00, 0x83, 0x01,
- 0x01, 0x04, 0x40, 0xc0, 0x01, 0x00, 0x80, 0x05, 0x00, 0x00, 0x04, 0x00,
- 0x64, 0x03, 0x00, 0xc0, 0x0e, 0x04, 0x01, 0x04, 0x18, 0xa0, 0x03, 0x00,
- 0xc0, 0x1e, 0x08, 0x03, 0x0e, 0x1f, 0xa1, 0xc3, 0x00, 0x86, 0x1f, 0x90,
- 0xff, 0xff, 0x0f, 0xe0, 0x23, 0x00, 0x08, 0x3c, 0xf0, 0xff, 0xff, 0x0f,
- 0xf0, 0x10, 0x00, 0x10, 0x20, 0xf0, 0x2b, 0xfd, 0x0f, 0x70, 0x00, 0x00,
- 0x00, 0x80, 0x7f, 0xf5, 0xff, 0x0f, 0x10, 0x06, 0x00, 0x00, 0x00, 0xbf,
- 0xfe, 0xff, 0x1f, 0x04, 0x00, 0x00, 0x7c, 0x00, 0x5f, 0xff, 0xff, 0x1f,
- 0x04, 0x78, 0x00, 0xc6, 0x01, 0xae, 0xff, 0xff, 0x1f, 0x01, 0xfe, 0x00,
- 0xfa, 0xe7, 0xdf, 0xff, 0xff, 0xbf, 0x01, 0xf5, 0x00, 0xfc, 0xff, 0xef,
- 0xff, 0xff, 0xff, 0x80, 0x7f, 0x00, 0x00, 0xe0, 0xdf, 0xff, 0xff, 0x7f,
- 0x40, 0x00, 0x00, 0x00, 0xc0, 0xef, 0xff, 0xff, 0x7f, 0x1e, 0x00, 0x00,
- 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0xc0, 0xef,
- 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x20, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
- 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x1b, 0x00, 0x00, 0xf6, 0xff,
- 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0x00, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x3c, 0x00, 0xce, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00,
- 0x1e, 0x00, 0x84, 0x7f, 0xde, 0xff, 0x03, 0x00, 0x00, 0x0e, 0x04, 0xc4,
- 0x1f, 0x88, 0xff, 0x07, 0x30, 0x00, 0x0c, 0x02, 0xc4, 0x1f, 0x00, 0x0f,
- 0x1e, 0xc0, 0x00, 0x00, 0x00, 0xc0, 0x0c, 0x08, 0x0f, 0x38, 0x00, 0x00,
- 0x00, 0x00, 0x20, 0x0c, 0x08, 0x06, 0x40, 0x00, 0x00, 0x08, 0x00, 0x00,
- 0x08, 0x00, 0x06, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x06,
- 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x04, 0x02, 0x34, 0x00,
- 0x00, 0x01, 0x02, 0x00, 0x1c, 0x04, 0x00, 0x68, 0x00, 0x80, 0x00, 0x01,
- 0x00, 0x1c, 0x04, 0x00, 0xd0, 0x00, 0x00, 0x80, 0x40, 0x08, 0x08, 0x04,
- 0x02, 0x60, 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, 0x04, 0x04, 0x00, 0x00,
- 0x00, 0x20, 0x00, 0x08, 0x02, 0x04, 0x08, 0x00, 0x00, 0x08, 0x30, 0x00,
- 0x08, 0x02, 0x00, 0x30, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00,
- 0xf0, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x02, 0x04, 0xe0, 0x01, 0x00,
- 0x00, 0x0f, 0x00, 0x00, 0x02, 0x04, 0x20, 0x01, 0x00, 0x80, 0x07, 0x00,
- 0x00, 0x02, 0x00, 0xc0, 0x01, 0x00, 0xc0, 0x07, 0x00, 0x08, 0x06, 0x04,
- 0x00, 0x00, 0x00, 0xb0, 0x43, 0x00, 0x08, 0x05, 0x04, 0x00, 0x00, 0x00,
- 0xd8, 0x01, 0x00, 0x1c, 0x07, 0x06, 0x04, 0x00, 0x00, 0xe8, 0x01, 0x20,
- 0x88, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x80, 0x0e, 0x0e,
- 0x00, 0x02, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00,
- 0x70, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/x-symbol/etc/stopsign.xbm b/x-symbol/etc/stopsign.xbm
deleted file mode 100644
index 6efe0018..00000000
--- a/x-symbol/etc/stopsign.xbm
+++ /dev/null
@@ -1,38 +0,0 @@
-#define stopsign_width 64
-#define stopsign_height 64
-static char stopsign_bits[] = {
- 0x00,0x00,0xfc,0xff,0xff,0x3f,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0x7f,0x00,
- 0x00,0x00,0x00,0x07,0x00,0x00,0xe0,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0xc0,
- 0x01,0x00,0x00,0xc0,0xf9,0xff,0xff,0x8f,0x03,0x00,0x00,0xe0,0xac,0xaa,0xaa,
- 0x1a,0x07,0x00,0x00,0x70,0x56,0x55,0x55,0x35,0x0e,0x00,0x00,0x38,0xab,0xaa,
- 0xaa,0x6a,0x1c,0x00,0x00,0x9c,0x55,0x55,0x55,0xd5,0x38,0x00,0x00,0xce,0xaa,
- 0xaa,0xaa,0xaa,0x71,0x00,0x00,0x67,0x55,0x55,0x55,0x55,0xe3,0x00,0x80,0xb3,
- 0xaa,0xaa,0xaa,0xaa,0xc6,0x01,0xc0,0x59,0x55,0x55,0x55,0x55,0x8d,0x03,0xe0,
- 0xac,0xaa,0xaa,0xaa,0xaa,0x1a,0x07,0x70,0x56,0x55,0x55,0x55,0x55,0x35,0x0e,
- 0x38,0xab,0xaa,0xaa,0xaa,0xaa,0x6a,0x1c,0x9c,0x55,0x55,0x55,0x55,0x55,0xd5,
- 0x38,0xce,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0x71,0x67,0x55,0x55,0x55,0x55,0x55,
- 0x55,0xe3,0xb3,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xc6,0x53,0x55,0x55,0x55,0x55,
- 0x55,0x55,0xcd,0xb3,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xca,0x53,0x55,0x55,0x55,
- 0x55,0x55,0x55,0xcd,0xb3,0xfe,0xfb,0xff,0xfb,0xab,0xff,0xca,0x53,0x03,0x0d,
- 0x00,0x0d,0x54,0x80,0xcd,0xb3,0x01,0x0a,0x00,0x07,0x68,0x00,0xcb,0xd3,0x78,
- 0xf4,0xf9,0xe3,0x51,0x3e,0xce,0xb3,0xac,0xac,0xa9,0xb2,0x72,0x6a,0xca,0xd3,
- 0xd4,0x54,0x59,0x53,0x53,0x56,0xce,0xb3,0xac,0xaf,0xa9,0xb2,0x72,0x6a,0xca,
- 0xd3,0x54,0x55,0x59,0x53,0x53,0x56,0xce,0xb3,0xf8,0xaa,0xa9,0xb2,0x72,0x3e,
- 0xca,0x53,0x01,0x55,0x59,0x53,0x53,0x00,0xcd,0xb3,0x02,0xaa,0xa9,0xb2,0x72,
- 0x80,0xca,0x53,0x7d,0x54,0x59,0x53,0x53,0x7e,0xcd,0xb3,0xaa,0xac,0xa9,0xb2,
- 0x72,0xaa,0xca,0x53,0xd7,0x54,0x59,0x53,0x53,0x56,0xcd,0xb3,0xac,0xac,0xa9,
- 0xb2,0x72,0xaa,0xca,0xd3,0xd4,0x54,0x59,0x53,0x53,0x56,0xcd,0xb3,0x78,0xac,
- 0xa9,0xe2,0x71,0xaa,0xca,0x53,0x01,0x56,0x59,0x05,0x58,0x56,0xcd,0xb3,0x02,
- 0xab,0xa9,0x0a,0x6c,0xaa,0xca,0x53,0xfd,0x55,0x5f,0xf5,0xd7,0x55,0xcd,0xb3,
- 0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xca,0x63,0x55,0x55,0x55,0x55,0x55,0x55,0xcd,
- 0xc7,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xe6,0x8e,0x55,0x55,0x55,0x55,0x55,0x55,
- 0x73,0x1c,0xab,0xaa,0xaa,0xaa,0xaa,0xaa,0x39,0x38,0x56,0x55,0x55,0x55,0x55,
- 0xd5,0x1c,0x70,0xac,0xaa,0xaa,0xaa,0xaa,0x6a,0x0e,0xe0,0x58,0x55,0x55,0x55,
- 0x55,0x35,0x07,0xc0,0xb1,0xaa,0xaa,0xaa,0xaa,0x9a,0x03,0x80,0x63,0x55,0x55,
- 0x55,0x55,0xcd,0x01,0x00,0xc7,0xaa,0xaa,0xaa,0xaa,0xe6,0x00,0x00,0x8e,0x55,
- 0x55,0x55,0x55,0x73,0x00,0x00,0x1c,0xab,0xaa,0xaa,0xaa,0x39,0x00,0x00,0x38,
- 0x56,0x55,0x55,0xd5,0x1c,0x00,0x00,0x70,0xac,0xaa,0xaa,0x6a,0x0e,0x00,0x00,
- 0xe0,0x58,0x55,0x55,0x35,0x07,0x00,0x00,0xc0,0xf1,0xff,0xff,0x9f,0x03,0x00,
- 0x00,0x80,0x03,0x00,0x00,0xc0,0x01,0x00,0x00,0x00,0x07,0x00,0x00,0xe0,0x00,
- 0x00,0x00,0x00,0xfe,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0xfc,0xff,0xff,0x3f,
- 0x00,0x00};
diff --git a/x-symbol/lisp/x-symbol-myuc.el b/x-symbol/lisp/x-symbol-myuc.el
deleted file mode 100644
index 6fb5030b..00000000
--- a/x-symbol/lisp/x-symbol-myuc.el
+++ /dev/null
@@ -1,118 +0,0 @@
-;;; x-symbol-myuc.el --- example token language "My Unicode" from manual
-
-;; Copyright (C) 1998-1999 Christoph Wedler
-;;
-;; Author: Christoph Wedler <wedler@users.sourceforge.net>
-;; Maintainer: (Please use `M-x x-symbol-package-bug' to contact the maintainer)
-;; Version: 4.1
-;; Keywords: WYSIWYG, LaTeX, HTML, wp, math, internationalization
-;; X-URL: http://x-symbol.sourceforge.net/
-
-;; This program is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-;;
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-;;
-;; You should have received a copy of the GNU General Public License
-;; along with this program; if not, write to the Free Software
-;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-;;; Commentary:
-
-;; If you want to use package x-symbol, please visit the URL (use
-;; \\[x-symbol-package-web]) and read the info (use \\[x-symbol-package-info]).
-;; This file defines the example token language "My Unicode" from the manual of
-;; package X-Symbol.
-
-;; The following lines define the major mode `myuc-mode':
-
-;;(put 'myuc-mode 'font-lock-defaults '(myuc-font-lock-keywords t t))
-;;(defvar myuc-font-lock-keywords '(("##" (0 font-lock-type-face))))
-;;(defun myuc-mode ()
-;; (interactive)
-;; (fundamental-mode)
-;; (setq mode-name "MyUnicode")
-;; (setq major-mode 'myuc-mode))
-;;(push '("\\.myuc\\'" . myuc-mode) auto-mode-alist)
-
-;; Put the following code into your ~/.emacs to register language `myuc':
-
-;;(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)
-
-;;; Code:
-
-(provide 'x-symbol-myuc)
-(require 'x-symbol-vars)
-;; If you want to make the file compilable without X-Symbol, you could use the
-;; following instead (require 'x-symbol-vars):
-;; (custom-add-load 'x-symbol-myuc 'x-symbol-vars)
-(eval-when-compile (require 'cl))
-
-
-(defvar x-symbol-myuc-required-fonts nil)
-
-(defvar x-symbol-myuc-modeline-name "myuc")
-(defvar x-symbol-myuc-header-groups-alist nil)
-
-(defvar x-symbol-myuc-class-alist
- '((VALID "My Unicode" (x-symbol-info-face))
- (INVALID "no My Unicode" (x-symbol-emph-info-face))))
-(defvar x-symbol-myuc-class-face-alist nil)
-(defvar x-symbol-myuc-electric-ignore nil)
-
-(defvar x-symbol-myuc-font-lock-keywords nil)
-(defvar x-symbol-myuc-image-keywords nil)
-(defvar x-symbol-myuc-master-directory 'ignore)
-(defvar x-symbol-myuc-image-searchpath '("./"))
-(defvar x-symbol-myuc-image-cached-dirs '("images/" "pictures/"))
-(defvar x-symbol-myuc-image-file-truename-alist 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))
-
-
-;;;===========================================================================
-;;; Internal
-;;;===========================================================================
-
-(defvar x-symbol-myuc-menu-alist nil
- "Internal. Alist used for MyUc specific menu.")
-(defvar x-symbol-myuc-grid-alist nil
- "Internal. Alist used for MyUc specific grid.")
-
-(defvar x-symbol-myuc-decode-atree nil
- "Internal. Atree used by `x-symbol-token-input'.")
-(defvar x-symbol-myuc-decode-alist nil
- "Internal. Alist used for decoding of MyUc macros.")
-(defvar x-symbol-myuc-encode-alist nil
- "Internal. Alist used for encoding to MyUc macros.")
-
-(defvar x-symbol-myuc-nomule-decode-exec nil
- "Internal. File name of MyUc decode executable.")
-(defvar x-symbol-myuc-nomule-encode-exec nil
- "Internal. File name of MyUc encode executable.")
-
-;;; Local IspellPersDict: .ispell_xsymb
-;;; x-symbol-myuc.el ends here
diff --git a/x-symbol/lisp/x-symbol-site.el b/x-symbol/lisp/x-symbol-site.el
deleted file mode 100644
index 5096ef34..00000000
--- a/x-symbol/lisp/x-symbol-site.el
+++ /dev/null
@@ -1,75 +0,0 @@
-;;; x-symbol-site.el --- sample customization of package x-symbol
-
-;; Copyright (C) 1996-1998 Free Software Foundation, Inc.
-;;
-;; Author: Christoph Wedler <wedler@users.sourceforge.net>
-;; Maintainer: (Please use `M-x x-symbol-package-bug' to contact the maintainer)
-;; Version: 3.4
-;; Keywords: WYSIWYG, LaTeX, HTML, wp, math, internationalization
-;; X-URL: http://x-symbol.sourceforge.net/
-
-;; This program is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-;;
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-;;
-;; You should have received a copy of the GNU General Public License
-;; along with this program; if not, write to the Free Software
-;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-;;; Commentary:
-
-;; If you want to use package x-symbol, please visit the URL (use
-;; \\[x-symbol-package-web]) and read the info (use \\[x-symbol-package-info]).
-
-;; This file contains the elisp code for the installation of package x-symbol.
-;; Copy the first lines of the code, which are also mentioned in the
-;; installation instructions, into your `~/.emacs' or `default.el'. The direct
-;; use of this file via `(load "x-symbol-site")' is deprecated.
-
-;;; Code:
-
-;;(setq x-symbol-data-directory (expand-file-name "~/.xemacs/etc/x-symbol/"))
-(unless (featurep 'mule) (setq x-symbol-compose-key '(multi-key)))
-(require 'x-symbol-hooks)
-(x-symbol-initialize)
-
-;; Use GNUs make for creation of executables:
-;;(defvar x-symbol-exec-compile-command "gmake -k")
-
-;; Do not expand \FROM to \TO if we have an abbreviation from FROM to TO:
-;;(custom-set-variables '(words-include-escapes t))
-
-;; Set this if your normal font does not have registry iso8859-1:
-;;(setq x-symbol-default-coding 'iso-8859-2) ; but not with Mule!
-
-;; If you run x-symbol on tty, but never use \usepackage[latinN]{inputenc}
-;; where N does not correspond to your "normal" font (e.g., if you only use
-;; \usepackage[latin1]{inputenc}):
-;;(setq x-symbol-latin-force-use nil)
-
-;; If you would use XEmacs/Mule just for package X-Symbol
-;;(setq x-symbol-mule-change-default-face t)
-
-;; psgml-html:
-;;(setq html-auto-sgml-entity-conversion nil) ; the default
-
-;; If you `isearch' for x-symbol characters, it is a good idea to remove any
-;; font property from the `isearch' face (the same for highlight), this could
-;; be a problem with B/W monitors: -------------------------------------------
-(remove-specifier (get (get-face 'isearch) 'font))
-(set-face-foreground 'isearch "white" nil '(mono))
-(set-face-background 'isearch "black" nil '(mono))
-(remove-specifier (get (get-face 'highlight) 'font))
-(set-face-underline-p 'highlight t nil '(mono))
-;; Check also the faces `primary-selection', `secondary-selection',
-;; `underline', `paren-match', `paren-blink-off', `paren-mismatch'. Thanks to
-;; Solofo Ramangalahy <solofo@mpi-sb.mpg.de> for this list.
-
-;;; Local IspellPersDict: .ispell_xsymb
-;;; x-symbol-site.el ends here
diff --git a/x-symbol/man/x-symbol.texi-exp b/x-symbol/man/x-symbol.texi-exp
deleted file mode 100644
index fbcd4201..00000000
--- a/x-symbol/man/x-symbol.texi-exp
+++ /dev/null
@@ -1,7493 +0,0 @@
-\input texinfo
-@c Copyright (C) 1998-2003 Free Software Foundation, Inc.
-@c
-@c Author: Christoph Wedler <wedler@users.sourceforge.net>
-@c Maintainer: (Please use `M-x x-symbol-package-bug' to contact the maintainer)
-@c Keywords: WYSIWYG, LaTeX, HTML, wp, math, internationalization
-@c X-URL: http://x-symbol.sourceforge.net/
-
-@c %**start of header
-@setfilename x-symbol.info
-@settitle X-Symbol Manual
-@setchapternewpage odd
-
-@set edition 4.4.5
-@set version 4.4.5
-@set update January 2003
-@set http http://x-symbol.sourceforge.net
-@set maintainer wedler@@users.sourceforge.net
-
-@c for cross references to other manuals
-@ifset GNU
-@set subedition Emacs
-@set emacs emacs
-@set emacsman GNU Emacs Manual
-@end ifset
-
-@ifclear GNU
-@set subedition XEmacs
-@set emacs xemacs
-@set emacsman XEmacs User's Manual
-@end ifclear
-
-@set auctex auctex
-@set auctexman AUC@TeX{}
-
-@set reftex reftex
-@set reftexman Ref@TeX{} User Manual
-
-@set kpathsea kpathsea
-@set kpathseaman Kpathsea Manual
-
-
-@syncodeindex fn vr
-@c %**end of header
-@dircategory Editors
-@direntry
-* X-Symbol:: Semi WYSIWYG for LaTeX, HTML and other "token languages"
-@end direntry
-
-@ifinfo
-This file documents X-Symbol, a package providing semi-@sc{wysiwyg} for
-La@TeX{}, HTML and other ``token languages''. It uses additional fonts
-and provide input methods to insert their characters into your document.
-
-This is Edition 4.4.5 (XEmacs) of the X-Symbol
-Manual for X-Symbol 4.4.5, January 2003.
-
-Copyright (c) 1998-2003 Free Software Foundation, Inc.
-
-@c default
-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.
-
-@ignore
-Permission is granted to process this file through TeX and print the
-results, provided the printed document carries a copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-
-@end ignore
-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.
-@c end default
-@end ifinfo
-
-@finalout
-@titlepage
-@title X-Symbol Manual
-@subtitle Semi-@sc{wysiwyg} for La@TeX{}, HTML and other ``token languages''
-@subtitle Edition 4.4.5 (XEmacs), for X-Symbol 4.4.5, January 2003
-@author by Christoph Wedler
-
-@page
-@vskip 0pt plus 1filll
-Copyright @copyright{} 1998-2003 Free Software Foundation, Inc.
-
-@c default (slight change)
-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 that the
-entire resulting derive 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.
-@c end default
-
-@end titlepage
-
-@c ===========================================================================
-
-@ifinfo
-@node Top, Introduction, (dir), (dir)
-@comment node-name, next, previous, up
-@top X-Symbol
-
-When you edit La@TeX{}, HTML, BibTeX or @TeX{}info sources in Emacs,
-package X-Symbol provides some kind of @sc{wysiwyg} by using real
-characters for tokens like @code{\oplus} or @code{&trade;}. 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.4.5 of the X-Symbol Manual for X-Symbol
-4.4.5, January 2003. For recent changes, see @ref{News}.
-
-Bug fixes, bug reports, improvements, and suggestions are strongly
-appreciated. Please read section @ref{Bug Reports} if you want to
-contact the maintainer of package X-Symbol.
-@end ifinfo
-
-@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.
-
-@detailmenu
- --- 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 @code{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 La@TeX{} buffers.
-* Syntax Hiliting Packages:: Package @code{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 @code{font-lock}.
-* Char Group:: Character group and token classes.
-
-Conversion: Decoding and Encoding
-
-* Default Coding:: Encoding of your default charset.
-* 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 @code{tex}.
-* SGML Entity:: Token language @code{sgml}.
-* BibTeX Macro:: Token language @code{bib}.
-* TeXinfo Command:: Token language @code{texi}.
-* External Languages:: Languages defined in other Emacs Packages.
-
-Token Language ``@TeX{} macro'' (@code{tex})
-
-* TeX Macro Basics:: Basics of language ``@TeX{} macro''.
-* TeX Macro Features:: Super-/subscripts and images in La@TeX{}.
-* 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 ``@sc{sgml} entity'' (@code{sgml})
-
-* SGML Entity Basics:: Basics of Language ``@sc{sgml} entity''.
-* SGML Entity Features:: Super-/Subscripts and Images in @sc{html}.
-* SGML Entity Conversion:: How the conversion of @sc{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 @emph{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 @code{hyphen} from @samp{-}.
-* FAQ Spell Check:: I have problems with spell-checking.
-
-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 New:: To be announced.
-* 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 La@TeX{}.
-* 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.
-
-@end detailmenu
-@end menu
-
-@c ===========================================================================
-
-@node Introduction, Installation, Top, Top
-@comment node-name, next, previous, up
-@chapter Introduction
-@cindex Overview
-@cindex Introduction
-
-When you edit La@TeX{}, HTML, BibTeX or @TeX{}info sources in Emacs,
-package X-Symbol provides some kind of @sc{wysiwyg} by using real
-characters for tokens like @code{\oplus} or @code{&trade;}. 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.
-@end menu
-
-@c ====================================================================
-
-@node Copying, Summary, Introduction, Introduction
-@comment node-name, next, previous, up
-@section X-Symbol's Copying Conditions: GPL
-@cindex Copying
-@cindex Copyright
-@cindex GPL
-@cindex General Public License
-@cindex License
-@cindex Warranty
-
-(This text is stolen from the @TeX{}info 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 @dfn{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.
-
-@c ====================================================================
-
-@node Summary, About, Copying, Introduction
-@comment node-name, next, previous, up
-@section Brief Summary of X-Symbol
-@cindex Summary
-@cindex Brief Summary
-@cindex X-Symbol in a Nutshell
-
-@itemize @bullet
-@item
-X-Symbol provides a @strong{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.
-
-@item
-These characters are used in the buffer to represent @strong{tokens}
-(e.g., @TeX{} macros, @sc{sgml} entities, more ``token languages'' could be
-added easily) in the file. The @emph{conversion} is done automatically
-when visiting the file, saving the buffer and turning the minor mode
-on/off.
-
-@item
-Defines 8 @strong{input methods} for these characters: @emph{Menu},
-@emph{Grid} (selecting a character with the mouse), @emph{Keyboard},
-@emph{Context} (replace/modify similar-looking char sequence),
-@emph{Electric} (automatic replace), @emph{Quail} (a Mule input method),
-@emph{Token} (replace token by corresponding char), @emph{Read Token}
-(completing minibuffer input of token).
-
-@item
-Offers some @strong{info} in the echo area for these characters (e.g.,
-that the character under point represents the TeX macro @code{\leadsto}
-and that the macro is defined in La@TeX{} package @file{latexsym.sty}).
-
-@item
-Allows to use a @strong{8bit file encoding} which is different from your
-"normal" 8bit file encoding, e.g., you can visit @TeX{} files with
-@code{\usepackage[latin5]@{inputenc@}} even if you normally use a Latin-2
-font.
-
-@item
-Provides a kind of ``@strong{poor man's Mule}'' when running on an
-XEmacs without Mule support: it can @emph{display} more than 256
-characters via @code{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.
-
-@item
-Provides fonts for single-line innermost @strong{super-} and
-@strong{subscripts} to be displayed with per-buffer control. The
-invisible part, like @code{<sub>} in HTML, is revealed at point.
-
-@item
-Displays thumbnails for @strong{images} at the end of image insertion
-commands with per-buffer control (e.g.,
-@code{\includegraphics@{@var{file}@}} in La@TeX{}, @code{<img
-src=@var{file}>} in HTML). They show a scaled-down version of the
-included image files (using @code{convert} from
-@uref{http://www.imagemagick.org/,ImageMagick}). A single mouse click
-on the image or command invokes the image editor for the corresponding
-image file.
-
-@item
-It @emph{does not} and @emph{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
-@code{font-lock}, e.g., @code{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 @code{outline-minor-mode} or
-folding might also be an alternative.
-@end itemize
-
-If you prefer a more @sc{wysiwyg}-like document processor, you should
-probably use @code{LyX} or @code{GNU TeXmacs}. Here are some reasons
-why you would use Emacs/XEmacs with package X-Symbol instead:
-
-@itemize @bullet
-@item
-You have complete control over the La@TeX{} source. X-Symbol supports
-more characters.
-
-@item
-You can read any La@TeX{} source and you write normal La@TeX{} code,
-i.e., package X-Symbol does not use any special format.
-
-@item
-It also supports HTML and @TeX{}info documents and BibTeX entries.
-
-@item
-You can use your favorite editor, i.e., Emacs or XEmacs.
-@end itemize
-
-@c ====================================================================
-
-@node About, , Summary, Introduction
-@comment node-name, next, previous, up
-@section About this Manual
-@cindex About
-@cindex Web Pages
-@cindex Info Pages
-@cindex Manual
-@cindex Online Help
-
-Apart from this manual, there are two other sources of information about
-X-Symbol:
-
-@itemize @bullet
-@item
-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:
-
-@display
- @uref{http://x-symbol.sourceforge.net/}
-@end display
-
-@item
-The online help for commands (functions) and user options (variables) is
-quite technical. It is shown during customization and when using Emacs'
-Help menu.
-@end itemize
-
-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 @ref{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 @code{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 @ref{Bug Reports}.
-
-@c ===========================================================================
-
-@node Installation, Concepts, Introduction, Top
-@comment node-name, next, previous, up
-@chapter Installation
-@cindex Installation
-
-The short version of the installation instructions for package X-Symbol
-on XEmacs is: uncompress & extract the @emph{binary distribution} in
-directory @file{~/.xemacs/xemacs-packages/}, add
-@code{(x-symbol-initialize)} to your @file{~/.emacs} and install
-ImageMagick for the image support (unless you want to get a warning).
-
-Please check the web page @emph{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 @code{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?
-@end menu
-
-@c ====================================================================
-
-@node Requirements, Installing Files, Installation, Installation
-@comment node-name, next, previous, up
-@section Requirements
-@cindex Requirements
-@cindex Binary Package
-@cindex Source Package
-@cindex Old Version
-@cindex Window System
-@cindex X
-@cindex Windows
-@cindex MS-Windows
-@cindex Character Terminal
-@cindex TTY
-@pindex Emacs
-@pindex XEmacs
-
-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, @ref{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 (@pxref{Wishlist Fonts}). Under a character terminal,
-X-Symbol just supports Latin-1 characters only, no super- and subscripts
-and no images.
-
-@pindex font-lock
-@pindex lazy-shot
-@pindex texmathp
-@pindex auctex
-This package require package @code{font-lock} (distributed with Emacs
-and XEmacs), the use of package @code{lazy-shot} is recommended, see
-@ref{Syntax Hiliting Packages}.
-
-@pindex convert
-If you want to see the images at the end of image insertion commands,
-install @code{convert} from
-@uref{http://www.imagemagick.org/,ImageMagick},
-see @ref{Installing Image Converter}. They show a scaled-down version
-of the included image files.
-
-@pindex makeinfo
-@pindex texi2dvi
-@pindex latex2html
-If you want to produce the Info files yourself (they are included in the
-binary distribution), you need @code{makeinfo}, Version 1.68 or higher.
-If you want to produce a PS file from the manual, you need
-@code{texi2dvi}. If you want to produce an HTML version of this manual,
-you need @code{texi2html}, Version 1.62 or higher. @xref{Installing
-Manual}.
-
-
-@c ====================================================================
-
-@node Installing Files, System-wide Installation, Requirements, Installation
-@comment node-name, next, previous, up
-@section Put the Files into your Home Directory
-@cindex Basic Installation
-@cindex Uncompress Tarball
-@cindex Extract Tarball
-@cindex Tarball
-@cindex Binary Distribution
-
-If you use Emacs, please check the @uref{http://x-symbol.sourceforge.net/news.html, web
-pages of X-Symbol}.
-
-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 @ref{System-wide Installation}. If you use
-the source distribution, you should know what do to instead.
-
-In directory @file{~/.xemacs/xemacs-packages/}, run
-@example
-zcat x-symbol-pkg.tar.gz | tar xvf -
-@end example
-
-Remember that @code{tar} does not overwrite write-protected files.
-
-X-Symbol's @file{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
-@example
-chmod -R a+rx ~/.xemacs/xemacs-packages
-@end example
-
-If package X-Symbol has been installed system-wide and you install a
-newer version in your @file{~/.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@dots{}.
-
-Before XEmacs-21.0: the user package directory was @file{~/.xemacs/}
-instead of @file{~/.xemacs/packages/}; also: delete and recompile the
-@file{.elc} files.
-
-@c ====================================================================
-
-@node System-wide Installation, Installing Lisp, Installing Files, Installation
-@comment node-name, next, previous, up
-@section System-wide Installation: Put the Files into the XEmacs Directory
-@cindex System-wide Installation
-@cindex Installing System-wide
-@cindex @file{default.el}
-@cindex @file{site-start.el}
-
-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 @file{default.el} and
-@file{@var{xemacs}/site-packages/} whenever @file{~/.emacs} and
-@file{~/.xemacs/xemacs-packages/} are mentioned in the previous or
-following subsections. @file{@var{xemacs}/site-packages/} is the
-directory of independent packages for XEmacs.
-
-Under XEmacs-21, you can uncompress and extract the tarball by
-
-@example
-M-x package-admin-add-binary-package @key{RET} @var{dir}/x-symbol-pkg.tar.gz
-@end example
-
-Then, @file{@var{xemacs}/} is the default directory of buffer
-@file{*Package Output*} (use @kbd{C-x C-f} in that buffer to see it).
-It might be @file{/usr/local/lib/xemacs/xemacs-packages/} (the first
-element in variable @code{late-packages}).
-
-Under XEmacs-20, @file{@var{xemacs}/} might be
-@file{/usr/local/lib/xemacs-@var{version}/}. Here, you have to
-uncompress and extract the tarball as described in @ref{Installing
-Files}. You also have to load the autoload file explicitly by putting
-the following line into file @file{site-start.el}:
-
-@lisp
-(load "@var{xemacs}/lisp/x-symbol/auto-autoloads")
-@end lisp
-
-I would appreciate if you would set the following variables:
-
-@vtable @code
-@item x-symbol-installer-address
-Please set this variable to your email address to catch problems which
-could be solved locally. In your private @file{~/.emacs}, you might
-want to set this variable to @code{nil}.
-
-@item x-symbol-package-url
-If you have a local copy of the web pages (@pxref{Installing Manual}), set
-this variable to the corresponding @sc{url}.
-@end vtable
-
-@c ====================================================================
-
-@node Installing Lisp, Installing Image Converter, System-wide Installation, Installation
-@comment node-name, next, previous, up
-@section Make XEmacs Initialize X-Symbol During Startup
-@cindex Installing Lisp
-@cindex Lisp Installation
-@cindex Elisp Installation
-@cindex @file{.emacs}
-@findex x-symbol-initialize
-
-Put the following into your @file{~/.emacs} (or @file{~/.xemacs/init.el}):
-
-@lisp
-(x-symbol-initialize)
-@end lisp
-
-Basically, that's it! If your XEmacs runs on a different machine, check
-@ref{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, @ref{Requirements}), set the default coding
-(@pxref{Default Coding}) by putting the following in front of the line
-above:
-
-@lisp
-(setq x-symbol-default-coding 'iso-8859-1)
-@end lisp
-
-When running Emacs under a character terminal, you might need to use the
-following (with or without X-Symbol):
-
-@lisp
-(unless window-system (standard-display-european 1))
-@end lisp
-
-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:
-
-@lisp
-(when window-system (x-symbol-initialize))
-@end lisp
-
-The initialization can be controlled by the following variable:
-
-@vtable @code
-@item x-symbol-initialize
-By default, package X-Symbol does a full initialization. This includes
-an integration with some packages, see also @ref{Package Integration}.
-@end vtable
-
-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: @code{isearch}, @code{highlight},
-@code{primary-selection}, @code{secondary-selection},
-@code{paren-match}, @code{paren-mismatch}, @code{paren-blink-off},
-@code{underline}. I.e., for each @var{face}, use:
-
-@lisp
-(remove-specifier (get (get-face '@var{face}) 'font))
-@end lisp
-
-@c ====================================================================
-
-@node Installing Image Converter, Package Integration, Installing Lisp, Installation
-@comment node-name, next, previous, up
-@section Installing the Image Converter from ImageMagick
-@cindex Installing Image Converter
-@cindex Installing @code{convert}
-@cindex Image Converter Installation
-@cindex @code{convert} Installation
-
-@pindex convert
-Program @code{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.
-
-@vindex x-symbol-image-converter
-While the installation of @code{convert} is optional, you get a warning
-if @code{convert} is not found on your system or if there is no image
-format supported by both @code{convert} and Emacs. Set variable
-@code{x-symbol-image-converter} to @code{nil} if you don't want to get
-the warning.
-
-@vindex x-symbol-image-convert-program
-On Unix, @code{convert} must be in your @code{$PATH}. On Windows, it is
-assumed to be found at @file{C:\ImageMagick\convert}. If this is not
-the case, you have to customize the variable
-@code{x-symbol-image-convert-program}.
-
-Check @uref{http://www.imagemagick.org/} for the installation
-instructions. Run @samp{convert -h} and @samp{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.
-@comment ImageMagick-5.0..5.37 failed to show formats sometimes
-
-If you do not have a truecolor device (i.e., just 256 colors), package
-X-Symbol uses @code{convert} with a colormap by default (@pxref{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.
-
-@c ====================================================================
-
-@node Package Integration, Installing Fonts, Installing Image Converter, Installation
-@comment node-name, next, previous, up
-@section Package Integration
-@cindex Package Integration
-@cindex Integrating Package
-@cindex Other Packages
-
-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 La@TeX{} buffers.
-* Syntax Hiliting Packages:: Package @code{font-lock} and support modes.
-* File IO Packages:: Compression, encryption, remote files, etc.
-* Miscellaneous Packages:: Other packages.
-@end menu
-
-
-@node LaTeX Packages, Syntax Hiliting Packages, Package Integration, Package Integration
-@comment node-name, next, previous, up
-@subsection La@TeX{} Packages
-@cindex La@TeX{} Packages
-@cindex Integrating La@TeX{} Packages
-
-Objectives: relate positions in buffer to positions in file, do
-conversion in master/slave buffers, preserve highlighting, improve input
-methods and other things.
-
-@table @code
-@item auctex
-@pindex auctex
-@pindex texmathp
-@findex TeX-next-error
-@vindex TeX-translate-location-hook
-@findex x-symbol-tex-error-location
-Use Version 9.9c or higher, which includes @code{texmathp}. There is
-some special X-Symbol adaptation for Auc@TeX{}:
-
-@itemize @minus
-@item
-@vindex TeX-master
-X-Symbol supports Auc@TeX{}'s multifile documents: it respects the
-variable @code{TeX-master} when searching for the file encoding
-(@pxref{File Coding}) and when converting image files with relative
-names (@pxref{Image Display}).
-
-@item
-@vindex TeX-region-hook
-X-Symbol supports Auc@TeX{}'s region commands: it ensures that
-characters in @file{_region_.tex} buffer are converted according to the
-parent buffer. Initialization changes @code{TeX-region-hook}. Requires
-Auc@TeX{}, v9.8a or higher.
-
-@item
-X-Symbol's input method Electric (@pxref{Input Method Electric}) with
-token language @code{tex} uses package @code{texmathp}.
-
-@item
-@vindex LaTeX-math-insert-function
-Auc@TeX{}'s math mode commands also inserts X-Symbol characters
-(@pxref{Mathematics,,,
-auctex,
-AUC@TeX{}}).
-Initialization sets @code{LaTeX-math-insert-function}. Requires
-Auc@TeX{}, v9.8a or higher.
-
-@item
-@findex TeX-next-error
-@vindex TeX-translate-location-hook
-If @TeX{} displays an error message, it also displays the context of the
-error position. Auc@TeX{} uses the context to set point to this
-position when @kbd{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
-@code{TeX-translate-location-hook}.
-@end itemize
-
-@item bib-cite
-@pindex 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 @code{bib-cite}s highlighting of @code{\cite} and friends.
-
-@item preview-latex
-@pindex preview-latex
-@findex x-symbol-tex-preview-locations
-@TeX{}'s error positions are also used by package @code{preview-latex},
-which was clever enough to reuse the above mentioned hook of Auc@TeX{}.
-Unfortunately, that hook is @dots{} and does not allow a fast translation of
-error positions, so @code{preview-latex} allows to provide better
-variants of functions in that hook. X-Symbol's variant is
-@code{x-symbol-tex-preview-locations}.
-
-@item reftex
-@pindex reftex
-@vindex reftex-translate-to-ascii-function
-Use Version 3.26 or higher. For a workaround for some minor annoyances
-with the combination Ref@TeX{}/X-Symbol/Multifile Document, see
-@ref{Problems and Work-arounds,,,reftex,Ref@TeX{} User Manual}. By
-default, the initialization of package X-Symbol makes Ref@TeX{}'s label
-creation use the nicer Asciification of package X-Symbol (@pxref{Ascii
-Representation}) by setting @code{reftex-translate-to-ascii-function}.
-
-@item whizzytex
-Use the newest.
-@end table
-
-
-@node Syntax Hiliting Packages, File IO Packages, LaTeX Packages, Package Integration
-@comment node-name, next, previous, up
-@subsection Syntax Highlighting Packages (@code{font-lock} and add-ons)
-@cindex Syntax Highlighting Packages
-@cindex @code{font-lock} Packages
-@cindex Integrating @code{font-lock} Packages
-
-Objectives: start highlighting after conversion. Highlighting is
-needed for super- and subscripts and when using XEmacs without Mule
-support.
-
-@table @code
-@item fast-lock
-@pindex fast-lock
-@vindex fast-lock-save-faces
-I recommend to use package @code{lazy-shot} instead. By default, the
-initialization of package X-Symbol sets @code{fast-lock-save-faces} to
-@code{nil} to make package @code{fast-lock} work with X-Symbol.
-
-@item font-latex
-@pindex font-latex
-@vindex font-lock-maximum-decoration
-I suggest to set @code{font-lock-maximum-decoration} to value @code{t},
-2 or higher if you do not want to use super- and subscripts in arguments
-of @code{\label} and friends. @xref{FAQ Stupid Subscripts}.
-
-@item font-lock
-@pindex font-lock
-@vindex font-lock-auto-fontify
-Is required by this package (@pxref{Role of font-lock}). I strongly
-recommend @emph{not} to turn on font-lock in @emph{any} mode hook, set
-@code{font-lock-auto-fontify} to @code{t} instead (this is the default,
-anyway). See also @code{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 @emph{after} the
-functions in the mode hook have been run, i.e., the fontification is
-getting useless if the tokens are automatically decoded.
-
-@item lazy-lock
-@pindex lazy-lock
-From XEmacs-20.3 on, the successor is called @code{lazy-shot}.
-
-@item lazy-shot
-@pindex lazy-shot
-Is strongly recommended.
-@end table
-
-
-@node File IO Packages, Miscellaneous Packages, Syntax Hiliting Packages, Package Integration
-@comment node-name, next, previous, up
-@subsection File I/O Packages
-@cindex File I/O Packages
-@cindex I/O Packages
-@cindex Remote File Packages
-@cindex Compression Packages
-@cindex Encryption Packages
-@cindex Integrating I/O Packages
-
-Issue: compression, encryption and so on can be seen as some kind of
-conversion. When doing multiple conversion, the sequence matters.
-
-@table @code
-@item ange-ftp
-@pindex ange-ftp
-See also @code{efs} and @code{jka-compr}.
-
-@item comint
-@pindex comint
-@vindex comint-input-sender
-The default installation makes @code{comint}s in-/output use X-Symbol's
-conversion function. If you set variable @code{comint-input-sender},
-set it before initializing package X-Symbol.
-
-@item crypt
-@pindex crypt
-@findex save-buffer
-@vindex x-symbol-auto-conversion-method
-I recommend to use package @code{jka-compr} instead. @xref{Spurious
-Encodings}. @xref{No Encoding}. If you use @code{crypt} and the
-character @code{alpha} looks like @samp{\233a} after @code{save-buffer},
-set this variable to @code{slowest}. @xref{Open Questions}.
-
-@item efs
-@pindex efs
-XEmacs' version of @code{ange-ftp}. See also @code{jka-compr}.
-
-@item iso-cvt
-@pindex 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.
-
-@item iso-sgml
-@pindex iso-sgml
-There is no need to use it. Package X-Symbol already provides the
-conversion between Latin-1 characters and ``@sc{sgml} entities''.
-@xref{Miscellaneous Packages}, package @code{psgml-html}.
-
-@item jka-compr
-@pindex jka-compr
-Can be used with package X-Symbol, preferred to @code{crypt}. The
-following is absolutely necessary (with or without using package
-X-Symbol, at least in older Emacsen): load @code{jka-compr} after
-@code{efs}/@code{ange-ftp}!
-
-@item latin-unity
-@pindex 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 (@pxref{Char
-Aliases}) and recoding (@pxref{File Coding}).
-
-@c also ucs-tables.el? should be no problem@dots{}
-
-@item vc
-@pindex vc
-@findex vc-next-action
-If you use package @code{crypt}, @code{vc-next-action} and friends
-encode characters to tokens. @xref{Spurious Encodings}.
-@end table
-
-
-@node Miscellaneous Packages, , File IO Packages, Package Integration
-@comment node-name, next, previous, up
-@subsection Miscellaneous Packages
-@cindex Miscellaneous Packages
-
-@table @code
-@item abbrev
-@pindex abbrev
-On XEmacs without Mule support, I recommend to set variable
-@code{words-include-escapes} to @code{t}. @xref{Nomule Problems}.
-
-@item completion
-@pindex completion
-Should work with X-Symbol (earlier version of X-Symbol had problems with
-input method token).
-
-@item desktop
-@pindex desktop
-XEmacs' version (an old one) does not save its @file{.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 @code{session} below.
-
-@item flyspell
-@pindex flyspell
-@findex global-flyspell-mode
-Should work apart from the general problem of @code{ispell}.
-
-@item func-menu
-@pindex func-menu
-Should work with X-Symbol.
-
-@item ispell
-@pindex ispell
-The package @code{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 @code{ispell}, @ref{Wishlist Emacs}. @xref{FAQ
-Spell Check}.
-
-@pindex ProofGeneral
-Use a future version (hopefully v3.4). Includes special X-Symbol
-initialization/handling and defines additional token languages.
-@xref{External Languages}.
-
-@item psgml-html
-@pindex psgml
-@pindex psgml-html
-@code{psgml-html}: Do not set @code{html-auto-sgml-entity-conversion} to
-non-@code{nil}. @xref{File IO Packages}, package @code{iso-sgml}.
-
-@item session
-@pindex session
-Use Version 1.5a or higher. If strings in this file should always be
-read correctly, you should put @code{(x-symbol-init-input)} into your
-@file{~/.emacs}; otherwise strings containing X-Symbol's private
-characters read from the @file{~/.session} file might look funny. See
-also package @code{desktop} above.
-
-@item x-compose
-@pindex x-compose
-All characters from @code{x-compose} are also supported by package
-X-Symbol. Thus, I recommend to use @kbd{@key{multi-key}} instead
-@kbd{C-=} when running under XEmacs without Mule support.
-@xref{Introducing Input Methods}.
-@end table
-
-@c ===========================================================================
-
-@node Installing Fonts, Installing Fonts Exceed, Package Integration, Installation
-@comment node-name, next, previous, up
-@section Installing Additional Fonts
-@cindex Installing Fonts
-@cindex Fonts
-@cindex X11 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@dots{}. Nevertheless, if you have a clearer explanation for
-the installation sequence below, please send me a patch to
-@file{man/x-symbol/x-symbol.texi}.)
-
-@enumerate
-@item
-@pindex xfd
-@pindex xfontsel
-Find the font which you want to replace by checking fonts with the X11
-program @code{xfontsel} or @code{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.
-
-@item
-Find the @file{.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 @file{.bdf} files for additional fonts sizes
-of all fonts except the xsymb1 font (@pxref{Wishlist Fonts}).
-
-There are two categories of @file{.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 @file{~/.xemacs/xemacs-packages/etc/x-symbol/origfonts/}. The second
-category contains files for fonts which are not installed. Copy these
-files to @file{~/.xemacs/xemacs-packages/etc/x-symbol/fonts/}.
-
-@item
-In file @file{~/.xemacs/xemacs-packages/etc/x-symbol/fonts/Makefile},
-change variables @code{ORIGBDFS} for the first category and @code{BDFS}
-for the second category accordingly.
-
-@item
-@pindex perl
-In directory @file{~/.xemacs/xemacs-packages/etc/x-symbol/fonts/},
-execute @code{make mkdirs}, and @code{make pcfs}. You need GNUs
-@code{make} and @code{perl}, Version 5 (or higher).
-
-@item
-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 @file{~/.xsession} (X11 startup file).
-
-@pindex xset
-@example
-xset +fp ~/.xemacs/xemacs-packages/etc/x-symbol/pcf/
-@end example
-
-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 @code{xset}, you should copy all @file{.pcf}
-files (compiled fonts) from @file{~/.xemacs/xemacs-packages/etc/x-symbol/pcf/} into
-directory @file{/usr/lib/X11/fonts/75dpi/} (Slackware distribution) and
-run @samp{mkfontdir 75dpi} in that directory.
-
-@item
-Your are on the safe side if you restart X11 after this.
-
-@item
-Set the Elisp variables which define the fonts. @xref{Installing Fonts Lisp}.
-@end enumerate
-
-@c ====================================================================
-
-@node Installing Fonts Exceed, Installing Fonts Lisp, Installing Fonts, Installation
-@comment node-name, next, previous, up
-@section Installing Fonts for Exceed (X-server on Windows)
-@cindex Installing Fonts
-@cindex Fonts
-@pindex Exceed
-@cindex Windows
-@cindex Windows
-@cindex X-Server
-
-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:
-
-@enumerate
-@item
-In Unix, edit file @file{~/.xemacs/xemacs-packages/etc/x-symbol/fonts/makesub} to limit
-the shift for superscript to 3 points:
-@smallexample
-%supoffs = ('08',3, 10,3, 12,3, 14,3, 16,3, 18,3, 24,3);
-@end smallexample
-
-@item
-Then, execute @code{make mkdirs}, and @code{make gens} in
-@file{~/.xemacs/xemacs-packages/etc/x-symbol/fonts/}. If you have problems, please read
-the previous section.
-
-@item
-In Exceed's configuration window, click on @key{Font} to open Window
-@file{Font Settings}. In this window, click on @key{Select All}, then
-on @key{Compile Fonts...}.
-
-@item
-Copy X-Symbol's @file{bdf} files in @file{~/.xemacs/xemacs-packages/etc/x-symbol/fonts/}
-and @file{~/.xemacs/xemacs-packages/etc/x-symbol/genfonts/} to a Windows directory
-and select this directory in the Exceed Window @file{Compile Fonts}.
-Click on @key{Compile}.
-
-@item
-In Window @file{Font Settings}, click on @key{Font Database...}. In
-this window, click on @key{Add...}. Enter the output directory from the
-previous step as the @samp{Font Directory} and @code{xsymb} as the
-@samp{File Name (*.fdb)}. Click on @key{OK}.
-
-@item
-You might want to rearrange the sequence of Font DB files to let files
-@file{75dpi} appear prior to files @file{100dpi}, because X-Symbol's
-fonts are designed for 75dpi.
-
-@item
-In Window @file{Font Database}, click on @key{Rebuild Database...} and
-then on @key{OK}.
-@end enumerate
-
-Note: @emph{Windows NT 4.0 will crash (bluescreen) if you use fonts
-compiled by Exceed from the @file{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.
-
-@c ====================================================================
-
-@node Installing Fonts Lisp, Installing Manual, Installing Fonts Exceed, Installation
-@comment node-name, next, previous, up
-@section Lisp Coding when Using Other Fonts
-@cindex Font Lisp Setup
-@cindex Font Lisp Installation
-
-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 @code{font-lock} to display them (@pxref{Role of font-lock}).
-
-If you have installed additional fonts (@pxref{Installing Fonts}) for
-use with package X-Symbol, you might have to change the following
-variables:
-
-@vtable @code
-@item x-symbol-latin1-fonts
-@itemx x-symbol-latin2-fonts
-@itemx x-symbol-latin3-fonts
-@itemx x-symbol-latin5-fonts
-@itemx x-symbol-latin9-fonts
-@itemx x-symbol-xsymb0-fonts
-@itemx 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@minus{}encoding (e.g., @samp{adobe-fontspecific})
-as specified by the fonts in the default value of this variable.
-
-@item 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 @samp{%d} in the
-names.
-@end vtable
-
-E.g., if you prefer larger fonts, you might want to insert the following
-into your @file{~/.emacs}:
-
-@smalllisp
-(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")))
-@end smalllisp
-
-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 (@pxref{FAQ Font Size}).
-
-You might want to change the following variables:
-
-@vtable @code
-@item 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.
-
-@item 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 @ref{Installing Fonts Lisp} might have no influence if Emacs
-already has defined fonts for the corresponding charsets.
-@end vtable
-
-@c ====================================================================
-
-@node Installing Manual, Checking Installation, Installing Fonts Lisp, Installation
-@comment node-name, next, previous, up
-@section Installing Info, Postscript and HTML Files
-@cindex Installing Manual
-@cindex Info
-@cindex Texinfo
-@cindex Postscript
-@cindex HTML
-@cindex Manual
-@cindex Documentation
-
-@pindex makeinfo
-To create the info files, execute @code{make info} in directory
-@file{~/.xemacs/xemacs-packages/man/x-symbol/} of the distribution. It requires
-@code{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 @file{~/.xemacs/xemacs-packages/info/dir}:
-@smallexample
-* X-Symbol:: Semi WYSIWYG for LaTeX, HTML and other "token languages"
-@end smallexample
-
-
-@pindex texi2dvi
-Optionally, you might want to create a printed document from the @TeX{}info
-file. Execute @code{make ps} in directory @file{~/.xemacs/xemacs-packages/man/x-symbol/}
-of the distribution. It requires @code{texi2dvi}.
-
-@pindex latex2html
-Optionally, you can create an online manual for a web browser by
-executing @code{make html} in directory @file{~/.xemacs/xemacs-packages/man/x-symbol/} of
-the distribution. It requires @code{texi2html}.
-
-All formats of the manual are created by executing @code{make all}.
-
-@c ====================================================================
-
-@node Checking Installation, , Installing Manual, Installation
-@comment node-name, next, previous, up
-@section Checking the Correct Installation of Package X-Symbol
-@cindex Checking Installation
-@cindex Final Installation Checks
-@cindex Installation Checks
-
-After having completed the installation, exit and restart Emacs.
-
-@itemize @bullet
-@item
-Type @kbd{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.
-
-@item
-Type @kbd{M-x x-symbol-grid} in buffer @file{*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
-@file{*Warnings*}. @xref{Installing Fonts}.
-
-@item
-Move your mouse pointer to any X-Symbol character in buffer
-@file{*X-Symbol Grid (x-symbol charsym)*}, press the right mouse button
-and initialize successively all token languages.
-
-@item
-Again, type @kbd{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.
-
-@item
-If buffer @file{*Warnings*} does not exist in the buffer menu,
-everything is fine. So is (for me as the author of package X-Symbol),
-if @samp{X-Symbol} is not mentioned there. If there is a warning with
-@samp{no valid image converter}, you have forgotten to install
-ImageMagick (@pxref{Installing Image Converter}).
-@end itemize
-
-@c ===========================================================================
-
-@node Concepts, Input Methods, Installation, Top
-@comment node-name, next, previous, up
-@chapter Concepts of Package X-Symbol
-@cindex Concepts
-@cindex Terminology
-@cindex Basics
-
-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 @ref{Input Methods} and @ref{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 @code{font-lock}.
-* Char Group:: Character group and token classes.
-@end menu
-
-@c ===========================================================================
-
-@node Token Language, Conversion, Concepts, Concepts
-@comment node-name, next, previous, up
-@section Token Language
-@cindex Token Language
-@cindex 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 @dfn{token language} which is in close relation to
-the major mode of the current buffer. E.g., character @code{alpha}
-stands for @code{\alpha} in La@TeX{} buffers.
-
-For details of predefined token languages ``@TeX{} macro'' (@code{tex}),
-``@sc{sgml} entity'' (@code{sgml}), ``Bib@TeX{} macro'' (@code{bib}), and
-``@TeX{}info command'' (@code{texi}), see @ref{Supported Languages}.
-
-The token language determines the conversion between X-Symbol characters
-and tokens (@ref{Conversion}), the input methods (@pxref{Input
-Methods}), and various other features (@pxref{Features}).
-
-The token language is defined by the following buffer-local variable:
-
-@vtable @code
-@item 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 (@pxref{File
-Variables,,,xemacs,XEmacs User's Manual}), e.g.:
-
-@example
-%% Local Variables:
-%% x-symbol-language: tex
-%% End:
-@end example
-@end vtable
-
-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
-@ref{Minor Mode}.
-
-A token language must be @dfn{registered}, if you want to use it. By
-default, the above mentioned token languages are registered.
-
-@c ===========================================================================
-
-@node Conversion, Minor Mode, Token Language, Concepts
-@comment node-name, next, previous, up
-@section Conversion: Decoding and Encoding
-@cindex Conversion
-@cindex Decoding
-@cindex 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 @dfn{decoding}, and some conversion from characters
-to tokens, called @dfn{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 (@code{iso-8859-1}), Latin-2 (@code{iso-8859-2}), Latin-3
-(@code{iso-8859-3}), Latin-5 (@code{iso-8859-9}), and Latin-9
-(@code{iso-8859-15}). It currently supports less encodings with XEmacs
-on Windows (@pxref{Requirements}).
-
-
-@menu
-* Default Coding:: Encoding of your default charset.
-* 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.
-@end menu
-
-
-@node Default Coding, File Coding, Conversion, Conversion
-@comment node-name, next, previous, up
-@subsection Default Coding
-@cindex Default Coding
-@cindex Default Encoding
-@cindex Default Font
-@cindex Coding, Default
-@cindex Encoding, Default
-@cindex Font, Default
-
-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 @dfn{normal file
-encoding}, also called a coding system (@pxref{Recognize
-Coding,,,xemacs,XEmacs User's Manual}).
-
-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 @dfn{normal file encoding} is the default
-encoding:
-
-@vtable @code
-@item x-symbol-default-coding
-The default encoding. The value must be a symbol denoting one of the
-supported encodings or @code{nil}. The variable must be set before
-X-Symbol has been initialized. @xref{Installing Lisp}.
-@end vtable
-
-The @dfn{default encoding} is not only used to determine the normal file
-encoding without Mule, but also for the following:
-
-@itemize @bullet
-@item
-X-Symbol has its own mechanism to recognize a file encoding which only
-works with a specified default encoding. @xref{File Coding}.
-
-@item
-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. @xref{Char Aliases}.
-
-@item
-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. @xref{Poor Mans Mule}.
-@end itemize
-
-To deduce the default value, X-Symbol inspects the Mule language
-environment and the output of the shell command @code{locale}, or to be
-more exact:
-
-@example
-locale -ck code_set_name charmap
-@end example
-
-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 @code{nil} is the same as
-@code{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 @code{nil} makes sure that X-Symbol file
-encoding detection (@pxref{File Coding}) only works if Emacs has
-detected the same encoding; it works like @code{iso-8859-1} otherwise.
-
-
-@node File Coding, Controlling 8bit Coding, Default Coding, Conversion
-@comment node-name, next, previous, up
-@subsection File Coding of 8bit Characters
-@cindex File Coding
-@cindex Coding in File
-@cindex Encoding in File
-@cindex 8bit File Coding
-@cindex Latin File Coding
-@cindex Recoding
-
-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:
-
-@vtable @code
-@item x-symbol-coding
-8bit character encoding in the file visited by the current buffer.
-Value @code{nil} represents the normal file encoding (@pxref{Default
-Coding}).
-
-With Mule support, any value other than @code{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
-@code{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 (@pxref{File Variables,,,xemacs,XEmacs User's Manual}),
-e.g.:
-
-@example
-<!-- Local Variables: -->
-<!-- x-symbol-coding: iso-8859-2 -->
-<!-- End: -->
-@end example
-@end vtable
-
-If the variable is not already buffer-local, a reasonable value is
-deduced when turning on X-Symbol (@pxref{Minor Mode}) by searching for
-some language dependent headers at the beginning of the file:
-
-@vtable @code
-@item x-symbol-auto-coding-search-limit
-X-Symbol usually searches for something like
-@samp{\usepackage[@dots{}]@{inputenc@}} (@pxref{TeX Macro}) or @samp{<meta @dots{}
-charset=@dots{}>} (@pxref{SGML Entity}) in the first 10000 characters.
-@end vtable
-
-If you choose not to save a file containing 8bit characters
-(@pxref{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. @dfn{Recoding} changes a
-character with code position @var{pos} in one charset to a character
-with the same code position @var{pos} in another charset. If the normal
-file encoding is different to the default encoding, X-Symbol also
-resolves character aliases (@pxref{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:
-
-@itemize @bullet
-@item
-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 (@xref{Controlling 8bit Coding}). The modeline includes
-@samp{-i} to represent the file encoding (@pxref{Minor Mode}), except if
-the default encoding is @code{nil}, the normal file encoding is
-unsupported, and the variable @code{x-symbol-coding} is not specified.
-
-@item
-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 (@pxref{Unique Decoding}) nor via
-input methods. The modeline includes @samp{-err} to represent the file
-encoding (@pxref{Minor Mode}).
-@end itemize
-
-We end with a little example: if your normal file encoding and default
-encoding is Latin-1, and you visit a file with
-@samp{\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.
-
-
-@node Controlling 8bit Coding, Unique Decoding, File Coding, Conversion
-@comment node-name, next, previous, up
-@subsection Store or Encode 8bit Characters
-@cindex Storing 8bit Characters
-@cindex Controlling 8bit Coding
-@c @cindex Buffer 8bit Control
-@cindex 8bit Coding Control
-@cindex Latin in File
-
-You can specify that 8bit characters (according to the coding in your
-file, @ref{File Coding}), are not encoded to tokens (when saving a
-file), by setting the following buffer-local variable:
-
-@vtable @code
-@item 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 (@pxref{File Variables,,,xemacs,XEmacs User's Manual}),
-e.g.:
-
-@example
-%% Local Variables:
-%% x-symbol-8bits: t
-%% End:
-@end example
-@end vtable
-
-If the variable is not already buffer-local, a reasonable value is
-deduced when turning on X-Symbol (@pxref{Minor Mode}) by setting it the
-the value of @code{x-symbol-coding}, or searching in the file for 8bit
-characters:
-
-@vtable @code
-@item 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.
-@end vtable
-
-If the file encoding is invalid (@pxref{File Coding}), we always search
-for 8bit characters in the complete document and set
-@code{x-symbol-8bits} accordingly. Then, a non-@code{nil} value also
-implies unique decoding (@pxref{Unique Decoding}).
-
-While the variable @code{x-symbol-8bits} usually only influences the
-encoding, it also influences the decoding if you choose to decode
-uniquely (@pxref{Unique Decoding}).
-
-Setting variable @code{x-symbol-8bits} to @code{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 (@pxref{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
-(@pxref{Introducing Input Methods}), you have probably copied them into
-the current buffer.
-
-
-@node Unique Decoding, Conversion Commands, Controlling 8bit Coding, Conversion
-@comment node-name, next, previous, up
-@subsection Unique Decoding
-@cindex Unique Decoding
-@cindex Restricted Decoding
-@cindex Unique @TeX{} macro
-
-Token languages might define more than one token representing the same
-character. When decoding and encoding these tokens, they will be
-@dfn{normalized} to one form, the @dfn{canonical representation}. E.g.,
-with language @code{tex}, visiting a file with tokens @code{\neq} and
-@code{\ne} converts both tokens to character @code{lessequal}, saving
-the buffer stores the character as token @code{\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 (@pxref{TeX Macro Problems})!
-For this reason, package X-Symbol provides the following buffer-local
-variable:
-
-@vtable @code
-@item 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
-@code{x-symbol-8bits} is non-@code{nil} (@pxref{Controlling 8bit
-Coding}), do not decode tokens which would be decoded to 8bit characters
-(according to the coding in your file, @ref{File Coding}).
-
-You can set this variable in the ``local variables list'' near the end
-of the file (@pxref{File Variables,,,xemacs,XEmacs User's Manual}),
-e.g., together with a setting for @code{x-symbol-8bits}:
-
-@example
-%% Local Variables:
-%% x-symbol-8bits: t
-%% x-symbol-unique: t
-%% End:
-@end example
-@end vtable
-
-If the variable is not already buffer-local, a reasonable value is
-deduced when turning on X-Symbol (@pxref{Minor Mode}): it will be set to
-@code{t} if X-Symbol mode is not automatically turned on.
-
-If the file encoding is invalid (@pxref{File Coding}) and
-@code{x-symbol-8bits} is non-@code{nil} (@pxref{Controlling 8bit
-Coding}), X-Symbol always uses unique decoding (@pxref{Unique
-Decoding}).
-
-
-@node Conversion Commands, Copy with Conversion, Unique Decoding, Conversion
-@comment node-name, next, previous, up
-@subsection Conversion Commands
-@cindex Conversion Commands
-@cindex Automatic Conversion
-@cindex Interactive Conversion
-@cindex Explicit Conversion
-
-First the good news: most of the time, the necessary conversions are
-performed automatically when you would expect them to be performed:
-
-@itemize @bullet
-@item
-Turning X-Symbol minor mode (@pxref{Minor Mode}) on/off also performs
-decoding/encoding.
-
-@item
-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).
-
-@item
-Inserting a file into a buffer where X-Symbol is enabled will decode the
-tokens in the inserted region.
-@end itemize
-
-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):
-
-@table @kbd
-@item M-x x-symbol-decode-recode
-@findex x-symbol-decode-recode
-Recode all characters (if necessary) and decode all tokens to
-characters.
-
-@item M-x x-symbol-decode
-@findex x-symbol-decode
-Decode all tokens to characters, do not recode characters.
-
-@item M-x x-symbol-encode-recode
-@findex x-symbol-encode-recode
-Encode all characters in buffer to tokens or recode them.
-
-@item M-x x-symbol-encode
-@findex 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 @code{x-symbol-8bits}
-is relative to the file coding, @ref{Controlling 8bit Coding}.
-@end table
-
-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 (@pxref{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.
-
-
-@node Copy with Conversion, Char Aliases, Conversion Commands, Conversion
-@comment node-name, next, previous, up
-@subsection Copy & Paste with Conversion
-@cindex Copy and Conversion
-@cindex Copy Encoded
-@cindex Paste and Conversion
-@cindex Paste Decoded
-@cindex Yank Decoded
-
-You probably use X-Symbol, because you want to produce some
-non-@sc{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-@sc{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
-@code{plusminus} from a LaTeX buffer to a HTML buffer, you really copy
-that character and not the three characters of the TeX macro @code{\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):
-
-@table @kbd
-@item M-x x-symbol-copy-region-encoded
-@findex x-symbol-copy-region-encoded
-@vindex kill-ring
-Save the region in the @code{kill-ring} with all X-Symbol characters
-encoded like by @kbd{M-x x-symbol-encode}, i.e., without recoding.
-
-@item M-x x-symbol-yank-decoded
-@findex x-symbol-yank-decoded
-Reinsert the last text in the @code{kill-ring} and decode the inserted
-text like @kbd{M-x x-symbol-decode}, i.e., without recoding.
-@end table
-
-You could get the same result with the usual copy & paste commands and
-the conversion commands from the previous section (@pxref{Conversion
-Commands}), but this would clutter the undo information of the current
-buffer and would require an additional undo operation for the copy.
-
-
-@node Char Aliases, , Copy with Conversion, Conversion
-@comment node-name, next, previous, up
-@subsection Character Aliases
-@cindex Char Aliases
-@cindex Character Aliases
-@cindex Aliases of Characters
-@cindex Latin Character Aliases
-@cindex Remapping Characters
-
-A @dfn{character alias} or @dfn{char alias} is a character which is also
-a character in a font with another registry, e.g., @code{adiaeresis} is
-defined in all supported Latin fonts. Emacs distinguish between these
-five characters. In package X-Symbol, one of them, with
-@code{x-symbol-default-coding} (@pxref{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 @code{adiaeresis}es and that there are neither different
-@code{adiaeresis}es in Unicode nor in the token representations of
-languages @code{tex} and @code{sgml}.
-
-8bit characters in files with a file coding @code{x-symbol-coding} other
-than @code{x-symbol-default-coding} are converted to the ``normal''
-form. E.g., if you have a Latin-1 font by default, the
-@code{adiaeresis} in a Latin-2 encoded file is a Latin-1
-@code{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 @file{european.el}. In XEmacs without Mule support,
-this is only possible if you use commands like @kbd{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):
-
-@table @kbd
-@item M-x x-symbol-unalias
-@findex x-symbol-unalias
-Resolve all character aliases in buffer. If the region is active, only
-resolve char aliases in the region.
-@end table
-
-A single char alias before point can be resolved by command
-@code{x-symbol-modify-key} and @code{x-symbol-rotate-key}, see
-@ref{Input Method Context}.
-
-@pindex latin-unity
-The XEmacs package @code{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.
-
-@c ===========================================================================
-
-@node Minor Mode, Poor Mans Mule, Conversion, Concepts
-@comment node-name, next, previous, up
-@section Minor Mode
-@cindex Minor Mode
-@cindex Mode
-@cindex X-Symbol Mode
-
-X-Symbol is a minor mode (@pxref{Minor
-Modes,,,xemacs,XEmacs User's Manual}) which enables the features
-mentioned in this manual:
-
-@itemize @bullet
-@item
-X-Symbol mode is required to do the conversions. Turning the minor mode
-on/off also includes decoding/encoding (@pxref{Conversion Commands}).
-
-@item
-X-Symbol mode provides the minor mode menu which includes: various
-commands, commands to insert characters (@pxref{Input Method Menu}), and
-entries to change some global and buffer-local variables mentioned in
-this manual. The menu might also include individual entries for a token
-language (@pxref{TeX Macro Basics}):
-
-@vtable @code
-@item x-symbol-@var{lang}-extra-menu-items
-Extra menu items for each token language @var{lang}.
-@end vtable
-
-@item
-X-Symbol mode is required for most input methods (@pxref{Input Methods})
-and other features (@pxref{Features}).
-@end itemize
-
-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:
-
-@table @kbd
-@item M-x x-symbol-mode
-@findex x-symbol-mode
-@vindex x-symbol-mode
-Toggle X-Symbol mode. If provided with a numeric prefix argument, turn
-X-Symbol mode on if the argument is positive, else turn it off.
-@end table
-
-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 (@pxref{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:
-
-@vtable @code
-@item 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):
-
-@itemize @minus
-@item
-@code{x-symbol-token-language} (@pxref{Token Language}), indicated in
-the modeline, e.g. @samp{tex},
-@item
-@code{x-symbol-mode}, i.e., whether it is appropriate to turn on
-X-Symbol mode automatically,
-@item
-@code{x-symbol-coding} (@pxref{File Coding}), indicated in the modeline
-if different from the default coding, e.g. @samp{-l2} for Latin-2,
-@item
-@code{x-symbol-8bits} (@pxref{Controlling 8bit Coding}), indicated in
-the modeline by @samp{8},
-@item
-@code{x-symbol-unique} (@pxref{Unique Decoding}), indicated in
-the modeline by @samp{*},
-@item
-@code{x-symbol-subscripts} (@pxref{Super and Subscripts}), indicated in
-the modeline by @samp{s},
-@item
-@code{x-symbol-image} (@pxref{Images}), indicated in the modeline by
-@samp{i},
-@end itemize
-
-@item x-symbol-@var{lang}-modes
-Major modes which use token language @var{lang} by default.
-@xref{Supported Languages}.
-
-@item x-symbol-@var{lang}-auto-style
-Default values for the above mentioned variables @code{x-symbol-mode},
-@code{x-symbol-coding}, @code{x-symbol-8bits}, @code{x-symbol-unique},
-@code{x-symbol-subscripts}, and @code{x-symbol-image} if not already
-buffer-local.
-
-@item x-symbol-auto-mode-suffixes
-Regular expression matching file suffixes to be ignored when checking
-file names for the derivation above, e.g., extension @file{.orig}.
-
-@item x-symbol-modeline-state-list
-This variable controls the modeline appearance just mentioned.
-@end vtable
-
-@c ====================================================================
-
-@node Poor Mans Mule, Role of font-lock, Minor Mode, Concepts
-@comment node-name, next, previous, up
-@section Poor Man's Mule: Running Under XEmacs/no-Mule
-@cindex Poor Man's Mule
-@cindex No Mule
-@cindex XEmacs without 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 (@pxref{Default Coding}) are represented by
-two characters, see @ref{Char Representation}.
-
-This can lead to a lot of problems, which are resolved by the following
-methods (some annoyances remain, @pxref{Nomule Problems}) when X-Symbol
-mode is turned on (@pxref{Minor Mode}):
-
-@itemize @bullet
-@item
-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.
-
-@item
-Package @code{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 @ref{Role of
-font-lock}.
-
-@ftable @code
-@item x-symbol-nomule-fontify-cstrings
-Alternatively to enabling @code{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
-@code{reftex}.
-@end ftable
-@end itemize
-
-@c ====================================================================
-
-@node Role of font-lock, Char Group, Poor Mans Mule, Concepts
-@comment node-name, next, previous, up
-@section The Role of @code{font-lock}
-@cindex Role of @code{font-lock}
-@cindex @code{font-lock} Use
-@cindex Special Fonts
-
-Package X-Symbol uses package @code{font-lock} to display super- and
-subscripts (@pxref{Super and Subscripts}) and to display its special
-characters under XEmacs/no-Mule (@pxref{Poor Mans Mule}). Thus, you
-should enable @code{font-lock} in buffers where you want to use X-Symbol
-(it is by default). @xref{Syntax Hiliting Packages}.
-
-When X-Symbol mode is turned on, it automatically adds the necessary
-font-lock keywords to the buffer-local value of
-@code{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 @code{font-lock} might
-not yet been turned on or since you might want to change
-@code{font-lock}s decoration of the current buffer after X-Symbol has
-been turned on.
-
-Please note that switching the mode by typing @kbd{M-x latex-mode}
-@emph{does not set} the La@TeX{}'s font-lock keywords! They are set at
-the end of @kbd{C-x C-f}. If you switch the mode, turn on
-@code{font-lock} by yourself.
-
-Independently from package X-Symbol, the following command might be
-useful in some situations:
-
-@table @kbd
-@item M-x x-symbol-fontify
-@findex x-symbol-fontify
-Refontify buffer.
-@end table
-
-@c ====================================================================
-
-@node Char Group, , Role of font-lock, Concepts
-@comment node-name, next, previous, up
-@section Character Group and Token Classes
-@cindex Character Group
-@cindex Group of Characters
-@cindex Similar Characters
-@cindex Category of Character
-@cindex Syntax of Character
-@cindex Token Classes
-@cindex Classes of Tokens
-@cindex Coloring Scheme
-
-Each X-Symbol character belongs to a @dfn{character group}, e.g.,
-@code{natnums} belongs to @code{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:
-
-@itemize @bullet
-@item
-The Grid and submenu header under which the character can be found
-(@pxref{Input Method Grid}, @ref{Input Method Menu}).
-
-@item
-The default bindings of characters (@pxref{Input Method Keyboard}) of
-some groups.
-
-@item
-Whether to show the context info for a character (@pxref{Info}).
-
-@item
-The default @sc{ascii} representation of a character (@pxref{Ascii
-Representation}).
-
-@item
-When using Emacs/XEmacs with Mule support, the syntax of a character
-(@pxref{Syntax,,,xemacs,XEmacs User's Manual}).
-@end itemize
-
-The character group is independent from any token language, but is
-probably somewhat related to some of its @dfn{token classes}. For each
-token language, each character is assigned to a list of token classes,
-which can be used for the following:
-
-@itemize @bullet
-@item
-Information in the echo area (@pxref{Info}), it could inform users to
-include a specific La@TeX{} package when they want to use that character
-in the document.
-
-@item
-Using a @dfn{coloring scheme} when displaying the characters in the echo
-area (@pxref{Info}) or the Grid of characters (@pxref{Input Method
-Grid}), useful for characters which can just be used in a specific
-context, like @TeX{}'s math-mode characters.
-
-@item
-Restricting the ``electricity'' of input method Electric (@pxref{Input
-Method Electric}), useful to disable this input methods for @TeX{}'s
-math-mode characters if we are in text-mode.
-@end itemize
-
-The token classes for individual token languages are explained in the
-corresponding sections of chapter @ref{Supported Languages}:
-
-@vtable @code
-@item x-symbol-@var{lang}-header-groups-alist
-The Grid and Menu headers for each token language @var{lang}.
-
-@item x-symbol-@var{lang}-class-alist
-Strings for the character info in the echo area for each token language
-@var{lang}.
-
-@item x-symbol-@var{lang}-class-face-alist
-The coloring scheme for each token language @var{lang}.
-@end vtable
-
-@c ===========================================================================
-
-@node Input Methods, Features, Concepts, Top
-@comment node-name, next, previous, up
-@chapter X-Symbol's Input Methods
-@cindex Input Methods
-@cindex Character Insertion
-
-An X-Symbol @dfn{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
-@uref{http://x-symbol.sourceforge.net/details.html, web pages of X-Symbol}.
-
-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 Auc@TeX{}, Version 9.8a or higher, its math mode commands also
-inserts X-Symbol characters
-(@pxref{Mathematics,,,auctex,AUC@TeX{}}).
-
-@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.
-@end menu
-
-@c ===========================================================================
-
-@node Introducing Input Methods, Input Method Token, Input Methods, Input Methods
-@comment node-name, next, previous, up
-@section Common Behavior of All Input Methods
-@cindex Input Methods, General
-@cindex Input Methods, Common
-@cindex Input Methods, Standard
-@cindex Valid Character
-@cindex Allowed Character
-@cindex Key Prefix
-@cindex Prefix Argument
-@cindex Prefix Key
-@cindex Defined Character
-@cindex Compose Key
-
-Input methods normally just inserts @dfn{valid characters} which are
-those characters which have a useful representation in the file:
-
-@vtable @code
-@item 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 @code{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 @code{x-symbol-language} (@pxref{Token
-Language}).
-@end vtable
-
-If a buffer is read-only (@pxref{Misc
-Buffer,,,xemacs,XEmacs User's Manual}), most input methods push the
-character to insert onto the kill ring instead. Typing @kbd{C-y} lets
-you then insert the character
-(@pxref{Yanking,,,xemacs,XEmacs User's Manual}).
-
-The input methods Keyboard, Menu and Grid (the character selection with
-@kbd{@key{button2}}) have the same interpretation of the prefix
-argument:
-
-@itemize @bullet
-@item
-With prefix argument @samp{0}, do not insert anything, just barf, if the
-character is not valid.
-
-@item
-With a positive prefix argument, insert a character that many times.
-Barf, if the character is not valid.
-
-@item
-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.
-
-@item
-With one or more @kbd{C-u}s with no digits, insert the token of a
-language to choose, including ``x-symbol charsym'' (@pxref{Pseudo
-Language}).
-@end itemize
-
-Many input commands of package X-Symbol uses the same key prefix in its
-default binding:
-
-@vtable @code
-@item x-symbol-compose-key
-@kindex C-=
-@kindex @key{multi-key}
-By default, @kbd{C-=} is used as the key prefix. Under XEmacs/no-Mule,
-you might want to use @kbd{@key{multi-key}} instead:
-
-@lisp
-(unless (featurep 'mule) (setq x-symbol-compose-key '(multi-key)))
-@end lisp
-
-@item x-symbol-auto-key-autoload
-Set this to @code{nil}, if you do not want that pressing @kbd{C-=}
-automatically initializes the input methods.
-@end vtable
-
-@c ===========================================================================
-
-@node Input Method Token, Input Method Read Token, Introducing Input Methods, Input Methods
-@comment node-name, next, previous, up
-@section Input Method Token: Replace Token by Character
-@cindex Input Method Token
-@cindex Token, Input Method
-@cindex Replace Token
-@cindex Abbrev, Token @c pre-2.2
-
-If X-Symbol mode is on, input method @dfn{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 (@kbd{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 @code{font-lock} which highlights the token to look like a
-character.
-
-You might want to press @kbd{C-/} or @kbd{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:
-
-@vtable @code
-@item x-symbol-token-input
-A boolean which can also be changed via the X-Symbol menu.
-@end vtable
-
-Individual token language might slightly change the way input method
-Token works exactly; from the predefined language, it is just @code{tex}
-(@pxref{TeX Macro}).
-
-@c ===========================================================================
-
-@node Input Method Read Token, Input Method Menu, Input Method Token, Input Methods
-@comment node-name, next, previous, up
-@section Input Method Read Token: Minibuffer Completion
-@cindex Input Method Read Token
-@cindex Read Token, Input Method
-@cindex Minibuffer Completion, Token
-
-You can insert a character by reading the corresponding token in the
-minibuffer. You are offered completion over the known tokens
-(@pxref{Completion,,,xemacs,XEmacs User's Manual}).
-
-@table @kbd
-@item M-x x-symbol-read-token-direct
-@itemx C-= @key{TAB}
-@findex x-symbol-read-token-direct
-@kindex C-= @key{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''
-(@pxref{Pseudo Language}).
-
-@item M-x x-symbol-read-token
-@itemx C-= @key{RET}
-@findex x-symbol-read-token
-@kindex C-= @key{RET}
-Insert character by first selecting the token language and then a token
-in that language.
-@end table
-
-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 @ref{Introducing Input Methods}.
-
-@c ===========================================================================
-
-@node Input Method Menu, Input Method Grid, Input Method Read Token, Input Methods
-@comment node-name, next, previous, up
-@section Input Method Menu: Select a Menu Item
-@cindex Input Method Menu
-@cindex Menu, Input Method
-
-If X-Symbol mode is turned on, a @dfn{Menu} @code{X-Symbol} appears in
-the menubar (@pxref{Minor Mode}). It also appears over non-highlighted
-parts in the Grid and the Key Completions buffer (@pxref{Input Method
-Grid}). The menu allows to change buffer-local and global variables
-(some directly, some via package @code{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
-@ref{Char Group}. The appearance of the menu can be customized:
-
-@vtable @code
-@item 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.
-
-@item 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.
-@end vtable
-
-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 @ref{Introducing Input Methods}.
-
-@c ===========================================================================
-
-@node Input Method Grid, Input Method Keyboard, Input Method Menu, Input Methods
-@comment node-name, next, previous, up
-@section Input Method Grid: Choose Highlighted Character
-@cindex Input Method Grid
-@cindex Grid, Input Method
-@cindex Table of Characters
-@cindex Highlighted Character
-
-Probably the easiest way to insert a character is by using a @dfn{Grid}
-of characters:
-
-@table @kbd
-@item M-x x-symbol-grid
-@itemx C-= C-=
-@findex x-symbol-grid
-@kindex C-= C-=
-Pops up a buffer displaying X-Symbol characters in a grid like fashion.
-You can select a character with the mouse or @kbd{@key{RET}}, see below.
-@end table
-
-In the Grid buffer and the buffer with the possible completions for an
-X-Symbol key sequence (@pxref{Input Method Keyboard}), the following
-commands are used if the mouse pointer is over an highlighted character.
-
-@table @kbd
-@item @key{button2}
-@itemx @key{RET}
-@itemx @key{SPC}
-@c @itemx x-symbol-list-selected
-@kindex @key{button2}
-@kindex @key{RET}
-@kindex @key{SPC}
-@c @findex x-symbol-list-selected
-Insert highlighted character (or character under point, respectively)
-into the buffer of @code{point} if @code{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.)
-
-@item @key{button3}
-@kindex @key{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 (@pxref{Token Language}).
-@end table
-
-Over all non-highlighted parts, the following commands are used:
-
-@table @kbd
-@item @key{button2}
-@kindex @key{button2}
-@c @findex x-symbol-list-selected
-Scroll Grid or Key Completions buffer down in upper half of the window
-and scroll up in the lower half of the window.
-
-@item @key{button3}
-@kindex @key{button3}
-Pops up the X-Symbol menu, @ref{Input Method Menu}).
-@end table
-
-When using the keyboard to select a character, the following command
-could be useful:
-
-@table @kbd
-@item M-x x-symbol-list-info
-@itemx ?
-@itemx h
-@itemx i
-@findex x-symbol-list-info
-@kindex ?
-@kindex h
-@kindex i
-Display info for character under point in echo area.
-
-@item M-x x-symbol-list-bury
-@itemx q
-@findex x-symbol-list-bury
-@kindex q
-Bury list buffer while trying to use the old window configuration.
-@end table
-
-You can control the grid by the following variables:
-
-@vtable @code
-@item 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.
-
-@item x-symbol-temp-grid
-Inserting an X-Symbol character does not restore the window
-configuration current before the invocation of the Grid.
-
-@item x-symbol-grid-reuse
-Use old Grid when invoking command @code{x-symbol-grid}, if this is
-reasonably to do. If @code{x-symbol-grid} is called with a prefix
-argument, always create new Grid.
-
-@item x-symbol-grid-ignore-charsyms
-The Grid does not contain @code{nobreakspace}.
-
-@item x-symbol-grid-tab-width
-The tab width in the Grid buffer should correspond the font in
-@code{x-symbol-heading-face} which is also used as the default font in
-the Grid buffer.
-
-@item x-symbol-heading-strut-glyph
-Use larger interline spacing if a line in the Grid starts with a header.
-@end vtable
-
-The headers in the Grid are the same as the submenu headers, see
-@ref{Char Group}. Similar looking characters for one headers are
-grouped together. @xref{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 @ref{Introducing Input Methods}.
-
-@c ===========================================================================
-
-@node Input Method Keyboard, Input Method Context, Input Method Grid, Input Methods
-@comment node-name, next, previous, up
-@section Input Method Keyboard: Compose Key Sequence
-@cindex Input Method Keyboard
-@cindex Keyboard, Input Method
-
-Key sequences starting with @kbd{C-=} (@pxref{Introducing Input
-Methods}) are used to insert X-Symbol characters, e.g., @kbd{C-= ~ >}
-inserts @code{leadsto}. The Ascii sequence of the keys after @kbd{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
-@ref{Input Method Context}.
-
-If many characters are represented by the same Ascii sequence, the
-binding is extended by @samp{1}, @samp{2} and so on. If you do not know
-how to continue your key sequence, the following commands might be
-useful:
-
-@table @kbd
-@item M-x x-symbol-help
-@itemx C-= @var{zero-or-more-keys} @key{help}
-@itemx C-= @var{zero-or-more-keys} C-h
-@findex x-symbol-help
-@kindex C-= @key{help}
-@kindex C-= C-h
-@kindex @key{help}
-@kindex C-h
-Pops up a buffer displaying possible completions for the key sequence
-@kbd{C-= @var{zero-or-more-keys}}. You do not have to type the key
-sequence again, i.e., @kbd{C-= @var{zero-or-more-keys}} is also used for
-the next input.
-
-@item C-= @var{zero-or-more-keys} @key{button1}
-@itemx C-= @var{zero-or-more-keys} @key{button2}
-@itemx C-= @var{zero-or-more-keys} @key{button3}
-@kindex @key{button1}
-@kindex @key{button2}
-@kindex @key{button3}
-Use the normal bindings of @kbd{@key{button1}}, @kbd{@key{button2}} or
-@kbd{@key{button3}}, respectively (@pxref{Input Method Grid}). The key sequence
-is not used for the next input.
-
-@item C-= @var{zero-or-more-keys} M-@key{prior}
-@itemx C-= @var{zero-or-more-keys} M-@key{next}
-@itemx C-= @var{zero-or-more-keys} M-@key{home}
-@itemx C-= @var{zero-or-more-keys} M-@key{end}
-@kindex M-@key{prior}
-@kindex M-@key{next}
-@kindex M-@key{home}
-@kindex M-@key{end}
-Execute the commands @code{scroll-other-window-down},
-@code{scroll-other-window}, @code{beginning-of-buffer-other-window} or
-@code{end-of-buffer-other-window}, respectively. You do not have to
-type the key sequence again, i.e., @kbd{C-= @var{zero-or-more-keys}} is
-also used for the next input.
-@end table
-
-@vtable @code
-@item x-symbol-temp-help
-Inserting an X-Symbol character restores the window configuration
-current before the invocation of the Grid.
-
-@item x-symbol-map-default-keys-alist
-Defines the bindings mentioned above.
-@end vtable
-
-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 @ref{Introducing Input Methods}.
-
-@c ===========================================================================
-
-@node Input Method Context, Input Method Electric, Input Method Keyboard, Input Methods
-@comment node-name, next, previous, up
-@section Input Method Context: Replace Char Sequence
-@cindex Context, Input Method
-@cindex Input Method Context
-@cindex Character Sequence Input
-@cindex Ascii Sequence Input
-@cindex Modify Chain
-@cindex Rotate Chain
-@cindex Greek Input
-
-The idea of the input method @dfn{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 @ref{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:
-
-@table @kbd
-@item M-x x-symbol-modify-key
-@itemx C-,
-@itemx C-= @key{left}
-@itemx C-= @key{right}
-@findex x-symbol-modify-key
-@kindex C-,
-@kindex C-= @key{left}
-@kindex C-= @key{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.
-
-@item M-x x-symbol-rotate-key
-@itemx C-.
-@itemx C-= @key{up}
-@itemx C-= @key{down}
-@findex x-symbol-rotate-key
-@kindex C-.
-@kindex C-= @key{up}
-@kindex C-= @key{down}
-If character before point is an X-Symbol character, ``rotate'' its
-``direction'' (or change uppercase/lowercase).
-@end table
-
-Both commands can also be used to resolve a character alias before
-point, see @ref{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:
-
-@vtable @code
-@item x-symbol-rotate-prefix-alist
-If you provide a prefix argument to command @code{x-symbol-rotate-key},
-you can specify the direction you want to have: it is according to
-numerical keypads, e.g., with prefix argument @samp{7} you specify the
-direction ``north-west''.
-
-@item x-symbol-rotate-suffix-char
-Command @code{x-symbol-rotate-key} is also used to ``Greekify'' the
-previous character: typing @kbd{a C-.} is shorter than @kbd{a # C-,}.
-
-@item x-symbol-context-ignore
-Constrains whether a context/charsym can be replaced. No constraints by
-default.
-
-@item x-symbol-context-init-ignore
-Contexts starting with a space cannot be replaced. This variable must
-be set before X-Symbol has been initialized.
-@end vtable
-
-@c ===========================================================================
-
-@node Input Method Electric, Input Method Quail, Input Method Context, Input Methods
-@comment node-name, next, previous, up
-@section Input Method Electric: Automatic Context
-@cindex Input Method Electric
-@cindex Electric, Input Method
-@cindex Aggressive Context @c 2.6
-@cindex Automatic Context
-
-The idea of input method @dfn{Electric} is to have the input method
-Context (@pxref{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 (@pxref{Super and Subscripts}).
-
-You might want to press @kbd{C-/} or @kbd{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:
-
-@vtable @code
-@item x-symbol-electric-input
-A boolean which can also be changed via the X-Symbol menu.
-@end vtable
-
-To make input method Electric useful and not annoying, several
-conditions must be met for X-Symbol to do the auto-replacement:
-
-@itemize @bullet
-@item
-Not all contexts will be replaced automatically. E.g., while input
-method Context allows both pre- and postfixes for accented characters,
-@kbd{:} and @kbd{'} only act as prefixes, and @kbd{`} and @kbd{~} only
-as postfixes for input method Electric, since these are the combinations
-where those characters are quite likely not used literally.
-
-@item
-The character must be valid in the current token language, see
-@ref{Introducing Input Methods}.
-
-@item
-All characters of the context have been typed without any other command
-in between, e.g., @kbd{- >} inserts @code{arrowright}, "- @key{left}
-@key{right} > simply inserts @samp{->}.
-
-@item
-No prefix argument has been used for any character in the context.
-
-@item
-The electric context must not be a suffix of a longer valid context for
-another character. E.g., @kbd{' ' o} does not insert
-@samp{'@code{oacute}} because @samp{''o} is the context for
-@code{ohungarumlaut} (which cannot be inserted by input method
-Electric).
-
-@item
-It should be ``allowed'' to change the context to the character via
-input method Context.
-
-@item
-Individual contexts/charsyms can be disabled by setting the following
-variables:
-
-@vtable @code
-@item x-symbol-electric-ignore
-The context should neither be @samp{'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
-
-@lisp
-(setq x-symbol-electric-ignore
- "[ \t]\\|[A-Za-z][~`]\\|[:'][A-Za-z]")
-@end lisp
-
-@item x-symbol-@var{lang}-electric-ignore
-Individual contexts/charsyms can be disabled for each token language
-@var{lang}.
-@end vtable
-@end itemize
-
-@c ===========================================================================
-
-@node Input Method Quail, Customizing Input Method, Input Method Electric, Input Methods
-@comment node-name, next, previous, up
-@section Input Method Quail: a Mule Input Method
-@cindex Input Method Quail
-@cindex Mule Input Method
-
-Another way to insert a characters is by using the Emacs/Mule
-multilingual text input method ``x-symbol'' (@pxref{Input
-Methods,,,xemacs,XEmacs User's Manual})..
-
-Again, the Ascii sequence used there is the same as the sequence which
-is replaced by input method Context, see @ref{Input Method Context}. A
-one-letter key sequence is extended by @key{;}.
-
-If input method Quail is selected for a buffer, input method Electric
-(@pxref{Input Method Electric}) is disabled in that buffer.
-
-@c TODO: more
-
-@c ===========================================================================
-
-@node Customizing Input Method, , Input Method Quail, Input Methods
-@comment node-name, next, previous, up
-@section Customizing Input Methods
-@cindex Customizing Method Internals
-@cindex Input Methods Customization
-
-You may safely define key bindings not using the @code{x-symbol-map}
-(i.e., starting with @kbd{C-=}). E.g., for @code{alpha} on @kbd{A-a} ,
-use
-
-@lisp
-(global-set-key [(alt a)] 'x-symbol-INSERT-alpha)
-@end lisp
-
-Please note that the command @code{x-symbol-INSERT-alpha} is not defined
-before the main file (@file{x-symbol}) in the package has been loaded
-(if you really need it, function @code{autoload} is your friend).
-
-Other possibilities to customize the input methods are by setting the
-following variables:
-
-@vtable @code
-@item x-symbol-header-groups-alist
-Defines the groups whose characters appear after that header in the Grid
-and in submenus with that header. @xref{Char Group}. Extra variables
-exists for the language dependent Grid and Menu.
-
-@item x-symbol-group-input-alist
-@itemx 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. @xref{Defining
-Input Methods}.
-
-For example., if you prefer charsym @code{epsilon1} over @code{epsilon}
-(influences input method ,
-you might want to use:
-
-@lisp
-@group
-(setq x-symbol-user-table
- '((epsilon1 t (greek1 "e" nil "epsilon") nil -3000)))
-@end group
-@end lisp
-
-@item x-symbol-list-mode-hook
-Additional functions to execute after setting up the Grid and Key
-Completions buffer.
-
-@item x-symbol-after-init-input-hook
-You can change the input methods directly by functions in these hooks.
-@end vtable
-
-@c ===========================================================================
-
-@node Features, Supported Languages, Input Methods, Top
-@comment node-name, next, previous, up
-@chapter Features of Package X-Symbol
-@cindex Features of X-Symbol
-@cindex Supported Features
-
-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.
-@end menu
-
-@c ===========================================================================
-
-@node Super and Subscripts, Images, Features, Features
-@comment node-name, next, previous, up
-@section Super- and Subscripts
-@cindex Superscripts
-@cindex Subscripts
-@cindex Invisible, Revealing
-@cindex Point, Invisible
-@cindex Cursor, Invisible
-@cindex Keywords for 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 @samp{a^2} in the
-buffer are @emph{displayed} as an @samp{a} and a raised, smaller
-@samp{2}---the @samp{^} is still in the buffer.
-
-Therefore, the display of super- and subscripts has nothing to do with
-Input Method Electric (@pxref{Input Method Electric}).
-
-Do not confuse the special Latin characters @code{twosuperior},
-@code{threesuperior}, @code{ordfeminine} and @code{masculine} with the
-characters @samp{2}, @samp{3}, @samp{a} and @samp{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 (@pxref{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 @code{font-lock} to be
-enabled (@pxref{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 (@pxref{Minor Mode}). They can be
-disabled (and re-enabled) by setting the following buffer-local
-variable:
-
-@vtable @code
-@item x-symbol-subscripts
-A boolean which can also be changed via the X-Symbol menu.
-@end vtable
-
-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:
-
-@vtable @code
-@item x-symbol-reveal-invisible
-A boolean which can also be changed via the X-Symbol menu.
-
-@item x-symbol-revealed-face
-The face used for the super-/subscript command when revealed.
-
-@item x-symbol-idle-delay
-Time in seconds of idle time before revealing invisible characters.
-@end vtable
-
-Super-/subscript commands are @code{^}/@code{_} (@pxref{TeX Macro}) and
-@code{<sup>}/@code{<sub>} (@pxref{SGML Entity}):
-
-@vtable @code
-@item x-symbol-@var{lang}-font-lock-keywords
-The super-/subscript @code{font-lock} keywords for each token language
-@var{lang}.
-@end vtable
-
-@c ===========================================================================
-
-@node Images, Info, Super and Subscripts, Features
-@comment node-name, next, previous, up
-@section Images at the end of Image Insertion Commands
-@cindex Images
-@cindex Glyphs
-
-@pindex convert
-Package X-Symbol can display @dfn{images} at the end of image insertion
-commands. They show thumbnails (scaled-down version of the image) for
-the included image files (using @code{convert}, @pxref{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.
-@end menu
-
-
-@node Image Display, Image Conversion, Images, Images
-@comment node-name, next, previous, up
-@subsection Display of Images
-@cindex Image Display
-@cindex Image Control
-@cindex Image Commands
-@cindex Controlling Images
-@cindex Image Keywords
-@cindex Keywords for 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 (@pxref{Minor Mode}). It
-can be disabled (and re-enabled) by setting the following buffer-local
-variable:
-
-@vtable @code
-@item x-symbol-image
-A boolean which can also be changed via the X-Symbol menu.
-@end vtable
-
-Image commands are @code{\includegraphics} and others (@pxref{TeX
-Macro}), and @code{<img>} (@pxref{SGML Entity}):
-
-@vtable @code
-@item x-symbol-@var{lang}-image-keywords
-The keywords (image commands & arguments) for each token language
-@var{lang}.
-@end vtable
-
-File names in the image commands must be interpreted correctly. They
-can be:
-
-@itemize @minus
-@item
-@dfn{absolute}, start with @samp{/} or @samp{~},
-@item
-@dfn{explicitly relative}, start with @samp{./} or @samp{../},
-@item
-@dfn{implicitly relative}, assumed otherwise, e.g., @file{image.eps}, or
-@item
-special, like having some special URL prefix like @file{http:} or @file{ftp:}.
-@end itemize
-
-Relative file names can be relative to some @dfn{master directory}
-(usually the current directory of the file) or to directories in some
-@dfn{search path} (only used with token language @code{tex}):
-
-@vtable @code
-@item x-symbol-@var{lang}-master-directory
-The master directory for each token language @var{lang}.
-
-@item x-symbol-@var{lang}-image-searchpath
-The image search path for each token language @var{lang}. Defaults to
-the current directory.
-
-@item x-symbol-image-searchpath-follow-symlink
-Directories in the search path ending with @file{//} (double slash) are
-recursive: all subdirectories not starting with a dot are also included
-in the search path. If this variable has value @code{nil} (the
-default), subdirectories which are symbolic links are not included.
-@end vtable
-
-For details, see the section of the individual token languages
-(@pxref{Supported Languages}).
-
-
-@node Image Conversion, Image Caching, Image Display, Images
-@comment node-name, next, previous, up
-@subsection Image Conversion
-@cindex Image Conversion
-@cindex Converting Images
-@cindex Colormap
-@cindex Image Cache File
-
-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 @dfn{image cache
-file}, see @ref{Image Caching}.
-
-@vtable @code
-@item x-symbol-image-max-width
-The image is not wider than 120 points.
-
-@item x-symbol-image-max-height
-The image is not higher than 80 points.
-
-@item x-symbol-image-convert-colormap
-Colormap used in function @code{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: @file{etc/colormap138.xpm} and @file{etc/colormap66.xpm}.
-
-@item x-symbol-image-colormap-allocation
-Package X-Symbol allocates the colors of the colormap at start-up and
-prevents them to be de-allocated.
-
-@item x-symbol-image-converter
-@pindex convert
-Program @code{convert} from ImageMagick is used to convert the images
-(@pxref{Installing Image Converter}). Set this variable to @code{nil},
-if you don't want to convert images.
-
-The following variables controls the invocation of the program
-@code{convert} from ImageMagick:
-
-@vtable @code
-@item x-symbol-image-convert-program
-The name of the program @code{convert}, it is
-@samp{C:\\ImageMagick\\convert} when running on Windows and
-@samp{convert} otherwise.
-
-@item x-symbol-image-convert-file-alist
-Program @code{convert} needs to be told that @file{@var{file}.pstex} is
-a Postscript file.
-@end vtable
-
-The following functions are possible values in
-@code{x-symbol-image-converter}:
-
-@ftable @code
-@item x-symbol-image-start-convert-mono
-Produces monochrome images. Used if your device has less than 32
-colors.
-
-@item x-symbol-image-start-convert-truecolor
-Produce images with original colors. Used if your device has more than
-767 colors.
-
-@item 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.
-
-@item x-symbol-image-start-convert-colormap
-Produce image with colors from the colormap. Used otherwise with a
-colormap.
-
-@vtable @code
-@item x-symbol-image-convert-mono-regexp
-Function @code{x-symbol-image-start-convert-colormap} just produces
-monochrome images for temporary image cache files (@pxref{Image
-Caching}) since @code{convert} is slower when using a colormap.
-@end vtable
-@end ftable
-@end vtable
-
-
-@node Image Caching, Special Images, Image Conversion, Images
-@comment node-name, next, previous, up
-@subsection Image Caching
-@cindex Image Caching
-@cindex Caching of Images
-@cindex Glyph Caching
-@cindex Memory Cache for Images
-@cindex File Cache for Images
-
-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:
-
-@itemize @bullet
-@item
-It uses an asynchronous process to create the image cache file. You can
-edit your file during the conversion.
-
-@item
-It uses a @dfn{file cache}: image cache file can be kept for future
-Emacs sessions.
-
-@item
-It uses a @dfn{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:
-
-@table @kbd
-@item M-x x-symbol-image-parse-buffer
-@findex x-symbol-image-parse-buffer
-Parse the buffer to recognize image insertion commands. Usually, this
-is done automatically.
-@end table
-@end itemize
-
-File and memory caching can be controlled by the following variables:
-
-@vtable @code
-@item 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.
-
-@item x-symbol-image-cache-directories
-Cache files for images in your home directory are stored in directory
-@file{~/.images/}, e.g., image @file{~/d/img.eps}, is cached in
-@file{~/.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 @file{~/d/img.eps} is cached in
-@file{~/d/.img/img.eps} or that the image is not displayed at all.
-
-@item x-symbol-image-temp-name
-Temporary image files are stored in a temporary directory (@file{/tmp/})
-having some unique name. They are not supported on Emacs.
-
-@item x-symbol-image-use-remote
-Package X-Symbol only displays images which can be stored in the memory
-cache. With value @code{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.
-@end vtable
-
-The memory cache only stored image file from the current directory or
-some standard image directories like @file{figures/} (@pxref{TeX
-Macro}), or @file{images/} or @file{pictures/} (@pxref{SGML Entity}).
-Otherwise, the image file is considered similar to remote files:
-
-@vtable @code
-@item x-symbol-@var{lang}-image-cached-dirs
-The directories with images which are stored in the memory cache. Can
-be separately defined for each token language @var{lang}.
-@end vtable
-
-
-@node Special Images, Image Editor, Image Caching, Images
-@comment node-name, next, previous, up
-@subsection Special Images for Specific Situations
-@cindex Special Images
-@cindex Images for Specific Situations
-@cindex Glyph for Specific Situations
-
-If package X-Symbol cannot display images representing the included
-image files, it uses special images instead:
-
-@itemize @bullet
-@item
-@dfn{Remote:} An Escher knot is displayed if the file is remote or if
-the image cannot be cached in the memory cache, see @ref{Image Caching}.
-
-@item
-@dfn{Junk}: A recycle sign is displayed if there is no image converter
-(@pxref{Image Conversion}), if it should not use a file cache or if the
-file cache cannot be written.
-
-@item
-@dfn{Locked:} A terminal with a lock is displayed if the image cache file
-cannot be read or written.
-
-@item
-@dfn{Design:} An ink pen is displayed if the image file does not exist.
-
-@item
-@dfn{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.
-
-@item
-@dfn{Broken:} A tombstone is displayed if the creation of the image
-cache file has failed.
-@end itemize
-
-To customize the glyphs for the special images, use:
-
-@vtable @code
-@item x-symbol-image-data-directory
-Directory of files for the special images.
-
-@item x-symbol-image-special-glyphs
-File names of special images and their image format.
-@end vtable
-
-
-@node Image Editor, , Special Images, Images
-@comment node-name, next, previous, up
-@subsection Image Editor
-@cindex Image Editor
-@cindex Editing Image Files
-@cindex Designing Images
-@cindex Scale Factor, Images
-@cindex Image Highlight Menu
-
-If you move the mouse pointer to an image insertion command or its
-image, it is highlighted.
-
-@table @kbd
-@item @key{button2}
-@kindex @key{button2}
-Start image editor for highlighted image. If the image is searched in
-the searchpath (@pxref{Image Caching}), edit first existing image file.
-If no image exists, open a new file in the first directory of the
-searchpath.
-
-@item @key{button3}
-@kindex @key{button3}
-Pop up the @dfn{image highlight menu}. You can rescan the buffer for
-image insertion commands (@pxref{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).
-
-@item M-x x-symbol-image-editor
-@findex x-symbol-image-editor
-Start image editor. Asks for the image file.
-@end table
-
-You can control which editor to use:
-
-@vtable @code
-@item x-symbol-image-editor-alist
-@pindex display
-@pindex xfig
-Normally, program @code{display} is used to edit the highlighted image
-file. But for image names @file{@var{file}.eps}, @file{@var{file}.ps}
-or @file{@var{file}.pstex}, program @code{xfig} is invoked with
-@file{@var{file}.fig}. It also uses a scale method, e.g., with
-@file{img.80.eps}, we edit @file{img.fig} (which should be exported with
-scale=80%).
-
-@item 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.
-
-@item x-symbol-image-current-marker
-Directories with an existing image for the specified file name are
-marked with an @samp{*}. The first of these represents the file which
-is used when pressing @kbd{@key{button2}}.
-@end vtable
-
-@c ===========================================================================
-
-@node Info, Ascii Representation, Images, Features
-@comment node-name, next, previous, up
-@section Info in Echo Area
-@cindex Info in Echo Area
-@cindex Echo Area Info
-@cindex Character Info
-@cindex Context Info
-@cindex Minibuffer Info
-
-The echo area (@pxref{Echo Area,,,xemacs,XEmacs User's Manual}) 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 (@pxref{Input Method Context}).
-
-It will be controlled by the following variables (also to be found in
-the menu):
-
-@vtable @code
-@item 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:
-
-@itemize @minus
-@item
-the token of the current language, eventually colored according to some
-coloring scheme (@pxref{Char Group}),
-
-@item
-infos using the token classes (@pxref{Char Group}), which could inform
-users to include a specific La@TeX{} package when they want to use that
-character in the document,
-
-@item
-the codings in which the characters is considered to be a 8bit character
-(@pxref{File Coding}), and
-
-@item
-the key bindings (@pxref{Input Method Keyboard}).
-@end itemize
-
-@item 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 @kbd{C-,} (@pxref{Input Method Context}). It can be controlled
-by the following variables:
-
-@vtable @code
-@item x-symbol-context-info-ignore
-@findex x-symbol-default-context-info-ignore
-The default value @code{x-symbol-default-context-info-ignore} makes the
-following variables control whether to display the context info.
-
-@item x-symbol-context-info-threshold
-The context does not consist of a single character.
-
-@item x-symbol-context-info-ignore-regexp
-The context does not solely consist of letters.
-
-@item x-symbol-context-info-ignore-groups
-The context is not replaced by an accented character, see @ref{Char
-Group}.
-@end vtable
-
-@item x-symbol-idle-delay
-Time in seconds of idle time before showing the info.
-@end vtable
-
-@c ====================================================================
-
-@node Ascii Representation, Package Information, Info, Features
-@comment node-name, next, previous, up
-@section Ascii Representation of Strings
-@cindex Ascii Representation
-@cindex Representation of Characters
-@cindex Label Creation
-
-@pindex reftex
-If you want to derive labels from a buffer contents (provided e.g., by
-Emacs packages @code{reftex} or @code{bibtex}), you need a Ascii
-representation of strings containing X-Symbol characters. This is
-provided by the following function:
-
-@ftable @code
-@item x-symbol-translate-to-ascii
-Takes a string and returns a string only consisting of Ascii characters.
-
-@vtable @code
-@item x-symbol-charsym-ascii-alist
-You might want to define the German way to Asciify accented characters
-by:
-@lisp
-@group
-(setq x-symbol-charsym-ascii-alist
- '((adiaeresis . "ae") (Adiaeresis . "Ae")
- (odiaeresis . "oe") (Odiaeresis . "Oe")
- (udiaeresis . "ue") (Udiaeresis . "Ue")))
-@end group
-@end lisp
-
-@item x-symbol-charsym-ascii-groups
-By default, ``Ascii''fying accented characters means removing the
-accents. Other characters have built-in Ascii representation, e.g,
-@code{sigma1} has the Ascii representation @samp{sigma}.
-@end vtable
-@end ftable
-
-@c ====================================================================
-
-@node Package Information, , Ascii Representation, Features
-@comment node-name, next, previous, up
-@section X-Symbol Package Information
-@cindex Package Information
-@cindex WWW Browsing
-@cindex URL for X-Symbol
-
-@table @kbd
-@item M-x x-symbol-package-info
-@findex x-symbol-package-info
-Read documentation for package X-Symbol in the info system.
-
-@item M-x x-symbol-package-web
-@findex x-symbol-package-web
-Ask a WWW browser to load the URL of package X-Symbol.
-
-@item M-x x-symbol-package-bug
-@findex x-symbol-package-bug
-Use this command to contact the maintainer of package X-Symbol @emph{in
-any case}, e.g., for suggestions, bug and problem reports, see @ref{Bug
-Reports}. Use @kbd{C-u 9 M-x x-symbol-package-bug} for patches
-(including corrections of this manual, which are strongly appreciated)
-and for other messages.
-@end table
-
-@vtable @code
-@item x-symbol-installer-address
-E-mail address of the person who has installed package X-Symbol
-system-wide (@pxref{System-wide Installation}).
-
-@item x-symbol-package-url
-URL of package X-Symbol, used by @code{x-symbol-package-web}.
-@end vtable
-
-@c ====================================================================
-
-@node Supported Languages, X-Symbol Internals, Features, Top
-@comment node-name, next, previous, up
-@chapter Supported Token Languages
-@cindex Supported Languages
-@cindex Default Languages
-@cindex Built-in Languages
-@cindex Provided Languages
-@cindex Languages in Distribution
-
-The chapter describe the predefined token language. It also presents
-the language specific behavior for @ref{Concepts}, @ref{Input Methods},
-and @ref{Features}.
-
-@menu
-* Pseudo Language:: Token language ``x-symbol charsym''.
-* TeX Macro:: Token language @code{tex}.
-* SGML Entity:: Token language @code{sgml}.
-* BibTeX Macro:: Token language @code{bib}.
-* TeXinfo Command:: Token language @code{texi}.
-* External Languages:: Languages defined in other Emacs Packages.
-@end menu
-
-@c ====================================================================
-
-@node Pseudo Language, TeX Macro, Supported Languages, Supported Languages
-@comment node-name, next, previous, up
-@section Pseudo Token Language ``x-symbol charsym''
-@cindex Pseudo Language
-@cindex Charsym
-@cindex X-Symbol Charsym
-
-If no (or an invalid) token language is set for a buffer, the info in
-the echo area (@pxref{Info}) for a X-Symbol Character in the buffer (if
-it exists) uses the name of its @dfn{charsym}. In this manual, we
-actually refer to X-Symbol characters by their charsym name, e.g.,
-@code{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 (@pxref{Input Method Grid}) also offers
-to insert a charsym name. Charsyms can also be used for input method
-Read Token, see @ref{Input Method Read Token}.
-
-You cannot use this pseudo language to turn on the X-Symbol minor mode
-(@pxref{Minor Mode}), you cannot decode charsyms to their characters, and
-you cannot encode characters to charsyms.
-
-@c ===========================================================================
-
-@node TeX Macro, SGML Entity, Pseudo Language, Supported Languages
-@comment node-name, next, previous, up
-@section Token Language ``@TeX{} macro'' (@code{tex})
-@cindex Token Language @code{tex}
-@cindex Language @code{tex}
-@cindex @TeX{} macro
-@cindex @code{tex}
-@cindex La@TeX{}
-
-For buffers using the major mode @code{latex-mode}, @code{tex-mode} or
-@code{plain-tex-mode}, we use token language @dfn{@TeX{} macro}
-(@code{tex}). This language provides the display of super-/subscripts
-and images. If the buffer visits a file with extension @file{.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 La@TeX{}.
-* 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''.
-@end menu
-
-
-@node TeX Macro Basics, TeX Macro Features, TeX Macro, TeX Macro
-@comment node-name, next, previous, up
-@subsection Basics of Language ``@TeX{} macro''
-@cindex TeX Macro Basics
-@cindex Basics TeX Macro
-@cindex Choosing TeX Macro
-@cindex TeX Macro Use
-@cindex TeX Macro Modes
-
-The standard behavior can be controlled by the following variables:
-
-@vtable @code
-@item x-symbol-tex-modes
-@itemx x-symbol-tex-auto-style
-The variables known from @ref{Minor Mode}. If the buffer visits a file
-with extension @file{.tex}, super-/subscripts and images are displayed,
-otherwise unique decoding (@pxref{Unique Decoding}) will be used.
-
-@item x-symbol-tex-auto-coding-alist
-Used there to automatically deduce the specific encoding of the file
-(@pxref{File Coding}) if the file visited by the buffer has the
-extension @file{.tex}. It searches for one of the following two strings
-in the current buffer, including the comment:
-
-@example
-\usepackage[@var{encoding}]@{inputenc@}
-%& -translation-file=i@var{enc}
-@end example
-
-where @var{encoding} should be one of @samp{latin1}, @samp{latin2},
-@samp{latin3}, @samp{latin5}, or @samp{latin9}, and @var{enc} should be
-one of @samp{l1} or @samp{l2}. 8bit characters are not encoded if the
-file if the search was successful (@pxref{Controlling 8bit Coding}).
-
-@item x-symbol-tex-coding-master
-@vindex TeX-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 @code{TeX-master},
-also search in the file denoted by that value for the strings.
-(Buffer-local variables will not be inherited.)
-@end vtable
-
-The input methods and the character info in the echo area are controlled
-by:
-
-@vtable @code
-@item x-symbol-tex-header-groups-alist
-We use the standard Grid and Menu headers.
-
-@item 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.
-
-@item x-symbol-tex-electric-ignore
-@itemx x-symbol-tex-electric-ignore-regexp
-@pindex texmathp
-Input method Electric (@pxref{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 @code{texmathp}, @ref{LaTeX Packages}).
-Postfix tilde is not electric, because @samp{~} produces a space in
-@TeX{}.
-
-@item x-symbol-tex-token-suppress-space
-Input method Token (@pxref{Input Method Token}) only converts a token
-ending with a control word like @code{\i}, if the character following
-the token is no letter. If that token is a text-mode token and a
-@key{SPC} has been entered without a prefix argument, the @key{SPC} will
-only perform the replacement, it will not insert a space, i.e., it will
-act like @kbd{C-u 0 @key{SPC}}.
-
-@item x-symbol-tex-class-alist
-@itemx x-symbol-tex-class-face-alist
-Various token classes (@pxref{Char Group}) are defined. They are used
-to give some info (@pxref{Info}) about the characters spacing behavior,
-which La@TeX{} packages are necessary to use the character (@pxref{TeX
-Macro Symbols}), and about the conversion (@pxref{TeX Macro
-Conversion}). X-Symbol uses blue for text-mode only and purple for
-math-mode only characters in the Grid (@pxref{Input Method Grid} and the
-character info.
-@end vtable
-
-
-@node TeX Macro Features, TeX Macro Problems, TeX Macro Basics, TeX Macro
-@comment node-name, next, previous, up
-@subsection Super-/Subscripts and Images in La@TeX{}
-@cindex TeX Macro Features
-@cindex Features TeX Macro
-@cindex TeX Macro Superscripts
-@cindex TeX Macro Subscripts
-@cindex TeX Macro Images
-
-The display of super- and subscripts (@pxref{Super and Subscripts}) is
-controlled by:
-
-@vtable @code
-@itemx x-symbol-tex-font-lock-limit-regexp
-The superscript command @code{^} and the subscript command @code{_} 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.
-
-@item x-symbol-tex-font-lock-allowed-faces
-The characters @samp{^} and @samp{_} are not always commands (@pxref{TeX
-Macro Problems}), e.g., in the argument of @code{\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: @ref{FAQ No Subscripts}, @ref{FAQ Stupid
-Subscripts}. Using @code{texmathp} (@pxref{LaTeX Packages}) has even
-more problems:
-
-@itemize @minus
-@item
-The syntax highlighting (which is used for super-/subscripts) would be
-much too slow.
-
-@item
-With own La@TeX{} environments, you would need to customize
-@code{texmathp}.
-
-@item
-It is actually wrong: whether @samp{^} and @samp{_} 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 @code{\ref}).
-@end itemize
-@end vtable
-
-The display of images (@pxref{Images}) is controlled by:
-
-@vtable @code
-@item x-symbol-tex-image-keywords
-The following commands are recognized. Extension @var{ext} stands for
-@file{eps} (which is the default extension for both versions of
-@code{\includegraphics} if the extension is omitted there), @file{ps},
-@file{gif}, @file{png}, @file{jpeg}, @file{jpg}, or @file{pdf}. Options
-@var{options} can be omitted with their surrounding brackets or
-preceding comma, respectively.
-
-@example
-\input@{@var{file}.pstex_t@}
-\includegraphics[@var{options}][@var{options}]@{@var{file}.@var{ext}@}
-\includegraphics*[@var{options}][@var{options}]@{@var{file}.@var{ext}@}
-\epsfig@{file=@var{file}.@var{ext},@var{options}@}
-\psfig@{file=@var{file}.@var{ext},@var{options}@}
-\epsfbox[@var{options}]@{@var{file}.@var{ext}@}
-\epsffile[@var{options}]@{@var{file}.@var{ext}@}
-@end example
-
-@item x-symbol-tex-master-directory
-@vindex TeX-master
-Relative file names (@pxref{Image Display}, explicitly or implicitly)
-are relative to the directory part of variable @code{TeX-master} if it
-is buffer-local and a string. Otherwise, they are relative to the
-directory of the current file.
-
-@item x-symbol-tex-image-searchpath
-@vindex TEXPICTS
-@vindex TEXINPUTS
-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 @code{TEXPICTS} or @code{TEXINPUTS} (@pxref{TeX
-environment variables,,,kpathsea,Kpathsea Manual}),
-extended by @file{./} 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 (@pxref{Path
-sources,,,kpathsea,Kpathsea Manual}).
-
-@item 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 @file{figures/} if the image should be
-cached in the memory cache.
-@end vtable
-
-
-@node TeX Macro Problems, TeX Macro Conversion, TeX Macro Features, TeX Macro
-@comment node-name, next, previous, up
-@subsection Problems with @TeX{} Macros
-@cindex TeX Macro Problems
-@cindex Problems TeX Macro
-
-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. @xref{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:
-
-@itemize @bullet
-@item
-The tokens in @TeX{} are not ended by a dedicated character (like
-@sc{sgml} entities are ended by @samp{;}). 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 @dfn{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.
-
-@item
-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 @samp{Ma@ss{}@ Bier}.
-@ifinfo
-In the info file, you will probably not see any 8bit characters (the
-sharp @samp{s} is shown as @samp{@ss{}}).
-@end ifinfo
-
-@itemize @minus
-@item
-Many people would use @samp{Ma\ss\@ Bier}. This is (almost ever) fine
-in text mode, but a @samp{\@ } 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.
-
-@item
-Many people would use @samp{Ma\ss@{@}@ Bier}. This has less problems and
-is therefore used by X-Symbol. The @samp{@{@}} at the end of the control
-word is not used if the character is not followed by a space, e.g., to
-produce @samp{Stra@ss{}e}, we use @samp{Stra\ss@ e}. Consequently,
-@samp{Ma\ss\@ Bier} in the file would be decoded to @samp{Ma@ss{}\@ Bier},
-which would be encoded to the original sequence in the file.
-
-@item
-Some people would always use @samp{@{@}} after a text-mode control word,
-even it is not followed by a space, like @samp{Stra\ss@{@}e}. This is
-wrong, since it breaks ligatures and kerns. For example, compare the
-output of @samp{\L@ V} with @samp{\L@{@}V} using @samp{T1} font encoding.
-
-@item
-Up to Version 4.1, X-Symbol surrounded a text-mode control word with
-braces, like @samp{Stra@{\ss@}e}. This was probably even worse than
-always adding @samp{@{@}} at the end of the control word. It was used,
-because it is required by Bib@TeX{} (@pxref{BibTeX Macro}).
-Unfortunately, Bib@TeX{} sends this bad sequence directly to La@TeX{},
-but this has nothing to do with X-Symbol.
-@end itemize
-
-@item
-The accented characters are not represented by one tokens in @TeX{}.
-Most people use @samp{\"a} to produce an @samp{@"a}, while some use
-@samp{\"@{a@}}. X-Symbol uses the former, it does not even decode the
-latter automatically. Up to Version 4.1, X-Symbol used @samp{@{\"a@}},
-having the same problems as using @samp{Stra@{\ss@}e}.
-
-@item
-Around a dozen characters can be produced by more than one @TeX{} macro,
-like @code{\neq} and @code{\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 (@pxref{Unique Decoding}).
-
-@item
-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 @samp{@@} to a
-letter (used in La@TeX{}'s style files), this character is considered a
-letter by X-Symbol. This means that although both @samp{\ss@ @@} and
-@samp{\ss@@} usually produce the same output, only the first is decoded
-to @samp{@ss{}@@}.
-
-@item
-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 La@TeX{} @code{\verb} command, and the @code{verbatim}
-and @code{tabbing} environments.
-@end itemize
-
-
-@node TeX Macro Conversion, TeX Macro Symbols, TeX Macro Problems, TeX Macro
-@comment node-name, next, previous, up
-@subsection The Conversion of @TeX{} Macros
-@cindex TeX Macro Conversion
-@cindex Conversion of TeX Macros
-
-The @TeX{} macros for Latin characters are according to the La@TeX{}
-package @file{inputenc.sty}, v0.97+. Package X-Symbol uses U00B5 for
-@code{\mathmicro}, not for @code{\mu}, though! @xref{Wishlist LaTeX}.
-
-It is assumed that you do not redefine standard @TeX{} macros like
-@code{\ne} (@pxref{TeX Macro Conversion}), if you do so, you should
-better use unique decoding (@pxref{Unique Decoding}).
-
-The encoding of characters to @TeX{} macros works as follows:
-
-@itemize @bullet
-@item
-If the character is preceded by an odd number of backslashes, insert a
-space before the character.
-
-@item
-Accented characters are encoded without braces, e.g., we encode @samp{@,{c}}
-to @samp{\c@ c}. Accents are encoded with braces, e.g., we use
-@samp{\c@{@ @}} and @samp{\u@{@}}.
-@end itemize
-
-Additionally, the encoding of characters to @TeX{} macros which are
-@dfn{control words} (all-letter macros), or whose @TeX{} representation
-ends with a control word (like @samp{\'\i}) works as follows:
-
-@itemize @bullet
-@item
-If the character is followed by a letter, replace the character by the
-macro and insert a space.
-
-@item
-If the macro is a text-mode macro and followed by one or more blanks,
-replace the character and insert @samp{@{@}}.
-
-@item
-Otherwise, just replace the character.
-@end itemize
-
-The decoding of @TeX{} macros which are control words to characters
-works as follows:
-
-@itemize @bullet
-@item
-If the macro is a text-mode macro and followed by @samp{@{@}} which is
-followed by a blank, replace the macro and delete the braces.
-
-@item
-If the macro is a text-mode macro and followed by one are more blanks,
-we have the following rule:
-
-@itemize @minus
-@item
-If we have exactly one blank, the blank is a space, and it is not
-followed by a @samp{%} (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, @ref{Unique Decoding}.)
-
-@item
-Otherwise, do @emph{not decode} the macro!
-@end itemize
-
-@item
-Otherwise, just replace the macro.
-@end itemize
-
-To clarify, @dfn{letter} means @samp{A}-@samp{Z}, @samp{a}-@samp{z}, or
-@samp{@@}, @dfn{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: @code{\ldots}, @code{\vdots}, and (by accident) @code{\angle}.
-They are all treated like math-mode characters, but their minibuffer
-info (@pxref{Info}) includes @samp{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):
-
-@vtable @code
-@item x-symbol-tex-verb-delimiter-regexp
-If the command @code{\verb} is found, its argument is not decoded if it
-is delimited by one of the following characters: @samp{-}, @samp{!},
-@samp{#}, @samp{$}, @samp{&}, @samp{*}, @samp{+}, @samp{/}, @samp{=},
-@samp{?}, @samp{^}, @samp{|}, or @samp{!}.
-
-@item x-symbol-tex-env-verbatim-regexp
-The contents of the @code{verbatim} environment is not decoded. To
-produce accented characters inside this environment, use the La@TeX{}
-package @file{inputenc.sty}.
-
-@c Inside @code{\hyphenation}@{@dots{}@}, you can only use Latin characters.
-
-@c David Kastrup: Wrong. inputenc.sty converts things like @"a into \"a
-@c anyway (take a look into your table of contents file, xxx.toc, for
-@c example). Both @"a and \"a will not work in hyphenation patterns when you
-@c are using a font encoding without such a character (like the default OT1
-@c encoding), both @"a and \"a will work if something like
-@c \usepackage[T1]{fontenc} is active. This holds for LaTeX; plain TeX is
-@c not as sophisticated as to replace \"a with a single character when in
-@c T1 encodings.
-
-@item x-symbol-tex-env-tabbing-regexp
-Inside a @code{tabbing} environment, the macro sequences starting with
-@samp{\`}, @samp{\'}, @samp{\=} and @samp{\-} are not decoded. It is
-probably better (with or without X-Symbol) to use the La@TeX{} package
-@file{inputenc.sty} or to the @code{Tabbing} environment, to be found in
-the @sc{ctan} archives.
-@end vtable
-
-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.
-
-@ifinfo
-Final note: in the info file, you will probably not see any 8bit
-characters.
-@end ifinfo
-
-You might want change the conversion between characters and tokens in
-language @code{tex} by changing:
-
-@vtable @code
-@item x-symbol-tex-user-table
-You can define you own tokens for X-Symbol characters. E.g., if you
-like to have the command @code{\sqrt} represented by a character
-(shadowing the entry for @code{\surd}), add the following to your
-@file{~/.emacs}:
-
-@lisp
-(setq x-symbol-tex-user-table '((radical (math special) "\\sqrt")))
-@end lisp
-@end vtable
-
-
-@node TeX Macro Symbols, , TeX Macro Conversion, TeX Macro
-@comment node-name, next, previous, up
-@subsection Extra Symbols of Language ``@TeX{} Macro''
-@cindex Extra Symbols for @TeX{}
-@cindex Defining @code{tex}
-@cindex Initializing @code{tex}
-@cindex @TeX{} Macro Installation
-@cindex Installing @code{tex}
-@pindex @file{latexsym.sty}
-@pindex @file{amssymb.sty}
-@pindex @file{stmaryrd.sty}
-@pindex @file{fontenc.sty}
-@pindex @file{inputenc.sty}
-
-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 (@pxref{Info}) contains s.th. like
-@samp{@var{package}.sty} or @samp{user}. If you do not use the
-corresponding characters, you do not have to do anything, of course.
-
-The @TeX{} macros @code{\Box}, @code{\Diamond}, @code{\leadsto},
-@code{\Join}, @code{\lhd}, @code{\mho}, @code{\rhd}, @code{\sqsupset},
-@code{\sqsubset}, @code{\unlhd}, @code{\unrhd}, are defined in La@TeX{}
-package @file{latexsym.sty}:
-
-@example
-\usepackage@{latexsym@}
-@end example
-
-Note that these macros are also defined @file{amssymb.sty}. Since the
-first four macros are defined differently (better) in
-@file{latexsym.sty}, it does make sense to load both La@TeX{} packages.
-
-The @TeX{} macros @code{\boldsymbol}, @code{\circledast},
-@code{\circledcirc}, @code{\circleddash}, @code{\digamma},
-@code{\gtrapprox}, @code{\gtrsim}, @code{\lessapprox}, @code{\lesssim},
-@code{\triangleq}, @code{\varkappa} are defined in AMS La@TeX{} package
-@file{amssymb.sty}:
-
-@example
-\usepackage@{amssymb@}
-@end example
-
-The @TeX{} macros @code{\bigsqcap}, @code{\llbracket},
-@code{\rrbracket}, @code{\llparenthesis}, @code{\rrparenthesis} are
-defined in the La@TeX{} package @file{stmaryrd.sty}:
-
-@example
-\usepackage@{stmaryrd@}
-@end example
-
-The @TeX{} macros @code{\guilsinglleft}, @code{\guilsinglright},
-@code{\dj}, @code{\NG}, @code{\ng}, @code{\DH}, @code{\DJ}, @code{\dh},
-@code{\dj}, @code{\TH}, @code{\th}, @code{\guillemotleft},
-@code{\guillemotright} and the ogonek characters are only defined if
-you use T1 font encoding:
-
-@example
-\usepackage[T1]@{fontenc@}
-@end example
-
-The @TeX{} macro @code{\mathmicro} for U00B5 can be defined by
-(@pxref{Wishlist LaTeX}):
-
-@example
-\let\mathmicro\mu
-@end example
-
-You should define the following in your La@TeX{} file (if you use the
-corresponding characters), the first can only be used with T1 font encoding.
-
-@example
-\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@{::@}@}
-@c \newcommand@{\lsemantics@}@{\mathopen@{\lbrack\mkern-3mu\lbrack@}@}
-@c \newcommand@{\rsemantics@}@{\mathclose@{\rbrack\mkern-3mu\rbrack@}@}
-@c \newcommand@{\lcata@}@{\mathopen@{(\mkern-3mu\mid@}@}
-@c \newcommand@{\rcata@}@{\mathclose@{\mid\mkern-3mu)@}@}
-@end example
-
-The @TeX{} macros @code{\textordfeminine}, @code{\textordmasculine},
-@code{\textdegree}, @code{\textonequarter}, @code{\textonehalf},
-@code{\textthreequarters}, @code{\mathonesuperior},
-@code{\mathtwosuperior}, @code{\maththreesuperior},
-@code{\textcopyright} are only defined when using La@TeX{} package
-@file{inputenc.sty}:
-
-@example
-\usepackage[latin1]@{inputenc@}
-@end example
-
-The @TeX{} macros @code{\textcent}, @code{\textcurrency},
-@code{\textyen}, @code{\textbrokenbar}, @code{\textmalteseH},
-@code{\textmalteseh} are defined as not available in La@TeX{} package
-@file{inputenc.sty}. @xref{Wishlist LaTeX}. If you use this package
-and want to define these commands, use @code{\renewcommand} (or
-@code{\def}) after, e.g.:
-
-@example
-\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@}
-@end example
-
-@c ===========================================================================
-
-@node SGML Entity, BibTeX Macro, TeX Macro, Supported Languages
-@comment node-name, next, previous, up
-@section Token Language ``@sc{sgml} entity'' (@code{sgml})
-@cindex HTML
-@cindex SGML entity
-@cindex Token Language @code{sgml}
-@cindex Language @code{sgml}
-@pindex Netscape
-
-For buffers using the major mode @code{html-mode}, @code{hm--html-mode},
-@code{html-helper-mode}, @code{sgml-mode} or @code{xml-mode}, we use
-token language @dfn{@sc{sgml} entity} (@code{sgml}). This language
-provides the display of super-/subscripts and images. If the buffer
-visits a file and uses a @sc{html} mode, X-Symbol mode is automatically
-turned on.
-
-@menu
-* SGML Entity Basics:: Basics of Language ``@sc{sgml} entity''.
-* SGML Entity Features:: Super-/Subscripts and Images in @sc{html}.
-* SGML Entity Conversion:: How the conversion of @sc{sgml} entities works.
-@end menu
-
-
-@node SGML Entity Basics, SGML Entity Features, SGML Entity, SGML Entity
-@comment node-name, next, previous, up
-@subsection Basics of Language ``@sc{sgml} entity''
-@cindex SGML Entity Basics
-@cindex Basics SGML Entity
-@cindex Choosing SGML Entity
-@cindex SGML Entity Use
-@cindex SGML Entity Modes
-
-The standard behavior can be controlled by the following variables:
-
-@vtable @code
-@item x-symbol-sgml-modes
-@itemx x-symbol-sgml-auto-style
-The variables known from @ref{Minor Mode}. If the buffer uses a
-@sc{html} mode, super-/subscripts and images are displayed, otherwise
-unique decoding (@pxref{Unique Decoding}) will be used.
-
-@item x-symbol-sgml-auto-coding-alist
-Used there to automatically deduce the specific encoding of the file
-(@pxref{File Coding}). It searches for the following string in the
-current buffer, including the comment:
-
-@example
-<meta http-equiv="content-type"
- content="text/html; charset=@var{encoding}">
-@end example
-
-where @var{encoding} should be one of @samp{iso-8859-1},
-@samp{iso-8859-2}, @samp{iso-8859-3}, @samp{iso-8859-9}, or
-@samp{iso-8859-15}. 8bit characters are not encoded if the file if the
-search was successful (@pxref{Controlling 8bit Coding}).
-@end vtable
-
-The input methods and the character info in the echo area are controlled
-by:
-
-@vtable @code
-@item x-symbol-sgml-header-groups-alist
-Defines the headers and their characters for the language specific Grid
-and Menu.
-
-@item x-symbol-sgml-extra-menu-items
-There are no special entries in the X-Symbol menu.
-
-@item x-symbol-sgml-electric-ignore
-There is no additional constraint to the ones mentioned in @ref{Input
-Method Electric}.
-
-@item x-symbol-sgml-class-alist
-@itemx x-symbol-sgml-class-face-alist
-Token classes (@pxref{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 (@pxref{Input Method Grid} and the character info
-(@pxref{Info}), dark red for characters without defined entity names in
-@sc{html} (@pxref{SGML Entity Conversion}).
-@end vtable
-
-
-@node SGML Entity Features, SGML Entity Conversion, SGML Entity Basics, SGML Entity
-@comment node-name, next, previous, up
-@subsection Super-/Subscripts and Images in @sc{html}
-@cindex SGML Entity Features
-@cindex Features SGML Entity
-@cindex SGML Entity Superscripts
-@cindex SGML Entity Subscripts
-@cindex SGML Entity Images
-
-The display of super- and subscripts (@pxref{Super and Subscripts}) is
-controlled by:
-
-@vtable @code
-@item x-symbol-sgml-font-lock-regexp
-@itemx x-symbol-sgml-font-lock-limit-regexp
-@itemx x-symbol-sgml-font-lock-alist
-@itemx x-symbol-sgml-font-lock-contents-regexp
-The superscript command @code{<sup>}@dots{}@code{</sup>} and the subscript
-command @code{<sub>}@dots{}@code{</sub>} is recognized. The contents should
-contain at least one character which is not a space or a
-@code{nobreakspace}.
-@end vtable
-
-The display of images (@pxref{Images}) is controlled by:
-
-@vtable @code
-@item x-symbol-sgml-image-keywords
-The following commands are recognized. Extension @var{ext} stands for
-@file{gif}, @file{png}, @file{jpeg} or @file{jpg}.
-
-@example
-<img @var{@dots{}} src="@var{file}.@var{ext}" @var{@dots{}}>
-@end example
-
-@item x-symbol-sgml-master-directory
-@itemx x-symbol-sgml-image-searchpath
-Relative file names (@pxref{Image Display}) are relative to the
-directory of the current file.
-
-@item x-symbol-sgml-image-file-truename-alist
-The file name prefix @file{file:} is ignored. For any other file name
-which starts with letters and then a colon, e.g., with @file{http:} or
-@file{C:\} (which is no @sc{url} anyway), the image insertion command
-will be skipped. By changing this variable, you could specify that the
-prefix @file{http://www.fmi.uni-passau.de/~wedler/} corresponds to
-@file{~/public_html/}.
-
-@item 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 @file{images/} or @file{pictures/} if the
-image should be cached in the memory cache.
-@end vtable
-
-
-@node SGML Entity Conversion, , SGML Entity Features, SGML Entity
-@comment node-name, next, previous, up
-@subsection The Conversion of @sc{sgml} Entities
-@cindex SGML Entity Conversion
-@cindex 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
-@uref{http://www.w3.org/TR/REC-html40/sgml/entities.html}.
-
-By default, we encode to entity references like @code{&amp;}, and decode
-from both entity references and character references like @code{&#38;}.
-For Latin-N characters without defined entity names in @sc{html} (e.g.
-@code{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 @code{sgml} by changing:
-
-@vtable @code
-@item x-symbol-sgml-token-list
-@findex x-symbol-sgml-token-list-name
-@findex x-symbol-sgml-token-list-code
-@findex x-symbol-sgml-token-list-netscape
-A symbol, which defines whether to use entity references, character
-references, or entity references for Latin-1 characters and character
-references for others.
-
-@item 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:
-
-@example
-(setq x-symbol-sgml-user-table '((circ () 999 "&bcomp;")))
-@end example
-@end vtable
-
-@c ====================================================================
-
-@node BibTeX Macro, TeXinfo Command, SGML Entity, Supported Languages
-@comment node-name, next, previous, up
-@section Token Language ``Bib@TeX{} macro'' (@code{bib})
-@cindex Token Language @code{bib}
-@cindex Language @code{bib}
-@cindex Bib@TeX{} macro
-@cindex @code{bib}
-@cindex Bib@TeX{}
-
-For buffers using the major mode @code{bibtex-mode}, we use token
-language @dfn{Bib@TeX{} macro} (@code{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:
-
-@vtable @code
-@item x-symbol-bib-modes
-@itemx x-symbol-bib-auto-style
-The variables known from @ref{Minor Mode}. There is no automatic
-deduction of the file encoding, 8bit characters are usually encoded, and
-there is usually no unique decoding. @xref{Conversion}.
-@end vtable
-
-@pindex bibtex
-The major difference between this language and the token language
-@code{tex} is that the tokens for text-mode characters are most likely
-enclosed by braces. This has some problems (@pxref{TeX Macro
-Problems}), but is required by the program @code{bibtex}.
-
-The input methods and most features except super-/subscripts and images
-work like in token language @code{tex} (@pxref{TeX Macro}):
-
-@vtable @code
-@item x-symbol-bib-header-groups-alist
-@itemx x-symbol-bib-electric-ignore
-@itemx x-symbol-bib-class-alist
-@itemx x-symbol-bib-class-face-alist
-Like in @ref{TeX Macro Features}.
-
-@item x-symbol-bib-extra-menu-items
-There are no special entries in the X-Symbol menu.
-@end vtable
-
-You might want change the conversion between characters and tokens in
-language @code{bib} by changing:
-
-@vtable @code
-@item x-symbol-bib-user-table
-@itemx x-symbol-tex-user-table
-Use the former for @code{bib}-only changes, the latter also influences
-the conversion with token language @code{tex}.
-@end vtable
-
-@c ====================================================================
-
-@node TeXinfo Command, External Languages, BibTeX Macro, Supported Languages
-@comment node-name, next, previous, up
-@section Token Language ``@TeX{}info command'' (@code{texi})
-@cindex Token Language @code{texi}
-@cindex Language @code{texi}
-@cindex @TeX{}info command
-@cindex @code{texi}
-@pindex texinfo
-@pindex GNU texinfo
-
-For buffers using the major mode @code{texinfo-mode}, we use token
-language @dfn{@TeX{}info command} (@code{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:
-
-@vtable @code
-@item x-symbol-texi-modes
-@itemx x-symbol-texi-auto-style
-The variables known from @ref{Minor Mode}. There is no automatic
-deduction of the file encoding, 8bit characters are usually encoded, and
-there is usually no unique decoding. @xref{Conversion}.
-@end vtable
-
-With @code{x-symbol-8bits} having value @code{nil} (the default), it
-might still happen that the saved file contains 8bit characters, since
-token language @code{texi} does not define tokens for all characters in
-the Latin charsets supported by X-Symbol. @xref{Controlling 8bit
-Coding}.
-
-With @code{x-symbol-unique} having value @code{nil} (the default), we
-have unique decoding anyway, since token language @code{texi} does only
-define one token per character, i.e., the value is not important if
-@code{x-symbol-8bits} is @code{nil}. @xref{Unique Decoding}.
-
-The input methods and the character info in the echo area are controlled
-by:
-
-@vtable @code
-@item x-symbol-texi-header-groups-alist
-Defines the headers and their characters for the language specific Grid
-and Menu.
-
-@item x-symbol-texi-extra-menu-items
-There are no special entries in the X-Symbol menu.
-
-@item x-symbol-texi-electric-ignore
-There is no additional constraint to the ones mentioned in @ref{Input
-Method Electric}.
-
-@item x-symbol-texi-class-alist
-@itemx x-symbol-texi-class-face-alist
-Only a few token classes (@pxref{Char Group}) are defined, the most
-interesting induces the character info (@pxref{Info}) to display
-@samp{not as code} for @code{@@minus@{@}} (@code{@@minus@{@}} should not
-used inside @code{@@code} and @code{@@example}). No coloring scheme is
-defined.
-@end vtable
-
-@pindex makeinfo
-At least with @code{makeinfo-4.0}, you do not get accented characters in
-the info file for the corresponding @TeX{}info commands in the
-@file{.texi} file, the @sc{html} output might contain illegal
-``@sc{sgml} entities'' like @code{&140;}.
-
-@pindex texi2html
-At least with @code{texi2html-1.62}, you see accented characters in the
-@sc{html} output for the corresponding @TeX{}info commands in the
-@file{.texi} file, but the output might also contain illegal ``@sc{sgml}
-entities'' like @code{&140;}.
-
-You might want change the conversion between characters and tokens in
-language @code{texi} by changing:
-
-@vtable @code
-@itemx x-symbol-texi-user-table
-Extra entries for the conversion.
-@end vtable
-
-@c ====================================================================
-
-@node External Languages, , TeXinfo Command, Supported Languages
-@comment node-name, next, previous, up
-@section Languages Defined in Other Emacs Packages
-@cindex Foreign Languages
-@cindex External Languages
-@cindex Other Languages
-
-It is no problem for other Emacs packages to define their own token
-language (@pxref{Extending X-Symbol}).
-
-I know of the following package---please check its manual for details.
-
-@itemize @bullet
-@item
-@pindex ProofGeneral
-@cindex Isabelle Symbol
-Package @uref{http://www.proofgeneral.org/,ProofGeneral} defines token
-language ``Isabelle symbol''.
-@end itemize
-
-@c ===========================================================================
-
-@node X-Symbol Internals, Problems, Supported Languages, Top
-@comment node-name, next, previous, up
-@chapter X-Symbol Internals
-@cindex Internals, X-Symbol
-@cindex 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
-@emph{binary package} which contains pre-compiled files. X-Symbol
-developers should use the @emph{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.
-@end menu
-
-@c ====================================================================
-
-@node Char Representation, Defining Charsets, X-Symbol Internals, X-Symbol Internals
-@comment node-name, next, previous, up
-@section Internal Representation of X-Symbol Characters
-@cindex Charsym
-@cindex Leading Character
-@cindex Octet
-@cindex Cstring
-@cindex Mule Character
-
-As mentioned in @ref{Pseudo Language}, most functions do not operate
-on X-Symbol characters directly, they use ``x-symbol charsyms''. These
-charsyms have a symbol property @code{x-symbol-cstring} which points to
-a string, called @dfn{cstring}, containing the X-Symbol character.
-
-@itemize @bullet
-@item
-Under Emacs and XEmacs/Mule, the string only contains the character
-which is a normal Mule character created by @code{make-char}.
-
-@item
-@pindex font-lock
-Under XEmacs/no-Mule, the string only contains the 8bit character if the
-X-Symbol character is a 8bit character according to
-@code{x-symbol-default-coding} (@pxref{Default Coding}). Otherwise, the
-string contains of a @dfn{leading character} (with range @samp{\200} to
-@samp{\237}) and an @dfn{octet}. Package @code{font-lock} is used to
-display them correctly as X-Symbol characters (@pxref{FAQ Strange
-Chars}). E.g., with @samp{\251} is @code{copyright}, we get
-
-@lisp
-(get 'Idotaccent 'x-symbol-cstring)
- @result{} "\235\251"
-@end lisp
-@end itemize
-
-If the character is also a 8bit character in some encoding (@pxref{File
-Coding}), the charsym also has the symbol property
-@code{x-symbol-file-cstrings} for the representation in the file and
-property @code{x-symbol-buffer-cstrings} to recognize character aliases
-(@pxref{Char Aliases}). E.g., under XEmacs/no-Mule, with @samp{\335} is
-@code{Yacute}, @samp{\251} is @code{copyright}, we get
-
-@lisp
-(get 'Idotaccent 'x-symbol-file-cstrings)
- @result{} (iso-8859-9 "\335" iso-8859-3 "\251")
-(get 'Idotaccent 'x-symbol-buffer-cstrings)
- @result{} (iso-8859-9 "\234\335" iso-8859-3 "\235\251")
-@end lisp
-
-The values are plists (@pxref{Property Lists,,,lispref,XEmacs Lisp
-Reference Manual}) 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 @code{x-symbol-tokens} (@pxref{Token Language}) and
-@code{x-symbol-classes} (@pxref{Char Group}):
-
-@lisp
-(get 'Idotaccent 'x-symbol-tokens)
- @result{} (sgml "&#304;" tex "@{\\.I@}")
-(get 'Idotaccent 'x-symbol-classes)
- @result{} (sgml (non-l1) tex (text aletter))
-@end lisp
-
-@c ====================================================================
-
-@node Defining Charsets, Defining Input Methods, Char Representation, X-Symbol Internals
-@comment node-name, next, previous, up
-@section Defining X-Symbol Charsets
-@cindex Cset
-@cindex Charset
-@cindex Final Byte
-
-An X-Symbol charset, called @dfn{cset} in the code and the docstrings,
-handles one font used by package X-Symbol. Each cset must use the
-same char registry@minus{}encoding as the corresponding variables for
-the fonts (@pxref{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.
-
-@lisp
-@group
-(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 ?\;)))
-@end group
-@end lisp
-
-Mule charsets (@pxref{Charsets,,,lispref,XEmacs Lisp Reference Manual})
-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: @samp{:} and
-@samp{;}). The remaining free (reserved by Emacs for users) are
-@samp{>} and @samp{?}, the latter is already used in XEmacs.
-
-For XEmacs/no-Mule, you have to define the leading character (this
-example: @samp{\233}).
-
-@vtable @code
-@item x-symbol-latin1-cset
-@itemx x-symbol-latin2-cset
-@itemx x-symbol-latin3-cset
-@itemx 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
-@ref{File Coding}.
-
-@item x-symbol-xsymb0-cset
-@itemx x-symbol-xsymb1-cset
-Cset definitions using both halves of the fonts where no corresponding
-Mule charset are yet known.
-@end vtable
-
-@c ====================================================================
-
-@node Defining Input Methods, Extending X-Symbol, Defining Charsets, X-Symbol Internals
-@comment node-name, next, previous, up
-@section Defining Input Methods
-@cindex Input Method Internals
-@cindex Internals, Input Method
-@cindex Defining Input Methods
-
-This is probably the hardest section in this manual@dots{}.
-
-@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.
-@end menu
-
-
-@node Input Method Objectives, Intro Char Descriptions, Defining Input Methods, Defining Input Methods
-@comment node-name, next, previous, up
-@subsection Defining Input Methods: Objectives
-@cindex Input Method Objectives
-@cindex Objectives, Input Methods
-@cindex Consistent Input Methods
-
-Input methods should be intuitive. This requires consistency:
-
-@itemize @bullet
-@item
-Characters should be found under the same header in the Grid and in the
-Menu.
-
-@item
-If one character can be modified or rotated to another character
-(@pxref{Input Method Context}), both should stand near to each other in
-the Grid. E.g., since @code{arrowsouthwest} rotates to
-@code{arrowdown}, they stand next to each other.
-
-@item
-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., @code{reflexsubset}
-with key binding @kbd{C-= < _ 2} modifies to @code{reflexsqsubset} with
-key binding @kbd{C-= < _ 3}.
-
-@item
-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.
-
-@item
-It should be possible to load character definitions later on, e.g., when
-new token languages get initialized.
-
-@itemize @minus
-@item
-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
-@samp{1}).
-
-@item
-Also, modifying or rotating a new character to/from old ones should be
-possible without changing the input definitions of the old characters.
-@end itemize
-@end itemize
-
-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 @code{define-key}. The solution is an indirect
-definitions with ``character descriptions''.
-
-
-@node Intro Char Descriptions, Char Descriptions, Input Method Objectives, Defining Input Methods
-@comment node-name, next, previous, up
-@subsection X-Symbol Character Descriptions: Example
-@cindex Character Descriptions, Intro
-@cindex Character Descriptions, Example
-
-As an example for ``character descriptions'', look at the definition of
-@code{longarrowright} in @code{x-symbol-xsymb1-table} (@samp{95} is the
-encoding in the font and not of interest here). Some terms are defined
-in the next section:
-
-@lisp
-@group
-(longarrowright 95
- (arrow) (size big . arrowright) nil ("->" t "-->") (emdash))
-@end group
-@end lisp
-
-With this definition, package X-Symbol automatically defines:
-
-@itemize @bullet
-@item
-Key bindings @kbd{C-= - - >} and @kbd{C-= - > 2}, the latter has suffix
-2, because @kbd{C-= - >} is also ``wanted'' by @code{arrowright} which
-now has the key binding @kbd{C-= - > 1} (the ``score'' of
-@code{longarrowright} is higher, due to @samp{size big}). @xref{Input
-Method Keyboard}.
-
-@item
-@code{arrowright} modifies to @code{longarrowright}, which modifies to
-@code{arrowright}. @xref{Input Method Context}.
-
-@item
-@code{longarrowleft} rotates to @code{longarrowright}, which rotates to
-@code{longarrowboth} (which rotates to @code{longarrowleft}). (The
-``rotate aspects'' are inherited from @code{arrowright}.) @xref{Input
-Method Context}.
-
-@item
-The following contexts can be modified to @code{longarrowright}:
-@samp{-->} or @code{minus1} / @code{endash} / @code{macron} /
-@code{emdash} / @code{hyphen} and @samp{->} (since all define context
-@samp{-}) and @code{emdash} and @samp{>} (since @code{emdash} defines
-context @samp{--}). @samp{->} is used for @code{arrowright}, which has
-a lower score, see above. @xref{Input Method Context}.
-
-@item
-Input method Electric will change context @samp{-->} (is tagged with
-@code{t} in the definition) to @code{longarrowright}, also @code{emdash}
-and @samp{>} (only theoretically, since input method Electric will
-produce @code{emdash} only in @TeX{}'s text mode, and
-@code{longarrowright} only in @TeX{}'s math mode). @xref{Input Method
-Electric}.
-
-@item
-The character will appear in the Grid under the header @samp{Arrow}.
-You will probably recognize that the placement is based on the modify-to
-and rotate-to behavior above. @xref{Input Method Grid}.
-
-@item
-The character will appear in the Menu under one of the headers
-@samp{Arrow @var{n}}". The submenus are sorted alphabetically.
-@xref{Input Method Menu}.
-@end itemize
-
-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@dots{}.
-
-
-@node Char Descriptions, Example Char Descriptions, Intro Char Descriptions, Defining Input Methods
-@comment node-name, next, previous, up
-@subsection Defining Input Methods by Character Descriptions
-@cindex Character Descriptions
-@cindex Aspects of Characters
-@cindex Parent Character
-@cindex Component of Characters
-@cindex Modify Scores
-@cindex Rotate Scores
-@cindex Modify Aspects
-@cindex Rotate Aspects
-@cindex Score of a Character
-@cindex Modify Chain
-@cindex Exclusive Modify Chain
-@cindex Rotate Chain
-@cindex Horizontal Chain
-@cindex Key Chain
-
-Characters are defined with @dfn{character descriptions} which consist
-of different @dfn{aspects} and @dfn{contexts}, which can also be
-inherited from a @dfn{parent} character. All characters which are
-connected with parents, form a @dfn{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 @kbd{M-x hyper-apropos-get-doc})
-of the corresponding charsym, e.g., @code{arrowright}. See also the
-docstrings of @code{x-symbol-init-cset} and @code{x-symbol-init-input}.
-
-Remember, all characters which are connected with parents, form a
-component. @dfn{Contexts} are the contexts of input method Context
-(@pxref{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 @dfn{modify context} of a charsym is the first context.
-
-@vtable @code
-@item x-symbol-rotate-aspects-alist
-Characters in the same component whose aspects only differ by their
-@code{direction} (@code{east},@dots{}), a key in this alist, are
-circularly connected by ``rotate-to''. The sequence in the @dfn{rotate
-chain} is determined by @dfn{rotate scores} depending on the values in
-the @dfn{rotate aspects}. Charsyms with the same ``rotate-aspects'' are
-not connected (charsyms with the smallest modify scores are preferred).
-
-@lisp
-(get 'longarrowright 'x-symbol-rotate-aspects)
- @result{} (-1500 direction east)
-@end lisp
-
-@item x-symbol-modify-aspects-alist
-Characters in the same components whose aspects only differ by their
-@code{size} (@code{big},@dots{}), @code{shape} (@code{round},
-@code{square}@dots{}) and/or @code{shift} (@code{up},
-@code{down},@dots{}), 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 @dfn{modify
-chain} is determined by @dfn{modify scores} depending on the values in
-the @dfn{modify aspects}, the charsym score defined in the definition
-tables and the score of the whole cset (@pxref{Defining Charsets}).
-
-@lisp
-(get 'longarrowright 'x-symbol-score)
- @result{} -3500
-(get 'longarrowright 'x-symbol-modify-aspects)
- @result{} (1500 shift nil shape nil size big)
-@end lisp
-
-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 @dfn{horizontal chain}
-whose charsyms are circularly connected by ``modify-to''.
-
-We build a @dfn{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.
-
-@item x-symbol-key-suffix-string
-If there is only one charsym in the key chain, @kbd{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. @kbd{C-=} plus
-the context plus the suffix inserts the charsym.
-@end vtable
-
-
-@node Example Char Descriptions, Customizing Input Methods, Char Descriptions, Defining Input Methods
-@comment node-name, next, previous, up
-@subsection Defining Input Methods: Example
-@cindex Character Descriptions, Example
-
-@smallexample
-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' -
-@end smallexample
-
-Assuming that all charsyms form one component, we have:
-
-@smallexample
-Rotate chains: (1w,2w)-1e-1n @r{and} 3w-(2e,3e)-2n.
-Modify chains: 1w-2w-3w @r{and} 1e-2w-3w and 1n-2n.
-Horizontal chains: 1e-1w-2e-3e @r{(for modify context @samp{a})}
- 2w-3w @r{(for modify context @samp{b})}
-Key chains: 1e-1w-2e-3e @r{(for context @samp{a})}
- 1e-2w-2e-3w @r{(for context @samp{b})}
- 1n-1w-2n @r{(for context @samp{c})}
- 1n @r{(for context @samp{d})}
-@end smallexample
-
-That makes the following bindings:
-
-@smallexample
-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 @r{(horizontal chain)}
- 2w->3w, 3w->2w @r{(horizontal chain)}
- 1n->2n, 2n->1n @r{(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
-@end smallexample
-
-
-@node Customizing Input Methods, , Example Char Descriptions, Defining Input Methods
-@comment node-name, next, previous, up
-@subsection Customizing Input Methods
-@cindex Customizing Input Methods
-@cindex Input Methods Customization
-
-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.
-
-@vtable @code
-@item x-symbol-group-input-alist
-Defines default scores and bindings for characters of a group
-(@pxref{Char Group}). E.g., the definition (in
-@code{x-symbol-latin1-table})
-
-@lisp
-(aacute 225 (acute "a" Aacute))
-@end lisp
-
-defines @code{aacute} without any explicit contexts, but having the
-group @code{acute} and the subgroup @samp{a}. The default input for the
-group is defined by the following element in this variable:
-
-@lisp
-(acute 0 "%s'" t "'%s")
-@end lisp
-
-That means: 0 is added to the normal ``modify-score'' of the character.
-@samp{%s'} and @samp{'%s} with @samp{%s} substituted by the subgroup,
-i.e., @samp{a'} and @samp{'a}, are the contexts for @code{aacute}. The
-context @samp{'a} is also used for input method Electric since it is
-prefixed by @code{t}.
-
-@item 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 @kbd{C-= @var{key}} to @kbd{C-=
-@var{key} 1}, it is required that the length of the key binding without
-@kbd{C-=} is at least 2.
-@end vtable
-
-@c ====================================================================
-
-@node Extending X-Symbol, Various Internals, Defining Input Methods, X-Symbol Internals
-@comment node-name, next, previous, up
-@section Extending Package X-Symbol
-@cindex Extending 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.
-@end menu
-
-
-@node Extending with Fonts, Input Definitions, Extending X-Symbol, Extending X-Symbol
-@comment node-name, next, previous, up
-@subsection Extending X-Symbol with New Fonts
-@cindex Extending with Fonts
-@cindex Adding Fonts
-@cindex Font Extension
-@cindex Guidelines, Font Extension
-
-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 @samp{CHARSET_REGISTRY} and
-@samp{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, @pxref{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.
-
-@itemize @bullet
-@item
-In La@TeX{} buffers, characters in @samp{$%\@{@}} 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 @code{tex} and @code{utex}.
-
-@item
-In HTML buffers, characters in @samp{&<>} 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 @code{sgml}.
-@end itemize
-
-You have to tell package X-Symbol which fonts to use for the normal
-text, subscripts and superscripts. @xref{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.
-@xref{Defining Charsets}.
-
-
-@node Input Definitions, Font Definition File, Extending with Fonts, Extending X-Symbol
-@comment node-name, next, previous, up
-@subsection Guidelines for Input Definitions
-@cindex Input Definitions, Guidelines
-@cindex Guidelines, Input Definitions
-
-Read section @ref{Defining Input Methods}. Look at the tables in
-@file{x-symbol.el}. Here are some guidelines of how to define the input
-methods for new characters:
-
-@enumerate
-@item
-Define reasonable character groups for new characters, see @ref{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.
-
-@item
-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. @xref{Char Group}.
-
-@item
-If reasonable, define default contexts for characters of a group, see
-@ref{Customizing Input Methods}.
-
-@item
-For the other characters, define contexts by Ascii sequences which look
-similar to the character.
-
-@item
-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 @ref{Char Descriptions}.
-
-@item
-Use aspects to describe the new characters. Add new aspects to
-@code{x-symbol-modify-aspects-alist} and
-@code{x-symbol-rotate-aspects-alist} if necessary (@pxref{Char
-Descriptions}).
-
-@item
-Finish the definition of your font file (@pxref{Font Definition File}),
-load it with @kbd{M-x load-file}, and initialize the input methods,
-e.g., by invoking the grid (@kbd{M-x x-symbol-grid}).
-
-@item
-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.
-
-@enumerate a
-@item
-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.
-
-@item
-Define reasonable scores for newly defined aspects and character groups.
-
-@item
-Finally, fine-tune your definitions by charsym scores in the tables.
-This should be necessary only for a few characters.
-@end enumerate
-@end enumerate
-
-
-@node Font Definition File, Language Extension File, Input Definitions, Extending X-Symbol
-@comment node-name, next, previous, up
-@subsection Elisp File Defining a New Font
-@cindex Font Definition File
-
-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:
-
-@lisp
-(provide 'x-symbol-myfont)
-@group
-(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")))
-@end group
-@group
-(defvar x-symbol-myfont-cset
- '((("xsymb-myfont") ?\200 1000)
- (myfont-left "My font characters, left" 94 63) . nil))
-@end group
-@end lisp
-
-@lisp
-@group
-(defvar x-symbol-myfont-table
- '((longarrownortheast 33 (arrow) (size big . arrownortheast))
- (koerper 34 (setsymbol "K"))
- (circleS 35 (symbol "S") nil nil "SO")))
-@end group
-@group
-(x-symbol-init-cset x-symbol-myfont-cset x-symbol-myfont-fonts
- x-symbol-myfont-table)
-@end group
-@end lisp
-
-Due to an XEmacs bug with char syntax @code{inherit}, you should also
-add the following line to files @file{x-symbol-xmas20.el} and
-@file{x-symbol-xmas21.el}:
-
-@lisp
- (modify-syntax-entry ?\200 "\\" (standard-syntax-table))
-@end lisp
-
-
-@node Language Extension File, Language Definition File, Font Definition File, Extending X-Symbol
-@comment node-name, next, previous, up
-@subsection Elisp File Extending a Token Language
-@cindex Language Definition File
-
-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 @code{utex} inherits most
-variables from @code{tex}, see @file{x-symbol-utex.el}.
-
-A language must define variables for all language aspects, see
-@ref{Language Internals}. Our example defines a language @code{mytex}
-using the additional characters from @ref{Font Definition File}.
-
-First, you have to register the language in a startup file:
-
-@lisp
-(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)
-@end lisp
-
-The language definition file should look like (leaving out most parts
-which are similar to the ones in @file{x-symbol-utex.el}):
-
-@lisp
-(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)
-@end lisp
-
-@lisp
-(defvar x-symbol-mytex-user-table nil)
-@group
-(defvar x-symbol-mytex-myfont-table
- '((longarrownortheast (math arrow user) "\\longnortheastarrow")
- (koerper (math letter user) "\\setK")
- (circleS (math ordinary amssymb) "\\circledS")))
-@end group
-@group
-(defvar x-symbol-mytex-table
- (append x-symbol-mytex-user-table
- '(nil)
- x-symbol-mytex-myfont-table
- x-symbol-tex-table))
-@end group
-@end lisp
-
-It is important that you do not define a variable for the language
-access @code{x-symbol-font-lock-keywords}, but rather use the variable
-of the parent language directly, see @ref{Language Internals}.
-
-During the testing phase, you should probably leave out the
-@samp{'(nil)} which prevents warnings about redefinitions for the
-following elements.
-
-
-@node Language Definition File, , Language Extension File, Extending X-Symbol
-@comment node-name, next, previous, up
-@subsection Elisp File Defining a New Token Language
-@cindex Language Definition File
-
-You might also want to define a new token language not based on another
-language.
-
-As an example, consider a token language ``My Unicode'' (@code{myuc})
-for buffers with major mode @code{myuc-mode}. Thus, we register the
-language by:
-
-@lisp
-(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)
-@end lisp
-
-Each token if language @code{myuc} consists of @samp{#} 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 @samp{#} is represented by the token @code{##}. 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
-(@file{x-symbol-myuc.el}) is included in the source distribution of
-package X-Symbol.
-
-@lisp
-(provide 'x-symbol-myuc)
-(defvar x-symbol-myuc-required-fonts nil)
-(defvar x-symbol-myuc-modeline-name "myuc")
-@group
-(defvar x-symbol-myuc-class-alist
- '((VALID "My Unicode" (x-symbol-info-face))
- (INVALID "no My Unicode" (red x-symbol-info-face))))
-@end group
-(defvar x-symbol-myuc-font-lock-keywords nil)
-(defvar x-symbol-myuc-image-keywords nil)
-@dots{}
-@end lisp
-
-@lisp
-(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)
-@end lisp
-
-@lisp
-@group
-(defun x-symbol-myuc-default-token-list (tokens)
- (list (format "#%X" (car tokens))))
-@end group
-(defvar x-symbol-myuc-token-list 'x-symbol-myuc-default-token-list)
-(defvar x-symbol-myuc-user-table nil)
-@group
-(defvar x-symbol-myuc-xsymb0-table
- '((alpha () 945) (beta () 946)))
-@end group
-@group
-(defvar x-symbol-myuc-table
- (append x-symbol-myuc-user-table x-symbol-myuc-xsymb0-table))
-@end group
-@dots{}
-@end lisp
-
-@c ====================================================================
-
-@node Various Internals, Design Alternatives, Extending X-Symbol, X-Symbol Internals
-@comment node-name, next, previous, up
-@section Various Internals
-
-@menu
-* Tagging Insert Commands:: Don't break input methods Token and Electric.
-* Avoiding Flickering:: Moving cursor in invisible commands.
-@end menu
-
-
-@node Tagging Insert Commands, Avoiding Flickering, Various Internals, Various Internals
-@comment node-name, next, previous, up
-@subsection Tagging Insert Commands for Token and Electric
-@cindex Insert Commands, Tagging
-@cindex Tagging Insert Commands
-@cindex Recognizing Insert Commands
-
-Input methods Token (@pxref{Input Method Token}) and Electric
-(@pxref{Input Method Electric}) stop their auto replacement if you use a
-command which is not an insert command.
-
-@ftable @code
-@item self-insert-command
-@itemx newline
-@itemx newline-and-indent
-@itemx reindent-then-newline-and-indent
-@itemx tex-insert-quote
-@itemx TeX-insert-quote
-@itemx TeX-insert-punctuation
-@itemx TeX-insert-dollar
-@itemx sgml-close-angle
-@itemx sgml-slash
-These commands and commands aliased to these are recognized as input
-commands by having a non-@code{nil} value of its symbol property
-@code{x-symbol-input}.
-@end ftable
-
-
-@node Avoiding Flickering, , Tagging Insert Commands, Various Internals
-@comment node-name, next, previous, up
-@subsection Avoiding Hide/Show-Invisible Flickering
-@cindex Avoiding Flickering
-@cindex Flickering, Invisible
-@cindex Invisible Flickering
-
-Starting a command makes a previously revealed super- or subscript
-command (@pxref{Super and Subscripts}) invisible again. Repeatedly
-invoking commands which moves the point just by a small amount can lead
-to some flickering.
-
-@ftable @code
-@item forward-char
-@itemx forward-char-command
-@itemx backward-char
-@itemx 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 (@code{1+} and @code{1-}) as the value of its symbol property
-@code{x-symbol-point-function} which returns the position ``after'' when
-called with the position ``before''.
-@end ftable
-
-@c ====================================================================
-
-@node Design Alternatives, Language Internals, Various Internals, X-Symbol Internals
-@comment node-name, next, previous, up
-@section 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.
-@end menu
-
-
-@node Alt Token Representations, Alt Global Mode, Design Alternatives, Design Alternatives
-@comment node-name, next, previous, up
-@subsection Alternative Token Representations
-@cindex Alternative Token Representations
-@cindex Token Representation, Alternatives
-
-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 @ref{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:
-
-@itemize @bullet
-@item
-The editing commands would work on the tokens which are invisible for
-the user.
-
-@item
-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!
-
-@item
-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 @code{lazy-shot}!
-@end itemize
-
-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:
-
-@itemize @bullet
-@item
-You cannot adopt @sc{sgml} to this approach.
-
-@item
-You cannot read normal La@TeX{} files directly, you do not write normal
-La@TeX{} files.
-
-@item
-You would have different @TeX{} versions: one for X-Symbol with Emacs
-and XEmacs/Mule, one with XEmacs/no-Mule.
-
-@item
-If you are not an extremely good @TeX{} hacker, it would be impossible
-to adopt this approach to support more than 256 characters.
-@end itemize
-
-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:
-
-@itemize @bullet
-@item
-Problems with current search/replace commands.
-
-@item
-Problems with the current version of @code{font-lock} (it should @emph{never}
-overwrite the font property for this character, even if the character
-matches some @var{match} in @code{font-lock-keywords} and
-@var{overwrite} is non-@code{nil}). This gets even more difficult with
-superscripts/subscripts.
-
-@item
-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., @code{\leftrightarrow} and @code{\approx}
-would be delimiters.
-
-@item
-Needs pre/post-conversion in lisp when using executables for the conversion.
-@end itemize
-
-
-@node Alt Global Mode, Alt Auto Conversion, Alt Token Representations, Design Alternatives
-@comment node-name, next, previous, up
-@subsection Alternative Ways to Turn on X-Symbol Globally
-@cindex Alternative Global Mode
-@cindex Global Mode, Alternatives
-@cindex Turn on Globally, Alternatives
-
-This package hooks itself into @code{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:
-
-@itemize @bullet
-@item
-The installation is more complicated.
-
-@item
-Local variables in files are not yet processed (this was the main reason
-not to do it this way).
-@end itemize
-
-Another possibility would be to hook X-Symbol into
-@code{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 @code{find-file-hooks},
-especially with the function hooked in by @code{font-lock}.
-
-
-@node Alt Auto Conversion, , Alt Global Mode, Design Alternatives
-@comment node-name, next, previous, up
-@subsection Alternative Auto Conversion Methods
-@cindex Alternative Auto Conversion
-@cindex Auto Conversion, Alternatives
-
-@vindex hack-local-variables-hook
-@vindex after-insert-file-functions
-@vindex write-region-annotate-functions
-Without package @code{crypt}, this package automatically decodes tokens
-when turning on the minor mode (in @code{hack-local-variables-hook},
-@pxref{Alt Global Mode}) or in @code{after-insert-file-functions}. This
-package automatically encodes characters in
-@code{write-region-annotate-functions}. The disadvantage is that the
-possibility to change buffers in @code{write-region-annotate-functions}
-is not official (@pxref{Wishlist Emacs}), i.e., not mentioned in the
-docstring (only mentioned for corresponding encode-functions of package
-@code{format} which use a similar loop in the C code).
-
-@vindex write-file-hooks
-With package @code{crypt}, this package automatically decodes tokens
-when turning on the minor mode. This package automatically encodes
-characters in @code{write-file-hooks}. The disadvantage is that the
-encoding is slower (use @code{jka-compr} instead @code{crypt}) and the
-problem with @code{vc-next-action} (@pxref{Spurious Encodings}).
-
-@vindex write-file-data-hooks
-Without package @code{crypt}, Version 2.6 of this package automatically
-encoded characters in @code{write-file-data-hooks}. The advantage was
-that changing buffers there is official, the disadvantage is that it is
-also more complicated.
-
-@pindex format
-A totally different method would be to use package @code{format}.
-Unfortunately, this is not really possible, since a @var{regexp} in
-@code{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 @code{jka-compr}
-and @code{crypt}.
-
-@c ====================================================================
-
-@node Language Internals, Misc Internals, Design Alternatives, X-Symbol Internals
-@comment node-name, next, previous, up
-@section Language Internals
-@cindex Language Internals
-@cindex Token Language Internals
-@cindex Internals, Languages
-@cindex Registered Languages
-@cindex Loaded Language
-@cindex Initialized Language
-@cindex Language Access
-@cindex Accessing Language Depending Variables
-
-In order to use a token language or accessing one of the language
-dependent values, the following conditions must be met:
-
-@itemize @bullet
-@item
-The language must be @dfn{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
-@code{x-symbol-language}.
-
-@ftable @code
-@item 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.
-@end ftable
-
-@item
-The file providing the language must have been @dfn{loaded}. This will
-be done automatically when the language is initialized. Customizing
-X-Symbol will also load the language files.
-
-@item
-The language must be @dfn{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 (@pxref{Input Method
-Grid}), you should initialize the language explicitly, e.g., by the
-following command:
-
-@table @kbd
-@item M-x x-symbol-init-language-interactive
-@findex x-symbol-init-language-interactive
-Initialized a token language if it is not already initialized.
-@end table
-@end itemize
-
-Language dependent values are accessed by language accesses:
-
-@table @code
-@item x-symbol-language-value
-@findex 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
-@code{x-symbol-name}. With a simplified expansion, we get
-
-@lisp
-(x-symbol-language-value 'x-symbol-name 'tex)
- @expansion{} (symbol-value (get 'tex 'x-symbol-name))
- @result{} (symbol-value 'x-symbol-tex-name)
- @result{} "TeX macro"
-@end lisp
-
-@item x-symbol-language-access-alist
-@vindex x-symbol-language-access-alist
-List of all language accesses. A token language @emph{must} define all
-variables accessed by language accesses. A @dfn{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 @code{utex},
-the language access @code{x-symbol-font-lock-keywords}, should point
-directly to the variable of the parent language (here @code{tex}), see
-file @file{x-symbol-utex.el}.
-@end table
-
-
-@c Hi, X-Symbol's interna have changed considerably with v4.3.1-alpha. For
-@c token languages to work with new versions of X-Symbol, it is important
-@c to define some new language accesses (you
-@c can also delete some if you do not want X-Symbol backward compatiblity)
-
-@c The reason for the change is:
-
-@c * more general ways to define the "grammar" of tokens, also useful for
-@c ProofGeneral's languages, see below.
-@c * faster conversion (I also dropped the support of executables)
-
-
-@c As an example, let's look at x-symbol-texi.el):
-
-@c The following vars must now be defined (value nil...)
-
-@c (defvar x-symbol-texi-generated-data nil)
-
-@c Now the interesting part:
-
-@c (defvar x-symbol-texi-token-grammar
-@c '(x-symbol-make-grammar
-@c :encode-spec '(?@)
-@c :decode-regexp
-@c "@\\(?:[A-Za-z]+{[A-Za-z]?}\\|[{}]\\|[~^\"'`][A-Za-z]\\|,{[A-Za-z]}\\)"
-@c :decode-spec '(?@))
-@c "Token grammar for language `texi'.")
-
-@c (defvar x-symbol-texi-input-token-grammar
-@c '("@\\(?:[A-Za-z]+{[A-Za-z]?}\\|[{}]\\|[~^\"'`][A-Za-z]\\|,{[A-Za-z]}\\)\\'"
-@c ?@)
-@c "Grammar of input method Token for language `texi'.")
-
-@c In short, not too difficult if the token grammar is regular (even
-@c simpler for SGML entities). The good news: powerful enough for
-@c irregular token grammar which couldn't be defined with previous versions
-@c of X-Symbol.
-
-@c The conversion now works as follows:
-
-@c 1. decode (token->char): search for regexp, then decode match except if
-@c context is "bad".
-@c 2. encode (char->token): search for non-ascii/8bit, then encode match.
-@c Surround by spaces if context is "bad".
-
-@c The "token grammar" is simply a definition of the regexp and the bad
-@c contexts, which can be different for different "shapes" of the token.
-@c A special BEFORE context is the escape character: this character may
-@c appear exactly even times before the token; it will be used for
-@c all shapes.
-
-@c Lets assume a language "Isabelle Symbol" plus symbols for identifiers
-@c and operators (see below for lisp coding):
-
-@c shape nil: \<NAME>
-@c shape id: [A-Za-z_][A-Za-z_0-9]+
-@c shape op: [<>!+-*/|&]+
-
-@c To make the conversion fast, the shape must be given at definition time,
-@c i.e., the init must get tokens in the form (TOKEN . SHAPE).
-@c Either per hand or computed via function in language access
-@c x-symbol-token-list...
-
-@c The decode-regexp must match all tokens and:
-
-@c a. should be specific enough to make the conversion fast
-@c b. must be general enough to match strings which should not be
-@c considered to contain a token even if a substring is a token (to
-@c avoid excessive context checking)
-
-@c In our example, the regexp would be something like
-
-@c "\\\\<[A-Za-z]+>\\|[A-Za-z_][A-Za-z_0-9]+\\|[<>!+-*/|&]+"
-
-@c No bad context has to be defined for decoding since the regexp is
-@c general enough.
-
-@c For encoding, we have to define the following bad contexts (no context
-@c can be defined for shape nil):
-
-@c shape id: BEFORE: [A-Za-z_0-9], AFTER: [A-Za-z_0-9]
-@c shape op: BEFORE: [<>!+-*/|&], AFTER: [<>!+-*/|&]
-
-@c BEFORE is a regexp used via `string-match' with the character before the
-@c character to encode; if it matches, we put a space before the token for
-@c the character. AFTER is a regexp used with `looking-at' with point
-@c after the character. We would put a space after the token.
-
-@c There is probably no escape char defined for Isabelle Symbols (i.e.,
-@c "\\" is no token).
-
-@c The input-token-grammar is very similar to the decode-grammar: the
-@c regexp should end with \\' such that only matches ending at point will
-@c get replaced, and we should define a bad context (which will be
-@c tried to match against `last-command-char').
-
-@c This makes the grammar below.
-
-@c Hope this helps,
-@c - Christoph
-
-
-@c (defvar x-symbol-xisa-token-grammar
-@c '(x-symbol-make-grammar
-@c :encode-spec '(((id . "[A-Za-z_0-9]") (op . "[<>!+-*/|&]")) .
-@c ((id . "[A-Za-z_0-9]") (op . "[<>!+-*/|&]")))
-@c :decode-spec nil
-@c :decode-regexp "\\\\<[A-Za-z]+>\\|[A-Za-z_][A-Za-z_0-9]+\\|[<>!+-*/|&]+"
-@c :token-list #'x-symbol-xisa-default-token-list))
-
-@c (defvar x-symbol-xisa-input-token-grammar
-@c '(("\\(?:\\\\<[A-Za-z]+>\\|[A-Za-z_][A-Za-z_0-9]+\\|[<>!+-*/|&]+\\)\\'")
-@c ((id . "[A-Za-z_0-9]") (op . "[<>!+-*/|&]"))
-@c (id . "[A-Za-z_0-9]") (op . "[<>!+-*/|&]")))
-
-@c (defun x-symbol-xisa-default-token-list (tokens)
-@c (mapcar (lambda (x)
-@c (cons x (cond ((string-match "\\`[A-Za-z_][A-Za-z_0-9]+\\'" x) 'id)
-@c ((string-match "\\`[<>!+-*/|&]+\\'" x) 'op))))
-@c tokens))
-
-@c (defun x-symbol-xisa-table
-@c '((product () "\\<Prod>")
-@c (longarrowright () "-->")
-@c (alpha () "alpha")))
-
-
-@c ====================================================================
-
-@node Misc Internals, , Language Internals, X-Symbol Internals
-@comment node-name, next, previous, up
-@section Miscellaneous Internals
-
-TODO. This is currently just a collection of unrelated stuff.
-
-@c was in "Char Group
-Characters might also define a @dfn{subgroup} which is a string defining
-some order on characters in the same group (@pxref{Char Group}) and is
-also used for default contexts/bindings (@pxref{Customizing Input
-Methods}).
-
-@vtable @code
-@item x-symbol-group-syntax-alist
-Lists all valid character groups. Under Emacs and XEmacs/Mule, this
-list also determines the syntax of characters.
-@end vtable
-
-The character group could probably also be used to define character
-categories if they are implemented in XEmacs.
-
-@c ===========================================================================
-
-@node Problems, History, X-Symbol Internals, Top
-@comment node-name, next, previous, up
-@chapter Problems, Troubleshooting
-@cindex Problems
-@cindex Troubleshooting
-@cindex Annoyances
-@cindex Bugs
-
-This section is based on a successful installation of package X-Symbol.
-@xref{Checking Installation}.
-
-@menu
-* Nomule Problems:: X-Symbol provides a @emph{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.
-@end menu
-
-@c ===========================================================================
-
-@node Nomule Problems, Spurious Encodings, Problems, Problems
-@comment node-name, next, previous, up
-@section Problems under XEmacs/no-Mule
-@cindex Nomule Problems
-@cindex @code{transpose-chars} Problems
-@cindex Replace Problems
-@cindex Rectangle Problems
-@cindex Abbrev Problems
-@cindex Invisible Point
-@cindex Parenthesis Problems
-@cindex Fill Problems
-
-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 ``@emph{poor} man's Mule'', see
-@ref{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):
-
-@itemize @bullet
-@item
-If @code{font-lock} is not prepared to display these two-character
-sequences, i.e., if you installation is incomplete (@pxref{Role of
-font-lock}), they look like @samp{\233a} instead @code{alpha}.
-
-@item
-Commands which add more than one entry to the @code{buffer-undo-list}
-and involve X-Symbol characters might lead to strange results,
-e.g. @kbd{C-t} (@code{transpose-chars}) with point between character
-@code{alpha} and @samp{b}, leads to @code{beta}@samp{a}. Simple
-deletion and insertion works OK, though.
-
-@item
-Selecting or inserting a rectangle with X-Symbol characters on the left
-or right margin might not work properly.
-
-@item
-Be careful with @kbd{M-%} (@code{query-replace}): the first character of
-@var{from-string} can probably match the second of the two ``internal''
-characters of an X-Symbol character.
-
-@item
-If you use @kbd{C-x '} (@code{expand-abbrev}) without @kbd{M-'}
-(@code{abbrev-prefix-mark}) and the last word before point starts
-directly after a X-Symbol character, @kbd{C-x '} could behave strange:
-
-@itemize @minus
-@item
-If @code{words-include-escapes} is @code{t}, there will be no expansion.
-
-@item
-If @code{words-include-escapes} is @code{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.
-@end itemize
-
-@item
-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 (@kbd{C-g}).
-Unfortunately, XEmacs (as opposed to Emacs) does not run the hooks in
-@code{post-command-hook} in these cases. Solution: move point right
-(@kbd{C-f}).
-
-@item
-If you provide prefix arguments to commands, they are likely to consider
-just ``internal'' characters. E.g., @kbd{C-u 2 C-f} before @code{alpha}
-behaves like @kbd{C-f}.
-
-@item
-Column position considers ``internal'' characters, e.g., @kbd{C-n} might
-jump to an unexpected position (well, typically just one character
-left/right from the expected position, if at all).
-
-@item
-Auto-filling also considers ``internal'' characters, i.e., might break
-the line too early.
-
-@item
-There are no syntax definitions for the new characters, e.g.,
-@kbd{M-C-f} before @code{floorleft} does not move to the closing
-@code{floorright}.
-
-@item
-In some cases, e.g., when using the minibuffer for input via @kbd{M-%}
-or @kbd{C-s}, the internal representation of X-Symbol characters
-(@pxref{Char Representation}) are displayed directly (@pxref{FAQ Strange
-Chars})
-@end itemize
-
-@c ====================================================================
-
-@node Spurious Encodings, No Encoding, Nomule Problems, Problems
-@comment node-name, next, previous, up
-@section Spurious Encodings
-@cindex Spurious Encodings
-@cindex Version Control Problems
-@cindex @code{write-file} Problems
-@cindex @code{vc} Problems
-@cindex Revert Buffer Problems
-
-@pindex vc
-In rare cases, some commands (mostly from package @code{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.
-
-@itemize @bullet
-@item
-@pindex crypt
-Doing the next logical version control operation (@kbd{C-x v v} and
-friends) encode characters to tokens when using package @code{crypt}.
-
-Solution: use package @code{jka-compr} instead @code{crypt} (this is
-recommended anyway, @pxref{File IO Packages}). Or kill the buffer and
-revisit the file.
-
-@item
-@pindex auctex
-When using Auc@TeX{} with its default-mode algorithm, getting rid of the
-recently checked-in version of a file without reverting the buffer
-afterwards (@kbd{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 @samp{\233a}.
-
-Explanation: when using Auc@TeX{}'s @code{TeX-default-mode}, the final
-@code{major-mode} is different from the initial @code{major-mode}
-deduced using @code{auto-mode-alist}. If this is the case, the VC
-command executes @code{normal-mode} which kills all local-variables
-including turning-off @code{x-symbol-mode}.
-
-Solution: Turn on X-Symbol mode or change @code{auto-mode-alist} to
-directly choose @code{latex-mode}:
-
-@lisp
-(push '("\\[tT]e[xX]\\'" . latex-mode) auto-mode-alist)
-@end lisp
-
-@item
-@findex write-file
-@vindex change-major-mode-with-file-name
-When using Auc@TeX{} with its default-mode algorithm, writing a La@TeX{}
-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
-Auc@TeX{}'s @code{TeX-default-mode}, we get the problems as described in
-the previous item.
-
-Solution: Set @code{change-major-mode-with-file-name} to @code{nil} or
-use the solution from the previous item.
-@end itemize
-
-@c ====================================================================
-
-@node No Encoding, FAQ, Spurious Encodings, Problems
-@comment node-name, next, previous, up
-@section The Encoding Does Not Work
-@cindex No Encoding
-@cindex @code{write-region} Problems
-
-In a rare case, X-Symbol cannot do its encoding, i.e., convert the
-characters to tokens.
-
-@itemize @bullet
-@item
-@findex write-region
-@pindex crypt
-@vindex write-file-hooks
-@kbd{M-x write-region} fails to do the encoding if you use package
-@code{crypt}.
-
-Explanation: with package @code{crypt}, the encoding has to be done by a
-function in @code{write-file-hooks} which is not used by
-@code{write-region}.
-
-Solution: use package @code{jka-compr} instead @code{crypt} (this is
-recommended anyway, @pxref{File IO Packages}). Or visit the region file
-and save it again via @kbd{C-x C-s}.
-@end itemize
-
-
-@c ===========================================================================
-
-@node FAQ, Bug Reports, No Encoding, Problems
-@comment node-name, next, previous, up
-@section Frequently Asked Questions
-@cindex Frequently Asked Questions
-@cindex FAQ X-Symbol
-
-It is assumed that you had successfully installed package X-Symbol, see
-@ref{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 @code{hyphen} from @samp{-}.
-* FAQ Spell Check:: I have problems with spell-checking.
-@end menu
-
-
-@node FAQ XEmacs Core, FAQ font-lock, FAQ, FAQ
-@comment node-name, next, previous, up
-@subsection XEmacs Crashes when using Input Method Token
-@cindex XEmacs Core
-@cindex Core XEmacs
-@cindex Crash XEmacs
-@cindex 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
-@ref{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
-@code{x-symbol-xmas-warn-about-core} to @code{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 @emph{newest} version of XEmacs (please put me in
-the CC).
-
-
-@node FAQ font-lock, FAQ Strange Chars, FAQ XEmacs Core, FAQ
-@comment node-name, next, previous, up
-@subsection X-Symbol's Fontification does Not Work
-@pindex font-lock
-@cindex No fontification
-@cindex @code{font-lock} Problems
-
-In this case, super- and subscripts are not properly displayed
-(@pxref{FAQ No Subscripts}) and under XEmacs/no-Mule, the buffer
-contains s.th. like @samp{\233a} (@pxref{FAQ Strange Chars}).
-Possible causes:
-
-@itemize @bullet
-@findex x-symbol-fontify
-@item
-You have turned off @code{font-lock} or @code{font-lock} is out of sync.
-Use @kbd{M-x x-symbol-fontify}. @xref{Role of font-lock}.
-
-@item
-The font-lock keywords of the current buffer are not prepared to display
-X-Symbol characters. @xref{Role of font-lock}.
-
-@item
-@vindex fast-lock-save-faces
-You use package @code{fast-lock}. Solution: set
-@code{fast-lock-save-faces} to @code{nil} (done by default
-installation).
-
-@item
-You use some version control commands. You have probably noticed that
-these versions control commands also turn off @code{font-lock} in modes
-where you don't use X-Symbol, i.e., this is not a problem of package
-X-Symbol. @pxref{Wishlist Emacs} and @ref{Spurious Encodings}.
-@end itemize
-
-
-@node FAQ Strange Chars, FAQ No Subscripts, FAQ font-lock, FAQ
-@comment node-name, next, previous, up
-@subsection The Buffer Contains Strange Characters
-@cindex Strange Characters
-@cindex Funny Characters
-@cindex Character Problems
-@cindex Escape Character Problems
-@pindex Mathematica
-
-If you see s.th. like @samp{\233a}, you see the internal representation
-of X-Symbol characters under XEmacs/no-Mule (@pxref{Char
-Representation}) directly. Possible causes:
-
-@itemize @bullet
-@item
-You have @code{font-lock} problems, see @ref{FAQ font-lock}.
-
-@item
-More complicated editing commands like @kbd{C-t} may produce strange
-character sequences which do not represent X-Symbol characters, see
-@ref{Nomule Problems}.
-
-@item
-In some cases, e.g., when using the minibuffer for input via @kbd{M-%}
-or @kbd{C-s}, it would be too much work to fontify these character
-sequences in order to display proper X-Symbol characters. @xref{Nomule
-Problems}.
-@end itemize
-
-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 @code{adobe-fontspecific}, but in fact
-uses another encoding. E.g., Mathematica's fonts cause the characters
-intersection and union to mix up. Possible solutions:
-
-@itemize @bullet
-@item
-Delete that font from the font path. Maybe moving it at the end also
-works.
-
-@item
-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
-
-@lisp
-(setq face-ignored-fonts '("\\`-wri-math1"))
-@end lisp
-
-@item
-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.
-@end itemize
-
-
-@node FAQ No Subscripts, FAQ Stupid Subscripts, FAQ Strange Chars, FAQ
-@comment node-name, next, previous, up
-@subsection I Cannot See any/some Super- or Subscripts
-@cindex No Subscripts
-@cindex Subscript Problems
-@cindex Superscript Problems
-
-If you cannot select @samp{Super-/Subscripts} in the menu, the first of
-the following points is more likely the cause, the others otherwise.
-
-@itemize @bullet
-@item
-You have @code{font-lock} problems, see @ref{FAQ font-lock}.
-
-@item
-There are cases where super- and subscripts are not displayed, see
-@ref{Super and Subscripts}.
-
-@item
-The argument in braces are not correctly recognized, since the
-@code{font-lock} syntax-table is not correct. It should include
-@samp{@{} as the only open parenthesis and @samp{@}} 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
-@code{font-lock} package, but would require other changes there,
-therefore not likely to be fixed. Fortunately, this does not happen
-often.
-@end itemize
-
-
-@node FAQ Stupid Subscripts, FAQ Font Size, FAQ No Subscripts, FAQ
-@comment node-name, next, previous, up
-@subsection I See Super- and Subscripts where I Don't Want Them.
-@pindex font-lock
-@pindex font-latex
-@cindex Stupid Subscripts
-@cindex Annoying Subscripts
-@cindex Label Subscripts
-@cindex Subscript Problems
-@cindex Superscript Problems
-
-E.g., I see a subscript in arguments of @code{\label}. Package X-Symbol
-only uses super- and subscripts if they are in braces, if the
-@code{asciicircum}/@code{underscore} has not been fontified yet or is
-only fontified with faces which are allowed by
-@code{x-symbol-tex-font-lock-allowed-faces}, see @ref{Super and
-Subscripts}.
-
-@itemize @bullet
-@item
-You use the default @code{tex-font-lock-keywords}: The argument of
-@code{\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 @code{font-latex}, see below.
-
-@item
-You use package @code{font-latex}. Solution: set
-@code{font-lock-maximum-decoration} to value @code{t}, 2 or higher.
-Package X-Symbol will still use subscripts in @code{\verb}, in the
-@code{verbatim} environment, in the argument of @code{\includegraphics}
-and probably other commands. Some of these problems will probably be
-solved by future versions of @code{font-latex}.
-
-@item
-You use my font-lock keywords (file @file{x-font-lock.el}): everything
-should work fine. Please note that this file is not meant to be a
-replacement of @file{font-latex.el} useful to all users. Also,
-highlighting is a matter of taste, i.e., I am not going to change the
-@file{x-font-lock.el} to support La@TeX{}-2.09, @TeX{}'s math regions,
-other likings, etc.
-
-@item
-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.
-@end itemize
-
-
-@node FAQ Font Size, FAQ Conversion, FAQ Stupid Subscripts, FAQ
-@comment node-name, next, previous, up
-@subsection The Characters are Too Small or Too Big
-@cindex Font Size
-@cindex Big Characters
-@cindex Small Characters
-
-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). @emph{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 (@pxref{Info}) that you actually
-get the correct letter---they are just of different sizes.
-@xref{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.
-
-
-@node FAQ Conversion, FAQ Additional Spaces, FAQ Font Size, FAQ
-@comment node-name, next, previous, up
-@subsection The Conversion Changes Some Tokens
-@cindex Token Changes
-@cindex Conversion Problems
-@cindex Encoding Problems
-
-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. @xref{Unique Decoding}.
-
-@itemize @bullet
-@item
-Solution: Do not redefine standard @TeX{} macros or use unique decoding.
-@end itemize
-
-
-@node FAQ Additional Spaces, FAQ 8bit Chars, FAQ Conversion, FAQ
-@comment node-name, next, previous, up
-@subsection A Space is Added During the Encoding
-@cindex Additional Spaces
-@cindex Token Problems
-@cindex Encoding Problems
-@cindex Space Problems
-
-A space is added after some characters during the encoding to tokens.
-With token languages @code{tex} and @code{utex} (not with language
-@code{sgml}), there must be a space after the token to recognize its end
-in some cases.
-
-E.g., if your buffer contains @samp{a+b} (where + stands for the
-character @code{circleplus}), this is encoded to @samp{a\oplus b} (note
-the space after @code{\oplus}). Decoding it yields @samp{a+ b}.
-
-I admit, this looks ugly. The space is only added if the symbol
-character is followed by a letter or by @samp{@@}. Thus, decoding
-@samp{a\oplus\beta} yields @samp{a+b} (without space!).
-
-@itemize @bullet
-@item
-Suggestion: Also use a space before @code{\oplus}. The alternative
-would be to delete the space which other people won't like.
-@end itemize
-
-@xref{TeX Macro Conversion} for an exact description.
-
-
-@node FAQ 8bit Chars, FAQ Hyphen, FAQ Additional Spaces, FAQ
-@comment node-name, next, previous, up
-@subsection I Don't Want 8bit Characters in the File
-@cindex 8bit Character Problems
-@cindex No 8bit Characters
-
-By default, these are not encoded if the buffer-local variable
-@code{x-symbol-8bits} is non-@code{nil}.
-
-By default, this variable is only set to non-@code{nil}, if something like
-
-@example
-\usepackage[latin1]@{inputenc@}
-@end example
-
-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.
-@xref{File Coding}. Note: commenting the line is not enough! (I do not
-run La@TeX{} to check for the line, I just do plain text search.)
-
-
-@node FAQ Hyphen, FAQ Spell Check, FAQ 8bit Chars, FAQ
-@comment node-name, next, previous, up
-@subsection I Cannot Distinguish Character @code{hyphen} from @samp{-}
-@cindex Hyphen Versus Minus
-@cindex Minus Versus Hyphen
-
-In most fonts, the Latin character @code{hyphen} cannot be distinguish
-from the Ascii character @samp{-}. If you do not want to decode the
-corresponding token @code{\-} or @code{&shy;}, put the following into
-your @file{~/.emacs}:
-
-@lisp
-(setq x-symbol-tex-user-table '((hyphen)))
-(setq x-symbol-sgml-user-table '((hyphen)))
-@end lisp
-
-A better alternative would be to make @code{font-lock} display these
-character in a different color.
-
-
-@node FAQ Spell Check, , FAQ Hyphen, FAQ
-@comment node-name, next, previous, up
-@subsection Problems with Spell-checking
-@cindex Spell Checking
-@pindex ispell
-@findex ispell-word
-@findex ispell-region
-
-As explained in @ref{Miscellaneous Packages}, @code{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 @code{ispell-word} and
-@code{ispell-region}. Possible symptoms:
-
-@itemize @bullet
-@item
-A word which contains letters which the program @code{ispell} does not
-know about is either not spell-checked or parts of it are spell-checked
-as independent words.
-
-Solution: Use the @code{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
-@code{oe} if you use a Latin-1 encoding.
-
-@item
-Spell-checking might stop with the error message @samp{Ispell
-misalignment}. I can reproduce this only with Emacs, not with XEmacs.
-
-Question: If you know some settings (like for
-@code{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 @code{flyspell}.
-@end itemize
-
-The real solution would be to fix @code{ispell}, at least by providing a
-useful hook which allows X-Symbol to fix the problem. @xref{Wishlist
-Emacs}. You are strongly encouraged to send a patch to the maintainer
-of @code{ispell}, you even get a paragraph here in
-@ref{Acknowledgments}!
-
-@c ===========================================================================
-
-@node Bug Reports, , FAQ, Problems
-@comment node-name, next, previous, up
-@section How to Send a Bug/Problem Report
-@cindex Bug Reports
-@cindex Problem Reports
-@cindex Contacting the Maintainer
-@cindex Maintainer Address
-@cindex Email to the Maintainer
-@cindex Reports of Bugs
-
-Bug fixes, bug/problem reports, improvements, and suggestions are
-strongly appreciated. So are corrections to this manual (better
-explanations, correcting my English, @dots{}). Especially useful would be
-some feedback by people using default fonts with a charset
-registry-encoding other than @code{iso8859-1} (Western encoding).
-
-Please read this section carefully, even if you generally know how to
-send a bug report (@pxref{Bugs,,,xemacs,XEmacs User's Manual}).
-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:
-
-@enumerate
-@item
-Make sure that you use the @strong{newest version} of X-Symbol. You are
-reading Edition 4.4.5 of the manual for X-Symbol
-4.4.5.
-
-@item
-Read the manual, especially @ref{Checking Installation}, @ref{Problems}
-and @ref{FAQ}. The four indexes (@pxref{Indexes}) might also lead you
-to an answer to your question.
-
-@item
-Use @kbd{M-x x-symbol-package-bug} (also to be found in X-Symbol's
-Command submenu) to write your report describing @strong{one} bug or
-problem, i.e., use @strong{different mails} for @strong{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' @file{*mail*} buffer to your mail tool.
-
-If @kbd{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 @samp{x-symbol @var{version}; @var{summary}} as Subject header
-where @var{version} is the version of X-Symbol and @var{summary} is a
-brief summary of your installation problem.
-
-(@emph{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. The additional
-advantage is that I can see who doesn't have any problems wasting my
-time.)
-
-@item
-Start your report with:
-
-@quotation
-In the manual, I checked the sections @var{section1}, @var{section2},
-@dots{}, but didn't find anything which helped me with the following
-problem:
-@end quotation
-
-The sections @var{section1}, @var{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.
-
-(@emph{Rationale}: This way, I get an idea where to improve the manual,
-especially by adding cross references. It also ensures that you really
-have tried to find the relevant information yourself.)
-
-@item
-If buffer @file{*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 @samp{X-Symbol} is not mentioned there. Otherwise,
-include the contents of buffer @file{*Warnings*} into your bug report.
-
-@c TODO: without warnings.el from Emacs-21.4
-Temporary Emacs (< v21.4) note: the warnings might be somewhere hidden
-in buffer @file{*Messages*}.
-
-@item
-Put the parts of the code from @file{~/.emacs} and the system-wide files
-which causes the problem into a fresh file @file{@var{my-problem}.el}.
-The problem/error should be visible when invoking
-
-@example
-xemacs -no-site-file -q -l @var{my-problem}.el
-@end example
-
-In the minimal case, @file{@var{my-problem.el}} just contains the
-following line (@pxref{Installing Lisp}):
-
-@lisp
-(x-symbol-initialize)
-@end lisp
-
-If the error has disappeared after you have included your complete
-@file{~/.xemacs/init.el} and @file{~/.emacs}, the problem is likely
-caused by some code of your system-wide installation. Include the code,
-which can be found using command @kbd{M-x find-library} with files
-@file{site-start} and @file{default} (everything is fine if these files
-do not exist).
-
-If you use @file{x-symbol-site.el} (its use is deprecated), copy its
-contents into @file{@var{my-problem.el}} and delete the corresponding
-@code{load} command.
-
-Attach the file @file{@var{my-problem}.el} to your report.
-@strong{Please try to minimize the size of @file{@var{my-problem}.el}}!
-A standard technique is recursive halving: Delete the second half of
-@file{@var{my-problem.el}}. If the problem disappears, delete the first
-half instead. Do the same with the smaller file again, @dots{}.
-
-(@emph{Rationale}: Most problems are a consequence of some specific
-customizations, but I don't have time to debug each user's init file.)
-
-@item
-If you have set variable @code{custom-file} in
-@file{@var{my-problem}.el}, attach the corresponding file to your report.
-
-@item
-If the error can only be reproduced in combination with another Emacs
-package, please send me:
-
-@itemize @minus
-@item
-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 @kbd{M-x find-library} to check whether
-you really use the version from the Emacs/XEmacs distribution).
-
-@item
-If it is a non-standard (and non-obscure) package: the URL of the
-distribution and/or the source.
-
-@item
-Otherwise: include its code into @file{@var{my-problem}.el} and delete
-the corresponding @code{load} or @code{require} command. Then, reduce
-the size of @file{@var{my-problem}.el} as described above.
-@end itemize
-
-@item
-If the problem is not reproducible with an @emph{arbitrary}
-(@file{.tex}, @file{.html}, @dots{}) 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.
-
-(@emph{Rationale}: Most problems are only reproducible with specific
-files.)
-
-@ignore
-@item
-I would appreciate, if you would set variable @code{debug-on-error} to
-@code{t} before you trigger the error and send me the contents of buffer
-@file{*Backtrace*}. At best, using the uncompiled versions of the
-functions involved, i.e., by jumping to its definition and evaluation it:
-
-@example
-M-x find-function @key{RET} @var{function} @key{RET} C-M-f C-x C-e
-@end example
-@end ignore
-
-@item
-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 @kbd{C-x C-f @var{file} @key{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 @kbd{C-h l} and include the
-contents of buffer @file{*Help*} in your bug report.
-
-(@emph{Rationale}: Most problems are only reproducible with point being
-at a specific position in the file, with specific key sequences, etc.)
-
-@item
-If you have problem with the display of images, please include the
-output of the shell commands @samp{convert -h} and @samp{convert -list
-Format} in your bug report. If the first command fails, you have a
-problem with the program @code{convert}, not X-Symbol.
-
-@item
-If necessary, include a screen-shot in your bug report.
-
-@item
-If you could not use @kbd{M-x x-symbol-package-bug}, include the
-contents of buffer @file{*Help*} after the following actions:
-
-@itemize @minus
-@item
-Type @kbd{C-h v x-symbol-version @key{RET}}.
-@item
-Type @kbd{C-h v emacs-version @key{RET}}.
-@item
-Type @kbd{C-h v features @key{RET}}.
-@end itemize
-
-@end enumerate
-
-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 @ref{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.
-
-@c ===========================================================================
-
-@node History, Indexes, Problems, Top
-@comment node-name, next, previous, up
-@chapter History and Projects
-
-@menu
-* News:: Changes in recent versions.
-* Wishlist:: Projects for X-Symbol.
-* Open Questions:: How you can contribute.
-* Acknowledgments:: People having contributed.
-@end menu
-
-@c ===========================================================================
-
-@node News, Wishlist, History, History
-@comment node-name, next, previous, up
-@section News: Changes in Recent Versions of X-Symbol
-@cindex New Features
-@cindex Changes
-@cindex History
-
-This is the complete history of X-Symbol. It just lists the major
-changes before Version 3.0.
-
-@menu
-* Changes New:: To be announced.
-* 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.
-@end menu
-
-
-@node Changes New, Changes 4.4, News, News
-@comment node-name, next, previous, up
-@subsection Changes in X-Symbol 4.4.5
-
-Version 4.4.5 has not yet been announced.
-
-@itemize @bullet
-@item
-X-Symbol finally respects the Mule coding system of each individual buffer.
-
-@item
-Bug fix: would mess up encoding of math-mode characters with token
-language @code{bib}. Other conversion fixes for languages @code{bib}
-and @code{texi}.
-
-@item
-Bug fix (workaround for bug in XEmacs): auto-save files would have
-length 0.
-
-@item
-Token language @code{sgml}: always encode characters to entity
-references by default (not possible with most Latin-N characters, where
-we still use character entities). Include @code{hm--html-mode},
-@code{html-helper-mode}, remove @code{sgml-mode} as typical major modes.
-
-@item
-Token language @code{tex}: support some symbols of package
-@file{stmaryrd.sty}.
-
-@item
-Change the auto-style, formerly auto-mode, mechanism.
-
-@item
-Image support when running on Emacs.
-
-@item
-New input method Quail, a usual Mule input method.
-
-@item
-Corrected Latin-5 definitions. Support Latin-5 (``Turkish'') on XEmacs
-running under Windows.
-
-@item
-X-Symbol works with Emacs/XEmacs running under a character terminal.
-
-@item
-Improments for external languages. Super-/subscript matching of token
-languages has changed.
-
-@item
-X-Symbol can use package @code{format} and does not require special
-fonts for super-/subscripts with Emacs-21.4+. Still open whether this
-will be used@dots{}.
-
-@item
-Dropped support for XEmacs-20.3.
-
-@item
-Various bug fixes and minor changes.
-@end itemize
-
-
-@node Changes 4.4, Changes 4.1, Changes New, News
-@comment node-name, next, previous, up
-@subsection Changes in X-Symbol 4.2, 4.3, 4.4
-
-Version 4.4 has been released on June 2002 as beta.
-
-@itemize @bullet
-@item
-Token language TeX has changed: no excessive use of braces anymore, no
-excessive normalization, and aware of environments @code{@{tabbing@}} and
-@code{@{verbatim@}}, and macro @code{\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.
-
-@item
-New token language ``Bib@TeX{} Macro'' (@code{bib}, similar to old
-@code{tex}), used for Bib@TeX{} files.
-
-@item
-Nuked executables, the lisp conversion for all languages is now 2-5
-times faster.
-
-@item
-Latin-9 support. Latin-9 font included in distribution.
-
-@item
-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.
-
-@item
-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 (@code{TeX-master}) with token language @code{tex}.
-
-@item
-New buffer-local variable @code{x-symbol-unique}: when non-@code{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 @code{utex}.
-
-@item
-Menu changes, new commands: submenu ``Conversion'', menu items ``Copy
-Encoded'', ``Paste Decoded'' and others.
-
-@item
-Special coding for @code{preview-latex}. Using X-Symbol now only gives
-a 10% overhead of @code{preview}s parsing time.
-
-@item
-X-Symbol now works with Whizzy@TeX{}.
-
-@item
-The interface for defining a token language has changed, it is also much
-more general, useful for ProofGeneral.
-
-@item
-Changed final bytes of ISO 2022 escape sequence for X-Symbol charsets
-since Emacs reserves the characters @samp{0-9} for itself. Does XEmacs
-has any policy here (it also uses @samp{?})?
-
-@item
-Dropped workaround for minor bug in XEmacs-20.X.
-
-@item
-Various bug fixes and minor changes.
-@end itemize
-
-
-@node Changes 4.1, Changes 3.4, Changes 4.4, News
-@comment node-name, next, previous, up
-@subsection Changes in X-Symbol 4.1
-
-Version 4.1 has been released on Mar 2002 as beta.
-
-@itemize @bullet
-@item
-X-Symbol works with Emacs-21.1 or higher. Porting is not complete, yet.
-
-@item
-New token language ``@TeX{}info command'' (@code{texi}).
-
-@item
-Slightly different definition of ``valid character''.
-
-@item
-Remove the ``local if set'' and ``default: @dots{}'' submenu stuff.
-@end itemize
-
-
-@node Changes 3.4, Changes 3.3, Changes 4.1, News
-@comment node-name, next, previous, up
-@subsection Changes in X-Symbol 3.4
-
-Version 3.4 has been released on Mar 2002.
-
-@itemize @bullet
-@item
-Moved to SourceForge.net. Added files for nicer HTML output of manual.
-
-@item
-Would sometimes perform strange conversions when
-@code{global-flyspell-mode} is enabled.
-
-@item
-Bug fixes: command @kbd{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).
-
-@item
-Automatically deduce default coding via @code{locale -ck LC_CTYPE}.
-
-@item
-Issue warning when running on XEmacs-21.0 to XEmacs-21.1.8. Update
-manual: XEmacs user package directory is @file{~/.xemacs/packages}.
-
-@item
-Directories ending with @file{//} in image search paths are recursive.
-
-@item
-New characters used for token languages ``@TeX{} macro'' and ``Isabelle
-symbol''.
-
-@item
-Make sure to convert just the first part of a multi-part image.
-
-@item
-Source distribution includes files for building an RPM package, all
-files also compile without Mule support.
-
-@item
-Minor changes. Manual changes.
-@end itemize
-
-
-@node Changes 3.3, Changes 3.2, Changes 3.4, News
-@comment node-name, next, previous, up
-@subsection Changes in X-Symbol 3.3
-
-Version 3.3 has been released on Jan 1999.
-
-@itemize @bullet
-@item
-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 @kbd{M-x x-symbol-exec-create}).
-
-@item
-New functions used for interaction with Emacs package @code{comint}.
-This is necessary for new token language ``Isabelle symbol'', to be
-distributed with Emacs package
-@uref{http://www.proofgeneral.org/,ProofGeneral}.
-
-@item
-New characters used for token languages ``@TeX{} macro'' and ``Isabelle
-symbol''.
-
-@item
-Minor changes. Manual changes.
-@end itemize
-
-
-@node Changes 3.2, Changes 3.1, Changes 3.3, News
-@comment node-name, next, previous, up
-@subsection Changes in X-Symbol 3.2
-
-Version 3.2 has been released on Dec 1998.
-
-@itemize @bullet
-@item
-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 @file{x-symbol-site.el} is deprecated.
-
-@item
-Reverting the buffer and using @code{vc} commands do not encode
-characters when not using @code{crypt}. (This did not work always.)
-
-@item
-Workaround for bug (segfault) in XEmacs-21/Mule betas.
-
-@item
-Command @code{x-symbol-package-bug} is less restrictive. Please use
-this command to contact the maintainer.
-
-@item
-Bug fixes. Minor changes. Manual changes.
-@end itemize
-
-
-@node Changes 3.1, Changes 3.0, Changes 3.2, News
-@comment node-name, next, previous, up
-@subsection Changes in X-Symbol 3.1
-
-Version 3.1 has been released on Oct 1998.
-
-@itemize @bullet
-@item
-@TeX{} macro @code{\mu} is represented by a character in the Adobe Symbol
-font, not in a Latin-@{1,3,5@} font anymore.
-
-@item
-Support for most @sc{sgml} entities in HTML-4.0 specification.
-
-@item
-Additional characters for @code{\therefore}/@code{&there4;},
-@code{&oline;} and @code{&euro;}.
-
-@item
-Package X-Symbol has been customized.
-
-@item
-The documentation has been completed (as @TeX{}info file).
-
-@item
-Handle special URL prefixes @file{file:}, @file{http:} for images.
-
-@item
-Bug fixes, configuration changes.
-@end itemize
-
-
-@node Changes 3.0, Changes Old, Changes 3.1, News
-@comment node-name, next, previous, up
-@subsection Changes in X-Symbol 3.0
-
-Version 3.0 has been released on Sep 1998 as beta.
-
-@itemize @bullet
-@item
-Package X-Symbol now works on XEmacs with and without Mule support.
-Dropped support for XEmacs 19.13 to 19.16/20.2.
-
-@item
-Full support of token language @code{sgml} (executables, subscripts, images).
-
-@item
-X-Symbol is a proper minor mode.
-
-@item
-Easier (automatic) 8bit character control (e.g., for @code{\times}
-@code{\pm},@dots{}). By default, the encoding when saving only writes
-8bit characters, if @samp{\usepackage[latin@var{n}]@{inputenc@}} with
-@var{n}=1,2,3,5 was found in the first 10000 characters of the file
-(including commentary).
-
-@item
-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
-
-@item
-Key bindings have completely changed. They are now consistent with the
-contexts of input method Context (which have changed a bit).
-
-@item
-The keys @kbd{@@} and @kbd{!} 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.
-
-@item
-Input method Aggressive Context is now called input method Electric and
-is much more restrictive (using package @code{texmathp} with language
-``@TeX{} macro'').
-
-@item
-Easier installation despite many additional features.
-
-@item
-Supports more characters.
-
-@item
-Nicer grid, info in echo area.
-
-@item
-Better cooperation with packages: @code{vc} (check-out does not convert
-characters), @code{reftex} (no strange characters @samp{\237}, help with
-label creation), @code{auctex}, @code{ispell}, @code{font-latex} (no
-annoyances with @code{\exists}).
-
-@item
-Safer use of executables.
-
-@item
-The code has completely changed. You have to redo your installation.
-@end itemize
-
-
-@node Changes Old, , Changes 3.0, News
-@comment node-name, next, previous, up
-@subsection 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.
-
-@itemize @bullet
-@item
-Fixed serious bug when used under tty.
-@end itemize
-
-Version 2.5 has been released on Mar 1998.
-
-@itemize @bullet
-@item
-Image support.
-@end itemize
-
-Version 2.4 has been released on Mar 1997.
-
-@itemize @bullet
-@item
-Token language @code{sgml}. (X-Symbol can handle more then token
-language @code{tex}.)
-
-@item
-Input method Aggressive Context (precursor of input method Electric),
-input method Context has been much improved.
-
-@item
-Fixed performance bug when saving a file with package @code{crypt}.
-
-@item
-Control of Conversion and 8bit character has changed.
-@end itemize
-
-Version 2.3 has been released on Sep 1996.
-
-@itemize @bullet
-@item
-Distributed with own font for more math characters.
-
-@item
-Info for the character around point in echo area.
-@end itemize
-
-Version 2.2 has been released on June 1996.
-
-@itemize @bullet
-@item
-Input method Grid. Help when using input method Keyboard.
-
-@item
-Control of Conversion and 8bit character has changed.
-@end itemize
-
-Version 2.1 has been released on April 1996.
-
-@itemize @bullet
-@item
-Fixed serious performance bug when loading files with
-font-lock/lazy-lock. Use executables for conversion of large buffers.
-
-@item
-The package @code{iso-cvt} is not integrated anymore. Now this package
-can also convert to/from Latin-1 characters, it is much faster.
-
-@item
-Menu support, including input method Menu.
-
-@item
-@code{isearch} works with X-Symbol characters.
-
-@item
-First multi-file version.
-@end itemize
-
-Version 1.4 has been released on Feb 1996.
-
-@itemize @bullet
-@item
-Provide some kind of ``poor man's Mule'' to remove most Nomule-Problems.
-@end itemize
-
-Version 1.3 has been released on Jan 1996.
-
-@itemize @bullet
-@item
-Input method Abbrev (precursor of input method Token).
-
-@item
-Super-/subscript support.
-@end itemize
-
-Version 1.2 has been released on Jan 1996. It was the first release.
-
-@itemize @bullet
-@item
-Conversion between characters and @TeX{} tokens. Do so automatically
-when visiting a file and saving the buffer.
-
-@item
-Input method Keyboard.
-@end itemize
-
-@c ====================================================================
-
-@node Wishlist, Open Questions, News, History
-@comment node-name, next, previous, up
-@section Wishlist: Projects for X-Symbol
-@cindex Wishlist
-@cindex Project
-@cindex Future Features
-@cindex Contributions
-@cindex Your Contribution
-
-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 @ref{Open Questions}.
-
-Providing a solution to these problems is the second way of making your
-name appear in @ref{Acknowledgments}.
-
-@menu
-* Wishlist Languages:: Additional token languages.
-* Wishlist Fonts:: Automatically generated fonts.
-* Wishlist Emacs:: Changes in Emacs/XEmacs.
-* Wishlist LaTeX:: Changes in La@TeX{}.
-* Wishlist Various:: Other changes.
-* Wishlist Rejected:: Rejected Suggestions for X-Symbol.
-@end menu
-
-
-
-@node Wishlist Languages, Wishlist Fonts, Wishlist, Wishlist
-@comment node-name, next, previous, up
-@subsection Wishlist: Additional Token Languages
-@cindex More Token Languages
-@cindex Language Additions
-@cindex Ams@TeX{}
-@cindex IPA Fonts
-
-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 Elisp
-part (@pxref{Extending X-Symbol}) for general-interest token languages
-(e.g., Ams@TeX{}).
-
-It is likely that this would require additional fonts: available fonts
-(e.g., IPA font), hand-crafted, or generated (@pxref{Wishlist
-Fonts}).
-
-
-@node Wishlist Fonts, Wishlist Emacs, Wishlist Languages, Wishlist
-@comment node-name, next, previous, up
-@subsection Wishlist: Generated Fonts
-@cindex Generated Fonts
-@cindex Fonts from Other Sources
-@cindex Fonts for Windows
-@cindex MS-Windows Fonts
-@cindex Windows Fonts
-
-@pindex bdftofon
-One direction of font generation would be from @file{.bdf} or
-@file{.pcf} font files to Windows fonts to get rid of the limited
-support for XEmacs on Windows (@pxref{Requirements}). If you have
-successfully converted X-Symbol's fonts from the Unix format to the
-Windows format (via @code{bdftofon} or whatever) or if you have free
-and real Latin-N fonts for Windows, please @emph{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 @file{.bdf}
-fonts from other sources. This would have various advantages:
-
-@itemize @bullet
-@item
-We could easily create different sizes for our symbol font.
-
-@item
-It would be quite simple to create a @file{.bdf} font for Ams@TeX{}
-macros, calligraphical letters etc, which would be displayed as X-Symbol
-characters by package X-Symbol.
-
-@item
-We could easily create different sizes for our symbol font.
-@end itemize
-
-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:
-
-@itemize @bullet
-@item
-Different @TeX{} macros (same appearance, different @TeX{} class =
-different spacing) use the same MetaFont character, e.g., @code{\dagger}
-and @code{\dag}. Therefore, we need different X11 characters for them.
-
-@item
-Some Ascii characters have a special meaning in @TeX{}. The
-corresponding MetaFont character is therefore produced by a TeX macro,
-e.g., @samp{@{} by @code{\@{}. We need a X11 character which looks
-similar to the character but not exactly like it.
-@end itemize
-
-We could ask the question whether we should really distinguish the
-characters by appearance@dots{}we have the minibuffer info for the
-X-Symbol character anyway@dots{}. Here are the options:
-
-@itemize @minus
-@item
-distinguished by size/underlining/miscellaneous (currently used),
-@item
-distinguished by different spacing (my current favorite),
-@item
-not distinguished
-@end itemize
-
-Solofo Ramangalahy originally though of generating the @file{.bdf} fonts
-out of @TeX{} fonts (@file{.mf}, @file{.pk}) by @code{mftobdf} of
-See@TeX{}, which can be found at @file{@var{ctan}/dviware/seetex/} among
-others distributions having this tool. He dropped this idea for the
-following reason:
-
-@quotation
-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
-@samp{blacker}, @samp{fillin} and @samp{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).
-@end quotation
-
-@node Wishlist Emacs, Wishlist LaTeX, Wishlist Fonts, Wishlist
-@comment node-name, next, previous, up
-@subsection Wishlist: Changes in Emacs/XEmacs
-@cindex Emacs Changes
-@cindex XEmacs Changes
-@cindex Changes in Emacs
-@cindex Changes in XEmacs
-
-Changes in Emacs and/or XEmacs would improve package X-Symbol, too:
-
-@itemize @bullet
-@item
-In Emacs: a package system similar to XEmacs' one. The installation
-would be easier.
-
-@item
-@pindex ispell
-The package @code{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 @code{ispell}, @ref{Miscellaneous Packages}.
-
-@item
-@pindex vc
-Some versions control commands turn off @code{font-lock}. This should
-be changed.
-
-@item
-Provide a face property @code{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 @code{font-lock} set properties other than
-faces). XEmacs: no such property, yet.
-
-@item
-@vindex after-insert-file-functions
-In XEmacs, fixed in 21.X. In @code{after-insert-file-functions}, there
-should be a possibility to get to know the start position of the region
-which is inserted. If @code{insert-file-contents} is called with
-argument @code{replace} being non-@code{nil}, it is not always point.
-
-@item
-@vindex write-region-annotate-functions
-Partly fixed in Emacs-21.3. Make possibility to change buffers in
-@code{write-region-annotate-functions} official, see @ref{Alt Auto
-Conversion}, have a way to get the original buffer.
-
-@item
-Since @code{font-lock} uses duplicable text properties in some cases, I
-need a function like @code{insert-buffer-substring-without-extents}.
-(Currently, I remove the extents afterwards, which looks slow for me.)
-
-@item
-@vindex post-command-hook
-In XEmacs. Run hooks in @code{post-command-hook} even if command exits
-with an error or quit (as it is in Emacs) or having some
-@code{post-error-or-quit-hook}. @xref{Nomule Problems}.
-
-@item
-In XEmacs. There are some bugs in package @code{custom}/@code{widget}
-(XEmacs-21.0-b59) which are visible during the customization of
-X-Symbol.
-
-@end itemize
-
-
-@node Wishlist LaTeX, Wishlist Various, Wishlist Emacs, Wishlist
-@comment node-name, next, previous, up
-@subsection Wishlist: Changes in La@TeX{}
-@cindex La@TeX{} Changes
-@cindex Changes in La@TeX{}
-@cindex @file{inputenc.sty} Changes
-@pindex @file{inputenc.sty}
-
-Changes in La@TeX{}, especially @file{inputenc.sty}, would improve package
-X-Symbol, too:
-
-@itemize @bullet
-@item
-To make the definition of the character U00B5 consistent with Unicode,
-@file{inputenc.sty} should define the character to stand not for the
-token @code{\mu} (U03BC is the right character), but for an extra token,
-e.g., something like @code{\textmicro}. X-Symbol uses @code{\mathmicro}
-here in order to avoid changing @code{\mu} to the character U00B5 if you
-have chosen to store 8bit characters.
-@c X-Symbol should not define it as \textmicro because then there would
-@c be a major difference between `x-symbol-8bits' nil and non-nil.
-
-@item
-Use same encoding for both text and math, i.e. use @code{periodcentered}
-for both @code{\textperiodcentered} (the default) and @code{\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 @code{\lnot}, @code{\pm}, @code{\times} and
-@code{\division}: use
-@code{\textonesuperior} for U00B9, \texttwosuperior for U00B2, and
-@code{\textthreesuperior} for U00B3.
-
-@item
-The @TeX{} macros @code{\textcent}, @code{\textcurrency},
-@code{\textbrokenbar}, @code{\textyen} are defined as not available with
-OT1 and T1 font encoding. This should be changed.
-@end itemize
-
-
-@node Wishlist Various, Wishlist Rejected, Wishlist LaTeX, Wishlist
-@comment node-name, next, previous, up
-@subsection Various Projects for X-Symbol
-
-The following suggestions seem to be useful, though not essential:
-
-@itemize @bullet
-@item
-@cindex Print Buffer
-@cindex Buffer Printing
-@pindex ps-print
-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
-@code{ps-print}. A newer version of @code{ps-print} might be probably
-already capable of doing it. Thus, you are encouraged to help the
-XEmacs team updating this package.
-@end itemize
-
-
-@node Wishlist Rejected, , Wishlist Various, Wishlist
-@comment node-name, next, previous, up
-@subsection Rejected Suggestions for X-Symbol
-@cindex Rejected Suggestions
-
-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:
-
-@itemize @bullet
-@item
-@cindex Input Method Token
-It would be nice if X-Symbol would replace the token with the last
-character of the token if this is possible (@pxref{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.
-@end itemize
-
-@c ===========================================================================
-
-@node Open Questions, Acknowledgments, Wishlist, History
-@comment node-name, next, previous, up
-@section Open Questions
-@cindex Open Questions
-@cindex Various Questions
-@cindex Questions I Have
-
-This section lists some minor open questions.
-
-@itemize @bullet
-@item
-@findex x-symbol-initialize
-@cindex Auto Initialization
-Loading file @file{x-symbol.el} will initialize package X-Symbol (via
-function @code{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 @file{x-symbol.el}. Thus, customizing package X-Symbol will not
-initialize package X-Symbol.
-
-The alternative would be to call function @code{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 @code{x-symbol-initialize}
-top-level in file @file{x-symbol.el}. If I am wrong here, please let me
-know (with an explanation). Batch-compilation might be an issue@dots{}
-
-@item
-@pindex crypt
-@vindex x-symbol-auto-conversion-method
-When is necessary to set @code{x-symbol-auto-conversion-method} to
-@code{slowest}? Of course, it is only necessary when using
-@code{crypt}. Is the other necessary condition to use the computer pool
-of the University of Edinburgh?
-@end itemize
-
-@c ===========================================================================
-
-@node Acknowledgments, , Open Questions, History
-@comment node-name, next, previous, up
-@section Acknowledgments
-@cindex Acknowledgments
-@cindex Contributions
-@cindex Marlet, Renaud
-@cindex Bradfield, Julien
-@pindex math-mode
-@cindex Adobe
-@pindex frame-icon
-@cindex Thanks
-
-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 @code{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 @code{makesub} is a merge
-and change of the scripts @code{makesupers} and @code{makesub} by
-Julian.
-
-The font @samp{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 @code{frame-icon}.
-
-The idea for Help during an X-Symbol key sequence is from package
-@code{x-compose}. The general idea for showing some info in the echo
-area is from package @code{eldoc}. The trick which stops
-@code{expand-abbrev} is from package @code{mail-abbrevs}. The idea for
-@code{x-symbol-image-cache-directories} is from package
-@code{fast-lock}. The code for image command parsing is influenced by
-some code in package @code{font-lock}. The code around
-@code{x-symbol-image-delete-extents} is based on some code in package
-@code{bib-cite}.
-
-@i{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, Thomas
-Kleymann, Ekkehard Koehler, Fred Labrosse, Jan-Ake Larsson, Bernhard
-Lehner, Stefan Monnier, Harald Muehlboeck, Karsten Muehlmann, Jakub
-Narebski, Peter M@o{}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.
-
-@i{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:
-
-@display
- @url{http://www.w3.org/TR/REC-html40/sgml/entities.html}
- @url{http://www.fmi.uni-passau.de/~ramsch/iso8859-1.html}
- @url{http://czyborra.com/charsets/iso8859.html}
- @url{http://www.bbsinc.com/iso8859.html}
- @url{http://www.bbsinc.com/iso8879.html}
- @url{http://ppewww.ph.gla.ac.uk/~flavell/charset/internat.html}
- @url{http://ppewww.ph.gla.ac.uk/~flavell/iso8859/iso8859-pointers.html}
- @url{http://sizif.mf.uni-lj.si/linux/cee/iso8859-2.html}
-@end display
-
-I do not intend to update this list in the future---this is just an
-"Acknowledgment" section.
-
-
-@node Indexes, , History, Top
-@comment node-name, next, previous, up@unnumbered Indexes
-@unnumbered 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 (@pxref{Bug Reports}),
-
-@menu
-* Key Index:: Key sequences.
-* Program Index:: Programs and Emacs packages.
-* Variable Index:: Commands, functions, variables.
-* Concept Index:: Various topics.
-@end menu
-
-The links lead you to the manual sections describing X-Symbol's commands
-and variables. @xref{About}.
-
-@comment workaround for bug with the length of the lists
-@iftex
-@vskip 6ex plus 1ex minus 4ex
-@end iftex
-
-@node Key Index, Program Index, Indexes, Indexes
-@comment node-name, next, previous, up
-@unnumberedsec Key Index
-@printindex ky
-
-@comment workaround for bug with the length of the lists
-@iftex
-@page
-@end iftex
-
-@node Program Index, Variable Index, Key Index, Indexes
-@comment node-name, next, previous, up
-@unnumberedsec Program and Package Index
-@printindex pg
-
-@comment workaround for bug with the length of the lists
-@iftex
-@page
-@end iftex
-
-@node Variable Index, Concept Index, Program Index, Indexes
-@comment node-name, next, previous, up
-@unnumberedsec Command, Function and Variable Index
-@printindex vr
-
-@comment workaround for bug with the length of the lists
-@iftex
-@page
-@end iftex
-@node Concept Index, , Variable Index, Indexes
-@comment node-name, next, previous, up
-@unnumberedsec Concept Index
-@printindex cp
-
-@contents
-@bye
-@c Local IspellPersDict: .ispell_xsymb
diff --git a/x-symbol/man/x-symbol.texi.2 b/x-symbol/man/x-symbol.texi.2
deleted file mode 100644
index f23dcbfb..00000000
--- a/x-symbol/man/x-symbol.texi.2
+++ /dev/null
@@ -1,7476 +0,0 @@
-\input texinfo
-@c Copyright (C) 1998-2003 Free Software Foundation, Inc.
-@c
-@c Author: Christoph Wedler <wedler@users.sourceforge.net>
-@c Maintainer: (Please use `M-x x-symbol-package-bug' to contact the maintainer)
-@c Keywords: WYSIWYG, LaTeX, HTML, wp, math, internationalization
-@c X-URL: http://x-symbol.sourceforge.net/
-
-@c %**start of header
-@setfilename x-symbol.info
-@settitle X-Symbol Manual
-@setchapternewpage odd
-
-@set edition 4.5
-@set version 4.5
-@set update January 2003
-@set http http://x-symbol.sourceforge.net
-@set maintainer wedler@@users.sourceforge.net
-
-@c for cross references to other manuals
-@ifset GNU
-@set subedition Emacs
-@set emacs emacs
-@set emacsman GNU Emacs Manual
-@end ifset
-
-@ifclear GNU
-@set subedition XEmacs
-@set emacs xemacs
-@set emacsman XEmacs User's Manual
-@end ifclear
-
-@set auctex auctex
-@set auctexman AUCTeX
-
-@set reftex reftex
-@set reftexman RefTeX User Manual
-
-@set kpathsea kpathsea
-@set kpathseaman Kpathsea Manual
-
-
-@syncodeindex fn vr
-@c %**end of header
-@dircategory Editors
-@direntry
-* X-Symbol:: Semi WYSIWYG for LaTeX, HTML and other "token languages"
-@end direntry
-
-@ifinfo
-This file documents X-Symbol, a package providing semi-@sc{wysiwyg} for
-La@TeX{}, HTML and other ``token languages''. It uses additional fonts
-and provide input methods to insert their characters into your document.
-
-This is Edition @value{edition} (@value{subedition}) of the X-Symbol
-Manual for X-Symbol @value{version}, @value{update}.
-
-Copyright (c) 1998-2003 Free Software Foundation, Inc.
-
-@c default
-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.
-
-@ignore
-Permission is granted to process this file through TeX and print the
-results, provided the printed document carries a copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-
-@end ignore
-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.
-@c end default
-@end ifinfo
-
-@finalout
-@titlepage
-@title X-Symbol Manual
-@subtitle Semi-@sc{wysiwyg} for La@TeX{}, HTML and other ``token languages''
-@subtitle Edition @value{edition} (@value{subedition}), for X-Symbol @value{version}, @value{update}
-@author by Christoph Wedler
-
-@page
-@vskip 0pt plus 1filll
-Copyright @copyright{} 1998-2003 Free Software Foundation, Inc.
-
-@c default (slight change)
-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 that the
-entire resulting derive 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.
-@c end default
-
-@end titlepage
-
-@c ===========================================================================
-
-@ifinfo
-@node Top, Introduction, (dir), (dir)
-@comment node-name, next, previous, up
-@top X-Symbol
-
-When you edit La@TeX{}, HTML, BibTeX or @TeX{}info sources in Emacs,
-package X-Symbol provides some kind of @sc{wysiwyg} by using real
-characters for tokens like @code{\oplus} or @code{&trade;}. 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 @value{edition} of the X-Symbol Manual for X-Symbol
-@value{version}, @value{update}. For recent changes, see @ref{News}.
-
-Bug fixes, bug reports, improvements, and suggestions are strongly
-appreciated. Please read section @ref{Bug Reports} if you want to
-contact the maintainer of package X-Symbol.
-@end ifinfo
-
-@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.
-
-@detailmenu
- --- 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 @code{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 La@TeX{} buffers.
-* Syntax Hiliting Packages:: Package @code{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 @code{font-lock}.
-* Char Group:: Character group and token classes.
-
-Conversion: Decoding and Encoding
-
-* Default Coding:: Encoding of your default charset.
-* 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 @code{tex}.
-* SGML Entity:: Token language @code{sgml}.
-* BibTeX Macro:: Token language @code{bib}.
-* TeXinfo Command:: Token language @code{texi}.
-* External Languages:: Languages defined in other Emacs Packages.
-
-Token Language ``@TeX{} macro'' (@code{tex})
-
-* TeX Macro Basics:: Basics of language ``@TeX{} macro''.
-* TeX Macro Features:: Super-/subscripts and images in La@TeX{}.
-* 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 ``@sc{sgml} entity'' (@code{sgml})
-
-* SGML Entity Basics:: Basics of Language ``@sc{sgml} entity''.
-* SGML Entity Features:: Super-/Subscripts and Images in @sc{html}.
-* SGML Entity Conversion:: How the conversion of @sc{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 @emph{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 @code{hyphen} from @samp{-}.
-* FAQ Spell Check:: I have problems with spell-checking.
-
-History and Projects
-
-* News:: Changes in recent versions.
-* Emacs Version:: Beta Version which Works with Emacs
-* Wishlist:: Projects for X-Symbol.
-* Open Questions:: How you can contribute.
-* Acknowledgments:: People having contributed.
-
-News: Changes in Recent Versions of X-Symbol
-
-* Changes New:: To be announced.
-* 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 La@TeX{}.
-* 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.
-
-@end detailmenu
-@end menu
-
-@c ===========================================================================
-
-@node Introduction, Installation, Top, Top
-@comment node-name, next, previous, up
-@chapter Introduction
-@cindex Overview
-@cindex Introduction
-
-When you edit La@TeX{}, HTML, BibTeX or @TeX{}info sources in Emacs,
-package X-Symbol provides some kind of @sc{wysiwyg} by using real
-characters for tokens like @code{\oplus} or @code{&trade;}. 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.
-@end menu
-
-@c ====================================================================
-
-@node Copying, Summary, Introduction, Introduction
-@comment node-name, next, previous, up
-@section X-Symbol's Copying Conditions: GPL
-@cindex Copying
-@cindex Copyright
-@cindex GPL
-@cindex General Public License
-@cindex License
-@cindex Warranty
-
-(This text is stolen from the @TeX{}info 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 @dfn{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.
-
-@c ====================================================================
-
-@node Summary, About, Copying, Introduction
-@comment node-name, next, previous, up
-@section Brief Summary of X-Symbol
-@cindex Summary
-@cindex Brief Summary
-@cindex X-Symbol in a Nutshell
-
-@itemize @bullet
-@item
-X-Symbol provides a @strong{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.
-
-@item
-These characters are used in the buffer to represent @strong{tokens}
-(e.g., @TeX{} macros, @sc{sgml} entities, more ``token languages'' could be
-added easily) in the file. The @emph{conversion} is done automatically
-when visiting the file, saving the buffer and turning the minor mode
-on/off.
-
-@item
-Defines 8 @strong{input methods} for these characters: @emph{Menu},
-@emph{Grid} (selecting a character with the mouse), @emph{Keyboard},
-@emph{Context} (replace/modify similar-looking char sequence),
-@emph{Electric} (automatic replace), @emph{Quail} (a Mule input method),
-@emph{Token} (replace token by corresponding char), @emph{Read Token}
-(completing minibuffer input of token).
-
-@item
-Offers some @strong{info} in the echo area for these characters (e.g.,
-that the character under point represents the TeX macro @code{\leadsto}
-and that the macro is defined in La@TeX{} package @file{latexsym.sty}).
-
-@item
-Allows to use a @strong{8bit file encoding} which is different from your
-"normal" 8bit file encoding, e.g., you can visit @TeX{} files with
-@code{\usepackage[latin5]@{inputenc@}} even if you normally use a Latin-2
-font.
-
-@item
-Provides a kind of ``@strong{poor man's Mule}'' when running on an
-XEmacs without Mule support: it can @emph{display} more than 256
-characters via @code{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.
-
-@item
-Provides fonts for single-line innermost @strong{super-} and
-@strong{subscripts} to be displayed with per-buffer control. The
-invisible part, like @code{<sub>} in HTML, is revealed at point.
-
-@item
-Displays thumbnails for @strong{images} at the end of image insertion
-commands with per-buffer control (e.g.,
-@code{\includegraphics@{@var{file}@}} in La@TeX{}, @code{<img
-src=@var{file}>} in HTML). They show a scaled-down version of the
-included image files (using @code{convert} from
-@uref{http://www.imagemagick.org/,ImageMagick}). A single mouse click
-on the image or command invokes the image editor for the corresponding
-image file.
-
-@item
-It @emph{does not} and @emph{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
-@code{font-lock}, e.g., @code{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 @code{outline-minor-mode} or
-folding might also be an alternative.
-@end itemize
-
-If you prefer a more @sc{wysiwyg}-like document processor, you should
-probably use @code{LyX} or @code{GNU TeXmacs}. Here are some reasons
-why you would use Emacs/XEmacs with package X-Symbol instead:
-
-@itemize @bullet
-@item
-You have complete control over the La@TeX{} source. X-Symbol supports
-more characters.
-
-@item
-You can read any La@TeX{} source and you write normal La@TeX{} code,
-i.e., package X-Symbol does not use any special format.
-
-@item
-It also supports HTML and @TeX{}info documents and BibTeX entries.
-
-@item
-You can use your favorite editor, i.e., Emacs or XEmacs.
-@end itemize
-
-@c ====================================================================
-
-@node About, , Summary, Introduction
-@comment node-name, next, previous, up
-@section About this Manual
-@cindex About
-@cindex Web Pages
-@cindex Info Pages
-@cindex Manual
-@cindex Online Help
-
-Apart from this manual, there are two other sources of information about
-X-Symbol:
-
-@itemize @bullet
-@item
-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:
-
-@display
- @uref{@value{http}/}
-@end display
-
-@item
-The online help for commands (functions) and user options (variables) is
-quite technical. It is shown during customization and when using Emacs'
-Help menu.
-@end itemize
-
-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 @ref{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 @code{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 @ref{Bug Reports}.
-
-@c ===========================================================================
-
-@node Installation, Concepts, Introduction, Top
-@comment node-name, next, previous, up
-@chapter Installation
-@cindex Installation
-
-The short version of the installation instructions for package X-Symbol
-on XEmacs is: uncompress & extract the @emph{binary distribution} in
-directory @file{~/.xemacs/xemacs-packages/}, add
-@code{(x-symbol-initialize)} to your @file{~/.emacs} and install
-ImageMagick for the image support (unless you want to get a warning).
-
-Please check the web page @emph{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 @code{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?
-@end menu
-
-@c ====================================================================
-
-@node Requirements, Installing Files, Installation, Installation
-@comment node-name, next, previous, up
-@section Requirements
-@cindex Requirements
-@cindex Binary Package
-@cindex Source Package
-@cindex Old Version
-@pindex X
-@pindex Windows/NT
-
-Package X-Symbol only works with Emacs-21.1 or higher (X-Symbol's
-development version, only, @ref{Emacs Version}), and XEmacs 20.3 or
-higher (XEmacs-21.1.9 is strongly recommended, @ref{FAQ XEmacs Core}),
-with or without Mule support.
-
-Package X-Symbol works under X and tty (probably of limited use under
-tty). It also works under Windows/NT with the following restrictions:
-On XEmacs-21.4+, it just supports a @emph{limited number of characters}
-(Latin-1 and half the math symbols), and @emph{no super- and subscripts}
-due to missing MS-Windows fonts. @xref{Wishlist Fonts}.
-
-@pindex font-lock
-@pindex lazy-shot
-@pindex texmathp
-@pindex auctex
-This package require package @code{font-lock} (distributed with Emacs
-and XEmacs), the use of package @code{lazy-shot} is recommended, see
-@ref{Syntax Hiliting Packages}.
-
-@pindex convert
-If you want to see the images at the end of image insertion commands,
-install @code{convert} from
-@uref{http://www.imagemagick.org/,ImageMagick},
-see @ref{Installing Image Converter}. They show a scaled-down version
-of the included image files.
-
-@pindex makeinfo
-@pindex texi2dvi
-@pindex latex2html
-If you want to produce the Info files yourself (they are included in the
-binary distribution), you need @code{makeinfo}, Version 1.68 or higher.
-If you want to produce a PS file from the manual, you need
-@code{texi2dvi}. If you want to produce an HTML version of this manual,
-you need @code{texi2html}, Version 1.62 or higher. @xref{Installing
-Manual}.
-
-@c ====================================================================
-
-@node Installing Files, System-wide Installation, Requirements, Installation
-@comment node-name, next, previous, up
-@section Put the Files into your Home Directory
-@cindex Basic Installation
-@cindex Uncompress Tarball
-@cindex Extract Tarball
-@cindex Tarball
-@cindex Binary Distribution
-
-If you use Emacs, please check the @uref{@value{http}/news.html, web
-pages of X-Symbol}.
-
-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 @ref{System-wide Installation}. If you use
-the source distribution, you should know what do to instead.
-
-In directory @file{~/.xemacs/xemacs-packages/}, run
-@example
-zcat x-symbol-pkg.tar.gz | tar xvf -
-@end example
-
-Remember that @code{tar} does not overwrite write-protected files.
-
-X-Symbol's @file{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
-@example
-chmod -R a+rx ~/.xemacs/xemacs-packages
-@end example
-
-If package X-Symbol has been installed system-wide and you install a
-newer version in your @file{~/.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@dots{}.
-
-Before XEmacs-21.0: the user package directory was @file{~/.xemacs/}
-instead of @file{~/.xemacs/packages/}; also: delete and recompile the
-@file{.elc} files.
-
-@c ====================================================================
-
-@node System-wide Installation, Installing Lisp, Installing Files, Installation
-@comment node-name, next, previous, up
-@section System-wide Installation: Put the Files into the XEmacs Directory
-@cindex System-wide Installation
-@cindex Installing System-wide
-@cindex @file{default.el}
-@cindex @file{site-start.el}
-
-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 @file{default.el} and
-@file{@var{xemacs}/site-packages/} whenever @file{~/.emacs} and
-@file{~/.xemacs/xemacs-packages/} are mentioned in the previous or
-following subsections. @file{@var{xemacs}/site-packages/} is the
-directory of independent packages for XEmacs.
-
-Under XEmacs-21, you can uncompress and extract the tarball by
-
-@example
-M-x package-admin-add-binary-package @key{RET} @var{dir}/x-symbol-pkg.tar.gz
-@end example
-
-Then, @file{@var{xemacs}/} is the default directory of buffer
-@file{*Package Output*} (use @kbd{C-x C-f} in that buffer to see it).
-It might be @file{/usr/local/lib/xemacs/xemacs-packages/} (the first
-element in variable @code{late-packages}).
-
-Under XEmacs-20, @file{@var{xemacs}/} might be
-@file{/usr/local/lib/xemacs-@var{version}/}. Here, you have to
-uncompress and extract the tarball as described in @ref{Installing
-Files}. You also have to load the autoload file explicitly by putting
-the following line into file @file{site-start.el}:
-
-@lisp
-(load "@var{xemacs}/lisp/x-symbol/auto-autoloads")
-@end lisp
-
-I would appreciate if you would set the following variables:
-
-@vtable @code
-@item x-symbol-installer-address
-Please set this variable to your email address to catch problems which
-could be solved locally. In your private @file{~/.emacs}, you might
-want to set this variable to @code{nil}.
-
-@item x-symbol-package-url
-If you have a local copy of the web pages (@pxref{Installing Manual}), set
-this variable to the corresponding @sc{url}.
-@end vtable
-
-@c ====================================================================
-
-@node Installing Lisp, Installing Image Converter, System-wide Installation, Installation
-@comment node-name, next, previous, up
-@section Make XEmacs Initialize X-Symbol During Startup
-@cindex Installing Lisp
-@cindex Lisp Installation
-@cindex Elisp Installation
-@cindex @file{.emacs}
-@findex x-symbol-initialize
-
-Put the following into your @file{~/.emacs} (or @file{~/.xemacs/init.el}):
-
-@lisp
-(x-symbol-initialize)
-@end lisp
-
-Basically, that's it! If you get a warning about X-Symbol not being
-able to deduce a default encoding (or about limited support with XEmacs
-on MS-Windows), check @ref{Default Coding}. If your XEmacs runs on a
-different machine, check @ref{Installing Fonts}.
-
-If your tty console does not support Latin characters, there is no
-reason to use package X-Symbol. In this case, use the following
-instead:
-
-@lisp
-(if (eq (console-type) 'x) (x-symbol-initialize))
-@end lisp
-
-The initialization can be controlled by the following variable:
-
-@vtable @code
-@item x-symbol-initialize
-By default, package X-Symbol does a full initialization. This includes
-an integration with some packages, see also @ref{Package Integration}.
-@end vtable
-
-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: @code{isearch}, @code{highlight},
-@code{primary-selection}, @code{secondary-selection},
-@code{paren-match}, @code{paren-mismatch}, @code{paren-blink-off},
-@code{underline}. I.e., for each @var{face}, use:
-
-@lisp
-(remove-specifier (get (get-face '@var{face}) 'font))
-@end lisp
-
-@c ====================================================================
-
-@node Installing Image Converter, Package Integration, Installing Lisp, Installation
-@comment node-name, next, previous, up
-@section Installing the Image Converter from ImageMagick
-@cindex Installing Image Converter
-@cindex Installing @code{convert}
-@cindex Image Converter Installation
-@cindex @code{convert} Installation
-
-@pindex convert
-Program @code{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.
-
-@vindex x-symbol-image-converter
-While the installation of @code{convert} is optional, you get a warning
-if @code{convert} is not found on your system or if there is no image
-format supported by both @code{convert} and Emacs. Set variable
-@code{x-symbol-image-converter} to @code{nil} if you don't want to get
-the warning.
-
-@vindex x-symbol-image-convert-program
-On Unix, @code{convert} must be in your @code{$PATH}. On MS-Windows, it
-is assumed to be found at @file{C:\ImageMagick\convert}. If this is not
-the case, you have to customize the variable
-@code{x-symbol-image-convert-program}.
-
-Check @uref{http://www.imagemagick.org/} for the installation
-instructions. Run @samp{convert -h} and @samp{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.
-@comment ImageMagick-5.0..5.37 failed to show formats sometimes
-
-If you do not have a truecolor device (i.e., just 256 colors), package
-X-Symbol uses @code{convert} with a colormap by default (@pxref{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.
-
-@c ====================================================================
-
-@node Package Integration, Installing Fonts, Installing Image Converter, Installation
-@comment node-name, next, previous, up
-@section Package Integration
-@cindex Package Integration
-@cindex Integrating Package
-@cindex Other Packages
-
-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 La@TeX{} buffers.
-* Syntax Hiliting Packages:: Package @code{font-lock} and support modes.
-* File IO Packages:: Compression, encryption, remote files, etc.
-* Miscellaneous Packages:: Other packages.
-@end menu
-
-
-@node LaTeX Packages, Syntax Hiliting Packages, Package Integration, Package Integration
-@comment node-name, next, previous, up
-@subsection La@TeX{} Packages
-@cindex La@TeX{} Packages
-@cindex Integrating La@TeX{} Packages
-
-Objectives: relate positions in buffer to positions in file, do
-conversion in master/slave buffers, preserve highlighting, improve input
-methods and other things.
-
-@table @code
-@item auctex
-@pindex auctex
-@pindex texmathp
-@findex TeX-next-error
-@vindex TeX-translate-location-hook
-@findex x-symbol-tex-error-location
-Use Version 9.9c or higher, which includes @code{texmathp}. There is
-some special X-Symbol adaptation for Auc@TeX{}:
-
-@itemize @minus
-@item
-@vindex TeX-master
-X-Symbol supports Auc@TeX{}'s multifile documents: it respects the
-variable @code{TeX-master} when searching for the file encoding
-(@pxref{File Coding}) and when converting image files with relative
-names (@pxref{Image Display}).
-
-@item
-@vindex TeX-region-hook
-X-Symbol supports Auc@TeX{}'s region commands: it ensures that
-characters in @file{_region_.tex} buffer are converted according to the
-parent buffer. Initialization changes @code{TeX-region-hook}. Requires
-Auc@TeX{}, v9.8a or higher.
-
-@item
-X-Symbol's input method Electric (@pxref{Input Method Electric}) with
-token language @code{tex} uses package @code{texmathp}.
-
-@item
-@vindex LaTeX-math-insert-function
-Auc@TeX{}'s math mode commands also inserts X-Symbol characters
-(@pxref{Mathematics,,,
-@value{auctex},
-@value{auctexman}}).
-Initialization sets @code{LaTeX-math-insert-function}. Requires
-Auc@TeX{}, v9.8a or higher.
-
-@item
-@findex TeX-next-error
-@vindex TeX-translate-location-hook
-If @TeX{} displays an error message, it also displays the context of the
-error position. Auc@TeX{} uses the context to set point to this
-position when @kbd{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
-@code{TeX-translate-location-hook}.
-@end itemize
-
-@item bib-cite
-@pindex 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 @code{bib-cite}s highlighting of @code{\cite} and friends.
-
-@item preview-latex
-@pindex preview-latex
-@findex x-symbol-tex-preview-locations
-@TeX{}'s error positions are also used by package @code{preview-latex},
-which was clever enough to reuse the above mentioned hook of Auc@TeX{}.
-Unfortunately, that hook is @dots{} and does not allow a fast translation of
-error positions, so @code{preview-latex} allows to provide better
-variants of functions in that hook. X-Symbol's variant is
-@code{x-symbol-tex-preview-locations}.
-
-@item reftex
-@pindex reftex
-@vindex reftex-translate-to-ascii-function
-Use Version 3.26 or higher. For a workaround for some minor annoyances
-with the combination Ref@TeX{}/X-Symbol/Multifile Document, see
-@ref{Problems and Work-arounds,,,@value{reftex},@value{reftexman}}. By
-default, the initialization of package X-Symbol makes Ref@TeX{}'s label
-creation use the nicer Asciification of package X-Symbol (@pxref{Ascii
-Representation}) by setting @code{reftex-translate-to-ascii-function}.
-
-@item whizzytex
-Use the newest.
-@end table
-
-
-@node Syntax Hiliting Packages, File IO Packages, LaTeX Packages, Package Integration
-@comment node-name, next, previous, up
-@subsection Syntax Highlighting Packages (@code{font-lock} and add-ons)
-@cindex Syntax Highlighting Packages
-@cindex @code{font-lock} Packages
-@cindex Integrating @code{font-lock} Packages
-
-Objectives: start highlighting after conversion. Highlighting is
-needed for super- and subscripts and when using XEmacs without Mule
-support.
-
-@table @code
-@item fast-lock
-@pindex fast-lock
-@vindex fast-lock-save-faces
-I recommend to use package @code{lazy-shot} instead. By default, the
-initialization of package X-Symbol sets @code{fast-lock-save-faces} to
-@code{nil} to make package @code{fast-lock} work with X-Symbol.
-
-@item font-latex
-@pindex font-latex
-@vindex font-lock-maximum-decoration
-I suggest to set @code{font-lock-maximum-decoration} to value @code{t},
-2 or higher if you do not want to use super- and subscripts in arguments
-of @code{\label} and friends. @xref{FAQ Stupid Subscripts}.
-
-@item font-lock
-@pindex font-lock
-@vindex font-lock-auto-fontify
-Is required by this package (@pxref{Role of font-lock}). I strongly
-recommend @emph{not} to turn on font-lock in @emph{any} mode hook, set
-@code{font-lock-auto-fontify} to @code{t} instead (this is the default,
-anyway). See also @code{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 @emph{after} the
-functions in the mode hook have been run, i.e., the fontification is
-getting useless if the tokens are automatically decoded.
-
-@item lazy-lock
-@pindex lazy-lock
-From XEmacs-20.3 on, the successor is called @code{lazy-shot}.
-
-@item lazy-shot
-@pindex lazy-shot
-Is strongly recommended.
-@end table
-
-
-@node File IO Packages, Miscellaneous Packages, Syntax Hiliting Packages, Package Integration
-@comment node-name, next, previous, up
-@subsection File I/O Packages
-@cindex File I/O Packages
-@cindex I/O Packages
-@cindex Remote File Packages
-@cindex Compression Packages
-@cindex Encryption Packages
-@cindex Integrating I/O Packages
-
-Issue: compression, encryption and so on can be seen as some kind of
-conversion. When doing multiple conversion, the sequence matters.
-
-@table @code
-@item ange-ftp
-@pindex ange-ftp
-See also @code{efs} and @code{jka-compr}.
-
-@item comint
-@pindex comint
-@vindex comint-input-sender
-The default installation makes @code{comint}s in-/output use X-Symbol's
-conversion function. If you set variable @code{comint-input-sender},
-set it before initializing package X-Symbol.
-
-@item crypt
-@pindex crypt
-@findex save-buffer
-@vindex x-symbol-auto-conversion-method
-I recommend to use package @code{jka-compr} instead. @xref{Spurious
-Encodings}. @xref{No Encoding}. If you use @code{crypt} and the
-character @code{alpha} looks like @samp{\233a} after @code{save-buffer},
-set this variable to @code{slowest}. @xref{Open Questions}.
-
-@item efs
-@pindex efs
-XEmacs' version of @code{ange-ftp}. See also @code{jka-compr}.
-
-@item iso-cvt
-@pindex 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.
-
-@item iso-sgml
-@pindex iso-sgml
-There is no need to use it. Package X-Symbol already provides the
-conversion between Latin-1 characters and ``@sc{sgml} entities''.
-@xref{Miscellaneous Packages}, package @code{psgml-html}.
-
-@item jka-compr
-@pindex jka-compr
-Can be used with package X-Symbol, preferred to @code{crypt}. The
-following is absolutely necessary (with or without using package
-X-Symbol, at least in older Emacsen): load @code{jka-compr} after
-@code{efs}/@code{ange-ftp}!
-
-@item latin-unity
-@pindex 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 (@pxref{Char
-Aliases}) and recoding (@pxref{File Coding}).
-
-@c also ucs-tables.el? should be no problem@dots{}
-
-@item vc
-@pindex vc
-@findex vc-next-action
-If you use package @code{crypt}, @code{vc-next-action} and friends
-encode characters to tokens. @xref{Spurious Encodings}.
-@end table
-
-
-@node Miscellaneous Packages, , File IO Packages, Package Integration
-@comment node-name, next, previous, up
-@subsection Miscellaneous Packages
-@cindex Miscellaneous Packages
-
-@table @code
-@item abbrev
-@pindex abbrev
-On XEmacs without Mule support, I recommend to set variable
-@code{words-include-escapes} to @code{t}. @xref{Nomule Problems}.
-
-@item completion
-@pindex completion
-Should work with X-Symbol (earlier version of X-Symbol had problems with
-input method token).
-
-@item desktop
-@pindex desktop
-XEmacs' version (an old one) does not save its @file{.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 @code{session} below.
-
-@item flyspell
-@pindex flyspell
-@findex global-flyspell-mode
-Should work apart from the general problem of @code{ispell}.
-
-@item func-menu
-@pindex func-menu
-Should work with X-Symbol.
-
-@item ispell
-@pindex ispell
-The package @code{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 @code{ispell}, @ref{Wishlist Emacs}. @xref{FAQ
-Spell Check}.
-
-@pindex ProofGeneral
-Use a future version (hopefully v3.4). Includes special X-Symbol
-initialization/handling and defines additional token languages.
-@xref{External Languages}.
-
-@item psgml-html
-@pindex psgml
-@pindex psgml-html
-@code{psgml-html}: Do not set @code{html-auto-sgml-entity-conversion} to
-non-@code{nil}. @xref{File IO Packages}, package @code{iso-sgml}.
-
-@item session
-@pindex session
-Use Version 1.5a or higher. If strings in this file should always be
-read correctly, you should put @code{(x-symbol-init-input)} into your
-@file{~/.emacs}; otherwise strings containing X-Symbol's private
-characters read from the @file{~/.session} file might look funny. See
-also package @code{desktop} above.
-
-@item x-compose
-@pindex x-compose
-All characters from @code{x-compose} are also supported by package
-X-Symbol. Thus, I recommend to use @kbd{@key{multi-key}} instead
-@kbd{C-=} when running under XEmacs without Mule support.
-@xref{Introducing Input Methods}.
-@end table
-
-@c ===========================================================================
-
-@node Installing Fonts, Installing Fonts Exceed, Package Integration, Installation
-@comment node-name, next, previous, up
-@section Installing Additional Fonts
-@cindex Installing Fonts
-@cindex Fonts
-@cindex X11 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@dots{}. Nevertheless, if you have a clearer explanation for
-the installation sequence below, please send me a patch to
-@file{man/x-symbol/x-symbol.texi}.)
-
-@enumerate
-@item
-@pindex xfd
-@pindex xfontsel
-Find the font which you want to replace by checking fonts with the X11
-program @code{xfontsel} or @code{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.
-
-@item
-Find the @file{.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 @file{.bdf} files for additional fonts sizes
-of all fonts except the xsymb1 font (@pxref{Wishlist Fonts}).
-
-There are two categories of @file{.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 @file{~/.xemacs/xemacs-packages/etc/x-symbol/origfonts/}. The second
-category contains files for fonts which are not installed. Copy these
-files to @file{~/.xemacs/xemacs-packages/etc/x-symbol/fonts/}.
-
-@item
-In file @file{~/.xemacs/xemacs-packages/etc/x-symbol/fonts/Makefile},
-change variables @code{ORIGBDFS} for the first category and @code{BDFS}
-for the second category accordingly.
-
-@item
-@pindex perl
-In directory @file{~/.xemacs/xemacs-packages/etc/x-symbol/fonts/},
-execute @code{make mkdirs}, and @code{make pcfs}. You need GNUs
-@code{make} and @code{perl}, Version 5 (or higher).
-
-@item
-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 @file{~/.xsession} (X11 startup file).
-
-@pindex xset
-@example
-xset +fp ~/.xemacs/xemacs-packages/etc/x-symbol/pcf/
-@end example
-
-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 @code{xset}, you should copy all @file{.pcf}
-files (compiled fonts) from @file{~/.xemacs/xemacs-packages/etc/x-symbol/pcf/} into
-directory @file{/usr/lib/X11/fonts/75dpi/} (Slackware distribution) and
-run @samp{mkfontdir 75dpi} in that directory.
-
-@item
-Your are on the safe side if you restart X11 after this.
-
-@item
-Set the Elisp variables which define the fonts. @xref{Installing Fonts Lisp}.
-@end enumerate
-
-@c ====================================================================
-
-@node Installing Fonts Exceed, Installing Fonts Lisp, Installing Fonts, Installation
-@comment node-name, next, previous, up
-@section Installing Fonts for Exceed (X-server on Windows/NT)
-@cindex Installing Fonts
-@cindex Fonts
-@pindex Exceed
-@pindex Windows/NT
-
-If your X-server on Windows/NT 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/NT. The following works with
-Exceed 6.0 & NT 4.0 and Exceed 7.0 & Windows 2000:
-
-@enumerate
-@item
-In Unix, edit file @file{~/.xemacs/xemacs-packages/etc/x-symbol/fonts/makesub} to limit
-the shift for superscript to 3 points:
-@smallexample
-%supoffs = ('08',3, 10,3, 12,3, 14,3, 16,3, 18,3, 24,3);
-@end smallexample
-
-@item
-Then, execute @code{make mkdirs}, and @code{make gens} in
-@file{~/.xemacs/xemacs-packages/etc/x-symbol/fonts/}. If you have problems, please read
-the previous section.
-
-@item
-In Exceed's configuration window, click on @key{Font} to open Window
-@file{Font Settings}. In this window, click on @key{Select All}, then
-on @key{Compile Fonts...}.
-
-@item
-Copy X-Symbol's @file{bdf} files in @file{~/.xemacs/xemacs-packages/etc/x-symbol/fonts/}
-and @file{~/.xemacs/xemacs-packages/etc/x-symbol/genfonts/} to a Windows/NT directory
-and select this directory in the Exceed Window @file{Compile Fonts}.
-Click on @key{Compile}.
-
-@item
-In Window @file{Font Settings}, click on @key{Font Database...}. In
-this window, click on @key{Add...}. Enter the output directory from the
-previous step as the @samp{Font Directory} and @code{xsymb} as the
-@samp{File Name (*.fdb)}. Click on @key{OK}.
-
-@item
-You might want to rearrange the sequence of Font DB files to let files
-@file{75dpi} appear prior to files @file{100dpi}, because X-Symbol's
-fonts are designed for 75dpi.
-
-@item
-In Window @file{Font Database}, click on @key{Rebuild Database...} and
-then on @key{OK}.
-@end enumerate
-
-Note: @emph{Windows NT 4.0 will crash (bluescreen) if you use fonts
-compiled by Exceed from the @file{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.
-
-@c ====================================================================
-
-@node Installing Fonts Lisp, Installing Manual, Installing Fonts Exceed, Installation
-@comment node-name, next, previous, up
-@section Lisp Coding when Using Other Fonts
-@cindex Font Lisp Setup
-@cindex Font Lisp Installation
-
-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 @code{font-lock} to display them (@pxref{Role of font-lock}).
-
-If you have installed additional fonts (@pxref{Installing Fonts}) for
-use with package X-Symbol, you might have to change the following
-variables:
-
-@vtable @code
-@item x-symbol-latin1-fonts
-@itemx x-symbol-latin2-fonts
-@itemx x-symbol-latin3-fonts
-@itemx x-symbol-latin5-fonts
-@itemx x-symbol-latin9-fonts
-@itemx x-symbol-xsymb0-fonts
-@itemx 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@minus{}encoding (e.g., @samp{adobe-fontspecific})
-as specified by the fonts in the default value of this variable.
-
-@item 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 @samp{%d} in the
-names.
-@end vtable
-
-E.g., if you prefer larger fonts, you might want to insert the following
-into your @file{~/.emacs}:
-
-@smalllisp
-(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")))
-@end smalllisp
-
-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 (@pxref{FAQ Font Size}).
-
-You might want to change the following variables:
-
-@vtable @code
-@item 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.
-
-@item 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 @ref{Installing Fonts Lisp} might have no influence if Emacs
-already has defined fonts for the corresponding charsets.
-@end vtable
-
-@c ====================================================================
-
-@node Installing Manual, Checking Installation, Installing Fonts Lisp, Installation
-@comment node-name, next, previous, up
-@section Installing Info, Postscript and HTML Files
-@cindex Installing Manual
-@cindex Info
-@cindex Texinfo
-@cindex Postscript
-@cindex HTML
-@cindex Manual
-@cindex Documentation
-
-@pindex makeinfo
-To create the info files, execute @code{make info} in directory
-@file{~/.xemacs/xemacs-packages/man/x-symbol/} of the distribution. It requires
-@code{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 @file{~/.xemacs/xemacs-packages/info/dir}:
-@smallexample
-* X-Symbol:: Semi WYSIWYG for LaTeX, HTML and other "token languages"
-@end smallexample
-
-
-@pindex texi2dvi
-Optionally, you might want to create a printed document from the @TeX{}info
-file. Execute @code{make ps} in directory @file{~/.xemacs/xemacs-packages/man/x-symbol/}
-of the distribution. It requires @code{texi2dvi}.
-
-@pindex latex2html
-Optionally, you can create an online manual for a web browser by
-executing @code{make html} in directory @file{~/.xemacs/xemacs-packages/man/x-symbol/} of
-the distribution. It requires @code{texi2html}.
-
-All formats of the manual are created by executing @code{make all}.
-
-@c ====================================================================
-
-@node Checking Installation, , Installing Manual, Installation
-@comment node-name, next, previous, up
-@section Checking the Correct Installation of Package X-Symbol
-@cindex Checking Installation
-@cindex Final Installation Checks
-@cindex Installation Checks
-
-After having completed the installation, exit and restart Emacs.
-
-@itemize @bullet
-@item
-Type @kbd{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.
-
-@item
-Type @kbd{M-x x-symbol-grid} in buffer @file{*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
-@file{*Warnings*}. @xref{Installing Fonts}.
-
-@item
-Move your mouse pointer to any X-Symbol character in buffer
-@file{*X-Symbol Grid (x-symbol charsym)*}, press the right mouse button
-and initialize successively all token languages.
-
-@item
-Again, type @kbd{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.
-
-@item
-If buffer @file{*Warnings*} does not exist in the buffer menu,
-everything is fine. So is (for me as the author of package X-Symbol),
-if @samp{X-Symbol} is not mentioned there. If there is a warning with
-@samp{no valid image converter}, you have forgotten to install
-ImageMagick (@pxref{Installing Image Converter}).
-@end itemize
-
-@c ===========================================================================
-
-@node Concepts, Input Methods, Installation, Top
-@comment node-name, next, previous, up
-@chapter Concepts of Package X-Symbol
-@cindex Concepts
-@cindex Terminology
-@cindex Basics
-
-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 @ref{Input Methods} and @ref{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 @code{font-lock}.
-* Char Group:: Character group and token classes.
-@end menu
-
-@c ===========================================================================
-
-@node Token Language, Conversion, Concepts, Concepts
-@comment node-name, next, previous, up
-@section Token Language
-@cindex Token Language
-@cindex 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 @dfn{token language} which is in close relation to
-the major mode of the current buffer. E.g., character @code{alpha}
-stands for @code{\alpha} in La@TeX{} buffers.
-
-For details of predefined token languages ``@TeX{} macro'' (@code{tex}),
-``@sc{sgml} entity'' (@code{sgml}), ``Bib@TeX{} macro'' (@code{bib}), and
-``@TeX{}info command'' (@code{texi}), see @ref{Supported Languages}.
-
-The token language determines the conversion between X-Symbol characters
-and tokens (@ref{Conversion}), the input methods (@pxref{Input
-Methods}), and various other features (@pxref{Features}).
-
-The token language is defined by the following buffer-local variable:
-
-@vtable @code
-@item 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 (@pxref{File
-Variables,,,@value{emacs},@value{emacsman}}), e.g.:
-
-@example
-%% Local Variables:
-%% x-symbol-language: tex
-%% End:
-@end example
-@end vtable
-
-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
-@ref{Minor Mode}.
-
-A token language must be @dfn{registered}, if you want to use it. By
-default, the above mentioned token languages are registered.
-
-@c ===========================================================================
-
-@node Conversion, Minor Mode, Token Language, Concepts
-@comment node-name, next, previous, up
-@section Conversion: Decoding and Encoding
-@cindex Conversion
-@cindex Decoding
-@cindex 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 @dfn{decoding}, and some conversion from characters
-to tokens, called @dfn{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 (@code{iso-8859-1}), Latin-2 (@code{iso-8859-2}), Latin-3
-(@code{iso-8859-3}), Latin-5 (@code{iso-8859-9}), and Latin-9
-(@code{iso-8859-15}). It currently supports less encodings with XEmacs
-on MS-Windows (@pxref{Requirements}).
-
-
-@menu
-* Default Coding:: Encoding of your default charset.
-* 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.
-@end menu
-
-
-@node Default Coding, File Coding, Conversion, Conversion
-@comment node-name, next, previous, up
-@subsection Default Coding
-@cindex Default Coding
-@cindex Default Encoding
-@cindex Default Font
-@cindex Coding, Default
-@cindex Encoding, Default
-@cindex Font, Default
-
-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 @dfn{normal file
-encoding}, also called a coding system (@pxref{Recognize
-Coding,,,@value{emacs},@value{emacsman}}).
-
-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 @dfn{normal file encoding} is the default
-encoding:
-
-@vtable @code
-@item x-symbol-default-coding
-The default encoding. The value must be a symbol denoting one of the
-supported encodings or @code{nil}. The variable must be set before
-X-Symbol has been initialized. @xref{Installing Lisp}.
-@end vtable
-
-The @dfn{default encoding} is not only used to determine the normal file
-encoding without Mule, but also for the following:
-
-@itemize @bullet
-@item
-X-Symbol has its own mechanism to recognize a file encoding which only
-works with a specified default encoding. @xref{File Coding}.
-
-@item
-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. @xref{Char Aliases}.
-
-@item
-Without Mule support, the default encoding is also needed to decide
-which characters have to be faked by 2 characters internally: exactly
-characters in those charsets which do not correspond to the default
-encoding. @xref{Poor Mans Mule}.
-@end itemize
-
-To deduce the default value, X-Symbol inspects the Mule language
-environment and the output of the shell command @code{locale}, or to be
-more exact:
-
-@example
-locale -ck code_set_name charmap
-@end example
-
-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 @code{nil} is the same as
-@code{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 @code{nil} makes sure that X-Symbol file
-encoding detection (@pxref{File Coding}) only works if Emacs has
-detected the same encoding; it works like @code{iso-8859-1} otherwise.
-
-
-@node File Coding, Controlling 8bit Coding, Default Coding, Conversion
-@comment node-name, next, previous, up
-@subsection File Coding of 8bit Characters
-@cindex File Coding
-@cindex Coding in File
-@cindex Encoding in File
-@cindex 8bit File Coding
-@cindex Latin File Coding
-@cindex Recoding
-
-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:
-
-@vtable @code
-@item x-symbol-coding
-8bit character encoding in the file visited by the current buffer.
-Value @code{nil} represents the normal file encoding (@pxref{Default
-Coding}).
-
-With Mule support, any value other than @code{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
-@code{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 (@pxref{File Variables,,,@value{emacs},@value{emacsman}}),
-e.g.:
-
-@example
-<!-- Local Variables: -->
-<!-- x-symbol-coding: iso-8859-2 -->
-<!-- End: -->
-@end example
-@end vtable
-
-If the variable is not already buffer-local, a reasonable value is
-deduced when turning on X-Symbol (@pxref{Minor Mode}) by searching for
-some language dependent headers at the beginning of the file:
-
-@vtable @code
-@item x-symbol-auto-coding-search-limit
-X-Symbol usually searches for something like
-@samp{\usepackage[@dots{}]@{inputenc@}} (@pxref{TeX Macro}) or @samp{<meta @dots{}
-charset=@dots{}>} (@pxref{SGML Entity}) in the first 10000 characters.
-@end vtable
-
-If you choose not to save a file containing 8bit characters
-(@pxref{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. @dfn{Recoding} changes a
-character with code position @var{pos} in one charset to a character
-with the same code position @var{pos} in another charset. If the normal
-file encoding is different to the default encoding, X-Symbol also
-resolves character aliases (@pxref{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:
-
-@itemize @bullet
-@item
-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 (@xref{Controlling 8bit Coding}). The modeline includes
-@samp{-i} to represent the file encoding (@pxref{Minor Mode}), except if
-the default encoding is @code{nil}, the normal file encoding is
-unsupported, and the variable @code{x-symbol-coding} is not specified.
-
-@item
-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 (@pxref{Unique Decoding}) nor via
-input methods. The modeline includes @samp{-err} to represent the file
-encoding (@pxref{Minor Mode}).
-@end itemize
-
-We end with a little example: if your normal file encoding and default
-encoding is Latin-1, and you visit a file with
-@samp{\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.
-
-
-@node Controlling 8bit Coding, Unique Decoding, File Coding, Conversion
-@comment node-name, next, previous, up
-@subsection Store or Encode 8bit Characters
-@cindex Storing 8bit Characters
-@cindex Controlling 8bit Coding
-@c @cindex Buffer 8bit Control
-@cindex 8bit Coding Control
-@cindex Latin in File
-
-You can specify that 8bit characters (according to the coding in your
-file, @ref{File Coding}), are not encoded to tokens (when saving a
-file), by setting the following buffer-local variable:
-
-@vtable @code
-@item 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 (@pxref{File Variables,,,@value{emacs},@value{emacsman}}),
-e.g.:
-
-@example
-%% Local Variables:
-%% x-symbol-8bits: t
-%% End:
-@end example
-@end vtable
-
-If the variable is not already buffer-local, a reasonable value is
-deduced when turning on X-Symbol (@pxref{Minor Mode}) by setting it the
-the value of @code{x-symbol-coding}, or searching in the file for 8bit
-characters:
-
-@vtable @code
-@item 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.
-@end vtable
-
-If the file encoding is invalid (@pxref{File Coding}), we always search
-for 8bit characters in the complete document and set
-@code{x-symbol-8bits} accordingly. Then, a non-@code{nil} value also
-implies unique decoding (@pxref{Unique Decoding}).
-
-While the variable @code{x-symbol-8bits} usually only influences the
-encoding, it also influences the decoding if you choose to decode
-uniquely (@pxref{Unique Decoding}).
-
-Setting variable @code{x-symbol-8bits} to @code{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 (@pxref{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
-(@pxref{Introducing Input Methods}), you have probably copied them into
-the current buffer.
-
-
-@node Unique Decoding, Conversion Commands, Controlling 8bit Coding, Conversion
-@comment node-name, next, previous, up
-@subsection Unique Decoding
-@cindex Unique Decoding
-@cindex Restricted Decoding
-@cindex Unique @TeX{} macro
-
-Token languages might define more than one token representing the same
-character. When decoding and encoding these tokens, they will be
-@dfn{normalized} to one form, the @dfn{canonical representation}. E.g.,
-with language @code{tex}, visiting a file with tokens @code{\neq} and
-@code{\ne} converts both tokens to character @code{lessequal}, saving
-the buffer stores the character as token @code{\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 (@pxref{TeX Macro Problems})!
-For this reason, package X-Symbol provides the following buffer-local
-variable:
-
-@vtable @code
-@item 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
-@code{x-symbol-8bits} is non-@code{nil} (@pxref{Controlling 8bit
-Coding}), do not decode tokens which would be decoded to 8bit characters
-(according to the coding in your file, @ref{File Coding}).
-
-You can set this variable in the ``local variables list'' near the end
-of the file (@pxref{File Variables,,,@value{emacs},@value{emacsman}}),
-e.g., together with a setting for @code{x-symbol-8bits}:
-
-@example
-%% Local Variables:
-%% x-symbol-8bits: t
-%% x-symbol-unique: t
-%% End:
-@end example
-@end vtable
-
-If the variable is not already buffer-local, a reasonable value is
-deduced when turning on X-Symbol (@pxref{Minor Mode}): it will be set to
-@code{t} if X-Symbol mode is not automatically turned on.
-
-If the file encoding is invalid (@pxref{File Coding}) and
-@code{x-symbol-8bits} is non-@code{nil} (@pxref{Controlling 8bit
-Coding}), X-Symbol always uses unique decoding (@pxref{Unique
-Decoding}).
-
-
-@node Conversion Commands, Copy with Conversion, Unique Decoding, Conversion
-@comment node-name, next, previous, up
-@subsection Conversion Commands
-@cindex Conversion Commands
-@cindex Automatic Conversion
-@cindex Interactive Conversion
-@cindex Explicit Conversion
-
-First the good news: most of the time, the necessary conversions are
-performed automatically when you would expect them to be performed:
-
-@itemize @bullet
-@item
-Turning X-Symbol minor mode (@pxref{Minor Mode}) on/off also performs
-decoding/encoding.
-
-@item
-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).
-
-@item
-Inserting a file into a buffer where X-Symbol is enabled will decode the
-tokens in the inserted region.
-@end itemize
-
-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):
-
-@table @kbd
-@item M-x x-symbol-decode-recode
-@findex x-symbol-decode-recode
-Recode all characters (if necessary) and decode all tokens to
-characters.
-
-@item M-x x-symbol-decode
-@findex x-symbol-decode
-Decode all tokens to characters, do not recode characters.
-
-@item M-x x-symbol-encode-recode
-@findex x-symbol-encode-recode
-Encode all characters in buffer to tokens or recode them.
-
-@item M-x x-symbol-encode
-@findex 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 @code{x-symbol-8bits}
-is relative to the file coding, @ref{Controlling 8bit Coding}.
-@end table
-
-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 (@pxref{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.
-
-
-@node Copy with Conversion, Char Aliases, Conversion Commands, Conversion
-@comment node-name, next, previous, up
-@subsection Copy & Paste with Conversion
-@cindex Copy and Conversion
-@cindex Copy Encoded
-@cindex Paste and Conversion
-@cindex Paste Decoded
-@cindex Yank Decoded
-
-You probably use X-Symbol, because you want to produce some
-non-@sc{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-@sc{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
-@code{plusminus} from a LaTeX buffer to a HTML buffer, you really copy
-that character and not the three characters of the TeX macro @code{\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):
-
-@table @kbd
-@item M-x x-symbol-copy-region-encoded
-@findex x-symbol-copy-region-encoded
-@vindex kill-ring
-Save the region in the @code{kill-ring} with all X-Symbol characters
-encoded like by @kbd{M-x x-symbol-encode}, i.e., without recoding.
-
-@item M-x x-symbol-yank-decoded
-@findex x-symbol-yank-decoded
-Reinsert the last text in the @code{kill-ring} and decode the inserted
-text like @kbd{M-x x-symbol-decode}, i.e., without recoding.
-@end table
-
-You could get the same result with the usual copy & paste commands and
-the conversion commands from the previous section (@pxref{Conversion
-Commands}), but this would clutter the undo information of the current
-buffer and would require an additional undo operation for the copy.
-
-
-@node Char Aliases, , Copy with Conversion, Conversion
-@comment node-name, next, previous, up
-@subsection Character Aliases
-@cindex Char Aliases
-@cindex Character Aliases
-@cindex Aliases of Characters
-@cindex Latin Character Aliases
-@cindex Remapping Characters
-
-A @dfn{character alias} or @dfn{char alias} is a character which is also
-a character in a font with another registry, e.g., @code{adiaeresis} is
-defined in all supported Latin fonts. Emacs distinguish between these
-five characters. In package X-Symbol, one of them, with
-@code{x-symbol-default-coding} (@pxref{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 @code{adiaeresis}es and that there are neither different
-@code{adiaeresis}es in Unicode nor in the token representations of
-languages @code{tex} and @code{sgml}.
-
-8bit characters in files with a file coding @code{x-symbol-coding} other
-than @code{x-symbol-default-coding} are converted to the ``normal''
-form. E.g., if you have a Latin-1 font by default, the
-@code{adiaeresis} in a Latin-2 encoded file is a Latin-1
-@code{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 @file{european.el}. In XEmacs without Mule support,
-this is only possible if you use commands like @kbd{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):
-
-@table @kbd
-@item M-x x-symbol-unalias
-@findex x-symbol-unalias
-Resolve all character aliases in buffer. If the region is active, only
-resolve char aliases in the region.
-@end table
-
-A single char alias before point can be resolved by command
-@code{x-symbol-modify-key} and @code{x-symbol-rotate-key}, see
-@ref{Input Method Context}.
-
-@pindex latin-unity
-The XEmacs package @code{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.
-
-@c ===========================================================================
-
-@node Minor Mode, Poor Mans Mule, Conversion, Concepts
-@comment node-name, next, previous, up
-@section Minor Mode
-@cindex Minor Mode
-@cindex Mode
-@cindex X-Symbol Mode
-
-X-Symbol is a minor mode (@pxref{Minor
-Modes,,,@value{emacs},@value{emacsman}}) which enables the features
-mentioned in this manual:
-
-@itemize @bullet
-@item
-X-Symbol mode is required to do the conversions. Turning the minor mode
-on/off also includes decoding/encoding (@pxref{Conversion Commands}).
-
-@item
-X-Symbol mode provides the minor mode menu which includes: various
-commands, commands to insert characters (@pxref{Input Method Menu}), and
-entries to change some global and buffer-local variables mentioned in
-this manual. The menu might also include individual entries for a token
-language (@pxref{TeX Macro Basics}):
-
-@vtable @code
-@item x-symbol-@var{lang}-extra-menu-items
-Extra menu items for each token language @var{lang}.
-@end vtable
-
-@item
-X-Symbol mode is required for most input methods (@pxref{Input Methods})
-and other features (@pxref{Features}).
-@end itemize
-
-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:
-
-@table @kbd
-@item M-x x-symbol-mode
-@findex x-symbol-mode
-@vindex x-symbol-mode
-Toggle X-Symbol mode. If provided with a numeric prefix argument, turn
-X-Symbol mode on if the argument is positive, else turn it off.
-@end table
-
-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 (@pxref{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:
-
-@vtable @code
-@item 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):
-
-@itemize @minus
-@item
-@code{x-symbol-token-language} (@pxref{Token Language}), indicated in
-the modeline, e.g. @samp{tex},
-@item
-@code{x-symbol-mode}, i.e., whether it is appropriate to turn on
-X-Symbol mode automatically,
-@item
-@code{x-symbol-coding} (@pxref{File Coding}), indicated in the modeline
-if different from the default coding, e.g. @samp{-l2} for Latin-2,
-@item
-@code{x-symbol-8bits} (@pxref{Controlling 8bit Coding}), indicated in
-the modeline by @samp{8},
-@item
-@code{x-symbol-unique} (@pxref{Unique Decoding}), indicated in
-the modeline by @samp{*},
-@item
-@code{x-symbol-subscripts} (@pxref{Super and Subscripts}), indicated in
-the modeline by @samp{s},
-@item
-@code{x-symbol-image} (@pxref{Images}), indicated in the modeline by
-@samp{i},
-@end itemize
-
-@item x-symbol-@var{lang}-modes
-Major modes which use token language @var{lang} by default.
-@xref{Supported Languages}.
-
-@item x-symbol-@var{lang}-auto-style
-Default values for the above mentioned variables @code{x-symbol-mode},
-@code{x-symbol-coding}, @code{x-symbol-8bits}, @code{x-symbol-unique},
-@code{x-symbol-subscripts}, and @code{x-symbol-image} if not already
-buffer-local.
-
-@item x-symbol-auto-mode-suffixes
-Regular expression matching file suffixes to be ignored when checking
-file names for the derivation above, e.g., extension @file{.orig}.
-
-@item x-symbol-modeline-state-list
-This variable controls the modeline appearance just mentioned.
-@end vtable
-
-@c ====================================================================
-
-@node Poor Mans Mule, Role of font-lock, Minor Mode, Concepts
-@comment node-name, next, previous, up
-@section Poor Man's Mule: Running Under XEmacs/no-Mule
-@cindex Poor Man's Mule
-@cindex No Mule
-@cindex XEmacs without 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 (@pxref{Default Coding}) are represented by
-two characters, see @ref{Char Representation}.
-
-This can lead to a lot of problems, which are resolved by the following
-methods (some annoyances remain, @pxref{Nomule Problems}) when X-Symbol
-mode is turned on (@pxref{Minor Mode}):
-
-@itemize @bullet
-@item
-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.
-
-@item
-Package @code{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 @ref{Role of
-font-lock}.
-
-@ftable @code
-@item x-symbol-nomule-fontify-cstrings
-Alternatively to enabling @code{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
-@code{reftex}.
-@end ftable
-@end itemize
-
-@c ====================================================================
-
-@node Role of font-lock, Char Group, Poor Mans Mule, Concepts
-@comment node-name, next, previous, up
-@section The Role of @code{font-lock}
-@cindex Role of @code{font-lock}
-@cindex @code{font-lock} Use
-@cindex Special Fonts
-
-Package X-Symbol uses package @code{font-lock} to display super- and
-subscripts (@pxref{Super and Subscripts}) and to display its special
-characters under XEmacs/no-Mule (@pxref{Poor Mans Mule}). Thus, you
-should enable @code{font-lock} in buffers where you want to use X-Symbol
-(it is by default). @xref{Syntax Hiliting Packages}.
-
-When X-Symbol mode is turned on, it automatically adds the necessary
-font-lock keywords to the buffer-local value of
-@code{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 @code{font-lock} might
-not yet been turned on or since you might want to change
-@code{font-lock}s decoration of the current buffer after X-Symbol has
-been turned on.
-
-Please note that switching the mode by typing @kbd{M-x latex-mode}
-@emph{does not set} the La@TeX{}'s font-lock keywords! They are set at
-the end of @kbd{C-x C-f}. If you switch the mode, turn on
-@code{font-lock} by yourself.
-
-Independently from package X-Symbol, the following command might be
-useful in some situations:
-
-@table @kbd
-@item M-x x-symbol-fontify
-@findex x-symbol-fontify
-Refontify buffer.
-@end table
-
-@c ====================================================================
-
-@node Char Group, , Role of font-lock, Concepts
-@comment node-name, next, previous, up
-@section Character Group and Token Classes
-@cindex Character Group
-@cindex Group of Characters
-@cindex Similar Characters
-@cindex Category of Character
-@cindex Syntax of Character
-@cindex Token Classes
-@cindex Classes of Tokens
-@cindex Coloring Scheme
-
-Each X-Symbol character belongs to a @dfn{character group}, e.g.,
-@code{natnums} belongs to @code{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:
-
-@itemize @bullet
-@item
-The Grid and submenu header under which the character can be found
-(@pxref{Input Method Grid}, @ref{Input Method Menu}).
-
-@item
-The default bindings of characters (@pxref{Input Method Keyboard}) of
-some groups.
-
-@item
-Whether to show the context info for a character (@pxref{Info}).
-
-@item
-The default @sc{ascii} representation of a character (@pxref{Ascii
-Representation}).
-
-@item
-When using Emacs/XEmacs with Mule support, the syntax of a character
-(@pxref{Syntax,,,@value{emacs},@value{emacsman}}).
-@end itemize
-
-The character group is independent from any token language, but is
-probably somewhat related to some of its @dfn{token classes}. For each
-token language, each character is assigned to a list of token classes,
-which can be used for the following:
-
-@itemize @bullet
-@item
-Information in the echo area (@pxref{Info}), it could inform users to
-include a specific La@TeX{} package when they want to use that character
-in the document.
-
-@item
-Using a @dfn{coloring scheme} when displaying the characters in the echo
-area (@pxref{Info}) or the Grid of characters (@pxref{Input Method
-Grid}), useful for characters which can just be used in a specific
-context, like @TeX{}'s math-mode characters.
-
-@item
-Restricting the ``electricity'' of input method Electric (@pxref{Input
-Method Electric}), useful to disable this input methods for @TeX{}'s
-math-mode characters if we are in text-mode.
-@end itemize
-
-The token classes for individual token languages are explained in the
-corresponding sections of chapter @ref{Supported Languages}:
-
-@vtable @code
-@item x-symbol-@var{lang}-header-groups-alist
-The Grid and Menu headers for each token language @var{lang}.
-
-@item x-symbol-@var{lang}-class-alist
-Strings for the character info in the echo area for each token language
-@var{lang}.
-
-@item x-symbol-@var{lang}-class-face-alist
-The coloring scheme for each token language @var{lang}.
-@end vtable
-
-@c ===========================================================================
-
-@node Input Methods, Features, Concepts, Top
-@comment node-name, next, previous, up
-@chapter X-Symbol's Input Methods
-@cindex Input Methods
-@cindex Character Insertion
-
-An X-Symbol @dfn{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
-@uref{@value{http}/details.html, web pages of X-Symbol}.
-
-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 Auc@TeX{}, Version 9.8a or higher, its math mode commands also
-inserts X-Symbol characters
-(@pxref{Mathematics,,,@value{auctex},@value{auctexman}}).
-
-@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.
-@end menu
-
-@c ===========================================================================
-
-@node Introducing Input Methods, Input Method Token, Input Methods, Input Methods
-@comment node-name, next, previous, up
-@section Common Behavior of All Input Methods
-@cindex Input Methods, General
-@cindex Input Methods, Common
-@cindex Input Methods, Standard
-@cindex Valid Character
-@cindex Allowed Character
-@cindex Key Prefix
-@cindex Prefix Argument
-@cindex Prefix Key
-@cindex Defined Character
-@cindex Compose Key
-
-Input methods normally just inserts @dfn{valid characters} which are
-those characters which have a useful representation in the file:
-
-@vtable @code
-@item 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 @code{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 @code{x-symbol-language} (@pxref{Token
-Language}).
-@end vtable
-
-If a buffer is read-only (@pxref{Misc
-Buffer,,,@value{emacs},@value{emacsman}}), most input methods push the
-character to insert onto the kill ring instead. Typing @kbd{C-y} lets
-you then insert the character
-(@pxref{Yanking,,,@value{emacs},@value{emacsman}}).
-
-The input methods Keyboard, Menu and Grid (the character selection with
-@kbd{@key{button2}}) have the same interpretation of the prefix
-argument:
-
-@itemize @bullet
-@item
-With prefix argument @samp{0}, do not insert anything, just barf, if the
-character is not valid.
-
-@item
-With a positive prefix argument, insert a character that many times.
-Barf, if the character is not valid.
-
-@item
-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.
-
-@item
-With one or more @kbd{C-u}s with no digits, insert the token of a
-language to choose, including ``x-symbol charsym'' (@pxref{Pseudo
-Language}).
-@end itemize
-
-Many input commands of package X-Symbol uses the same key prefix in its
-default binding:
-
-@vtable @code
-@item x-symbol-compose-key
-@kindex C-=
-@kindex @key{multi-key}
-By default, @kbd{C-=} is used as the key prefix. Under XEmacs/no-Mule,
-you might want to use @kbd{@key{multi-key}} instead:
-
-@lisp
-(unless (featurep 'mule) (setq x-symbol-compose-key '(multi-key)))
-@end lisp
-
-@item x-symbol-auto-key-autoload
-Set this to @code{nil}, if you do not want that pressing @kbd{C-=}
-automatically initializes the input methods.
-@end vtable
-
-@c ===========================================================================
-
-@node Input Method Token, Input Method Read Token, Introducing Input Methods, Input Methods
-@comment node-name, next, previous, up
-@section Input Method Token: Replace Token by Character
-@cindex Input Method Token
-@cindex Token, Input Method
-@cindex Replace Token
-@cindex Abbrev, Token @c pre-2.2
-
-If X-Symbol mode is on, input method @dfn{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 (@kbd{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 @code{font-lock} which highlights the token to look like a
-character.
-
-You might want to press @kbd{C-/} or @kbd{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:
-
-@vtable @code
-@item x-symbol-token-input
-A boolean which can also be changed via the X-Symbol menu.
-@end vtable
-
-Individual token language might slightly change the way input method
-Token works exactly; from the predefined language, it is just @code{tex}
-(@pxref{TeX Macro}).
-
-@c ===========================================================================
-
-@node Input Method Read Token, Input Method Menu, Input Method Token, Input Methods
-@comment node-name, next, previous, up
-@section Input Method Read Token: Minibuffer Completion
-@cindex Input Method Read Token
-@cindex Read Token, Input Method
-@cindex Minibuffer Completion, Token
-
-You can insert a character by reading the corresponding token in the
-minibuffer. You are offered completion over the known tokens
-(@pxref{Completion,,,@value{emacs},@value{emacsman}}).
-
-@table @kbd
-@item M-x x-symbol-read-token-direct
-@itemx C-= @key{TAB}
-@findex x-symbol-read-token-direct
-@kindex C-= @key{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''
-(@pxref{Pseudo Language}).
-
-@item M-x x-symbol-read-token
-@itemx C-= @key{RET}
-@findex x-symbol-read-token
-@kindex C-= @key{RET}
-Insert character by first selecting the token language and then a token
-in that language.
-@end table
-
-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 @ref{Introducing Input Methods}.
-
-@c ===========================================================================
-
-@node Input Method Menu, Input Method Grid, Input Method Read Token, Input Methods
-@comment node-name, next, previous, up
-@section Input Method Menu: Select a Menu Item
-@cindex Input Method Menu
-@cindex Menu, Input Method
-
-If X-Symbol mode is turned on, a @dfn{Menu} @code{X-Symbol} appears in
-the menubar (@pxref{Minor Mode}). It also appears over non-highlighted
-parts in the Grid and the Key Completions buffer (@pxref{Input Method
-Grid}). The menu allows to change buffer-local and global variables
-(some directly, some via package @code{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
-@ref{Char Group}. The appearance of the menu can be customized:
-
-@vtable @code
-@item 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.
-
-@item 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.
-@end vtable
-
-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 @ref{Introducing Input Methods}.
-
-@c ===========================================================================
-
-@node Input Method Grid, Input Method Keyboard, Input Method Menu, Input Methods
-@comment node-name, next, previous, up
-@section Input Method Grid: Choose Highlighted Character
-@cindex Input Method Grid
-@cindex Grid, Input Method
-@cindex Table of Characters
-@cindex Highlighted Character
-
-Probably the easiest way to insert a character is by using a @dfn{Grid}
-of characters:
-
-@table @kbd
-@item M-x x-symbol-grid
-@itemx C-= C-=
-@findex x-symbol-grid
-@kindex C-= C-=
-Pops up a buffer displaying X-Symbol characters in a grid like fashion.
-You can select a character with the mouse or @kbd{@key{RET}}, see below.
-@end table
-
-In the Grid buffer and the buffer with the possible completions for an
-X-Symbol key sequence (@pxref{Input Method Keyboard}), the following
-commands are used if the mouse pointer is over an highlighted character.
-
-@table @kbd
-@item @key{button2}
-@itemx @key{RET}
-@itemx @key{SPC}
-@c @itemx x-symbol-list-selected
-@kindex @key{button2}
-@kindex @key{RET}
-@kindex @key{SPC}
-@c @findex x-symbol-list-selected
-Insert highlighted character (or character under point, respectively)
-into the buffer of @code{point} if @code{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.)
-
-@item @key{button3}
-@kindex @key{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 (@pxref{Token Language}).
-@end table
-
-Over all non-highlighted parts, the following commands are used:
-
-@table @kbd
-@item @key{button2}
-@kindex @key{button2}
-@c @findex x-symbol-list-selected
-Scroll Grid or Key Completions buffer down in upper half of the window
-and scroll up in the lower half of the window.
-
-@item @key{button3}
-@kindex @key{button3}
-Pops up the X-Symbol menu, @ref{Input Method Menu}).
-@end table
-
-When using the keyboard to select a character, the following command
-could be useful:
-
-@table @kbd
-@item M-x x-symbol-list-info
-@itemx ?
-@itemx h
-@itemx i
-@findex x-symbol-list-info
-@kindex ?
-@kindex h
-@kindex i
-Display info for character under point in echo area.
-
-@item M-x x-symbol-list-bury
-@itemx q
-@findex x-symbol-list-bury
-@kindex q
-Bury list buffer while trying to use the old window configuration.
-@end table
-
-You can control the grid by the following variables:
-
-@vtable @code
-@item 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.
-
-@item x-symbol-temp-grid
-Inserting an X-Symbol character does not restore the window
-configuration current before the invocation of the Grid.
-
-@item x-symbol-grid-reuse
-Use old Grid when invoking command @code{x-symbol-grid}, if this is
-reasonably to do. If @code{x-symbol-grid} is called with a prefix
-argument, always create new Grid.
-
-@item x-symbol-grid-ignore-charsyms
-The Grid does not contain @code{nobreakspace}.
-
-@item x-symbol-grid-tab-width
-The tab width in the Grid buffer should correspond the font in
-@code{x-symbol-heading-face} which is also used as the default font in
-the Grid buffer.
-
-@item x-symbol-heading-strut-glyph
-Use larger interline spacing if a line in the Grid starts with a header.
-@end vtable
-
-The headers in the Grid are the same as the submenu headers, see
-@ref{Char Group}. Similar looking characters for one headers are
-grouped together. @xref{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 @ref{Introducing Input Methods}.
-
-@c ===========================================================================
-
-@node Input Method Keyboard, Input Method Context, Input Method Grid, Input Methods
-@comment node-name, next, previous, up
-@section Input Method Keyboard: Compose Key Sequence
-@cindex Input Method Keyboard
-@cindex Keyboard, Input Method
-
-Key sequences starting with @kbd{C-=} (@pxref{Introducing Input
-Methods}) are used to insert X-Symbol characters, e.g., @kbd{C-= ~ >}
-inserts @code{leadsto}. The Ascii sequence of the keys after @kbd{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
-@ref{Input Method Context}.
-
-If many characters are represented by the same Ascii sequence, the
-binding is extended by @samp{1}, @samp{2} and so on. If you do not know
-how to continue your key sequence, the following commands might be
-useful:
-
-@table @kbd
-@item M-x x-symbol-help
-@itemx C-= @var{zero-or-more-keys} @key{help}
-@itemx C-= @var{zero-or-more-keys} C-h
-@findex x-symbol-help
-@kindex C-= @key{help}
-@kindex C-= C-h
-@kindex @key{help}
-@kindex C-h
-Pops up a buffer displaying possible completions for the key sequence
-@kbd{C-= @var{zero-or-more-keys}}. You do not have to type the key
-sequence again, i.e., @kbd{C-= @var{zero-or-more-keys}} is also used for
-the next input.
-
-@item C-= @var{zero-or-more-keys} @key{button1}
-@itemx C-= @var{zero-or-more-keys} @key{button2}
-@itemx C-= @var{zero-or-more-keys} @key{button3}
-@kindex @key{button1}
-@kindex @key{button2}
-@kindex @key{button3}
-Use the normal bindings of @kbd{@key{button1}}, @kbd{@key{button2}} or
-@kbd{@key{button3}}, respectively (@pxref{Input Method Grid}). The key sequence
-is not used for the next input.
-
-@item C-= @var{zero-or-more-keys} M-@key{prior}
-@itemx C-= @var{zero-or-more-keys} M-@key{next}
-@itemx C-= @var{zero-or-more-keys} M-@key{home}
-@itemx C-= @var{zero-or-more-keys} M-@key{end}
-@kindex M-@key{prior}
-@kindex M-@key{next}
-@kindex M-@key{home}
-@kindex M-@key{end}
-Execute the commands @code{scroll-other-window-down},
-@code{scroll-other-window}, @code{beginning-of-buffer-other-window} or
-@code{end-of-buffer-other-window}, respectively. You do not have to
-type the key sequence again, i.e., @kbd{C-= @var{zero-or-more-keys}} is
-also used for the next input.
-@end table
-
-@vtable @code
-@item x-symbol-temp-help
-Inserting an X-Symbol character restores the window configuration
-current before the invocation of the Grid.
-
-@item x-symbol-map-default-keys-alist
-Defines the bindings mentioned above.
-@end vtable
-
-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 @ref{Introducing Input Methods}.
-
-@c ===========================================================================
-
-@node Input Method Context, Input Method Electric, Input Method Keyboard, Input Methods
-@comment node-name, next, previous, up
-@section Input Method Context: Replace Char Sequence
-@cindex Context, Input Method
-@cindex Input Method Context
-@cindex Character Sequence Input
-@cindex Ascii Sequence Input
-@cindex Modify Chain
-@cindex Rotate Chain
-@cindex Greek Input
-
-The idea of the input method @dfn{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 @ref{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:
-
-@table @kbd
-@item M-x x-symbol-modify-key
-@itemx C-,
-@itemx C-= @key{left}
-@itemx C-= @key{right}
-@findex x-symbol-modify-key
-@kindex C-,
-@kindex C-= @key{left}
-@kindex C-= @key{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.
-
-@item M-x x-symbol-rotate-key
-@itemx C-.
-@itemx C-= @key{up}
-@itemx C-= @key{down}
-@findex x-symbol-rotate-key
-@kindex C-.
-@kindex C-= @key{up}
-@kindex C-= @key{down}
-If character before point is an X-Symbol character, ``rotate'' its
-``direction'' (or change uppercase/lowercase).
-@end table
-
-Both commands can also be used to resolve a character alias before
-point, see @ref{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:
-
-@vtable @code
-@item x-symbol-rotate-prefix-alist
-If you provide a prefix argument to command @code{x-symbol-rotate-key},
-you can specify the direction you want to have: it is according to
-numerical keypads, e.g., with prefix argument @samp{7} you specify the
-direction ``north-west''.
-
-@item x-symbol-rotate-suffix-char
-Command @code{x-symbol-rotate-key} is also used to ``Greekify'' the
-previous character: typing @kbd{a C-.} is shorter than @kbd{a # C-,}.
-
-@item x-symbol-context-ignore
-Constrains whether a context/charsym can be replaced. No constraints by
-default.
-
-@item x-symbol-context-init-ignore
-Contexts starting with a space cannot be replaced. This variable must
-be set before X-Symbol has been initialized.
-@end vtable
-
-@c ===========================================================================
-
-@node Input Method Electric, Input Method Quail, Input Method Context, Input Methods
-@comment node-name, next, previous, up
-@section Input Method Electric: Automatic Context
-@cindex Input Method Electric
-@cindex Electric, Input Method
-@cindex Aggressive Context @c 2.6
-@cindex Automatic Context
-
-The idea of input method @dfn{Electric} is to have the input method
-Context (@pxref{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 (@pxref{Super and Subscripts}).
-
-You might want to press @kbd{C-/} or @kbd{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:
-
-@vtable @code
-@item x-symbol-electric-input
-A boolean which can also be changed via the X-Symbol menu.
-@end vtable
-
-To make input method Electric useful and not annoying, several
-conditions must be met for X-Symbol to do the auto-replacement:
-
-@itemize @bullet
-@item
-Not all contexts will be replaced automatically. E.g., while input
-method Context allows both pre- and postfixes for accented characters,
-@kbd{:} and @kbd{'} only act as prefixes, and @kbd{`} and @kbd{~} only
-as postfixes for input method Electric, since these are the combinations
-where those characters are quite likely not used literally.
-
-@item
-The character must be valid in the current token language, see
-@ref{Introducing Input Methods}.
-
-@item
-All characters of the context have been typed without any other command
-in between, e.g., @kbd{- >} inserts @code{arrowright}, "- @key{left}
-@key{right} > simply inserts @samp{->}.
-
-@item
-No prefix argument has been used for any character in the context.
-
-@item
-The electric context must not be a suffix of a longer valid context for
-another character. E.g., @kbd{' ' o} does not insert
-@samp{'@code{oacute}} because @samp{''o} is the context for
-@code{ohungarumlaut} (which cannot be inserted by input method
-Electric).
-
-@item
-It should be ``allowed'' to change the context to the character via
-input method Context.
-
-@item
-Individual contexts/charsyms can be disabled by setting the following
-variables:
-
-@vtable @code
-@item x-symbol-electric-ignore
-The context should neither be @samp{'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
-
-@lisp
-(setq x-symbol-electric-ignore
- "[ \t]\\|[A-Za-z][~`]\\|[:'][A-Za-z]")
-@end lisp
-
-@item x-symbol-@var{lang}-electric-ignore
-Individual contexts/charsyms can be disabled for each token language
-@var{lang}.
-@end vtable
-@end itemize
-
-@c ===========================================================================
-
-@node Input Method Quail, Customizing Input Method, Input Method Electric, Input Methods
-@comment node-name, next, previous, up
-@section Input Method Quail: a Mule Input Method
-@cindex Input Method Quail
-@cindex Mule Input Method
-
-Another way to insert a characters is by using the Emacs/Mule
-multilingual text input method ``x-symbol'' (@pxref{Input
-Methods,,,@value{emacs},@value{emacsman}})..
-
-Again, the Ascii sequence used there is the same as the sequence which
-is replaced by input method Context, see @ref{Input Method Context}. A
-one-letter key sequence is extended by @key{;}.
-
-If input method Quail is selected for a buffer, input method Electric
-(@pxref{Input Method Electric}) is disabled in that buffer.
-
-@c TODO: more
-
-@c ===========================================================================
-
-@node Customizing Input Method, , Input Method Quail, Input Methods
-@comment node-name, next, previous, up
-@section Customizing Input Methods
-@cindex Customizing Method Internals
-@cindex Input Methods Customization
-
-You may safely define key bindings not using the @code{x-symbol-map}
-(i.e., starting with @kbd{C-=}). E.g., for @code{alpha} on @kbd{A-a} ,
-use
-
-@lisp
-(global-set-key [(alt a)] 'x-symbol-INSERT-alpha)
-@end lisp
-
-Please note that the command @code{x-symbol-INSERT-alpha} is not defined
-before the main file (@file{x-symbol}) in the package has been loaded
-(if you really need it, function @code{autoload} is your friend).
-
-Other possibilities to customize the input methods are by setting the
-following variables:
-
-@vtable @code
-@item x-symbol-header-groups-alist
-Defines the groups whose characters appear after that header in the Grid
-and in submenus with that header. @xref{Char Group}. Extra variables
-exists for the language dependent Grid and Menu.
-
-@item x-symbol-group-input-alist
-@itemx 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. @xref{Defining
-Input Methods}.
-
-For example., if you prefer charsym @code{epsilon1} over @code{epsilon}
-(influences input method ,
-you might want to use:
-
-@lisp
-@group
-(setq x-symbol-user-table
- '((epsilon1 t (greek1 "e" nil "epsilon") nil -3000)))
-@end group
-@end lisp
-
-@item x-symbol-list-mode-hook
-Additional functions to execute after setting up the Grid and Key
-Completions buffer.
-
-@item x-symbol-after-init-input-hook
-You can change the input methods directly by functions in these hooks.
-@end vtable
-
-@c ===========================================================================
-
-@node Features, Supported Languages, Input Methods, Top
-@comment node-name, next, previous, up
-@chapter Features of Package X-Symbol
-@cindex Features of X-Symbol
-@cindex Supported Features
-
-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.
-@end menu
-
-@c ===========================================================================
-
-@node Super and Subscripts, Images, Features, Features
-@comment node-name, next, previous, up
-@section Super- and Subscripts
-@cindex Superscripts
-@cindex Subscripts
-@cindex Invisible, Revealing
-@cindex Point, Invisible
-@cindex Cursor, Invisible
-@cindex Keywords for 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 @samp{a^2} in the
-buffer are @emph{displayed} as an @samp{a} and a raised, smaller
-@samp{2}---the @samp{^} is still in the buffer.
-
-Therefore, the display of super- and subscripts has nothing to do with
-Input Method Electric (@pxref{Input Method Electric}).
-
-Do not confuse the special Latin characters @code{twosuperior},
-@code{threesuperior}, @code{ordfeminine} and @code{masculine} with the
-characters @samp{2}, @samp{3}, @samp{a} and @samp{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 (@pxref{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 @code{font-lock} to be
-enabled (@pxref{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 (@pxref{Minor Mode}). They can be
-disabled (and re-enabled) by setting the following buffer-local
-variable:
-
-@vtable @code
-@item x-symbol-subscripts
-A boolean which can also be changed via the X-Symbol menu.
-@end vtable
-
-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:
-
-@vtable @code
-@item x-symbol-reveal-invisible
-A boolean which can also be changed via the X-Symbol menu.
-
-@item x-symbol-revealed-face
-The face used for the super-/subscript command when revealed.
-
-@item x-symbol-idle-delay
-Time in seconds of idle time before revealing invisible characters.
-@end vtable
-
-Super-/subscript commands are @code{^}/@code{_} (@pxref{TeX Macro}) and
-@code{<sup>}/@code{<sub>} (@pxref{SGML Entity}):
-
-@vtable @code
-@item x-symbol-@var{lang}-font-lock-keywords
-The super-/subscript @code{font-lock} keywords for each token language
-@var{lang}.
-@end vtable
-
-@c ===========================================================================
-
-@node Images, Info, Super and Subscripts, Features
-@comment node-name, next, previous, up
-@section Images at the end of Image Insertion Commands
-@cindex Images
-@cindex Glyphs
-
-@pindex convert
-Package X-Symbol can display @dfn{images} at the end of image insertion
-commands. They show a scaled-down version of the included image files
-(using @code{convert}, @pxref{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.
-@end menu
-
-
-@node Image Display, Image Conversion, Images, Images
-@comment node-name, next, previous, up
-@subsection Display of Images
-@cindex Image Display
-@cindex Image Control
-@cindex Image Commands
-@cindex Controlling Images
-@cindex Image Keywords
-@cindex Keywords for 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 (@pxref{Minor Mode}). It
-can be disabled (and re-enabled) by setting the following buffer-local
-variable:
-
-@vtable @code
-@item x-symbol-image
-A boolean which can also be changed via the X-Symbol menu.
-@end vtable
-
-Image commands are @code{\includegraphics} and others (@pxref{TeX
-Macro}), and @code{<img>} (@pxref{SGML Entity}):
-
-@vtable @code
-@item x-symbol-@var{lang}-image-keywords
-The keywords (image commands & arguments) for each token language
-@var{lang}.
-@end vtable
-
-File names in the image commands must be interpreted correctly. They
-can be:
-
-@itemize @minus
-@item
-@dfn{absolute}, start with @samp{/} or @samp{~},
-@item
-@dfn{explicitly relative}, start with @samp{./} or @samp{../},
-@item
-@dfn{implicitly relative}, assumed otherwise, e.g., @file{image.eps}, or
-@item
-special, like having some special URL prefix like @file{http:} or @file{ftp:}.
-@end itemize
-
-Relative file names can be relative to some @dfn{master directory}
-(usually the current directory of the file) or to directories in some
-@dfn{search path} (only used with token language @code{tex}):
-
-@vtable @code
-@item x-symbol-@var{lang}-master-directory
-The master directory for each token language @var{lang}.
-
-@item x-symbol-@var{lang}-image-searchpath
-The image search path for each token language @var{lang}. Defaults to
-the current directory.
-
-@item x-symbol-image-searchpath-follow-symlink
-Directories in the search path ending with @file{//} (double slash) are
-recursive: all subdirectories not starting with a dot are also included
-in the search path. If this variable has value @code{nil} (the
-default), subdirectories which are symbolic links are not included.
-@end vtable
-
-For details, see the section of the individual token languages
-(@pxref{Supported Languages}).
-
-
-@node Image Conversion, Image Caching, Image Display, Images
-@comment node-name, next, previous, up
-@subsection Image Conversion
-@cindex Image Conversion
-@cindex Converting Images
-@cindex Colormap
-@cindex Image Cache File
-
-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 @dfn{image cache
-file}, see @ref{Image Caching}.
-
-@vtable @code
-@item x-symbol-image-max-width
-The image is not wider than 120 points.
-
-@item x-symbol-image-max-height
-The image is not higher than 80 points.
-
-@item x-symbol-image-convert-colormap
-Colormap used in function @code{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: @file{etc/colormap138.xpm} and @file{etc/colormap66.xpm}.
-
-@item x-symbol-image-colormap-allocation
-Package X-Symbol allocates the colors of the colormap at start-up and
-prevents them to be de-allocated.
-
-@item x-symbol-image-converter
-@pindex convert
-Program @code{convert} from ImageMagick is used to convert the images
-(@pxref{Installing Image Converter}). Set this variable to @code{nil},
-if you don't want to convert images.
-
-The following variables controls the invocation of the program
-@code{convert} from ImageMagick:
-
-@vtable @code
-@item x-symbol-image-convert-program
-The name of the program @code{convert}, it is
-@samp{C:\\ImageMagick\\convert} when running on MS-Windows and
-@samp{convert} otherwise.
-
-@item x-symbol-image-convert-file-alist
-Program @code{convert} needs to be told that @file{@var{file}.pstex} is
-a Postscript file.
-@end vtable
-
-The following functions are possible values in
-@code{x-symbol-image-converter}:
-
-@ftable @code
-@item x-symbol-image-start-convert-mono
-Produces monochrome images. Used if your device has less than 32
-colors.
-
-@item x-symbol-image-start-convert-truecolor
-Produce images with original colors. Used if your device has more than
-767 colors.
-
-@item 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.
-
-@item x-symbol-image-start-convert-colormap
-Produce image with colors from the colormap. Used otherwise with a
-colormap.
-
-@vtable @code
-@item x-symbol-image-convert-mono-regexp
-Function @code{x-symbol-image-start-convert-colormap} just produces
-monochrome images for temporary image cache files (@pxref{Image
-Caching}) since @code{convert} is slower when using a colormap.
-@end vtable
-@end ftable
-@end vtable
-
-
-@node Image Caching, Special Images, Image Conversion, Images
-@comment node-name, next, previous, up
-@subsection Image Caching
-@cindex Image Caching
-@cindex Caching of Images
-@cindex Glyph Caching
-@cindex Memory Cache for Images
-@cindex File Cache for Images
-
-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:
-
-@itemize @bullet
-@item
-It uses an asynchronous process to create the image cache file. You can
-edit your file during the conversion.
-
-@item
-It uses a @dfn{file cache}: image cache file can be kept for future
-Emacs sessions.
-
-@item
-It uses a @dfn{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:
-
-@table @kbd
-@item M-x x-symbol-image-parse-buffer
-@findex x-symbol-image-parse-buffer
-Parse the buffer to recognize image insertion commands. Usually, this
-is done automatically.
-@end table
-@end itemize
-
-File and memory caching can be controlled by the following variables:
-
-@vtable @code
-@item 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.
-
-@item x-symbol-image-cache-directories
-Cache files for images in your home directory are stored in directory
-@file{~/.images/}, e.g., image @file{~/d/img.eps}, is cached in
-@file{~/.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 @file{~/d/img.eps} is cached in
-@file{~/d/.img/img.eps} or that the image is not displayed at all.
-
-@item x-symbol-image-temp-name
-Temporary image files are stored in a temporary directory (@file{/tmp/})
-having some unique name. They are not supported on Emacs.
-
-@item x-symbol-image-use-remote
-Package X-Symbol only displays images which can be stored in the memory
-cache. With value @code{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.
-@end vtable
-
-The memory cache only stored image file from the current directory or
-some standard image directories like @file{figures/} (@pxref{TeX
-Macro}), or @file{images/} or @file{pictures/} (@pxref{SGML Entity}).
-Otherwise, the image file is considered similar to remote files:
-
-@vtable @code
-@item x-symbol-@var{lang}-image-cached-dirs
-The directories with images which are stored in the memory cache. Can
-be separately defined for each token language @var{lang}.
-@end vtable
-
-
-@node Special Images, Image Editor, Image Caching, Images
-@comment node-name, next, previous, up
-@subsection Special Images for Specific Situations
-@cindex Special Images
-@cindex Images for Specific Situations
-@cindex Glyph for Specific Situations
-
-If package X-Symbol cannot display images representing the included
-image files, it uses special images instead:
-
-@itemize @bullet
-@item
-@dfn{Remote:} An Escher knot is displayed if the file is remote or if
-the image cannot be cached in the memory cache, see @ref{Image Caching}.
-
-@item
-@dfn{Junk}: A recycle sign is displayed if there is no image converter
-(@pxref{Image Conversion}), if it should not use a file cache or if the
-file cache cannot be written.
-
-@item
-@dfn{Locked:} A terminal with a lock is displayed if the image cache file
-cannot be read or written.
-
-@item
-@dfn{Design:} An ink pen is displayed if the image file does not exist.
-
-@item
-@dfn{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.
-
-@item
-@dfn{Broken:} A tombstone is displayed if the creation of the image
-cache file has failed.
-@end itemize
-
-To customize the glyphs for the special images, use:
-
-@vtable @code
-@item x-symbol-image-data-directory
-Directory of files for the special images.
-
-@item x-symbol-image-special-glyphs
-File names of special images and their image format.
-@end vtable
-
-
-@node Image Editor, , Special Images, Images
-@comment node-name, next, previous, up
-@subsection Image Editor
-@cindex Image Editor
-@cindex Editing Image Files
-@cindex Designing Images
-@cindex Scale Factor, Images
-@cindex Image Highlight Menu
-
-If you move the mouse pointer to an image insertion command or its
-image, it is highlighted.
-
-@table @kbd
-@item @key{button2}
-@kindex @key{button2}
-Start image editor for highlighted image. If the image is searched in
-the searchpath (@pxref{Image Caching}), edit first existing image file.
-If no image exists, open a new file in the first directory of the
-searchpath.
-
-@item @key{button3}
-@kindex @key{button3}
-Pop up the @dfn{image highlight menu}. You can rescan the buffer for
-image insertion commands (@pxref{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).
-
-@item M-x x-symbol-image-editor
-@findex x-symbol-image-editor
-Start image editor. Asks for the image file.
-@end table
-
-You can control which editor to use:
-
-@vtable @code
-@item x-symbol-image-editor-alist
-@pindex display
-@pindex xfig
-Normally, program @code{display} is used to edit the highlighted image
-file. But for image names @file{@var{file}.eps}, @file{@var{file}.ps}
-or @file{@var{file}.pstex}, program @code{xfig} is invoked with
-@file{@var{file}.fig}. It also uses a scale method, e.g., with
-@file{img.80.eps}, we edit @file{img.fig} (which should be exported with
-scale=80%).
-
-@item 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.
-
-@item x-symbol-image-current-marker
-Directories with an existing image for the specified file name are
-marked with an @samp{*}. The first of these represents the file which
-is used when pressing @kbd{@key{button2}}.
-@end vtable
-
-@c ===========================================================================
-
-@node Info, Ascii Representation, Images, Features
-@comment node-name, next, previous, up
-@section Info in Echo Area
-@cindex Info in Echo Area
-@cindex Echo Area Info
-@cindex Character Info
-@cindex Context Info
-@cindex Minibuffer Info
-
-The echo area (@pxref{Echo Area,,,@value{emacs},@value{emacsman}}) 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 (@pxref{Input Method Context}).
-
-It will be controlled by the following variables (also to be found in
-the menu):
-
-@vtable @code
-@item 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:
-
-@itemize @minus
-@item
-the token of the current language, eventually colored according to some
-coloring scheme (@pxref{Char Group}),
-
-@item
-infos using the token classes (@pxref{Char Group}), which could inform
-users to include a specific La@TeX{} package when they want to use that
-character in the document,
-
-@item
-the codings in which the characters is considered to be a 8bit character
-(@pxref{File Coding}), and
-
-@item
-the key bindings (@pxref{Input Method Keyboard}).
-@end itemize
-
-@item 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 @kbd{C-,} (@pxref{Input Method Context}). It can be controlled
-by the following variables:
-
-@vtable @code
-@item x-symbol-context-info-ignore
-@findex x-symbol-default-context-info-ignore
-The default value @code{x-symbol-default-context-info-ignore} makes the
-following variables control whether to display the context info.
-
-@item x-symbol-context-info-threshold
-The context does not consist of a single character.
-
-@item x-symbol-context-info-ignore-regexp
-The context does not solely consist of letters.
-
-@item x-symbol-context-info-ignore-groups
-The context is not replaced by an accented character, see @ref{Char
-Group}.
-@end vtable
-
-@item x-symbol-idle-delay
-Time in seconds of idle time before showing the info.
-@end vtable
-
-@c ====================================================================
-
-@node Ascii Representation, Package Information, Info, Features
-@comment node-name, next, previous, up
-@section Ascii Representation of Strings
-@cindex Ascii Representation
-@cindex Representation of Characters
-@cindex Label Creation
-
-@pindex reftex
-If you want to derive labels from a buffer contents (provided e.g., by
-Emacs packages @code{reftex} or @code{bibtex}), you need a Ascii
-representation of strings containing X-Symbol characters. This is
-provided by the following function:
-
-@ftable @code
-@item x-symbol-translate-to-ascii
-Takes a string and returns a string only consisting of Ascii characters.
-
-@vtable @code
-@item x-symbol-charsym-ascii-alist
-You might want to define the German way to Asciify accented characters
-by:
-@lisp
-@group
-(setq x-symbol-charsym-ascii-alist
- '((adiaeresis . "ae") (Adiaeresis . "Ae")
- (odiaeresis . "oe") (Odiaeresis . "Oe")
- (udiaeresis . "ue") (Udiaeresis . "Ue")))
-@end group
-@end lisp
-
-@item x-symbol-charsym-ascii-groups
-By default, ``Ascii''fying accented characters means removing the
-accents. Other characters have built-in Ascii representation, e.g,
-@code{sigma1} has the Ascii representation @samp{sigma}.
-@end vtable
-@end ftable
-
-@c ====================================================================
-
-@node Package Information, , Ascii Representation, Features
-@comment node-name, next, previous, up
-@section X-Symbol Package Information
-@cindex Package Information
-@cindex WWW Browsing
-@cindex URL for X-Symbol
-
-@table @kbd
-@item M-x x-symbol-package-info
-@findex x-symbol-package-info
-Read documentation for package X-Symbol in the info system.
-
-@item M-x x-symbol-package-web
-@findex x-symbol-package-web
-Ask a WWW browser to load the URL of package X-Symbol.
-
-@item M-x x-symbol-package-bug
-@findex x-symbol-package-bug
-Use this command to contact the maintainer of package X-Symbol @emph{in
-any case}, e.g., for suggestions, bug and problem reports, see @ref{Bug
-Reports}. Use @kbd{C-u 9 M-x x-symbol-package-bug} for patches
-(including corrections of this manual, which are strongly appreciated)
-and for other messages.
-@end table
-
-@vtable @code
-@item x-symbol-installer-address
-E-mail address of the person who has installed package X-Symbol
-system-wide (@pxref{System-wide Installation}).
-
-@item x-symbol-package-url
-URL of package X-Symbol, used by @code{x-symbol-package-web}.
-@end vtable
-
-@c ====================================================================
-
-@node Supported Languages, X-Symbol Internals, Features, Top
-@comment node-name, next, previous, up
-@chapter Supported Token Languages
-@cindex Supported Languages
-@cindex Default Languages
-@cindex Built-in Languages
-@cindex Provided Languages
-@cindex Languages in Distribution
-
-The chapter describe the predefined token language. It also presents
-the language specific behavior for @ref{Concepts}, @ref{Input Methods},
-and @ref{Features}.
-
-@menu
-* Pseudo Language:: Token language ``x-symbol charsym''.
-* TeX Macro:: Token language @code{tex}.
-* SGML Entity:: Token language @code{sgml}.
-* BibTeX Macro:: Token language @code{bib}.
-* TeXinfo Command:: Token language @code{texi}.
-* External Languages:: Languages defined in other Emacs Packages.
-@end menu
-
-@c ====================================================================
-
-@node Pseudo Language, TeX Macro, Supported Languages, Supported Languages
-@comment node-name, next, previous, up
-@section Pseudo Token Language ``x-symbol charsym''
-@cindex Pseudo Language
-@cindex Charsym
-@cindex X-Symbol Charsym
-
-If no (or an invalid) token language is set for a buffer, the info in
-the echo area (@pxref{Info}) for a X-Symbol Character in the buffer (if
-it exists) uses the name of its @dfn{charsym}. In this manual, we
-actually refer to X-Symbol characters by their charsym name, e.g.,
-@code{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 (@pxref{Input Method Grid}) also offers
-to insert a charsym name. Charsyms can also be used for input method
-Read Token, see @ref{Input Method Read Token}.
-
-You cannot use this pseudo language to turn on the X-Symbol minor mode
-(@pxref{Minor Mode}), you cannot decode charsyms to their characters, and
-you cannot encode characters to charsyms.
-
-@c ===========================================================================
-
-@node TeX Macro, SGML Entity, Pseudo Language, Supported Languages
-@comment node-name, next, previous, up
-@section Token Language ``@TeX{} macro'' (@code{tex})
-@cindex Token Language @code{tex}
-@cindex Language @code{tex}
-@cindex @TeX{} macro
-@cindex @code{tex}
-@cindex La@TeX{}
-
-For buffers using the major mode @code{latex-mode}, @code{tex-mode} or
-@code{plain-tex-mode}, we use token language @dfn{@TeX{} macro}
-(@code{tex}). This language provides the display of super-/subscripts
-and images. If the buffer visits a file with extension @file{.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 La@TeX{}.
-* 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''.
-@end menu
-
-
-@node TeX Macro Basics, TeX Macro Features, TeX Macro, TeX Macro
-@comment node-name, next, previous, up
-@subsection Basics of Language ``@TeX{} macro''
-@cindex TeX Macro Basics
-@cindex Basics TeX Macro
-@cindex Choosing TeX Macro
-@cindex TeX Macro Use
-@cindex TeX Macro Modes
-
-The standard behavior can be controlled by the following variables:
-
-@vtable @code
-@item x-symbol-tex-modes
-@itemx x-symbol-tex-auto-style
-The variables known from @ref{Minor Mode}. If the buffer visits a file
-with extension @file{.tex}, super-/subscripts and images are displayed,
-otherwise unique decoding (@pxref{Unique Decoding}) will be used.
-
-@item x-symbol-tex-auto-coding-alist
-Used there to automatically deduce the specific encoding of the file
-(@pxref{File Coding}) if the file visited by the buffer has the
-extension @file{.tex}. It searches for one of the following two strings
-in the current buffer, including the comment:
-
-@example
-\usepackage[@var{encoding}]@{inputenc@}
-%& -translation-file=i@var{enc}
-@end example
-
-where @var{encoding} should be one of @samp{latin1}, @samp{latin2},
-@samp{latin3}, @samp{latin5}, or @samp{latin9}, and @var{enc} should be
-one of @samp{l1} or @samp{l2}. 8bit characters are not encoded if the
-file if the search was successful (@pxref{Controlling 8bit Coding}).
-
-@item x-symbol-tex-coding-master
-@vindex TeX-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 @code{TeX-master},
-also search in the file denoted by that value for the strings.
-(Buffer-local variables will not be inherited.)
-@end vtable
-
-The input methods and the character info in the echo area are controlled
-by:
-
-@vtable @code
-@item x-symbol-tex-header-groups-alist
-We use the standard Grid and Menu headers.
-
-@item 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.
-
-@item x-symbol-tex-electric-ignore
-@itemx x-symbol-tex-electric-ignore-regexp
-@pindex texmathp
-Input method Electric (@pxref{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 @code{texmathp}, @ref{LaTeX Packages}).
-Postfix tilde is not electric, because @samp{~} produces a space in
-@TeX{}.
-
-@item x-symbol-tex-token-suppress-space
-Input method Token (@pxref{Input Method Token}) only converts a token
-ending with a control word like @code{\i}, if the character following
-the token is no letter. If that token is a text-mode token and a
-@key{SPC} has been entered without a prefix argument, the @key{SPC} will
-only perform the replacement, it will not insert a space, i.e., it will
-act like @kbd{C-u 0 @key{SPC}}.
-
-@item x-symbol-tex-class-alist
-@itemx x-symbol-tex-class-face-alist
-Various token classes (@pxref{Char Group}) are defined. They are used
-to give some info (@pxref{Info}) about the characters spacing behavior,
-which La@TeX{} packages are necessary to use the character (@pxref{TeX
-Macro Symbols}), and about the conversion (@pxref{TeX Macro
-Conversion}). X-Symbol uses blue for text-mode only and purple for
-math-mode only characters in the Grid (@pxref{Input Method Grid} and the
-character info.
-@end vtable
-
-
-@node TeX Macro Features, TeX Macro Problems, TeX Macro Basics, TeX Macro
-@comment node-name, next, previous, up
-@subsection Super-/Subscripts and Images in La@TeX{}
-@cindex TeX Macro Features
-@cindex Features TeX Macro
-@cindex TeX Macro Superscripts
-@cindex TeX Macro Subscripts
-@cindex TeX Macro Images
-
-The display of super- and subscripts (@pxref{Super and Subscripts}) is
-controlled by:
-
-@vtable @code
-@itemx x-symbol-tex-font-lock-limit-regexp
-The superscript command @code{^} and the subscript command @code{_} 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.
-
-@item x-symbol-tex-font-lock-allowed-faces
-The characters @samp{^} and @samp{_} are not always commands (@pxref{TeX
-Macro Problems}), e.g., in the argument of @code{\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: @ref{FAQ No Subscripts}, @ref{FAQ Stupid
-Subscripts}. Using @code{texmathp} (@pxref{LaTeX Packages}) has even
-more problems:
-
-@itemize @minus
-@item
-The syntax highlighting (which is used for super-/subscripts) would be
-much too slow.
-
-@item
-With own La@TeX{} environments, you would need to customize
-@code{texmathp}.
-
-@item
-It is actually wrong: whether @samp{^} and @samp{_} 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 @code{\ref}).
-@end itemize
-@end vtable
-
-The display of images (@pxref{Images}) is controlled by:
-
-@vtable @code
-@item x-symbol-tex-image-keywords
-The following commands are recognized. Extension @var{ext} stands for
-@file{eps} (which is the default extension for both versions of
-@code{\includegraphics} if the extension is omitted there), @file{ps},
-@file{gif}, @file{png}, @file{jpeg}, @file{jpg}, or @file{pdf}. Options
-@var{options} can be omitted with their surrounding brackets or
-preceding comma, respectively.
-
-@example
-\input@{@var{file}.pstex_t@}
-\includegraphics[@var{options}][@var{options}]@{@var{file}.@var{ext}@}
-\includegraphics*[@var{options}][@var{options}]@{@var{file}.@var{ext}@}
-\epsfig@{file=@var{file}.@var{ext},@var{options}@}
-\psfig@{file=@var{file}.@var{ext},@var{options}@}
-\epsfbox[@var{options}]@{@var{file}.@var{ext}@}
-\epsffile[@var{options}]@{@var{file}.@var{ext}@}
-@end example
-
-@item x-symbol-tex-master-directory
-@vindex TeX-master
-Relative file names (@pxref{Image Display}, explicitly or implicitly)
-are relative to the directory part of variable @code{TeX-master} if it
-is buffer-local and a string. Otherwise, they are relative to the
-directory of the current file.
-
-@item x-symbol-tex-image-searchpath
-@vindex TEXPICTS
-@vindex TEXINPUTS
-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 @code{TEXPICTS} or @code{TEXINPUTS} (@pxref{TeX
-environment variables,,,@value{kpathsea},@value{kpathseaman}}),
-extended by @file{./} 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 (@pxref{Path
-sources,,,@value{kpathsea},@value{kpathseaman}}).
-
-@item 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 @file{figures/} if the image should be
-cached in the memory cache.
-@end vtable
-
-
-@node TeX Macro Problems, TeX Macro Conversion, TeX Macro Features, TeX Macro
-@comment node-name, next, previous, up
-@subsection Problems with @TeX{} Macros
-@cindex TeX Macro Problems
-@cindex Problems TeX Macro
-
-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. @xref{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:
-
-@itemize @bullet
-@item
-The tokens in @TeX{} are not ended by a dedicated character (like
-@sc{sgml} entities are ended by @samp{;}). 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 @dfn{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.
-
-@item
-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 @samp{Ma@ss{}@ Bier}.
-@ifinfo
-In the info file, you will probably not see any 8bit characters (the
-sharp @samp{s} is shown as @samp{@ss{}}).
-@end ifinfo
-
-@itemize @minus
-@item
-Many people would use @samp{Ma\ss\@ Bier}. This is (almost ever) fine
-in text mode, but a @samp{\@ } 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.
-
-@item
-Many people would use @samp{Ma\ss@{@}@ Bier}. This has less problems and
-is therefore used by X-Symbol. The @samp{@{@}} at the end of the control
-word is not used if the character is not followed by a space, e.g., to
-produce @samp{Stra@ss{}e}, we use @samp{Stra\ss@ e}. Consequently,
-@samp{Ma\ss\@ Bier} in the file would be decoded to @samp{Ma@ss{}\@ Bier},
-which would be encoded to the original sequence in the file.
-
-@item
-Some people would always use @samp{@{@}} after a text-mode control word,
-even it is not followed by a space, like @samp{Stra\ss@{@}e}. This is
-wrong, since it breaks ligatures and kerns. For example, compare the
-output of @samp{\L@ V} with @samp{\L@{@}V} using @samp{T1} font encoding.
-
-@item
-Up to Version 4.1, X-Symbol surrounded a text-mode control word with
-braces, like @samp{Stra@{\ss@}e}. This was probably even worse than
-always adding @samp{@{@}} at the end of the control word. It was used,
-because it is required by Bib@TeX{} (@pxref{BibTeX Macro}).
-Unfortunately, Bib@TeX{} sends this bad sequence directly to La@TeX{},
-but this has nothing to do with X-Symbol.
-@end itemize
-
-@item
-The accented characters are not represented by one tokens in @TeX{}.
-Most people use @samp{\"a} to produce an @samp{@"a}, while some use
-@samp{\"@{a@}}. X-Symbol uses the former, it does not even decode the
-latter automatically. Up to Version 4.1, X-Symbol used @samp{@{\"a@}},
-having the same problems as using @samp{Stra@{\ss@}e}.
-
-@item
-Around a dozen characters can be produced by more than one @TeX{} macro,
-like @code{\neq} and @code{\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 (@pxref{Unique Decoding}).
-
-@item
-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 @samp{@@} to a
-letter (used in La@TeX{}'s style files), this character is considered a
-letter by X-Symbol. This means that although both @samp{\ss@ @@} and
-@samp{\ss@@} usually produce the same output, only the first is decoded
-to @samp{@ss{}@@}.
-
-@item
-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 La@TeX{} @code{\verb} command, and the @code{verbatim}
-and @code{tabbing} environments.
-@end itemize
-
-
-@node TeX Macro Conversion, TeX Macro Symbols, TeX Macro Problems, TeX Macro
-@comment node-name, next, previous, up
-@subsection The Conversion of @TeX{} Macros
-@cindex TeX Macro Conversion
-@cindex Conversion of TeX Macros
-
-The @TeX{} macros for Latin characters are according to the La@TeX{}
-package @file{inputenc.sty}, v0.97+. Package X-Symbol uses U00B5 for
-@code{\mathmicro}, not for @code{\mu}, though! @xref{Wishlist LaTeX}.
-
-It is assumed that you do not redefine standard @TeX{} macros like
-@code{\ne} (@pxref{TeX Macro Conversion}), if you do so, you should
-better use unique decoding (@pxref{Unique Decoding}).
-
-The encoding of characters to @TeX{} macros works as follows:
-
-@itemize @bullet
-@item
-If the character is preceded by an odd number of backslashes, insert a
-space before the character.
-
-@item
-Accented characters are encoded without braces, e.g., we encode @samp{@,{c}}
-to @samp{\c@ c}. Accents are encoded with braces, e.g., we use
-@samp{\c@{@ @}} and @samp{\u@{@}}.
-@end itemize
-
-Additionally, the encoding of characters to @TeX{} macros which are
-@dfn{control words} (all-letter macros), or whose @TeX{} representation
-ends with a control word (like @samp{\'\i}) works as follows:
-
-@itemize @bullet
-@item
-If the character is followed by a letter, replace the character by the
-macro and insert a space.
-
-@item
-If the macro is a text-mode macro and followed by one or more blanks,
-replace the character and insert @samp{@{@}}.
-
-@item
-Otherwise, just replace the character.
-@end itemize
-
-The decoding of @TeX{} macros which are control words to characters
-works as follows:
-
-@itemize @bullet
-@item
-If the macro is a text-mode macro and followed by @samp{@{@}} which is
-followed by a blank, replace the macro and delete the braces.
-
-@item
-If the macro is a text-mode macro and followed by one are more blanks,
-we have the following rule:
-
-@itemize @minus
-@item
-If we have exactly one blank, the blank is a space, and it is not
-followed by a @samp{%} (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, @ref{Unique Decoding}.)
-
-@item
-Otherwise, do @emph{not decode} the macro!
-@end itemize
-
-@item
-Otherwise, just replace the macro.
-@end itemize
-
-To clarify, @dfn{letter} means @samp{A}-@samp{Z}, @samp{a}-@samp{z}, or
-@samp{@@}, @dfn{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: @code{\ldots}, @code{\vdots}, and (by accident) @code{\angle}.
-They are all treated like math-mode characters, but their minibuffer
-info (@pxref{Info}) includes @samp{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):
-
-@vtable @code
-@item x-symbol-tex-verb-delimiter-regexp
-If the command @code{\verb} is found, its argument is not decoded if it
-is delimited by one of the following characters: @samp{-}, @samp{!},
-@samp{#}, @samp{$}, @samp{&}, @samp{*}, @samp{+}, @samp{/}, @samp{=},
-@samp{?}, @samp{^}, @samp{|}, or @samp{!}.
-
-@item x-symbol-tex-env-verbatim-regexp
-The contents of the @code{verbatim} environment is not decoded. To
-produce accented characters inside this environment, use the La@TeX{}
-package @file{inputenc.sty}.
-
-@c Inside @code{\hyphenation}@{@dots{}@}, you can only use Latin characters.
-
-@c David Kastrup: Wrong. inputenc.sty converts things like @"a into \"a
-@c anyway (take a look into your table of contents file, xxx.toc, for
-@c example). Both @"a and \"a will not work in hyphenation patterns when you
-@c are using a font encoding without such a character (like the default OT1
-@c encoding), both @"a and \"a will work if something like
-@c \usepackage[T1]{fontenc} is active. This holds for LaTeX; plain TeX is
-@c not as sophisticated as to replace \"a with a single character when in
-@c T1 encodings.
-
-@item x-symbol-tex-env-tabbing-regexp
-Inside a @code{tabbing} environment, the macro sequences starting with
-@samp{\`}, @samp{\'}, @samp{\=} and @samp{\-} are not decoded. It is
-probably better (with or without X-Symbol) to use the La@TeX{} package
-@file{inputenc.sty} or to the @code{Tabbing} environment, to be found in
-the @sc{ctan} archives.
-@end vtable
-
-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.
-
-@ifinfo
-Final note: in the info file, you will probably not see any 8bit
-characters.
-@end ifinfo
-
-You might want change the conversion between characters and tokens in
-language @code{tex} by changing:
-
-@vtable @code
-@item x-symbol-tex-user-table
-You can define you own tokens for X-Symbol characters. E.g., if you
-like to have the command @code{\sqrt} represented by a character
-(shadowing the entry for @code{\surd}), add the following to your
-@file{~/.emacs}:
-
-@lisp
-(setq x-symbol-tex-user-table '((radical (math special) "\\sqrt")))
-@end lisp
-@end vtable
-
-
-@node TeX Macro Symbols, , TeX Macro Conversion, TeX Macro
-@comment node-name, next, previous, up
-@subsection Extra Symbols of Language ``@TeX{} Macro''
-@cindex Extra Symbols for @TeX{}
-@cindex Defining @code{tex}
-@cindex Initializing @code{tex}
-@cindex @TeX{} Macro Installation
-@cindex Installing @code{tex}
-@pindex @file{latexsym.sty}
-@pindex @file{amssymb.sty}
-@pindex @file{stmaryrd.sty}
-@pindex @file{fontenc.sty}
-@pindex @file{inputenc.sty}
-
-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 (@pxref{Info}) contains s.th. like
-@samp{@var{package}.sty} or @samp{user}. If you do not use the
-corresponding characters, you do not have to do anything, of course.
-
-The @TeX{} macros @code{\Box}, @code{\Diamond}, @code{\leadsto},
-@code{\Join}, @code{\lhd}, @code{\mho}, @code{\rhd}, @code{\sqsupset},
-@code{\sqsubset}, @code{\unlhd}, @code{\unrhd}, are defined in La@TeX{}
-package @file{latexsym.sty}:
-
-@example
-\usepackage@{latexsym@}
-@end example
-
-Note that these macros are also defined @file{amssymb.sty}. Since the
-first four macros are defined differently (better) in
-@file{latexsym.sty}, it does make sense to load both La@TeX{} packages.
-
-The @TeX{} macros @code{\boldsymbol}, @code{\circledast},
-@code{\circledcirc}, @code{\circleddash}, @code{\digamma},
-@code{\gtrapprox}, @code{\gtrsim}, @code{\lessapprox}, @code{\lesssim},
-@code{\triangleq}, @code{\varkappa} are defined in AMS La@TeX{} package
-@file{amssymb.sty}:
-
-@example
-\usepackage@{amssymb@}
-@end example
-
-The @TeX{} macros @code{\bigsqcap}, @code{\llbracket},
-@code{\rrbracket}, @code{\llparenthesis}, @code{\rrparenthesis} are
-defined in the La@TeX{} package @file{stmaryrd.sty}:
-
-@example
-\usepackage@{stmaryrd@}
-@end example
-
-The @TeX{} macros @code{\guilsinglleft}, @code{\guilsinglright},
-@code{\dj}, @code{\NG}, @code{\ng}, @code{\DH}, @code{\DJ}, @code{\dh},
-@code{\dj}, @code{\TH}, @code{\th}, @code{\guillemotleft},
-@code{\guillemotright} and the ogonek characters are only defined if
-you use T1 font encoding:
-
-@example
-\usepackage[T1]@{fontenc@}
-@end example
-
-The @TeX{} macro @code{\mathmicro} for U00B5 can be defined by
-(@pxref{Wishlist LaTeX}):
-
-@example
-\let\mathmicro\mu
-@end example
-
-You should define the following in your La@TeX{} file (if you use the
-corresponding characters), the first can only be used with T1 font encoding.
-
-@example
-\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@{::@}@}
-@c \newcommand@{\lsemantics@}@{\mathopen@{\lbrack\mkern-3mu\lbrack@}@}
-@c \newcommand@{\rsemantics@}@{\mathclose@{\rbrack\mkern-3mu\rbrack@}@}
-@c \newcommand@{\lcata@}@{\mathopen@{(\mkern-3mu\mid@}@}
-@c \newcommand@{\rcata@}@{\mathclose@{\mid\mkern-3mu)@}@}
-@end example
-
-The @TeX{} macros @code{\textordfeminine}, @code{\textordmasculine},
-@code{\textdegree}, @code{\textonequarter}, @code{\textonehalf},
-@code{\textthreequarters}, @code{\mathonesuperior},
-@code{\mathtwosuperior}, @code{\maththreesuperior},
-@code{\textcopyright} are only defined when using La@TeX{} package
-@file{inputenc.sty}:
-
-@example
-\usepackage[latin1]@{inputenc@}
-@end example
-
-The @TeX{} macros @code{\textcent}, @code{\textcurrency},
-@code{\textyen}, @code{\textbrokenbar}, @code{\textmalteseH},
-@code{\textmalteseh} are defined as not available in La@TeX{} package
-@file{inputenc.sty}. @xref{Wishlist LaTeX}. If you use this package
-and want to define these commands, use @code{\renewcommand} (or
-@code{\def}) after, e.g.:
-
-@example
-\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@}
-@end example
-
-@c ===========================================================================
-
-@node SGML Entity, BibTeX Macro, TeX Macro, Supported Languages
-@comment node-name, next, previous, up
-@section Token Language ``@sc{sgml} entity'' (@code{sgml})
-@cindex HTML
-@cindex SGML entity
-@cindex Token Language @code{sgml}
-@cindex Language @code{sgml}
-@pindex Netscape
-
-For buffers using the major mode @code{html-mode}, @code{hm--html-mode},
-@code{html-helper-mode}, @code{sgml-mode} or @code{xml-mode}, we use
-token language @dfn{@sc{sgml} entity} (@code{sgml}). This language
-provides the display of super-/subscripts and images. If the buffer
-visits a file and uses a @sc{html} mode, X-Symbol mode is automatically
-turned on.
-
-@menu
-* SGML Entity Basics:: Basics of Language ``@sc{sgml} entity''.
-* SGML Entity Features:: Super-/Subscripts and Images in @sc{html}.
-* SGML Entity Conversion:: How the conversion of @sc{sgml} entities works.
-@end menu
-
-
-@node SGML Entity Basics, SGML Entity Features, SGML Entity, SGML Entity
-@comment node-name, next, previous, up
-@subsection Basics of Language ``@sc{sgml} entity''
-@cindex SGML Entity Basics
-@cindex Basics SGML Entity
-@cindex Choosing SGML Entity
-@cindex SGML Entity Use
-@cindex SGML Entity Modes
-
-The standard behavior can be controlled by the following variables:
-
-@vtable @code
-@item x-symbol-sgml-modes
-@itemx x-symbol-sgml-auto-style
-The variables known from @ref{Minor Mode}. If the buffer uses a
-@sc{html} mode, super-/subscripts and images are displayed, otherwise
-unique decoding (@pxref{Unique Decoding}) will be used.
-
-@item x-symbol-sgml-auto-coding-alist
-Used there to automatically deduce the specific encoding of the file
-(@pxref{File Coding}). It searches for the following string in the
-current buffer, including the comment:
-
-@example
-<meta http-equiv="content-type"
- content="text/html; charset=@var{encoding}">
-@end example
-
-where @var{encoding} should be one of @samp{iso-8859-1},
-@samp{iso-8859-2}, @samp{iso-8859-3}, @samp{iso-8859-9}, or
-@samp{iso-8859-15}. 8bit characters are not encoded if the file if the
-search was successful (@pxref{Controlling 8bit Coding}).
-@end vtable
-
-The input methods and the character info in the echo area are controlled
-by:
-
-@vtable @code
-@item x-symbol-sgml-header-groups-alist
-Defines the headers and their characters for the language specific Grid
-and Menu.
-
-@item x-symbol-sgml-extra-menu-items
-There are no special entries in the X-Symbol menu.
-
-@item x-symbol-sgml-electric-ignore
-There is no additional constraint to the ones mentioned in @ref{Input
-Method Electric}.
-
-@item x-symbol-sgml-class-alist
-@itemx x-symbol-sgml-class-face-alist
-Token classes (@pxref{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 (@pxref{Input Method Grid} and the character info
-(@pxref{Info}), dark red for characters without defined entity names in
-@sc{html} (@pxref{SGML Entity Conversion}).
-@end vtable
-
-
-@node SGML Entity Features, SGML Entity Conversion, SGML Entity Basics, SGML Entity
-@comment node-name, next, previous, up
-@subsection Super-/Subscripts and Images in @sc{html}
-@cindex SGML Entity Features
-@cindex Features SGML Entity
-@cindex SGML Entity Superscripts
-@cindex SGML Entity Subscripts
-@cindex SGML Entity Images
-
-The display of super- and subscripts (@pxref{Super and Subscripts}) is
-controlled by:
-
-@vtable @code
-@item x-symbol-sgml-font-lock-regexp
-@itemx x-symbol-sgml-font-lock-limit-regexp
-@itemx x-symbol-sgml-font-lock-alist
-@itemx x-symbol-sgml-font-lock-contents-regexp
-The superscript command @code{<sup>}@dots{}@code{</sup>} and the subscript
-command @code{<sub>}@dots{}@code{</sub>} is recognized. The contents should
-contain at least one character which is not a space or a
-@code{nobreakspace}.
-@end vtable
-
-The display of images (@pxref{Images}) is controlled by:
-
-@vtable @code
-@item x-symbol-sgml-image-keywords
-The following commands are recognized. Extension @var{ext} stands for
-@file{gif}, @file{png}, @file{jpeg} or @file{jpg}.
-
-@example
-<img @var{@dots{}} src="@var{file}.@var{ext}" @var{@dots{}}>
-@end example
-
-@item x-symbol-sgml-master-directory
-@itemx x-symbol-sgml-image-searchpath
-Relative file names (@pxref{Image Display}) are relative to the
-directory of the current file.
-
-@item x-symbol-sgml-image-file-truename-alist
-The file name prefix @file{file:} is ignored. For any other file name
-which starts with letters and then a colon, e.g., with @file{http:} or
-@file{C:\} (which is no @sc{url} anyway), the image insertion command
-will be skipped. By changing this variable, you could specify that the
-prefix @file{http://www.fmi.uni-passau.de/~wedler/} corresponds to
-@file{~/public_html/}.
-
-@item 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 @file{images/} or @file{pictures/} if the
-image should be cached in the memory cache.
-@end vtable
-
-
-@node SGML Entity Conversion, , SGML Entity Features, SGML Entity
-@comment node-name, next, previous, up
-@subsection The Conversion of @sc{sgml} Entities
-@cindex SGML Entity Conversion
-@cindex 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
-@uref{http://www.w3.org/TR/REC-html40/sgml/entities.html}.
-
-By default, we encode to entity references like @code{&amp;}, and decode
-from both entity references and character references like @code{&#38;}.
-For Latin-N characters without defined entity names in @sc{html} (e.g.
-@code{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 @code{sgml} by changing:
-
-@vtable @code
-@item x-symbol-sgml-token-list
-@findex x-symbol-sgml-token-list-name
-@findex x-symbol-sgml-token-list-code
-@findex x-symbol-sgml-token-list-netscape
-A symbol, which defines whether to use entity references, character
-references, or entity references for Latin-1 characters and character
-references for others.
-
-@item 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:
-
-@example
-(setq x-symbol-sgml-user-table '((circ () 999 "&bcomp;")))
-@end example
-@end vtable
-
-@c ====================================================================
-
-@node BibTeX Macro, TeXinfo Command, SGML Entity, Supported Languages
-@comment node-name, next, previous, up
-@section Token Language ``Bib@TeX{} macro'' (@code{bib})
-@cindex Token Language @code{bib}
-@cindex Language @code{bib}
-@cindex Bib@TeX{} macro
-@cindex @code{bib}
-@cindex Bib@TeX{}
-
-For buffers using the major mode @code{bibtex-mode}, we use token
-language @dfn{Bib@TeX{} macro} (@code{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:
-
-@vtable @code
-@item x-symbol-bib-modes
-@itemx x-symbol-bib-auto-style
-The variables known from @ref{Minor Mode}. There is no automatic
-deduction of the file encoding, 8bit characters are usually encoded, and
-there is usually no unique decoding. @xref{Conversion}.
-@end vtable
-
-@pindex bibtex
-The major difference between this language and the token language
-@code{tex} is that the tokens for text-mode characters are most likely
-enclosed by braces. This has some problems (@pxref{TeX Macro
-Problems}), but is required by the program @code{bibtex}.
-
-The input methods and most features except super-/subscripts and images
-work like in token language @code{tex} (@pxref{TeX Macro}):
-
-@vtable @code
-@item x-symbol-bib-header-groups-alist
-@itemx x-symbol-bib-electric-ignore
-@itemx x-symbol-bib-class-alist
-@itemx x-symbol-bib-class-face-alist
-Like in @ref{TeX Macro Features}.
-
-@item x-symbol-bib-extra-menu-items
-There are no special entries in the X-Symbol menu.
-@end vtable
-
-You might want change the conversion between characters and tokens in
-language @code{bib} by changing:
-
-@vtable @code
-@item x-symbol-bib-user-table
-@itemx x-symbol-tex-user-table
-Use the former for @code{bib}-only changes, the latter also influences
-the conversion with token language @code{tex}.
-@end vtable
-
-@c ====================================================================
-
-@node TeXinfo Command, External Languages, BibTeX Macro, Supported Languages
-@comment node-name, next, previous, up
-@section Token Language ``@TeX{}info command'' (@code{texi})
-@cindex Token Language @code{texi}
-@cindex Language @code{texi}
-@cindex @TeX{}info command
-@cindex @code{texi}
-@pindex texinfo
-@pindex GNU texinfo
-
-For buffers using the major mode @code{texinfo-mode}, we use token
-language @dfn{@TeX{}info command} (@code{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:
-
-@vtable @code
-@item x-symbol-texi-modes
-@itemx x-symbol-texi-auto-style
-The variables known from @ref{Minor Mode}. There is no automatic
-deduction of the file encoding, 8bit characters are usually encoded, and
-there is usually no unique decoding. @xref{Conversion}.
-@end vtable
-
-With @code{x-symbol-8bits} having value @code{nil} (the default), it
-might still happen that the saved file contains 8bit characters, since
-token language @code{texi} does not define tokens for all characters in
-the Latin charsets supported by X-Symbol. @xref{Controlling 8bit
-Coding}.
-
-With @code{x-symbol-unique} having value @code{nil} (the default), we
-have unique decoding anyway, since token language @code{texi} does only
-define one token per character, i.e., the value is not important if
-@code{x-symbol-8bits} is @code{nil}. @xref{Unique Decoding}.
-
-The input methods and the character info in the echo area are controlled
-by:
-
-@vtable @code
-@item x-symbol-texi-header-groups-alist
-Defines the headers and their characters for the language specific Grid
-and Menu.
-
-@item x-symbol-texi-extra-menu-items
-There are no special entries in the X-Symbol menu.
-
-@item x-symbol-texi-electric-ignore
-There is no additional constraint to the ones mentioned in @ref{Input
-Method Electric}.
-
-@item x-symbol-texi-class-alist
-@itemx x-symbol-texi-class-face-alist
-Only a few token classes (@pxref{Char Group}) are defined, the most
-interesting induces the character info (@pxref{Info}) to display
-@samp{not as code} for @code{@@minus@{@}} (@code{@@minus@{@}} should not
-used inside @code{@@code} and @code{@@example}). No coloring scheme is
-defined.
-@end vtable
-
-@pindex makeinfo
-At least with @code{makeinfo-4.0}, you do not get accented characters in
-the info file for the corresponding @TeX{}info commands in the
-@file{.texi} file, the @sc{html} output might contain illegal
-``@sc{sgml} entities'' like @code{&140;}.
-
-@pindex texi2html
-At least with @code{texi2html-1.62}, you see accented characters in the
-@sc{html} output for the corresponding @TeX{}info commands in the
-@file{.texi} file, but the output might also contain illegal ``@sc{sgml}
-entities'' like @code{&140;}.
-
-You might want change the conversion between characters and tokens in
-language @code{texi} by changing:
-
-@vtable @code
-@itemx x-symbol-texi-user-table
-Extra entries for the conversion.
-@end vtable
-
-@c ====================================================================
-
-@node External Languages, , TeXinfo Command, Supported Languages
-@comment node-name, next, previous, up
-@section Languages Defined in Other Emacs Packages
-@cindex Foreign Languages
-@cindex External Languages
-@cindex Other Languages
-
-It is no problem for other Emacs packages to define their own token
-language (@pxref{Extending X-Symbol}).
-
-I know of the following package---please check its manual for details.
-
-@itemize @bullet
-@item
-@pindex ProofGeneral
-@cindex Isabelle Symbol
-Package @uref{http://www.proofgeneral.org/,ProofGeneral} defines token
-language ``Isabelle symbol''.
-@end itemize
-
-@c ===========================================================================
-
-@node X-Symbol Internals, Problems, Supported Languages, Top
-@comment node-name, next, previous, up
-@chapter X-Symbol Internals
-@cindex Internals, X-Symbol
-@cindex 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
-@emph{binary package} which contains pre-compiled files. X-Symbol
-developers should use the @emph{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.
-@end menu
-
-@c ====================================================================
-
-@node Char Representation, Defining Charsets, X-Symbol Internals, X-Symbol Internals
-@comment node-name, next, previous, up
-@section Internal Representation of X-Symbol Characters
-@cindex Charsym
-@cindex Leading Character
-@cindex Octet
-@cindex Cstring
-@cindex Mule Character
-
-As mentioned in @ref{Pseudo Language}, most functions do not operate
-on X-Symbol characters directly, they use ``x-symbol charsyms''. These
-charsyms have a symbol property @code{x-symbol-cstring} which points to
-a string, called @dfn{cstring}, containing the X-Symbol character.
-
-@itemize @bullet
-@item
-Under Emacs and XEmacs/Mule, the string only contains the character
-which is a normal Mule character created by @code{make-char}.
-
-@item
-@pindex font-lock
-Under XEmacs/no-Mule, the string only contains the 8bit character if the
-X-Symbol character is a 8bit character according to
-@code{x-symbol-default-coding} (@pxref{Default Coding}). Otherwise, the
-string contains of a @dfn{leading character} (with range @samp{\200} to
-@samp{\237}) and an @dfn{octet}. Package @code{font-lock} is used to
-display them correctly as X-Symbol characters (@pxref{FAQ Strange
-Chars}). E.g., with @samp{\251} is @code{copyright}, we get
-
-@lisp
-(get 'Idotaccent 'x-symbol-cstring)
- @result{} "\235\251"
-@end lisp
-@end itemize
-
-If the character is also a 8bit character in some encoding (@pxref{File
-Coding}), the charsym also has the symbol property
-@code{x-symbol-file-cstrings} for the representation in the file and
-property @code{x-symbol-buffer-cstrings} to recognize character aliases
-(@pxref{Char Aliases}). E.g., under XEmacs/no-Mule, with @samp{\335} is
-@code{Yacute}, @samp{\251} is @code{copyright}, we get
-
-@lisp
-(get 'Idotaccent 'x-symbol-file-cstrings)
- @result{} (iso-8859-9 "\335" iso-8859-3 "\251")
-(get 'Idotaccent 'x-symbol-buffer-cstrings)
- @result{} (iso-8859-9 "\234\335" iso-8859-3 "\235\251")
-@end lisp
-
-The values are plists (@pxref{Property Lists,,,lispref,XEmacs Lisp
-Reference Manual}) 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 @code{x-symbol-tokens} (@pxref{Token Language}) and
-@code{x-symbol-classes} (@pxref{Char Group}):
-
-@lisp
-(get 'Idotaccent 'x-symbol-tokens)
- @result{} (sgml "&#304;" tex "@{\\.I@}")
-(get 'Idotaccent 'x-symbol-classes)
- @result{} (sgml (non-l1) tex (text aletter))
-@end lisp
-
-@c ====================================================================
-
-@node Defining Charsets, Defining Input Methods, Char Representation, X-Symbol Internals
-@comment node-name, next, previous, up
-@section Defining X-Symbol Charsets
-@cindex Cset
-@cindex Charset
-@cindex Final Byte
-
-An X-Symbol charset, called @dfn{cset} in the code and the docstrings,
-handles one font used by package X-Symbol. Each cset must use the
-same char registry@minus{}encoding as the corresponding variables for
-the fonts (@pxref{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.
-
-@lisp
-@group
-(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 ?\;)))
-@end group
-@end lisp
-
-Mule charsets (@pxref{Charsets,,,lispref,XEmacs Lisp Reference Manual})
-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: @samp{:} and
-@samp{;}). The remaining free (reserved by Emacs for users) are
-@samp{>} and @samp{?}, the latter is already used in XEmacs.
-
-For XEmacs/no-Mule, you have to define the leading character (this
-example: @samp{\233}).
-
-@vtable @code
-@item x-symbol-latin1-cset
-@itemx x-symbol-latin2-cset
-@itemx x-symbol-latin3-cset
-@itemx 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
-@ref{File Coding}.
-
-@item x-symbol-xsymb0-cset
-@itemx x-symbol-xsymb1-cset
-Cset definitions using both halves of the fonts where no corresponding
-Mule charset are yet known.
-@end vtable
-
-@c ====================================================================
-
-@node Defining Input Methods, Extending X-Symbol, Defining Charsets, X-Symbol Internals
-@comment node-name, next, previous, up
-@section Defining Input Methods
-@cindex Input Method Internals
-@cindex Internals, Input Method
-@cindex Defining Input Methods
-
-This is probably the hardest section in this manual@dots{}.
-
-@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.
-@end menu
-
-
-@node Input Method Objectives, Intro Char Descriptions, Defining Input Methods, Defining Input Methods
-@comment node-name, next, previous, up
-@subsection Defining Input Methods: Objectives
-@cindex Input Method Objectives
-@cindex Objectives, Input Methods
-@cindex Consistent Input Methods
-
-Input methods should be intuitive. This requires consistency:
-
-@itemize @bullet
-@item
-Characters should be found under the same header in the Grid and in the
-Menu.
-
-@item
-If one character can be modified or rotated to another character
-(@pxref{Input Method Context}), both should stand near to each other in
-the Grid. E.g., since @code{arrowsouthwest} rotates to
-@code{arrowdown}, they stand next to each other.
-
-@item
-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., @code{reflexsubset}
-with key binding @kbd{C-= < _ 2} modifies to @code{reflexsqsubset} with
-key binding @kbd{C-= < _ 3}.
-
-@item
-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.
-
-@item
-It should be possible to load character definitions later on, e.g., when
-new token languages get initialized.
-
-@itemize @minus
-@item
-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
-@samp{1}).
-
-@item
-Also, modifying or rotating a new character to/from old ones should be
-possible without changing the input definitions of the old characters.
-@end itemize
-@end itemize
-
-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 @code{define-key}. The solution is an indirect
-definitions with ``character descriptions''.
-
-
-@node Intro Char Descriptions, Char Descriptions, Input Method Objectives, Defining Input Methods
-@comment node-name, next, previous, up
-@subsection X-Symbol Character Descriptions: Example
-@cindex Character Descriptions, Intro
-@cindex Character Descriptions, Example
-
-As an example for ``character descriptions'', look at the definition of
-@code{longarrowright} in @code{x-symbol-xsymb1-table} (@samp{95} is the
-encoding in the font and not of interest here). Some terms are defined
-in the next section:
-
-@lisp
-@group
-(longarrowright 95
- (arrow) (size big . arrowright) nil ("->" t "-->") (emdash))
-@end group
-@end lisp
-
-With this definition, package X-Symbol automatically defines:
-
-@itemize @bullet
-@item
-Key bindings @kbd{C-= - - >} and @kbd{C-= - > 2}, the latter has suffix
-2, because @kbd{C-= - >} is also ``wanted'' by @code{arrowright} which
-now has the key binding @kbd{C-= - > 1} (the ``score'' of
-@code{longarrowright} is higher, due to @samp{size big}). @xref{Input
-Method Keyboard}.
-
-@item
-@code{arrowright} modifies to @code{longarrowright}, which modifies to
-@code{arrowright}. @xref{Input Method Context}.
-
-@item
-@code{longarrowleft} rotates to @code{longarrowright}, which rotates to
-@code{longarrowboth} (which rotates to @code{longarrowleft}). (The
-``rotate aspects'' are inherited from @code{arrowright}.) @xref{Input
-Method Context}.
-
-@item
-The following contexts can be modified to @code{longarrowright}:
-@samp{-->} or @code{minus1} / @code{endash} / @code{macron} /
-@code{emdash} / @code{hyphen} and @samp{->} (since all define context
-@samp{-}) and @code{emdash} and @samp{>} (since @code{emdash} defines
-context @samp{--}). @samp{->} is used for @code{arrowright}, which has
-a lower score, see above. @xref{Input Method Context}.
-
-@item
-Input method Electric will change context @samp{-->} (is tagged with
-@code{t} in the definition) to @code{longarrowright}, also @code{emdash}
-and @samp{>} (only theoretically, since input method Electric will
-produce @code{emdash} only in @TeX{}'s text mode, and
-@code{longarrowright} only in @TeX{}'s math mode). @xref{Input Method
-Electric}.
-
-@item
-The character will appear in the Grid under the header @samp{Arrow}.
-You will probably recognize that the placement is based on the modify-to
-and rotate-to behavior above. @xref{Input Method Grid}.
-
-@item
-The character will appear in the Menu under one of the headers
-@samp{Arrow @var{n}}". The submenus are sorted alphabetically.
-@xref{Input Method Menu}.
-@end itemize
-
-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@dots{}.
-
-
-@node Char Descriptions, Example Char Descriptions, Intro Char Descriptions, Defining Input Methods
-@comment node-name, next, previous, up
-@subsection Defining Input Methods by Character Descriptions
-@cindex Character Descriptions
-@cindex Aspects of Characters
-@cindex Parent Character
-@cindex Component of Characters
-@cindex Modify Scores
-@cindex Rotate Scores
-@cindex Modify Aspects
-@cindex Rotate Aspects
-@cindex Score of a Character
-@cindex Modify Chain
-@cindex Exclusive Modify Chain
-@cindex Rotate Chain
-@cindex Horizontal Chain
-@cindex Key Chain
-
-Characters are defined with @dfn{character descriptions} which consist
-of different @dfn{aspects} and @dfn{contexts}, which can also be
-inherited from a @dfn{parent} character. All characters which are
-connected with parents, form a @dfn{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 @kbd{M-x hyper-apropos-get-doc})
-of the corresponding charsym, e.g., @code{arrowright}. See also the
-docstrings of @code{x-symbol-init-cset} and @code{x-symbol-init-input}.
-
-Remember, all characters which are connected with parents, form a
-component. @dfn{Contexts} are the contexts of input method Context
-(@pxref{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 @dfn{modify context} of a charsym is the first context.
-
-@vtable @code
-@item x-symbol-rotate-aspects-alist
-Characters in the same component whose aspects only differ by their
-@code{direction} (@code{east},@dots{}), a key in this alist, are
-circularly connected by ``rotate-to''. The sequence in the @dfn{rotate
-chain} is determined by @dfn{rotate scores} depending on the values in
-the @dfn{rotate aspects}. Charsyms with the same ``rotate-aspects'' are
-not connected (charsyms with the smallest modify scores are preferred).
-
-@lisp
-(get 'longarrowright 'x-symbol-rotate-aspects)
- @result{} (-1500 direction east)
-@end lisp
-
-@item x-symbol-modify-aspects-alist
-Characters in the same components whose aspects only differ by their
-@code{size} (@code{big},@dots{}), @code{shape} (@code{round},
-@code{square}@dots{}) and/or @code{shift} (@code{up},
-@code{down},@dots{}), 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 @dfn{modify
-chain} is determined by @dfn{modify scores} depending on the values in
-the @dfn{modify aspects}, the charsym score defined in the definition
-tables and the score of the whole cset (@pxref{Defining Charsets}).
-
-@lisp
-(get 'longarrowright 'x-symbol-score)
- @result{} -3500
-(get 'longarrowright 'x-symbol-modify-aspects)
- @result{} (1500 shift nil shape nil size big)
-@end lisp
-
-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 @dfn{horizontal chain}
-whose charsyms are circularly connected by ``modify-to''.
-
-We build a @dfn{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.
-
-@item x-symbol-key-suffix-string
-If there is only one charsym in the key chain, @kbd{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. @kbd{C-=} plus
-the context plus the suffix inserts the charsym.
-@end vtable
-
-
-@node Example Char Descriptions, Customizing Input Methods, Char Descriptions, Defining Input Methods
-@comment node-name, next, previous, up
-@subsection Defining Input Methods: Example
-@cindex Character Descriptions, Example
-
-@smallexample
-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' -
-@end smallexample
-
-Assuming that all charsyms form one component, we have:
-
-@smallexample
-Rotate chains: (1w,2w)-1e-1n @r{and} 3w-(2e,3e)-2n.
-Modify chains: 1w-2w-3w @r{and} 1e-2w-3w and 1n-2n.
-Horizontal chains: 1e-1w-2e-3e @r{(for modify context @samp{a})}
- 2w-3w @r{(for modify context @samp{b})}
-Key chains: 1e-1w-2e-3e @r{(for context @samp{a})}
- 1e-2w-2e-3w @r{(for context @samp{b})}
- 1n-1w-2n @r{(for context @samp{c})}
- 1n @r{(for context @samp{d})}
-@end smallexample
-
-That makes the following bindings:
-
-@smallexample
-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 @r{(horizontal chain)}
- 2w->3w, 3w->2w @r{(horizontal chain)}
- 1n->2n, 2n->1n @r{(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
-@end smallexample
-
-
-@node Customizing Input Methods, , Example Char Descriptions, Defining Input Methods
-@comment node-name, next, previous, up
-@subsection Customizing Input Methods
-@cindex Customizing Input Methods
-@cindex Input Methods Customization
-
-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.
-
-@vtable @code
-@item x-symbol-group-input-alist
-Defines default scores and bindings for characters of a group
-(@pxref{Char Group}). E.g., the definition (in
-@code{x-symbol-latin1-table})
-
-@lisp
-(aacute 225 (acute "a" Aacute))
-@end lisp
-
-defines @code{aacute} without any explicit contexts, but having the
-group @code{acute} and the subgroup @samp{a}. The default input for the
-group is defined by the following element in this variable:
-
-@lisp
-(acute 0 "%s'" t "'%s")
-@end lisp
-
-That means: 0 is added to the normal ``modify-score'' of the character.
-@samp{%s'} and @samp{'%s} with @samp{%s} substituted by the subgroup,
-i.e., @samp{a'} and @samp{'a}, are the contexts for @code{aacute}. The
-context @samp{'a} is also used for input method Electric since it is
-prefixed by @code{t}.
-
-@item 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 @kbd{C-= @var{key}} to @kbd{C-=
-@var{key} 1}, it is required that the length of the key binding without
-@kbd{C-=} is at least 2.
-@end vtable
-
-@c ====================================================================
-
-@node Extending X-Symbol, Various Internals, Defining Input Methods, X-Symbol Internals
-@comment node-name, next, previous, up
-@section Extending Package X-Symbol
-@cindex Extending 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.
-@end menu
-
-
-@node Extending with Fonts, Input Definitions, Extending X-Symbol, Extending X-Symbol
-@comment node-name, next, previous, up
-@subsection Extending X-Symbol with New Fonts
-@cindex Extending with Fonts
-@cindex Adding Fonts
-@cindex Font Extension
-@cindex Guidelines, Font Extension
-
-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 @samp{CHARSET_REGISTRY} and
-@samp{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, @pxref{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.
-
-@itemize @bullet
-@item
-In La@TeX{} buffers, characters in @samp{$%\@{@}} 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 @code{tex} and @code{utex}.
-
-@item
-In HTML buffers, characters in @samp{&<>} 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 @code{sgml}.
-@end itemize
-
-You have to tell package X-Symbol which fonts to use for the normal
-text, subscripts and superscripts. @xref{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.
-@xref{Defining Charsets}.
-
-
-@node Input Definitions, Font Definition File, Extending with Fonts, Extending X-Symbol
-@comment node-name, next, previous, up
-@subsection Guidelines for Input Definitions
-@cindex Input Definitions, Guidelines
-@cindex Guidelines, Input Definitions
-
-Read section @ref{Defining Input Methods}. Look at the tables in
-@file{x-symbol.el}. Here are some guidelines of how to define the input
-methods for new characters:
-
-@enumerate
-@item
-Define reasonable character groups for new characters, see @ref{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.
-
-@item
-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. @xref{Char Group}.
-
-@item
-If reasonable, define default contexts for characters of a group, see
-@ref{Customizing Input Methods}.
-
-@item
-For the other characters, define contexts by Ascii sequences which look
-similar to the character.
-
-@item
-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 @ref{Char Descriptions}.
-
-@item
-Use aspects to describe the new characters. Add new aspects to
-@code{x-symbol-modify-aspects-alist} and
-@code{x-symbol-rotate-aspects-alist} if necessary (@pxref{Char
-Descriptions}).
-
-@item
-Finish the definition of your font file (@pxref{Font Definition File}),
-load it with @kbd{M-x load-file}, and initialize the input methods,
-e.g., by invoking the grid (@kbd{M-x x-symbol-grid}).
-
-@item
-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.
-
-@enumerate a
-@item
-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.
-
-@item
-Define reasonable scores for newly defined aspects and character groups.
-
-@item
-Finally, fine-tune your definitions by charsym scores in the tables.
-This should be necessary only for a few characters.
-@end enumerate
-@end enumerate
-
-
-@node Font Definition File, Language Extension File, Input Definitions, Extending X-Symbol
-@comment node-name, next, previous, up
-@subsection Elisp File Defining a New Font
-@cindex Font Definition File
-
-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:
-
-@lisp
-(provide 'x-symbol-myfont)
-@group
-(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")))
-@end group
-@group
-(defvar x-symbol-myfont-cset
- '((("xsymb-myfont") ?\200 1000)
- (myfont-left "My font characters, left" 94 63) . nil))
-@end group
-@end lisp
-
-@lisp
-@group
-(defvar x-symbol-myfont-table
- '((longarrownortheast 33 (arrow) (size big . arrownortheast))
- (koerper 34 (setsymbol "K"))
- (circleS 35 (symbol "S") nil nil "SO")))
-@end group
-@group
-(x-symbol-init-cset x-symbol-myfont-cset x-symbol-myfont-fonts
- x-symbol-myfont-table)
-@end group
-@end lisp
-
-Due to an XEmacs bug with char syntax @code{inherit}, you should also
-add the following line to files @file{x-symbol-xmas20.el} and
-@file{x-symbol-xmas21.el}:
-
-@lisp
- (modify-syntax-entry ?\200 "\\" (standard-syntax-table))
-@end lisp
-
-
-@node Language Extension File, Language Definition File, Font Definition File, Extending X-Symbol
-@comment node-name, next, previous, up
-@subsection Elisp File Extending a Token Language
-@cindex Language Definition File
-
-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 @code{utex} inherits most
-variables from @code{tex}, see @file{x-symbol-utex.el}.
-
-A language must define variables for all language aspects, see
-@ref{Language Internals}. Our example defines a language @code{mytex}
-using the additional characters from @ref{Font Definition File}.
-
-First, you have to register the language in a startup file:
-
-@lisp
-(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)
-@end lisp
-
-The language definition file should look like (leaving out most parts
-which are similar to the ones in @file{x-symbol-utex.el}):
-
-@lisp
-(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)
-@end lisp
-
-@lisp
-(defvar x-symbol-mytex-user-table nil)
-@group
-(defvar x-symbol-mytex-myfont-table
- '((longarrownortheast (math arrow user) "\\longnortheastarrow")
- (koerper (math letter user) "\\setK")
- (circleS (math ordinary amssymb) "\\circledS")))
-@end group
-@group
-(defvar x-symbol-mytex-table
- (append x-symbol-mytex-user-table
- '(nil)
- x-symbol-mytex-myfont-table
- x-symbol-tex-table))
-@end group
-@end lisp
-
-It is important that you do not define a variable for the language
-access @code{x-symbol-font-lock-keywords}, but rather use the variable
-of the parent language directly, see @ref{Language Internals}.
-
-During the testing phase, you should probably leave out the
-@samp{'(nil)} which prevents warnings about redefinitions for the
-following elements.
-
-
-@node Language Definition File, , Language Extension File, Extending X-Symbol
-@comment node-name, next, previous, up
-@subsection Elisp File Defining a New Token Language
-@cindex Language Definition File
-
-You might also want to define a new token language not based on another
-language.
-
-As an example, consider a token language ``My Unicode'' (@code{myuc})
-for buffers with major mode @code{myuc-mode}. Thus, we register the
-language by:
-
-@lisp
-(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)
-@end lisp
-
-Each token if language @code{myuc} consists of @samp{#} 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 @samp{#} is represented by the token @code{##}. 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
-(@file{x-symbol-myuc.el}) is included in the source distribution of
-package X-Symbol.
-
-@lisp
-(provide 'x-symbol-myuc)
-(defvar x-symbol-myuc-required-fonts nil)
-(defvar x-symbol-myuc-modeline-name "myuc")
-@group
-(defvar x-symbol-myuc-class-alist
- '((VALID "My Unicode" (x-symbol-info-face))
- (INVALID "no My Unicode" (red x-symbol-info-face))))
-@end group
-(defvar x-symbol-myuc-font-lock-keywords nil)
-(defvar x-symbol-myuc-image-keywords nil)
-@dots{}
-@end lisp
-
-@lisp
-(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)
-@end lisp
-
-@lisp
-@group
-(defun x-symbol-myuc-default-token-list (tokens)
- (list (format "#%X" (car tokens))))
-@end group
-(defvar x-symbol-myuc-token-list 'x-symbol-myuc-default-token-list)
-(defvar x-symbol-myuc-user-table nil)
-@group
-(defvar x-symbol-myuc-xsymb0-table
- '((alpha () 945) (beta () 946)))
-@end group
-@group
-(defvar x-symbol-myuc-table
- (append x-symbol-myuc-user-table x-symbol-myuc-xsymb0-table))
-@end group
-@dots{}
-@end lisp
-
-@c ====================================================================
-
-@node Various Internals, Design Alternatives, Extending X-Symbol, X-Symbol Internals
-@comment node-name, next, previous, up
-@section Various Internals
-
-@menu
-* Tagging Insert Commands:: Don't break input methods Token and Electric.
-* Avoiding Flickering:: Moving cursor in invisible commands.
-@end menu
-
-
-@node Tagging Insert Commands, Avoiding Flickering, Various Internals, Various Internals
-@comment node-name, next, previous, up
-@subsection Tagging Insert Commands for Token and Electric
-@cindex Insert Commands, Tagging
-@cindex Tagging Insert Commands
-@cindex Recognizing Insert Commands
-
-Input methods Token (@pxref{Input Method Token}) and Electric
-(@pxref{Input Method Electric}) stop their auto replacement if you use a
-command which is not an insert command.
-
-@ftable @code
-@item self-insert-command
-@itemx newline
-@itemx newline-and-indent
-@itemx reindent-then-newline-and-indent
-@itemx tex-insert-quote
-@itemx TeX-insert-quote
-@itemx TeX-insert-punctuation
-@itemx TeX-insert-dollar
-@itemx sgml-close-angle
-@itemx sgml-slash
-These commands and commands aliased to these are recognized as input
-commands by having a non-@code{nil} value of its symbol property
-@code{x-symbol-input}.
-@end ftable
-
-
-@node Avoiding Flickering, , Tagging Insert Commands, Various Internals
-@comment node-name, next, previous, up
-@subsection Avoiding Hide/Show-Invisible Flickering
-@cindex Avoiding Flickering
-@cindex Flickering, Invisible
-@cindex Invisible Flickering
-
-Starting a command makes a previously revealed super- or subscript
-command (@pxref{Super and Subscripts}) invisible again. Repeatedly
-invoking commands which moves the point just by a small amount can lead
-to some flickering.
-
-@ftable @code
-@item forward-char
-@itemx forward-char-command
-@itemx backward-char
-@itemx 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 (@code{1+} and @code{1-}) as the value of its symbol property
-@code{x-symbol-point-function} which returns the position ``after'' when
-called with the position ``before''.
-@end ftable
-
-@c ====================================================================
-
-@node Design Alternatives, Language Internals, Various Internals, X-Symbol Internals
-@comment node-name, next, previous, up
-@section 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.
-@end menu
-
-
-@node Alt Token Representations, Alt Global Mode, Design Alternatives, Design Alternatives
-@comment node-name, next, previous, up
-@subsection Alternative Token Representations
-@cindex Alternative Token Representations
-@cindex Token Representation, Alternatives
-
-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 @ref{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:
-
-@itemize @bullet
-@item
-The editing commands would work on the tokens which are invisible for
-the user.
-
-@item
-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!
-
-@item
-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 @code{lazy-shot}!
-@end itemize
-
-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:
-
-@itemize @bullet
-@item
-You cannot adopt @sc{sgml} to this approach.
-
-@item
-You cannot read normal La@TeX{} files directly, you do not write normal
-La@TeX{} files.
-
-@item
-You would have different @TeX{} versions: one for X-Symbol with Emacs
-and XEmacs/Mule, one with XEmacs/no-Mule.
-
-@item
-If you are not an extremely good @TeX{} hacker, it would be impossible
-to adopt this approach to support more than 256 characters.
-@end itemize
-
-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:
-
-@itemize @bullet
-@item
-Problems with current search/replace commands.
-
-@item
-Problems with the current version of @code{font-lock} (it should @emph{never}
-overwrite the font property for this character, even if the character
-matches some @var{match} in @code{font-lock-keywords} and
-@var{overwrite} is non-@code{nil}). This gets even more difficult with
-superscripts/subscripts.
-
-@item
-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., @code{\leftrightarrow} and @code{\approx}
-would be delimiters.
-
-@item
-Needs pre/post-conversion in lisp when using executables for the conversion.
-@end itemize
-
-
-@node Alt Global Mode, Alt Auto Conversion, Alt Token Representations, Design Alternatives
-@comment node-name, next, previous, up
-@subsection Alternative Ways to Turn on X-Symbol Globally
-@cindex Alternative Global Mode
-@cindex Global Mode, Alternatives
-@cindex Turn on Globally, Alternatives
-
-This package hooks itself into @code{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:
-
-@itemize @bullet
-@item
-The installation is more complicated.
-
-@item
-Local variables in files are not yet processed (this was the main reason
-not to do it this way).
-@end itemize
-
-Another possibility would be to hook X-Symbol into
-@code{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 @code{find-file-hooks},
-especially with the function hooked in by @code{font-lock}.
-
-
-@node Alt Auto Conversion, , Alt Global Mode, Design Alternatives
-@comment node-name, next, previous, up
-@subsection Alternative Auto Conversion Methods
-@cindex Alternative Auto Conversion
-@cindex Auto Conversion, Alternatives
-
-@vindex hack-local-variables-hook
-@vindex after-insert-file-functions
-@vindex write-region-annotate-functions
-Without package @code{crypt}, this package automatically decodes tokens
-when turning on the minor mode (in @code{hack-local-variables-hook},
-@pxref{Alt Global Mode}) or in @code{after-insert-file-functions}. This
-package automatically encodes characters in
-@code{write-region-annotate-functions}. The disadvantage is that the
-possibility to change buffers in @code{write-region-annotate-functions}
-is not official (@pxref{Wishlist Emacs}), i.e., not mentioned in the
-docstring (only mentioned for corresponding encode-functions of package
-@code{format} which use a similar loop in the C code).
-
-@vindex write-file-hooks
-With package @code{crypt}, this package automatically decodes tokens
-when turning on the minor mode. This package automatically encodes
-characters in @code{write-file-hooks}. The disadvantage is that the
-encoding is slower (use @code{jka-compr} instead @code{crypt}) and the
-problem with @code{vc-next-action} (@pxref{Spurious Encodings}).
-
-@vindex write-file-data-hooks
-Without package @code{crypt}, Version 2.6 of this package automatically
-encoded characters in @code{write-file-data-hooks}. The advantage was
-that changing buffers there is official, the disadvantage is that it is
-also more complicated.
-
-@pindex format
-A totally different method would be to use package @code{format}.
-Unfortunately, this is not really possible, since a @var{regexp} in
-@code{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 @code{jka-compr}
-and @code{crypt}.
-
-@c ====================================================================
-
-@node Language Internals, Misc Internals, Design Alternatives, X-Symbol Internals
-@comment node-name, next, previous, up
-@section Language Internals
-@cindex Language Internals
-@cindex Token Language Internals
-@cindex Internals, Languages
-@cindex Registered Languages
-@cindex Loaded Language
-@cindex Initialized Language
-@cindex Language Access
-@cindex Accessing Language Depending Variables
-
-In order to use a token language or accessing one of the language
-dependent values, the following conditions must be met:
-
-@itemize @bullet
-@item
-The language must be @dfn{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
-@code{x-symbol-language}.
-
-@ftable @code
-@item 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.
-@end ftable
-
-@item
-The file providing the language must have been @dfn{loaded}. This will
-be done automatically when the language is initialized. Customizing
-X-Symbol will also load the language files.
-
-@item
-The language must be @dfn{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 (@pxref{Input Method
-Grid}), you should initialize the language explicitly, e.g., by the
-following command:
-
-@table @kbd
-@item M-x x-symbol-init-language-interactive
-@findex x-symbol-init-language-interactive
-Initialized a token language if it is not already initialized.
-@end table
-@end itemize
-
-Language dependent values are accessed by language accesses:
-
-@table @code
-@item x-symbol-language-value
-@findex 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
-@code{x-symbol-name}. With a simplified expansion, we get
-
-@lisp
-(x-symbol-language-value 'x-symbol-name 'tex)
- @expansion{} (symbol-value (get 'tex 'x-symbol-name))
- @result{} (symbol-value 'x-symbol-tex-name)
- @result{} "TeX macro"
-@end lisp
-
-@item x-symbol-language-access-alist
-@vindex x-symbol-language-access-alist
-List of all language accesses. A token language @emph{must} define all
-variables accessed by language accesses. A @dfn{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 @code{utex},
-the language access @code{x-symbol-font-lock-keywords}, should point
-directly to the variable of the parent language (here @code{tex}), see
-file @file{x-symbol-utex.el}.
-@end table
-
-
-@c Hi, X-Symbol's interna have changed considerably with v4.3.1-alpha. For
-@c token languages to work with new versions of X-Symbol, it is important
-@c to define some new language accesses (you
-@c can also delete some if you do not want X-Symbol backward compatiblity)
-
-@c The reason for the change is:
-
-@c * more general ways to define the "grammar" of tokens, also useful for
-@c ProofGeneral's languages, see below.
-@c * faster conversion (I also dropped the support of executables)
-
-
-@c As an example, let's look at x-symbol-texi.el):
-
-@c The following vars must now be defined (value nil...)
-
-@c (defvar x-symbol-texi-generated-data nil)
-
-@c Now the interesting part:
-
-@c (defvar x-symbol-texi-token-grammar
-@c '(x-symbol-make-grammar
-@c :encode-spec '(?@)
-@c :decode-regexp
-@c "@\\(?:[A-Za-z]+{[A-Za-z]?}\\|[{}]\\|[~^\"'`][A-Za-z]\\|,{[A-Za-z]}\\)"
-@c :decode-spec '(?@))
-@c "Token grammar for language `texi'.")
-
-@c (defvar x-symbol-texi-input-token-grammar
-@c '("@\\(?:[A-Za-z]+{[A-Za-z]?}\\|[{}]\\|[~^\"'`][A-Za-z]\\|,{[A-Za-z]}\\)\\'"
-@c ?@)
-@c "Grammar of input method Token for language `texi'.")
-
-@c In short, not too difficult if the token grammar is regular (even
-@c simpler for SGML entities). The good news: powerful enough for
-@c irregular token grammar which couldn't be defined with previous versions
-@c of X-Symbol.
-
-@c The conversion now works as follows:
-
-@c 1. decode (token->char): search for regexp, then decode match except if
-@c context is "bad".
-@c 2. encode (char->token): search for non-ascii/8bit, then encode match.
-@c Surround by spaces if context is "bad".
-
-@c The "token grammar" is simply a definition of the regexp and the bad
-@c contexts, which can be different for different "shapes" of the token.
-@c A special BEFORE context is the escape character: this character may
-@c appear exactly even times before the token; it will be used for
-@c all shapes.
-
-@c Lets assume a language "Isabelle Symbol" plus symbols for identifiers
-@c and operators (see below for lisp coding):
-
-@c shape nil: \<NAME>
-@c shape id: [A-Za-z_][A-Za-z_0-9]+
-@c shape op: [<>!+-*/|&]+
-
-@c To make the conversion fast, the shape must be given at definition time,
-@c i.e., the init must get tokens in the form (TOKEN . SHAPE).
-@c Either per hand or computed via function in language access
-@c x-symbol-token-list...
-
-@c The decode-regexp must match all tokens and:
-
-@c a. should be specific enough to make the conversion fast
-@c b. must be general enough to match strings which should not be
-@c considered to contain a token even if a substring is a token (to
-@c avoid excessive context checking)
-
-@c In our example, the regexp would be something like
-
-@c "\\\\<[A-Za-z]+>\\|[A-Za-z_][A-Za-z_0-9]+\\|[<>!+-*/|&]+"
-
-@c No bad context has to be defined for decoding since the regexp is
-@c general enough.
-
-@c For encoding, we have to define the following bad contexts (no context
-@c can be defined for shape nil):
-
-@c shape id: BEFORE: [A-Za-z_0-9], AFTER: [A-Za-z_0-9]
-@c shape op: BEFORE: [<>!+-*/|&], AFTER: [<>!+-*/|&]
-
-@c BEFORE is a regexp used via `string-match' with the character before the
-@c character to encode; if it matches, we put a space before the token for
-@c the character. AFTER is a regexp used with `looking-at' with point
-@c after the character. We would put a space after the token.
-
-@c There is probably no escape char defined for Isabelle Symbols (i.e.,
-@c "\\" is no token).
-
-@c The input-token-grammar is very similar to the decode-grammar: the
-@c regexp should end with \\' such that only matches ending at point will
-@c get replaced, and we should define a bad context (which will be
-@c tried to match against `last-command-char').
-
-@c This makes the grammar below.
-
-@c Hope this helps,
-@c - Christoph
-
-
-@c (defvar x-symbol-xisa-token-grammar
-@c '(x-symbol-make-grammar
-@c :encode-spec '(((id . "[A-Za-z_0-9]") (op . "[<>!+-*/|&]")) .
-@c ((id . "[A-Za-z_0-9]") (op . "[<>!+-*/|&]")))
-@c :decode-spec nil
-@c :decode-regexp "\\\\<[A-Za-z]+>\\|[A-Za-z_][A-Za-z_0-9]+\\|[<>!+-*/|&]+"
-@c :token-list #'x-symbol-xisa-default-token-list))
-
-@c (defvar x-symbol-xisa-input-token-grammar
-@c '(("\\(?:\\\\<[A-Za-z]+>\\|[A-Za-z_][A-Za-z_0-9]+\\|[<>!+-*/|&]+\\)\\'")
-@c ((id . "[A-Za-z_0-9]") (op . "[<>!+-*/|&]"))
-@c (id . "[A-Za-z_0-9]") (op . "[<>!+-*/|&]")))
-
-@c (defun x-symbol-xisa-default-token-list (tokens)
-@c (mapcar (lambda (x)
-@c (cons x (cond ((string-match "\\`[A-Za-z_][A-Za-z_0-9]+\\'" x) 'id)
-@c ((string-match "\\`[<>!+-*/|&]+\\'" x) 'op))))
-@c tokens))
-
-@c (defun x-symbol-xisa-table
-@c '((product () "\\<Prod>")
-@c (longarrowright () "-->")
-@c (alpha () "alpha")))
-
-
-@c ====================================================================
-
-@node Misc Internals, , Language Internals, X-Symbol Internals
-@comment node-name, next, previous, up
-@section Miscellaneous Internals
-
-TODO. This is currently just a collection of unrelated stuff.
-
-@c was in "Char Group
-Characters might also define a @dfn{subgroup} which is a string defining
-some order on characters in the same group (@pxref{Char Group}) and is
-also used for default contexts/bindings (@pxref{Customizing Input
-Methods}).
-
-@vtable @code
-@item x-symbol-group-syntax-alist
-Lists all valid character groups. Under Emacs and XEmacs/Mule, this
-list also determines the syntax of characters.
-@end vtable
-
-The character group could probably also be used to define character
-categories if they are implemented in XEmacs.
-
-@c ===========================================================================
-
-@node Problems, History, X-Symbol Internals, Top
-@comment node-name, next, previous, up
-@chapter Problems, Troubleshooting
-@cindex Problems
-@cindex Troubleshooting
-@cindex Annoyances
-@cindex Bugs
-
-This section is based on a successful installation of package X-Symbol.
-@xref{Checking Installation}.
-
-@menu
-* Nomule Problems:: X-Symbol provides a @emph{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.
-@end menu
-
-@c ===========================================================================
-
-@node Nomule Problems, Spurious Encodings, Problems, Problems
-@comment node-name, next, previous, up
-@section Problems under XEmacs/no-Mule
-@cindex Nomule Problems
-@cindex @code{transpose-chars} Problems
-@cindex Replace Problems
-@cindex Rectangle Problems
-@cindex Abbrev Problems
-@cindex Invisible Point
-@cindex Parenthesis Problems
-@cindex Fill Problems
-
-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 ``@emph{poor} man's Mule'', see
-@ref{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):
-
-@itemize @bullet
-@item
-If @code{font-lock} is not prepared to display these two-character
-sequences, i.e., if you installation is incomplete (@pxref{Role of
-font-lock}), they look like @samp{\233a} instead @code{alpha}.
-
-@item
-Commands which add more than one entry to the @code{buffer-undo-list}
-and involve X-Symbol characters might lead to strange results,
-e.g. @kbd{C-t} (@code{transpose-chars}) with point between character
-@code{alpha} and @samp{b}, leads to @code{beta}@samp{a}. Simple
-deletion and insertion works OK, though.
-
-@item
-Selecting or inserting a rectangle with X-Symbol characters on the left
-or right margin might not work properly.
-
-@item
-Be careful with @kbd{M-%} (@code{query-replace}): the first character of
-@var{from-string} can probably match the second of the two ``internal''
-characters of an X-Symbol character.
-
-@item
-If you use @kbd{C-x '} (@code{expand-abbrev}) without @kbd{M-'}
-(@code{abbrev-prefix-mark}) and the last word before point starts
-directly after a X-Symbol character, @kbd{C-x '} could behave strange:
-
-@itemize @minus
-@item
-If @code{words-include-escapes} is @code{t}, there will be no expansion.
-
-@item
-If @code{words-include-escapes} is @code{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.
-@end itemize
-
-@item
-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 (@kbd{C-g}).
-Unfortunately, XEmacs (as opposed to Emacs) does not run the hooks in
-@code{post-command-hook} in these cases. Solution: move point right
-(@kbd{C-f}).
-
-@item
-If you provide prefix arguments to commands, they are likely to consider
-just ``internal'' characters. E.g., @kbd{C-u 2 C-f} before @code{alpha}
-behaves like @kbd{C-f}.
-
-@item
-Column position considers ``internal'' characters, e.g., @kbd{C-n} might
-jump to an unexpected position (well, typically just one character
-left/right from the expected position, if at all).
-
-@item
-Auto-filling also considers ``internal'' characters, i.e., might break
-the line too early.
-
-@item
-There are no syntax definitions for the new characters, e.g.,
-@kbd{M-C-f} before @code{floorleft} does not move to the closing
-@code{floorright}.
-
-@item
-In some cases, e.g., when using the minibuffer for input via @kbd{M-%}
-or @kbd{C-s}, the internal representation of X-Symbol characters
-(@pxref{Char Representation}) are displayed directly (@pxref{FAQ Strange
-Chars})
-@end itemize
-
-@c ====================================================================
-
-@node Spurious Encodings, No Encoding, Nomule Problems, Problems
-@comment node-name, next, previous, up
-@section Spurious Encodings
-@cindex Spurious Encodings
-@cindex Version Control Problems
-@cindex @code{write-file} Problems
-@cindex @code{vc} Problems
-@cindex Revert Buffer Problems
-
-@pindex vc
-In rare cases, some commands (mostly from package @code{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.
-
-@itemize @bullet
-@item
-@pindex crypt
-Doing the next logical version control operation (@kbd{C-x v v} and
-friends) encode characters to tokens when using package @code{crypt}.
-
-Solution: use package @code{jka-compr} instead @code{crypt} (this is
-recommended anyway, @pxref{File IO Packages}). Or kill the buffer and
-revisit the file.
-
-@item
-@pindex auctex
-When using Auc@TeX{} with its default-mode algorithm, getting rid of the
-recently checked-in version of a file without reverting the buffer
-afterwards (@kbd{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 @samp{\233a}.
-
-Explanation: when using Auc@TeX{}'s @code{TeX-default-mode}, the final
-@code{major-mode} is different from the initial @code{major-mode}
-deduced using @code{auto-mode-alist}. If this is the case, the VC
-command executes @code{normal-mode} which kills all local-variables
-including turning-off @code{x-symbol-mode}.
-
-Solution: Turn on X-Symbol mode or change @code{auto-mode-alist} to
-directly choose @code{latex-mode}:
-
-@lisp
-(push '("\\[tT]e[xX]\\'" . latex-mode) auto-mode-alist)
-@end lisp
-
-@item
-@findex write-file
-@vindex change-major-mode-with-file-name
-When using Auc@TeX{} with its default-mode algorithm, writing a La@TeX{}
-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
-Auc@TeX{}'s @code{TeX-default-mode}, we get the problems as described in
-the previous item.
-
-Solution: Set @code{change-major-mode-with-file-name} to @code{nil} or
-use the solution from the previous item.
-@end itemize
-
-@c ====================================================================
-
-@node No Encoding, FAQ, Spurious Encodings, Problems
-@comment node-name, next, previous, up
-@section The Encoding Does Not Work
-@cindex No Encoding
-@cindex @code{write-region} Problems
-
-In a rare case, X-Symbol cannot do its encoding, i.e., convert the
-characters to tokens.
-
-@itemize @bullet
-@item
-@findex write-region
-@pindex crypt
-@vindex write-file-hooks
-@kbd{M-x write-region} fails to do the encoding if you use package
-@code{crypt}.
-
-Explanation: with package @code{crypt}, the encoding has to be done by a
-function in @code{write-file-hooks} which is not used by
-@code{write-region}.
-
-Solution: use package @code{jka-compr} instead @code{crypt} (this is
-recommended anyway, @pxref{File IO Packages}). Or visit the region file
-and save it again via @kbd{C-x C-s}.
-@end itemize
-
-
-@c ===========================================================================
-
-@node FAQ, Bug Reports, No Encoding, Problems
-@comment node-name, next, previous, up
-@section Frequently Asked Questions
-@cindex Frequently Asked Questions
-@cindex FAQ X-Symbol
-
-It is assumed that you had successfully installed package X-Symbol, see
-@ref{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 @code{hyphen} from @samp{-}.
-* FAQ Spell Check:: I have problems with spell-checking.
-@end menu
-
-
-@node FAQ XEmacs Core, FAQ font-lock, FAQ, FAQ
-@comment node-name, next, previous, up
-@subsection XEmacs Crashes when using Input Method Token
-@cindex XEmacs Core
-@cindex Core XEmacs
-@cindex Crash XEmacs
-@cindex 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
-@ref{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
-@code{x-symbol-xmas-warn-about-core} to @code{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 @emph{newest} version of XEmacs (please put me in
-the CC).
-
-
-@node FAQ font-lock, FAQ Strange Chars, FAQ XEmacs Core, FAQ
-@comment node-name, next, previous, up
-@subsection X-Symbol's Fontification does Not Work
-@pindex font-lock
-@cindex No fontification
-@cindex @code{font-lock} Problems
-
-In this case, super- and subscripts are not properly displayed
-(@pxref{FAQ No Subscripts}) and under XEmacs/no-Mule, the buffer
-contains s.th. like @samp{\233a} (@pxref{FAQ Strange Chars}).
-Possible causes:
-
-@itemize @bullet
-@findex x-symbol-fontify
-@item
-You have turned off @code{font-lock} or @code{font-lock} is out of sync.
-Use @kbd{M-x x-symbol-fontify}. @xref{Role of font-lock}.
-
-@item
-The font-lock keywords of the current buffer are not prepared to display
-X-Symbol characters. @xref{Role of font-lock}.
-
-@item
-@vindex fast-lock-save-faces
-You use package @code{fast-lock}. Solution: set
-@code{fast-lock-save-faces} to @code{nil} (done by default
-installation).
-
-@item
-You use some version control commands. You have probably noticed that
-these versions control commands also turn off @code{font-lock} in modes
-where you don't use X-Symbol, i.e., this is not a problem of package
-X-Symbol. @pxref{Wishlist Emacs} and @ref{Spurious Encodings}.
-@end itemize
-
-
-@node FAQ Strange Chars, FAQ No Subscripts, FAQ font-lock, FAQ
-@comment node-name, next, previous, up
-@subsection The Buffer Contains Strange Characters
-@cindex Strange Characters
-@cindex Funny Characters
-@cindex Character Problems
-@cindex Escape Character Problems
-@pindex Mathematica
-
-If you see s.th. like @samp{\233a}, you see the internal representation
-of X-Symbol characters under XEmacs/no-Mule (@pxref{Char
-Representation}) directly. Possible causes:
-
-@itemize @bullet
-@item
-You have @code{font-lock} problems, see @ref{FAQ font-lock}.
-
-@item
-More complicated editing commands like @kbd{C-t} may produce strange
-character sequences which do not represent X-Symbol characters, see
-@ref{Nomule Problems}.
-
-@item
-In some cases, e.g., when using the minibuffer for input via @kbd{M-%}
-or @kbd{C-s}, it would be too much work to fontify these character
-sequences in order to display proper X-Symbol characters. @xref{Nomule
-Problems}.
-@end itemize
-
-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 @code{adobe-fontspecific}, but in fact
-uses another encoding. E.g., Mathematica's fonts cause the characters
-intersection and union to mix up. Possible solutions:
-
-@itemize @bullet
-@item
-Delete that font from the font path. Maybe moving it at the end also
-works.
-
-@item
-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
-
-@lisp
-(setq face-ignored-fonts '("\\`-wri-math1"))
-@end lisp
-
-@item
-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.
-@end itemize
-
-
-@node FAQ No Subscripts, FAQ Stupid Subscripts, FAQ Strange Chars, FAQ
-@comment node-name, next, previous, up
-@subsection I Cannot See any/some Super- or Subscripts
-@cindex No Subscripts
-@cindex Subscript Problems
-@cindex Superscript Problems
-
-If you cannot select @samp{Super-/Subscripts} in the menu, the first of
-the following points is more likely the cause, the others otherwise.
-
-@itemize @bullet
-@item
-You have @code{font-lock} problems, see @ref{FAQ font-lock}.
-
-@item
-There are cases where super- and subscripts are not displayed, see
-@ref{Super and Subscripts}.
-
-@item
-The argument in braces are not correctly recognized, since the
-@code{font-lock} syntax-table is not correct. It should include
-@samp{@{} as the only open parenthesis and @samp{@}} 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
-@code{font-lock} package, but would require other changes there,
-therefore not likely to be fixed. Fortunately, this does not happen
-often.
-@end itemize
-
-
-@node FAQ Stupid Subscripts, FAQ Font Size, FAQ No Subscripts, FAQ
-@comment node-name, next, previous, up
-@subsection I See Super- and Subscripts where I Don't Want Them.
-@pindex font-lock
-@pindex font-latex
-@cindex Stupid Subscripts
-@cindex Annoying Subscripts
-@cindex Label Subscripts
-@cindex Subscript Problems
-@cindex Superscript Problems
-
-E.g., I see a subscript in arguments of @code{\label}. Package X-Symbol
-only uses super- and subscripts if they are in braces, if the
-@code{asciicircum}/@code{underscore} has not been fontified yet or is
-only fontified with faces which are allowed by
-@code{x-symbol-tex-font-lock-allowed-faces}, see @ref{Super and
-Subscripts}.
-
-@itemize @bullet
-@item
-You use the default @code{tex-font-lock-keywords}: The argument of
-@code{\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 @code{font-latex}, see below.
-
-@item
-You use package @code{font-latex}. Solution: set
-@code{font-lock-maximum-decoration} to value @code{t}, 2 or higher.
-Package X-Symbol will still use subscripts in @code{\verb}, in the
-@code{verbatim} environment, in the argument of @code{\includegraphics}
-and probably other commands. Some of these problems will probably be
-solved by future versions of @code{font-latex}.
-
-@item
-You use my font-lock keywords (file @file{x-font-lock.el}): everything
-should work fine. Please note that this file is not meant to be a
-replacement of @file{font-latex.el} useful to all users. Also,
-highlighting is a matter of taste, i.e., I am not going to change the
-@file{x-font-lock.el} to support La@TeX{}-2.09, @TeX{}'s math regions,
-other likings, etc.
-
-@item
-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.
-@end itemize
-
-
-@node FAQ Font Size, FAQ Conversion, FAQ Stupid Subscripts, FAQ
-@comment node-name, next, previous, up
-@subsection The Characters are Too Small or Too Big
-@cindex Font Size
-@cindex Big Characters
-@cindex Small Characters
-
-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). @emph{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 (@pxref{Info}) that you actually
-get the correct letter---they are just of different sizes.
-@xref{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.
-
-
-@node FAQ Conversion, FAQ Additional Spaces, FAQ Font Size, FAQ
-@comment node-name, next, previous, up
-@subsection The Conversion Changes Some Tokens
-@cindex Token Changes
-@cindex Conversion Problems
-@cindex Encoding Problems
-
-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. @xref{Unique Decoding}.
-
-@itemize @bullet
-@item
-Solution: Do not redefine standard @TeX{} macros or use unique decoding.
-@end itemize
-
-
-@node FAQ Additional Spaces, FAQ 8bit Chars, FAQ Conversion, FAQ
-@comment node-name, next, previous, up
-@subsection A Space is Added During the Encoding
-@cindex Additional Spaces
-@cindex Token Problems
-@cindex Encoding Problems
-@cindex Space Problems
-
-A space is added after some characters during the encoding to tokens.
-With token languages @code{tex} and @code{utex} (not with language
-@code{sgml}), there must be a space after the token to recognize its end
-in some cases.
-
-E.g., if your buffer contains @samp{a+b} (where + stands for the
-character @code{circleplus}), this is encoded to @samp{a\oplus b} (note
-the space after @code{\oplus}). Decoding it yields @samp{a+ b}.
-
-I admit, this looks ugly. The space is only added if the symbol
-character is followed by a letter or by @samp{@@}. Thus, decoding
-@samp{a\oplus\beta} yields @samp{a+b} (without space!).
-
-@itemize @bullet
-@item
-Suggestion: Also use a space before @code{\oplus}. The alternative
-would be to delete the space which other people won't like.
-@end itemize
-
-@xref{TeX Macro Conversion} for an exact description.
-
-
-@node FAQ 8bit Chars, FAQ Hyphen, FAQ Additional Spaces, FAQ
-@comment node-name, next, previous, up
-@subsection I Don't Want 8bit Characters in the File
-@cindex 8bit Character Problems
-@cindex No 8bit Characters
-
-By default, these are not encoded if the buffer-local variable
-@code{x-symbol-8bits} is non-@code{nil}.
-
-By default, this variable is only set to non-@code{nil}, if something like
-
-@example
-\usepackage[latin1]@{inputenc@}
-@end example
-
-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.
-@xref{File Coding}. Note: commenting the line is not enough! (I do not
-run La@TeX{} to check for the line, I just do plain text search.)
-
-
-@node FAQ Hyphen, FAQ Spell Check, FAQ 8bit Chars, FAQ
-@comment node-name, next, previous, up
-@subsection I Cannot Distinguish Character @code{hyphen} from @samp{-}
-@cindex Hyphen Versus Minus
-@cindex Minus Versus Hyphen
-
-In most fonts, the Latin character @code{hyphen} cannot be distinguish
-from the Ascii character @samp{-}. If you do not want to decode the
-corresponding token @code{\-} or @code{&shy;}, put the following into
-your @file{~/.emacs}:
-
-@lisp
-(setq x-symbol-tex-user-table '((hyphen)))
-(setq x-symbol-sgml-user-table '((hyphen)))
-@end lisp
-
-A better alternative would be to make @code{font-lock} display these
-character in a different color.
-
-
-@node FAQ Spell Check, , FAQ Hyphen, FAQ
-@comment node-name, next, previous, up
-@subsection Problems with Spell-checking
-@cindex Spell Checking
-@pindex ispell
-@findex ispell-word
-@findex ispell-region
-
-As explained in @ref{Miscellaneous Packages}, @code{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 @code{ispell-word} and
-@code{ispell-region}. Possible symptoms:
-
-@itemize @bullet
-@item
-A word which contains letters which the program @code{ispell} does not
-know about is either not spell-checked or parts of it are spell-checked
-as independent words.
-
-Solution: Use the @code{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
-@code{oe} if you use a Latin-1 encoding.
-
-@item
-Spell-checking might stop with the error message @samp{Ispell
-misalignment}. I can reproduce this only with Emacs, not with XEmacs.
-
-Question: If you know some settings (like for
-@code{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 @code{flyspell}.
-@end itemize
-
-The real solution would be to fix @code{ispell}, at least by providing a
-useful hook which allows X-Symbol to fix the problem. @xref{Wishlist
-Emacs}. You are strongly encouraged to send a patch to the maintainer
-of @code{ispell}, you even get a paragraph here in
-@ref{Acknowledgments}!
-
-@c ===========================================================================
-
-@node Bug Reports, , FAQ, Problems
-@comment node-name, next, previous, up
-@section How to Send a Bug/Problem Report
-@cindex Bug Reports
-@cindex Problem Reports
-@cindex Contacting the Maintainer
-@cindex Maintainer Address
-@cindex Email to the Maintainer
-@cindex Reports of Bugs
-
-Bug fixes, bug/problem reports, improvements, and suggestions are
-strongly appreciated. So are corrections to this manual (better
-explanations, correcting my English, @dots{}). Especially useful would be
-some feedback by people using default fonts with a charset
-registry-encoding other than @code{iso8859-1} (Western encoding).
-
-Please read this section carefully, even if you generally know how to
-send a bug report (@pxref{Bugs,,,@value{emacs},@value{emacsman}}).
-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:
-
-@enumerate
-@item
-Make sure that you use the @strong{newest version} of X-Symbol. You are
-reading Edition @value{edition} of the manual for X-Symbol
-@value{version}.
-
-@item
-Read the manual, especially @ref{Checking Installation}, @ref{Problems}
-and @ref{FAQ}. The four indexes (@pxref{Indexes}) might also lead you
-to an answer to your question.
-
-@item
-Use @kbd{M-x x-symbol-package-bug} (also to be found in X-Symbol's
-Command submenu) to write your report describing @strong{one} bug or
-problem, i.e., use @strong{different mails} for @strong{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' @file{*mail*} buffer to your mail tool.
-
-If @kbd{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 @samp{x-symbol @var{version}; @var{summary}} as Subject header
-where @var{version} is the version of X-Symbol and @var{summary} is a
-brief summary of your installation problem.
-
-(@emph{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. The additional
-advantage is that I can see who doesn't have any problems wasting my
-time.)
-
-@item
-Start your report with:
-
-@quotation
-In the manual, I checked the sections @var{section1}, @var{section2},
-@dots{}, but didn't find anything which helped me with the following
-problem:
-@end quotation
-
-The sections @var{section1}, @var{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.
-
-(@emph{Rationale}: This way, I get an idea where to improve the manual,
-especially by adding cross references. It also ensures that you really
-have tried to find the relevant information yourself.)
-
-@item
-If buffer @file{*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 @samp{X-Symbol} is not mentioned there. Otherwise,
-include the contents of buffer @file{*Warnings*} into your bug report.
-
-@c TODO: without warnings.el from Emacs-21.4
-Temporary Emacs (< v21.4) note: the warnings might be somewhere hidden
-in buffer @file{*Messages*}.
-
-@item
-Put the parts of the code from @file{~/.emacs} and the system-wide files
-which causes the problem into a fresh file @file{@var{my-problem}.el}.
-The problem/error should be visible when invoking
-
-@example
-xemacs -no-site-file -q -l @var{my-problem}.el
-@end example
-
-In the minimal case, @file{@var{my-problem.el}} just contains the
-following line (@pxref{Installing Lisp}):
-
-@lisp
-(x-symbol-initialize)
-@end lisp
-
-If the error has disappeared after you have included your complete
-@file{~/.xemacs/init.el} and @file{~/.emacs}, the problem is likely
-caused by some code of your system-wide installation. Include the code,
-which can be found using command @kbd{M-x find-library} with files
-@file{site-start} and @file{default} (everything is fine if these files
-do not exist).
-
-If you use @file{x-symbol-site.el} (its use is deprecated), copy its
-contents into @file{@var{my-problem.el}} and delete the corresponding
-@code{load} command.
-
-Attach the file @file{@var{my-problem}.el} to your report.
-@strong{Please try to minimize the size of @file{@var{my-problem}.el}}!
-A standard technique is recursive halving: Delete the second half of
-@file{@var{my-problem.el}}. If the problem disappears, delete the first
-half instead. Do the same with the smaller file again, @dots{}.
-
-(@emph{Rationale}: Most problems are a consequence of some specific
-customizations, but I don't have time to debug each user's init file.)
-
-@item
-If you have set variable @code{custom-file} in
-@file{@var{my-problem}.el}, attach the corresponding file to your report.
-
-@item
-If the error can only be reproduced in combination with another Emacs
-package, please send me:
-
-@itemize @minus
-@item
-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 @kbd{M-x find-library} to check whether
-you really use the version from the Emacs/XEmacs distribution).
-
-@item
-If it is a non-standard (and non-obscure) package: the URL of the
-distribution and/or the source.
-
-@item
-Otherwise: include its code into @file{@var{my-problem}.el} and delete
-the corresponding @code{load} or @code{require} command. Then, reduce
-the size of @file{@var{my-problem}.el} as described above.
-@end itemize
-
-@item
-If the problem is not reproducible with an @emph{arbitrary}
-(@file{.tex}, @file{.html}, @dots{}) 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.
-
-(@emph{Rationale}: Most problems are only reproducible with specific
-files.)
-
-@ignore
-@item
-I would appreciate, if you would set variable @code{debug-on-error} to
-@code{t} before you trigger the error and send me the contents of buffer
-@file{*Backtrace*}. At best, using the uncompiled versions of the
-functions involved, i.e., by jumping to its definition and evaluation it:
-
-@example
-M-x find-function @key{RET} @var{function} @key{RET} C-M-f C-x C-e
-@end example
-@end ignore
-
-@item
-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 @kbd{C-x C-f @var{file} @key{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 @kbd{C-h l} and include the
-contents of buffer @file{*Help*} in your bug report.
-
-(@emph{Rationale}: Most problems are only reproducible with point being
-at a specific position in the file, with specific key sequences, etc.)
-
-@item
-If you have problem with the display of images, please include the
-output of the shell commands @samp{convert -h} and @samp{convert -list
-Format} in your bug report. If the first command fails, you have a
-problem with the program @code{convert}, not X-Symbol.
-
-@item
-If necessary, include a screen-shot in your bug report.
-
-@item
-If you could not use @kbd{M-x x-symbol-package-bug}, include the
-contents of buffer @file{*Help*} after the following actions:
-
-@itemize @minus
-@item
-Type @kbd{C-h v x-symbol-version @key{RET}}.
-@item
-Type @kbd{C-h v emacs-version @key{RET}}.
-@item
-Type @kbd{C-h v features @key{RET}}.
-@end itemize
-
-@end enumerate
-
-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 @ref{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.
-
-@c ===========================================================================
-
-@node History, Indexes, Problems, Top
-@comment node-name, next, previous, up
-@chapter History and Projects
-
-@menu
-* News:: Changes in recent versions.
-* Emacs Version:: Beta Version which Works with Emacs
-* Wishlist:: Projects for X-Symbol.
-* Open Questions:: How you can contribute.
-* Acknowledgments:: People having contributed.
-@end menu
-
-@c ===========================================================================
-
-@node News, Emacs Version, History, History
-@comment node-name, next, previous, up
-@section News: Changes in Recent Versions of X-Symbol
-@cindex New Features
-@cindex Changes
-@cindex History
-
-This is the complete history of X-Symbol. It just lists the major
-changes before Version 3.0.
-
-@menu
-* Changes New:: To be announced.
-* 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.
-@end menu
-
-
-@node Changes New, Changes 4.4, News, News
-@comment node-name, next, previous, up
-@subsection Changes in X-Symbol @value{version}
-
-Version @value{version} has not yet been announced.
-
-@itemize @bullet
-@item
-X-Symbol finally respects the Mule coding system of each individual buffer.
-
-@item
-Bug fix: would mess up encoding of math-mode characters with token
-language @code{bib}. Other conversion fixes for languages @code{bib}
-and @code{texi}.
-
-@item
-Token language @code{sgml}: always encode characters to entity
-references by default (not possible with most Latin-N characters, where
-we still use character entities). Include @code{hm--html-mode},
-@code{html-helper-mode}, remove @code{sgml-mode} as typical major modes.
-
-@item
-Token language @code{tex}: support some symbols of package
-@file{stmaryrd.sty}.
-
-@item
-Change the auto-style, formerly auto-mode, mechanism.
-
-@item
-Image support when running on Emacs.
-
-@item
-New input method Quail, a usual Mule input method.
-
-@item
-Corrected Latin-5 definitions. Support Latin-5 (``Turkish'') on XEmacs
-running under Windows/NT.
-
-@item
-Improments for external languages. Super-/subscript matching of token
-languages has changed.
-
-@item
-X-Symbol can use package @code{format} and does not require special
-fonts for super-/subscripts with Emacs-21.4+. Still open whether this
-will be used@dots{}.
-
-@item
-Various bug fixes and minor changes.
-@end itemize
-
-@node Changes 4.4, Changes 4.1, Changes New, News
-@comment node-name, next, previous, up
-@subsection Changes in X-Symbol 4.2, 4.3, 4.4
-
-Version 4.4 has been released on June 2002 as beta.
-
-@itemize @bullet
-@item
-Token language TeX has changed: no excessive use of braces anymore, no
-excessive normalization, and aware of environments @code{@{tabbing@}} and
-@code{@{verbatim@}}, and macro @code{\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.
-
-@item
-New token language ``Bib@TeX{} Macro'' (@code{bib}, similar to old
-@code{tex}), used for Bib@TeX{} files.
-
-@item
-Nuked executables, the lisp conversion for all languages is now 2-5
-times faster.
-
-@item
-Latin-9 support. Latin-9 font included in distribution.
-
-@item
-Works with XEmacs-21.4+ on MS-Windows. Of course, it just supports a
-limited number of characters and no super- and subscripts there due to
-missing fonts.
-
-@item
-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 (@code{TeX-master}) with token language @code{tex}.
-
-@item
-New buffer-local variable @code{x-symbol-unique}: when non-@code{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 @code{utex}.
-
-@item
-Menu changes, new commands: submenu ``Conversion'', menu items ``Copy
-Encoded'', ``Paste Decoded'' and others.
-
-@item
-Special coding for @code{preview-latex}. Using X-Symbol now only gives
-a 10% overhead of @code{preview}s parsing time.
-
-@item
-X-Symbol now works with Whizzy@TeX{}.
-
-@item
-The interface for defining a token language has changed, it is also much
-more general, useful for ProofGeneral.
-
-@item
-Changed final bytes of ISO 2022 escape sequence for X-Symbol charsets
-since Emacs reserves the characters @samp{0-9} for itself. Does XEmacs
-has any policy here (it also uses @samp{?})?
-
-@item
-Dropped workaround for minor bug in XEmacs-20.X.
-
-@item
-Various bug fixes and minor changes.
-@end itemize
-
-
-@node Changes 4.1, Changes 3.4, Changes 4.4, News
-@comment node-name, next, previous, up
-@subsection Changes in X-Symbol 4.1
-
-Version 4.1 has been released on Mar 2002 as beta.
-
-@itemize @bullet
-@item
-X-Symbol works with Emacs-21.1 or higher. Porting is not complete, yet.
-
-@item
-New token language ``@TeX{}info command'' (@code{texi}).
-
-@item
-Slightly different definition of ``valid character''.
-
-@item
-Remove the ``local if set'' and ``default: @dots{}'' submenu stuff.
-@end itemize
-
-
-@node Changes 3.4, Changes 3.3, Changes 4.1, News
-@comment node-name, next, previous, up
-@subsection Changes in X-Symbol 3.4
-
-Version 3.4 has been released on Mar 2002.
-
-@itemize @bullet
-@item
-Moved to SourceForge.net. Added files for nicer HTML output of manual.
-
-@item
-Would sometimes perform strange conversions when
-@code{global-flyspell-mode} is enabled.
-
-@item
-Bug fixes: command @kbd{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).
-
-@item
-Automatically deduce default coding via @code{locale -ck LC_CTYPE}.
-
-@item
-Issue warning when running on XEmacs-21.0 to XEmacs-21.1.8. Update
-manual: XEmacs user package directory is @file{~/.xemacs/packages}.
-
-@item
-Directories ending with @file{//} in image search paths are recursive.
-
-@item
-New characters used for token languages ``@TeX{} macro'' and ``Isabelle
-symbol''.
-
-@item
-Make sure to convert just the first part of a multi-part image.
-
-@item
-Source distribution includes files for building an RPM package, all
-files also compile without Mule support.
-
-@item
-Minor changes. Manual changes.
-@end itemize
-
-
-@node Changes 3.3, Changes 3.2, Changes 3.4, News
-@comment node-name, next, previous, up
-@subsection Changes in X-Symbol 3.3
-
-Version 3.3 has been released on Jan 1999.
-
-@itemize @bullet
-@item
-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 @kbd{M-x x-symbol-exec-create}).
-
-@item
-New functions used for interaction with Emacs package @code{comint}.
-This is necessary for new token language ``Isabelle symbol'', to be
-distributed with Emacs package
-@uref{http://www.proofgeneral.org/,ProofGeneral}.
-
-@item
-New characters used for token languages ``@TeX{} macro'' and ``Isabelle
-symbol''.
-
-@item
-Minor changes. Manual changes.
-@end itemize
-
-
-@node Changes 3.2, Changes 3.1, Changes 3.3, News
-@comment node-name, next, previous, up
-@subsection Changes in X-Symbol 3.2
-
-Version 3.2 has been released on Dec 1998.
-
-@itemize @bullet
-@item
-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 @file{x-symbol-site.el} is deprecated.
-
-@item
-Reverting the buffer and using @code{vc} commands do not encode
-characters when not using @code{crypt}. (This did not work always.)
-
-@item
-Workaround for bug (segfault) in XEmacs-21/Mule betas.
-
-@item
-Command @code{x-symbol-package-bug} is less restrictive. Please use
-this command to contact the maintainer.
-
-@item
-Bug fixes. Minor changes. Manual changes.
-@end itemize
-
-
-@node Changes 3.1, Changes 3.0, Changes 3.2, News
-@comment node-name, next, previous, up
-@subsection Changes in X-Symbol 3.1
-
-Version 3.1 has been released on Oct 1998.
-
-@itemize @bullet
-@item
-@TeX{} macro @code{\mu} is represented by a character in the Adobe Symbol
-font, not in a Latin-@{1,3,5@} font anymore.
-
-@item
-Support for most @sc{sgml} entities in HTML-4.0 specification.
-
-@item
-Additional characters for @code{\therefore}/@code{&there4;},
-@code{&oline;} and @code{&euro;}.
-
-@item
-Package X-Symbol has been customized.
-
-@item
-The documentation has been completed (as @TeX{}info file).
-
-@item
-Handle special URL prefixes @file{file:}, @file{http:} for images.
-
-@item
-Bug fixes, configuration changes.
-@end itemize
-
-
-@node Changes 3.0, Changes Old, Changes 3.1, News
-@comment node-name, next, previous, up
-@subsection Changes in X-Symbol 3.0
-
-Version 3.0 has been released on Sep 1998 as beta.
-
-@itemize @bullet
-@item
-Package X-Symbol now works on XEmacs with and without Mule support.
-Dropped support for XEmacs 19.13 to 19.16/20.2.
-
-@item
-Full support of token language @code{sgml} (executables, subscripts, images).
-
-@item
-X-Symbol is a proper minor mode.
-
-@item
-Easier (automatic) 8bit character control (e.g., for @code{\times}
-@code{\pm},@dots{}). By default, the encoding when saving only writes
-8bit characters, if @samp{\usepackage[latin@var{n}]@{inputenc@}} with
-@var{n}=1,2,3,5 was found in the first 10000 characters of the file
-(including commentary).
-
-@item
-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
-
-@item
-Key bindings have completely changed. They are now consistent with the
-contexts of input method Context (which have changed a bit).
-
-@item
-The keys @kbd{@@} and @kbd{!} 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.
-
-@item
-Input method Aggressive Context is now called input method Electric and
-is much more restrictive (using package @code{texmathp} with language
-``@TeX{} macro'').
-
-@item
-Easier installation despite many additional features.
-
-@item
-Supports more characters.
-
-@item
-Nicer grid, info in echo area.
-
-@item
-Better cooperation with packages: @code{vc} (check-out does not convert
-characters), @code{reftex} (no strange characters @samp{\237}, help with
-label creation), @code{auctex}, @code{ispell}, @code{font-latex} (no
-annoyances with @code{\exists}).
-
-@item
-Safer use of executables.
-
-@item
-The code has completely changed. You have to redo your installation.
-@end itemize
-
-
-@node Changes Old, , Changes 3.0, News
-@comment node-name, next, previous, up
-@subsection 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.
-
-@itemize @bullet
-@item
-Fixed serious bug when used under tty.
-@end itemize
-
-Version 2.5 has been released on Mar 1998.
-
-@itemize @bullet
-@item
-Image support.
-@end itemize
-
-Version 2.4 has been released on Mar 1997.
-
-@itemize @bullet
-@item
-Token language @code{sgml}. (X-Symbol can handle more then token
-language @code{tex}.)
-
-@item
-Input method Aggressive Context (precursor of input method Electric),
-input method Context has been much improved.
-
-@item
-Fixed performance bug when saving a file with package @code{crypt}.
-
-@item
-Control of Conversion and 8bit character has changed.
-@end itemize
-
-Version 2.3 has been released on Sep 1996.
-
-@itemize @bullet
-@item
-Distributed with own font for more math characters.
-
-@item
-Info for the character around point in echo area.
-@end itemize
-
-Version 2.2 has been released on June 1996.
-
-@itemize @bullet
-@item
-Input method Grid. Help when using input method Keyboard.
-
-@item
-Control of Conversion and 8bit character has changed.
-@end itemize
-
-Version 2.1 has been released on April 1996.
-
-@itemize @bullet
-@item
-Fixed serious performance bug when loading files with
-font-lock/lazy-lock. Use executables for conversion of large buffers.
-
-@item
-The package @code{iso-cvt} is not integrated anymore. Now this package
-can also convert to/from Latin-1 characters, it is much faster.
-
-@item
-Menu support, including input method Menu.
-
-@item
-@code{isearch} works with X-Symbol characters.
-
-@item
-First multi-file version.
-@end itemize
-
-Version 1.4 has been released on Feb 1996.
-
-@itemize @bullet
-@item
-Provide some kind of ``poor man's Mule'' to remove most Nomule-Problems.
-@end itemize
-
-Version 1.3 has been released on Jan 1996.
-
-@itemize @bullet
-@item
-Input method Abbrev (precursor of input method Token).
-
-@item
-Super-/subscript support.
-@end itemize
-
-Version 1.2 has been released on Jan 1996. It was the first release.
-
-@itemize @bullet
-@item
-Conversion between characters and @TeX{} tokens. Do so automatically
-when visiting a file and saving the buffer.
-
-@item
-Input method Keyboard.
-@end itemize
-
-@c ===========================================================================
-
-@node Emacs Version, Wishlist, News, History
-@comment node-name, next, previous, up
-@section Beta Version which Works with Emacs
-@cindex Emacs Version
-@cindex Beta Version
-@cindex Development Version
-@cindex Helpers for Emacs Version
-@cindex Looking for Helpers
-@cindex Gnu Emacs Version
-@cindex Your Contribution
-
-You are reading the manual for the development (beta) version of
-X-Symbol which works with Emacs-21.1. This version is also superior in
-other aspects to the stable version 3.4.2.
-
-For details and updates, please check the
-@uref{@value{http}/news.html, web pages of X-Symbol}.
-
-@c ====================================================================
-
-@node Wishlist, Open Questions, Emacs Version, History
-@comment node-name, next, previous, up
-@section Wishlist: Projects for X-Symbol
-@cindex Wishlist
-@cindex Project
-@cindex Future Features
-@cindex Contributions
-@cindex Your Contribution
-
-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 @ref{Open Questions}.
-
-Providing a solution to these problems is the second way of making your
-name appear in @ref{Acknowledgments}.
-
-@menu
-* Wishlist Languages:: Additional token languages.
-* Wishlist Fonts:: Automatically generated fonts.
-* Wishlist Emacs:: Changes in Emacs/XEmacs.
-* Wishlist LaTeX:: Changes in La@TeX{}.
-* Wishlist Various:: Other changes.
-* Wishlist Rejected:: Rejected Suggestions for X-Symbol.
-@end menu
-
-
-
-@node Wishlist Languages, Wishlist Fonts, Wishlist, Wishlist
-@comment node-name, next, previous, up
-@subsection Wishlist: Additional Token Languages
-@cindex More Token Languages
-@cindex Language Additions
-@cindex Ams@TeX{}
-@cindex IPA Fonts
-
-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 Elisp
-part (@pxref{Extending X-Symbol}) for general-interest token languages
-(e.g., Ams@TeX{}).
-
-It is likely that this would require additional fonts: available fonts
-(e.g., IPA font), hand-crafted, or generated (@pxref{Wishlist
-Fonts}).
-
-
-@node Wishlist Fonts, Wishlist Emacs, Wishlist Languages, Wishlist
-@comment node-name, next, previous, up
-@subsection Wishlist: Generated Fonts
-@cindex Generated Fonts
-@cindex Fonts from Other Sources
-@cindex Fonts for MS-Windows
-@cindex MS-Windows Fonts
-
-@pindex bdftofon
-One direction of font generation would be from @file{.bdf} or
-@file{.pcf} font files to MS-Windows fonts to get rid of the limited
-support for XEmacs on MS-Windows (@pxref{Requirements}). If you have
-successfully converted X-Symbol's fonts from the Unix format to the
-MS-Windows format (via @code{bdftofon} or whatever) or if you have free
-and real Latin-N fonts for MS-Windows, please @emph{let me know}! I
-would also appreciate if you would actively try to get those missing
-MS-Windows fonts.
-
-Solofo Ramangalahy suggests to automatically generate the @file{.bdf}
-fonts from other sources. This would have various advantages:
-
-@itemize @bullet
-@item
-We could easily create different sizes for our symbol font.
-
-@item
-It would be quite simple to create a @file{.bdf} font for Ams@TeX{}
-macros, calligraphical letters etc, which would be displayed as X-Symbol
-characters by package X-Symbol.
-
-@item
-We could easily create different sizes for our symbol font.
-@end itemize
-
-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
-MS-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:
-
-@itemize @bullet
-@item
-Different @TeX{} macros (same appearance, different @TeX{} class =
-different spacing) use the same MetaFont character, e.g., @code{\dagger}
-and @code{\dag}. Therefore, we need different X11 characters for them.
-
-@item
-Some Ascii characters have a special meaning in @TeX{}. The
-corresponding MetaFont character is therefore produced by a TeX macro,
-e.g., @samp{@{} by @code{\@{}. We need a X11 character which looks
-similar to the character but not exactly like it.
-@end itemize
-
-We could ask the question whether we should really distinguish the
-characters by appearance@dots{}we have the minibuffer info for the
-X-Symbol character anyway@dots{}. Here are the options:
-
-@itemize @minus
-@item
-distinguished by size/underlining/miscellaneous (currently used),
-@item
-distinguished by different spacing (my current favorite),
-@item
-not distinguished
-@end itemize
-
-Solofo Ramangalahy originally though of generating the @file{.bdf} fonts
-out of @TeX{} fonts (@file{.mf}, @file{.pk}) by @code{mftobdf} of
-See@TeX{}, which can be found at @file{@var{ctan}/dviware/seetex/} among
-others distributions having this tool. He dropped this idea for the
-following reason:
-
-@quotation
-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
-@samp{blacker}, @samp{fillin} and @samp{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).
-@end quotation
-
-@node Wishlist Emacs, Wishlist LaTeX, Wishlist Fonts, Wishlist
-@comment node-name, next, previous, up
-@subsection Wishlist: Changes in Emacs/XEmacs
-@cindex Emacs Changes
-@cindex XEmacs Changes
-@cindex Changes in Emacs
-@cindex Changes in XEmacs
-
-Changes in Emacs and/or XEmacs would improve package X-Symbol, too:
-
-@itemize @bullet
-@item
-In Emacs: a package system similar to XEmacs' one. The installation
-would be easier.
-
-@item
-@pindex ispell
-The package @code{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 @code{ispell}, @ref{Miscellaneous Packages}.
-
-@item
-@pindex vc
-Some versions control commands turn off @code{font-lock}. This should
-be changed.
-
-@item
-Provide a face property @code{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 @code{font-lock} set properties other than
-faces). XEmacs: no such property, yet.
-
-@item
-@vindex after-insert-file-functions
-In XEmacs, fixed in 21.X. In @code{after-insert-file-functions}, there
-should be a possibility to get to know the start position of the region
-which is inserted. If @code{insert-file-contents} is called with
-argument @code{replace} being non-@code{nil}, it is not always point.
-
-@item
-@vindex write-region-annotate-functions
-Partly fixed in Emacs-21.3. Make possibility to change buffers in
-@code{write-region-annotate-functions} official, see @ref{Alt Auto
-Conversion}, have a way to get the original buffer.
-
-@item
-Since @code{font-lock} uses duplicable text properties in some cases, I
-need a function like @code{insert-buffer-substring-without-extents}.
-(Currently, I remove the extents afterwards, which looks slow for me.)
-
-@item
-@vindex post-command-hook
-In XEmacs. Run hooks in @code{post-command-hook} even if command exits
-with an error or quit (as it is in Emacs) or having some
-@code{post-error-or-quit-hook}. @xref{Nomule Problems}.
-
-@item
-In XEmacs. There are some bugs in package @code{custom}/@code{widget}
-(XEmacs-21.0-b59) which are visible during the customization of
-X-Symbol.
-
-@end itemize
-
-
-@node Wishlist LaTeX, Wishlist Various, Wishlist Emacs, Wishlist
-@comment node-name, next, previous, up
-@subsection Wishlist: Changes in La@TeX{}
-@cindex La@TeX{} Changes
-@cindex Changes in La@TeX{}
-@cindex @file{inputenc.sty} Changes
-@pindex @file{inputenc.sty}
-
-Changes in La@TeX{}, especially @file{inputenc.sty}, would improve package
-X-Symbol, too:
-
-@itemize @bullet
-@item
-To make the definition of the character U00B5 consistent with Unicode,
-@file{inputenc.sty} should define the character to stand not for the
-token @code{\mu} (U03BC is the right character), but for an extra token,
-e.g., something like @code{\textmicro}. X-Symbol uses @code{\mathmicro}
-here in order to avoid changing @code{\mu} to the character U00B5 if you
-have chosen to store 8bit characters.
-@c X-Symbol should not define it as \textmicro because then there would
-@c be a major difference between `x-symbol-8bits' nil and non-nil.
-
-@item
-Use same encoding for both text and math, i.e. use @code{periodcentered}
-for both @code{\textperiodcentered} (the default) and @code{\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 @code{\lnot}, @code{\pm}, @code{\times} and
-@code{\division}: use
-@code{\textonesuperior} for U00B9, \texttwosuperior for U00B2, and
-@code{\textthreesuperior} for U00B3.
-
-@item
-The @TeX{} macros @code{\textcent}, @code{\textcurrency},
-@code{\textbrokenbar}, @code{\textyen} are defined as not available with
-OT1 and T1 font encoding. This should be changed.
-@end itemize
-
-
-@node Wishlist Various, Wishlist Rejected, Wishlist LaTeX, Wishlist
-@comment node-name, next, previous, up
-@subsection Various Projects for X-Symbol
-
-The following suggestions seem to be useful, though not essential:
-
-@itemize @bullet
-@item
-@cindex Print Buffer
-@cindex Buffer Printing
-@pindex ps-print
-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
-@code{ps-print}. A newer version of @code{ps-print} might be probably
-already capable of doing it. Thus, you are encouraged to help the
-XEmacs team updating this package.
-@end itemize
-
-
-@node Wishlist Rejected, , Wishlist Various, Wishlist
-@comment node-name, next, previous, up
-@subsection Rejected Suggestions for X-Symbol
-@cindex Rejected Suggestions
-
-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:
-
-@itemize @bullet
-@item
-@cindex Input Method Token
-It would be nice if X-Symbol would replace the token with the last
-character of the token if this is possible (@pxref{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.
-@end itemize
-
-@c ===========================================================================
-
-@node Open Questions, Acknowledgments, Wishlist, History
-@comment node-name, next, previous, up
-@section Open Questions
-@cindex Open Questions
-@cindex Various Questions
-@cindex Questions I Have
-
-This section lists some minor open questions.
-
-@itemize @bullet
-@item
-@findex x-symbol-initialize
-@cindex Auto Initialization
-Loading file @file{x-symbol.el} will initialize package X-Symbol (via
-function @code{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 @file{x-symbol.el}. Thus, customizing package X-Symbol will not
-initialize package X-Symbol.
-
-The alternative would be to call function @code{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 @code{x-symbol-initialize}
-top-level in file @file{x-symbol.el}. If I am wrong here, please let me
-know (with an explanation). Batch-compilation might be an issue@dots{}
-
-@item
-@pindex crypt
-@vindex x-symbol-auto-conversion-method
-When is necessary to set @code{x-symbol-auto-conversion-method} to
-@code{slowest}? Of course, it is only necessary when using
-@code{crypt}. Is the other necessary condition to use the computer pool
-of the University of Edinburgh?
-@end itemize
-
-@c ===========================================================================
-
-@node Acknowledgments, , Open Questions, History
-@comment node-name, next, previous, up
-@section Acknowledgments
-@cindex Acknowledgments
-@cindex Contributions
-@cindex Marlet, Renaud
-@cindex Bradfield, Julien
-@pindex math-mode
-@cindex Adobe
-@pindex frame-icon
-@cindex Thanks
-
-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 @code{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 @code{makesub} is a merge
-and change of the scripts @code{makesupers} and @code{makesub} by
-Julian.
-
-The font @samp{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 @code{frame-icon}.
-
-The idea for Help during an X-Symbol key sequence is from package
-@code{x-compose}. The general idea for showing some info in the echo
-area is from package @code{eldoc}. The trick which stops
-@code{expand-abbrev} is from package @code{mail-abbrevs}. The idea for
-@code{x-symbol-image-cache-directories} is from package
-@code{fast-lock}. The code for image command parsing is influenced by
-some code in package @code{font-lock}. The code around
-@code{x-symbol-image-delete-extents} is based on some code in package
-@code{bib-cite}.
-
-@i{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, Thomas
-Kleymann, Ekkehard Koehler, Fred Labrosse, Jan-Ake Larsson, Bernhard
-Lehner, Stefan Monnier, Harald Muehlboeck, Karsten Muehlmann, Jakub
-Narebski, Peter M@o{}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.
-
-@i{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:
-
-@display
- @url{http://www.w3.org/TR/REC-html40/sgml/entities.html}
- @url{http://www.fmi.uni-passau.de/~ramsch/iso8859-1.html}
- @url{http://czyborra.com/charsets/iso8859.html}
- @url{http://www.bbsinc.com/iso8859.html}
- @url{http://www.bbsinc.com/iso8879.html}
- @url{http://ppewww.ph.gla.ac.uk/~flavell/charset/internat.html}
- @url{http://ppewww.ph.gla.ac.uk/~flavell/iso8859/iso8859-pointers.html}
- @url{http://sizif.mf.uni-lj.si/linux/cee/iso8859-2.html}
-@end display
-
-I do not intend to update this list in the future---this is just an
-"Acknowledgment" section.
-
-
-@node Indexes, , History, Top
-@comment node-name, next, previous, up@unnumbered Indexes
-@unnumbered 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 (@pxref{Bug Reports}),
-
-@menu
-* Key Index:: Key sequences.
-* Program Index:: Programs and Emacs packages.
-* Variable Index:: Commands, functions, variables.
-* Concept Index:: Various topics.
-@end menu
-
-The links lead you to the manual sections describing X-Symbol's commands
-and variables. @xref{About}.
-
-@comment workaround for bug with the length of the lists
-@iftex
-@vskip 6ex plus 1ex minus 4ex
-@end iftex
-
-@node Key Index, Program Index, Indexes, Indexes
-@comment node-name, next, previous, up
-@unnumberedsec Key Index
-@printindex ky
-
-@comment workaround for bug with the length of the lists
-@iftex
-@page
-@end iftex
-
-@node Program Index, Variable Index, Key Index, Indexes
-@comment node-name, next, previous, up
-@unnumberedsec Program and Package Index
-@printindex pg
-
-@comment workaround for bug with the length of the lists
-@iftex
-@page
-@end iftex
-
-@node Variable Index, Concept Index, Program Index, Indexes
-@comment node-name, next, previous, up
-@unnumberedsec Command, Function and Variable Index
-@printindex vr
-
-@comment workaround for bug with the length of the lists
-@iftex
-@page
-@end iftex
-@node Concept Index, , Variable Index, Indexes
-@comment node-name, next, previous, up
-@unnumberedsec Concept Index
-@printindex cp
-
-@contents
-@bye
-@c Local IspellPersDict: .ispell_xsymb