diff options
Diffstat (limited to 'x-symbol/lisp')
-rw-r--r-- | x-symbol/lisp/ChangeLog | 391 | ||||
-rw-r--r-- | x-symbol/lisp/Makefile | 179 | ||||
-rw-r--r-- | x-symbol/lisp/_pkg.el | 5 | ||||
-rw-r--r-- | x-symbol/lisp/auto-autoloads.el | 381 | ||||
-rw-r--r-- | x-symbol/lisp/custom-load.el | 25 | ||||
-rw-r--r-- | x-symbol/lisp/makefile.pkg | 9 | ||||
-rw-r--r-- | x-symbol/lisp/x-symbol-autoloads.el | 381 | ||||
-rw-r--r-- | x-symbol/lisp/x-symbol-bib.el | 125 | ||||
-rw-r--r-- | x-symbol/lisp/x-symbol-emacs.el | 467 | ||||
-rw-r--r-- | x-symbol/lisp/x-symbol-hooks.el | 1356 | ||||
-rw-r--r-- | x-symbol/lisp/x-symbol-image.el | 796 | ||||
-rw-r--r-- | x-symbol/lisp/x-symbol-macs.el | 257 | ||||
-rw-r--r-- | x-symbol/lisp/x-symbol-mule.el | 325 | ||||
-rw-r--r-- | x-symbol/lisp/x-symbol-nomule.el | 382 | ||||
-rw-r--r-- | x-symbol/lisp/x-symbol-sgml.el | 690 | ||||
-rw-r--r-- | x-symbol/lisp/x-symbol-tex.el | 1291 | ||||
-rw-r--r-- | x-symbol/lisp/x-symbol-texi.el | 339 | ||||
-rw-r--r-- | x-symbol/lisp/x-symbol-unichars.el | 5062 | ||||
-rw-r--r-- | x-symbol/lisp/x-symbol-unicode-extras.el | 462 | ||||
-rw-r--r-- | x-symbol/lisp/x-symbol-unicode.el | 310 | ||||
-rw-r--r-- | x-symbol/lisp/x-symbol-vars.el | 2107 | ||||
-rw-r--r-- | x-symbol/lisp/x-symbol-xmacs.el | 183 |
22 files changed, 0 insertions, 15523 deletions
diff --git a/x-symbol/lisp/ChangeLog b/x-symbol/lisp/ChangeLog deleted file mode 100644 index 87d9f0a8..00000000 --- a/x-symbol/lisp/ChangeLog +++ /dev/null @@ -1,391 +0,0 @@ -2003-05-12 Christoph Wedler <wedler@users.sourceforge.net> - - * X-Symbol 4.5.1-beta. - - * Bug fix: unique decoding would not be unique for TeX - accents starting with \c, \k, \v, \u, \H, \r. - * Bug fix, Emacs-21.2: Makefile.emacs would not work, - variable `image-types' is not defined in -batch Emacs. - * Emacs-21.3.50: Would not work with with default value - nil for `x-symbol-emacs-has-correct-find-safe-coding'. - * Emacs: would issue a warning with value "ASCII" for - `current-language-environment'. - * Don't provide Emacs bug workaround for images with - Emacs-21.3.50. I want to know why it's necessary, i.e., - write an Emacs bug report... - * New variable `x-symbol-set-coding-system-if-undecided' - for Emacs, defaults to t. - - Report from Andreas Klein, Eli Tziperman. - -2003-03-14 Christoph Wedler <wedler@users.sourceforge.net> - - * X-Symbol 4.5-beta. - - * Bug fix: would not hightlight subscripts when using - font-lock without any font-lock support mode if X-Symbol - is turned on the first time, but not automatically. - * Bug fix, Emacs: would still not work with package - crypt/crypt++. - * Bug fix, XEmacs: using C-s = isearch would not always - reveal the full subscript command when necessary. - * Bug workaround, Emacs/Windows: would show boxes instead - Latin-9 characters, sort characters in Latin-9 bdf file. - * Emacs/Windows: add origfonts/ to Windows font path. - * Make contexts |- and |= electric. - * Provide unzipped PDF and PS version of manual on web. - * Internal: renamed the prefix of language accesses from - `x-symbol-' to `x-symbol-LANG-'. - * Manual, docstring and Makefile updates. - - Report from Felix E. Klee, Gerwin Klein. - -2003-01-18 Christoph Wedler <wedler@users.sourceforge.net> - - * X-Symbol 4.4.5-beta. - - * Bug fix, XEmacs: auto-save files would have length 0. - Functions in `write-region-annotate-functions' are - called with argument values nil when `do-auto-save'... - * Bug fix: using `x-symbol-auto-style-alist' won't work. - * Bug fix: M-x insert-file using package format, i.e., - with Emacs-21.4, would decode the whole buffer. - * Bug fix, Emacs: changes in Makefile for Emacs. - * Make X-Symbol work when run under a character terminal. - * Make it possible to disallow X-Symbol for certain - buffers, by default those visiting a file with a major - mode having a non-nil mode-class property. - * Dropped support for XEmacs-20.3. - * Dropped XEmacs bug workaround for "Wrong point position - provided for function in `after-insert-file-functions'". - Might cause warnings with older XEmacs, please report. - * New extra decode command for accented letters in LaTeX. - * Delete "roman8" as locale alias for "iso-8859-1". - * Provide PDF version of manual on web pages. - - Suggestion from Uwe Brauer. - -2002-12-08 Christoph Wedler <wedler@users.sourceforge.net> - - * X-Symbol 4.4.4-beta. - - * Bug fixes: conversion would sometimes fail with token - languages `bib' and `texi' due to wrong grammar. - * Bug fix, XEmacs: enabling X-Symbol mode could fail due - to GC ...no elisp function is allowed to use a local - variable named `values'... nowhere documented, but true. - * Bug fix, Mule, bug was documented: X-Symbol now respects - `buffer-file-coding-system'. With Mule support, - `x-symbol-default-coding' is now of minor interest. - * Bug fix, Emacs: would not work with package crypt. - * Bug fixes: init would sometimes fail with non-latin1 - default font, with wrong default fonts, if font path - could not be set, or on Emacs without warnings.el. - * Bug fix: latin-5 char xEA is ecircumflex, not eogonek. - * With Mule, X-Symbol uses `buffer-file-coding-system' and - `current-language-environment' to determine the default - encoding, "locale" is now optional for addition check. - * Emacs hint: update lisp/isearch.el from Savannah to make - isearch+GRID work. - * Remove `sgml-mode' and `xml-mode' as typical major-modes - for token language sgml. Would cause init of X-Symbol. - * Bug fixes, Emacs: changes in Makefile for Emacs. - * Various minor bug fixes and changes. - * Update of rpm spec file. - * Assume to have format.el,v 1.39+ if format is used. - - From Masayuki Ataka, Steve Dunham, Ryurick M. Hristev, Stefan - Monnier. Report from Uwe Brauer, Janusz S. Bien, Michael Ebner, - Harald Muehlboeck, Eli Tziperman, Marco Zunino. - -2002-08-30 Christoph Wedler <wedler@users.sourceforge.net> - - * X-Symbol 4.4.3-beta. - - * Token language `sgml': always encode characters to - entity references by default. Not possible with most - Latin-N chars, where we still use character entities. - Token classes symbol and noname replace class non-l1. - * Token languages `tex'/`bibtex': support some symbols of - package "stmaryrd", i.e., add \bigsqcap, use \llbracket, - \rrbracket, \llparenthesis, \rrparenthesis instead - \lsemantics, \rsemantics, \lcata, \rcata. - * Include xml-mode, hm--html-mode and html-helper-mode as - typical major-modes for token language sgml. - * Change the auto-style, formerly auto-mode, mechanism. - Introduce language-specific auto-styles to make the - registration of external language easier. - * New input method QUAIL, a usual Mule input method. - * Slightly changed/extended contexts and keybindings, - allow digits in contexts. - * Allow to use "Turkish" encoding on XEmacs/NT which is - the same as Latin-5. Since "Central European" is not - the same as Latin-2, there is still no support there for - iso8859-2, iso8859-3, and xsymb1 characters. - * Super-/subscript matching of token languages has - changed: languages specify a matcher functions, not - extra font-lock keywords anymore. - * font-lock keywords are not language specific anymore, - matching is independent of whether to use faces or - Emacs-21's display properties `raise', `height', and - `invisible' with the new font-lock of Emacs-21.4. - * Make it possibible to compile language files without - package X-Symbol, useful for external languages. - * Some language accesses are optional now. - * Make it easier to set fonts. - * Makefile for Emacs, manual uses variables for references - to the Emacs/XEmacs Manual, AucTeX, RefTeX etc. - - From Masayuki Ataka. Suggestion from Solofo Ramangalahy. - -2002-07-08 Christoph Wedler <wedler@users.sourceforge.net> - - * X-Symbol 4.4.2-beta. - - * Bug fix: would mess up encoding of math-mode characters - with token language bib, or more generally, of tokens - with a non-nil shape in a language using the default - encode function. Fortunately with an error message... - * Make it easier to change the font size. - - Report from Peter Møller Neergaard. - -2002-06-20 Christoph Wedler <wedler@users.sourceforge.net> - - * X-Symbol 4.4.1-beta. - - * Image support when running on Emacs. - * Would signal error with XEmacs-21.1. - * X-Symbol's auto-conversion can be based on corrected - version of package format, in Emacs-21.4. - - Report from Uwe Brauer. - -2002-06-07 Christoph Wedler <wedler@users.sourceforge.net> - - * X-Symbol 4.4-beta. - - * Updated manual. "X-Symbol Internals" still outdated. - * Make X-Symbol really work with WhizzyTeX, see 4.3.3. - * Various minor changes. - - Report from Dedier Remy. - -2002-05-16 Christoph Wedler <wedler@users.sourceforge.net> - - * X-Symbol 4.3.3-beta. - - * Separate unique decoding from 8bit encoding, it is - independent. Make safer for undefined latin charsets. - * Would break WhizzyTeX, i.e., would ignore annotations of - previous functions in write-region-annotate-functions. - * Would always show the charsym names in menus. - * Menu reorganization: "Conversion" submenu, radio options. - * Interactive conversion with and without recoding. - * Would not decode @{ and @} in texi. - * Define the 7 unused character in latin-3 as unused, for - recoding. - -2002-04-26 Christoph Wedler <wedler@users.sourceforge.net> - - * X-Symbol 4.3.2-alpha. - - * Latin-9 support. Latin-9 font included in distribution. - Cannot be used as default coding on XEmacs before v21.5. - * 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. - * LaTeX buffers inherit the 8bit encoding from `TeX-master' - if not disabled via `x-symbol-tex-use-master-coding'. - * Safety improvements if not all Latin charsets are - supported: unique decoding, modeline additition,... - * Changed final bytes of ISO 2022 escape sequence for - X-Symbol charsets since Emacs reserves the characters - [0-9] for itself. XEmacs also uses [?]. - * Info for token: unify classes inputenc and new-inputenc. - * Dropped workaround for list-mode bug in XEmacs-20.X. - -2002-04-23 Christoph Wedler <wedler@users.sourceforge.net> - - * X-Symbol 4.3.1-alpha. - - * Would not be able to turn on X-Symbol in _region_.tex if - created from a buffer where X-Symbol was never turned on. - * In XEmacs, would set standard default font according to - buffer default font where X-Symbol was first initialized. - * In XEmacs, again specify :size for `x-symbol-info-face', - would get huge fonts otherwise in some situations. - * In XEmacs, allow button3 on modeline to enable X-Symbol - before X-Symbol has been initialized. - * Encoding characters with an odd number of preceeding - escape chars induce an additional space. E.g., in tex, - "\"+`arrowright' is encoded to "\ \to" instead "\\to". - * Internal: unify before-context and escape-char handling. - -2002-04-17 Christoph Wedler <wedler@users.sourceforge.net> - - * X-Symbol 4.2.3-alpha. - - * Corrected input method TOKEN for TeX, and READ TOKEN. - * New commands "Copy Encoded" and "Paste Decoded", in menu. - * New value `unique' for `x-symbol-8bits' is now also used - for input method token, and automatically set, in menu. - * Use 8bit if 8bit chars are in the file originally. - * Internal: extra language access for input method TOKEN. - -2002-04-15 Christoph Wedler <wedler@users.sourceforge.net> - - * X-Symbol 4.2.2-alpha. - - * New token language "BibTeX macro" (bib), similar to old - "TeX macro" (tex). - * Changes in token language (tex): deleted \slash, \ldots, - \vdots back to math-mode, but with info "gobbles space". - * Deleted token language (utex), instead: new value - `unique' for `x-symbol-8bits' which is more general. - * The interface for defining a token language has changed, - it is also much more general, useful for ProofGeneral. - * Nuked executables, the lisp conversion for all languages - is now 2-5 times faster. - * Special coding for preview-latex. Using X-Symbol now - only gives a 10% overhead of preview's parsing time. - - Report from David Kastrup, Jan-Ake Larsson. - -2002-03-28 Christoph Wedler <wedler@users.sourceforge.net> - - * X-Symbol 4.2.1-alpha. - - * Token language TeX has changed, special conversion: no - exessive use of braces anymore, no excessive - normalization, much faster, and aware of {tabbing}, - {verbatim} and \verb. - * Reading and saving old files should work without TeX code - change except for \ldots, \vdots, \angle, \slash: they are - space-aware. - * Removed unwanted braces around accented chars and other - text-mode TeX macros via M-x x-symbol-conv-decode-old-tex - RET. - * Other TeX macro changes: added \texteuro, corrected \^\j, - nuked alternatives \lbrace, \rbrace, \Vert. - - Suggestion from David Kastrup, Christophe Raffalli. - - * X-Symbol (sync w/ v3.4.2). - - * Would signal error during encoding when executables are - enabled. - -2002-03-21 Christoph Wedler <wedler@users.sourceforge.net> - - * X-Symbol 4.1.1-beta (sync w/ v3.4.1). - - * Corrected and better "locale" handling. - - Report from Gerard Zwaan. - -2002-03-12 Christoph Wedler <wedler@users.sourceforge.net> - - * X-Symbol 4.1-beta (sync w/ v3.4). - - * Moved to SourceForge.net. - * Bug fix: writing a remote file via ange-ftp would not work. - * Automatically deduce default coding via "locale -ck LC_CTYPE". - - Report from Stephen Eglen. - -2002-01-09 Christoph Wedler <wedler@fmi.uni-passau.de> - - * X-Symbol 4.0h/beta (sync w/ v3.3i). - - * Bug fix write-region would always save the whole buffer - if X-Symbol is enabled for that buffer. - -2001-12-09 Christoph Wedler <wedler@fmi.uni-passau.de> - - * X-Symbol 4.0g/beta (sync w/ v3.3h). - - * isearch+KEYBOARD also work in Emacs, isearch+MENU/GRID - still fails. - * Super-/subscript commands are also invisible in Emacs on Unix. - * Dropped support for Emacs-20. - * Make sure to convert just the first part of a multi-part image. - * Don't define `locate-data-directory', interference with - ps-print on Emacs. - * New characters zero1 to nine1 for language "Isabelle Symbol". - * Better support for other packages, preview-latex. - * RPM spec file in source distribution. - * Miscellaneous. - - From Ryurick M. Hristev. Report from David Kastrup, Marco Zunino. - -2001-07-24 Christoph Wedler <wedler@fmi.uni-passau.de> - - * X-Symbol 4.0f/beta (sync w/ v3.3g) - - * Distributed with latin-3 font which also works on - Emacs/Windows. - * Distributed empty font for super-/subscripts on Emacs. - * Binary distribution with generated super- and subscript - bdf files for Emacs/Windows. - * Show super- and subscripts in TeX's math region also on - Emacs. - * When saving, ask for coding system less often (Emacs-21.0.104+). - * Show correct double separator lines on Windows (Emacs-21.0.104+). - * Corrected syntax def for cataleft/cataright as matching parens. - * Adopted image converter recognition to newer releases of - ImageMagick. - - Report from Uwe Brauer, Ekkehard Koehler. - -2001-06-19 Christoph Wedler <wedler@fmi.uni-passau.de> - - * X-Symbol 4.0e/beta (sync w/ v3.3f). - - * Workaround for global-flyspell-mode. - * Integration of package "completion". - * Warning when using XEmacs-21.0 to XEmacs-21.1.8 - * Easier installation when using Emacs-21.0 on MS-Windows. - - Report from Fred Labrosse, San Ming Lee, Roland Zumkeller. - -2000-11-22 Christoph Wedler <wedler@fmi.uni-passau.de> - - * X-Symbol 4.0d/beta. - - * Make the highlighting in the grid buffer look nicer with Emacs. - -2000-10-26 Christoph Wedler <wedler@fmi.uni-passau.de> - - * X-Symbol 4.0c/beta. - - * Token language "TeXinfo command". - * Slightly different definition of "valid character". - * Minor changes. - - Suggestion from Jakub Narebski. - -2000-10-13 Christoph Wedler <wedler@fmi.uni-passau.de> - - * X-Symbol 4.0b/beta (sync w/ v3.3e). - - * In XEmacs, the grid looks the same as with the stable version. - * Remove the "local if set" and "default: ..." submenu stuff. - -2000-09-14 Christoph Wedler <wedler@fmi.uni-passau.de> - - * X-Symbol 4.0a/beta. - - * Distribution contains the right files. - -2000-09-03 Christoph Wedler <wedler@fmi.uni-passau.de> - - * X-Symbol 4.0/beta (sync w/ v3.3d). - - From Stefan Monnier. - -### Local Variables: -### filladapt-mode: t -### left-margin: 0 -### fill-column: 59 -### End: diff --git a/x-symbol/lisp/Makefile b/x-symbol/lisp/Makefile deleted file mode 100644 index 8fd12e90..00000000 --- a/x-symbol/lisp/Makefile +++ /dev/null @@ -1,179 +0,0 @@ -# Makefile for emacs-lisp package - -#ident "@(#)Makefile $:$Id$" - -# Copyright (C) 1998-1999 Stefan Monnier <monnier@cs.yale.edu> - -# This file 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 file 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 GNU Emacs; see the file COPYING. If not, write to -# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. - - -# Please read the comment in ../README. - -# load the package-specific settings -include makefile.pkg - -# set up the usual installation paths -prefix = /usr/local -datadir = $(prefix)/share - -# the directory where you install third-party emacs packges -lispdir = $(datadir)/emacs/site-lisp - -# the directory where the .elc files will be installed -elcdir = $(lispdir)/$(PACKAGE) -# the directory where the .el files will be installed -eldir = $(elcdir) - -# the file where the initialization goes. -#startupfile = $(HOME/.emacs -startupfile = $(lispdir)/site-start.el - -# the directory where you installed the elib .elc files. -# This is only needed if your site-start.el (or default.el) does not -# set up elib correctly. -elibdir = $(lispdir)/elib - -# the directory where you install the info doc -infodir = $(prefix)/info -docdir = $(prefix)/doc - -EMACS = xemacs --debug-init --no-site-file --no-init-file -q --eval '(setq debug-on-error t)' -#EMACS = emacs -MAKEINFO= makeinfo -TEXI2DVI= texi2dvi -SHELL = /bin/sh -DVIPS = dvips -CP = cp -RM = rm -f -MKDIR = mkdir -p -ETAGS = etags - -###################################################################### -### No changes below this line should be necessary ### -###################################################################### - -ELFLAGS = --eval '(setq load-path (append (list "." "$(elibdir)" "$(lispdir)") load-path))' -ELC = $(EMACS) -batch $(ELFLAGS) -f batch-byte-compile - -ELCFILES = $(ELFILES:.el=.elc) - -TEXEXTS = *.cps *.fns *.kys *.vr *.tp *.pg *.log *.aux *.toc *.cp *.ky *.fn - -.SUFFIXES: .elc .el .info .ps .dvi .texi -.PHONY: elcfiles info clean distclean default -.PHONY: install_startup install_elc install install_el install_info -.PHONY: dvi postscript - -.el.elc: - $(ELC) $< - -.texi.info: - $(MAKEINFO) $< - -.texi.dvi: - $(TEXI2DVI) $< - -.dvi.ps: - $(DVIPS) -f $< >$@ - -###################################################################### - -default: elcfiles - -elcfiles: $(ELCFILES) -##info: $(PACKAGE).info - -install_elc: $(ELCFILES) $(PACKAGE)-startup.el - $(MKDIR) $(elcdir) - for f in $(ELCFILES) $(PACKAGE)-startup.el; do \ - $(CP) $$f $(elcdir)/$$f ;\ - done - -install_el: - $(MKDIR) $(eldir) - for f in $(ELFILES); do \ - $(CP) $$f $(eldir)/$$f ;\ - done - -##install_info: $(PACKAGE).info -## $(MKDIR) $(infodir) -## if [ -r $(PACKAGE).info ]; then \ -## $(CP) *.info* $(infodir)/ ;\ -## else \ -## $(CP) $(PACKAGE)-[0-9]* $(infodir)/ ;\ -## fi -## -[ ! -w $(infodir)/dir ] \ -## || install-info --info-dir=$(infodir)/dir $(PACKAGE).info - -install_startup: - $(MKDIR) $(lispdir) - @if grep $(PACKAGE) $(lispdir)/site-start.el >/dev/null 2>&1 || \ - grep $(PACKAGE) $(startupfile) >/dev/null 2>&1 || \ - grep $(PACKAGE) $(lispdir)/default.el >/dev/null 2>&1; then \ - echo "**********************************************************" ;\ - echo "*** It seems you already have some setup code" ;\ - echo "*** for $(PACKAGE) in your startup files." ;\ - echo "*** Check that it properly loads \"$(PACKAGE)-startup\"" ;\ - echo "**********************************************************" ;\ - else \ - echo 'echo ";; load $(PACKAGE) setup code" >>$(startupfile)' ;\ - echo ";; load $(PACKAGE) setup code" >>$(startupfile) ;\ - echo 'echo "(add-to-list '\''load-path \"$(elcdir)\")" >>$(startupfile)' ;\ - echo "(add-to-list 'load-path \"$(elcdir)\")" >>$(startupfile) ;\ - echo 'echo "(load \"$(PACKAGE)-startup\")" >>$(startupfile)' ;\ - echo "(load \"$(PACKAGE)-startup\")" >>$(startupfile) ;\ - fi - -postscript: $(PACKAGE).ps -dvi: $(PACKAGE).dvi -install_dvi: dvi - $(MKDIR) $(docdir) - $(CP) `find . -type f -name '*.dvi' -print` $(docdir)/ - -install: install_elc install_startup # install_el install_info - -clean: - $(RM) *~ core .\#* $(TEXEXTS) - -TAGS tags: - $(ETAGS) $(ELFILES) - -distclean: clean - $(RM) *.elc *.dvi *.info* *.ps - -###################################################################### -### don't look below ### -###################################################################### - -$(PACKAGE)-startup.el: $(ELFILES) - [ -f $@ ] || echo '' >$@ - $(EMACS) --batch --eval '(setq generated-autoload-file "'`pwd`'/$@")' -f batch-update-autoloads "." - -## - -TAG = $(shell echo v$(VERSION) | tr '.' '_') -ftpdir=/home/ftp/pub/monnier/$(PACKAGE) - -dist: - cvs tag -F $(TAG) &&\ - cd $(TMP) &&\ - cvs export -r $(TAG) -d $(PACKAGE)-$(VERSION) elisp/$(PACKAGE) &&\ - cd $(PACKAGE)-$(VERSION) &&\ -## gmake info $(PACKAGE)-startup.el &&\ - cd .. &&\ - ztar $(PACKAGE)-$(VERSION) &&\ - rm -rf $(PACKAGE)-$(VERSION) - mv $(TMP)/$(PACKAGE)-$(VERSION).tar.gz $(ftpdir)/ - ln -sf $(PACKAGE)-$(VERSION).tar.gz $(ftpdir)/$(PACKAGE).tar.gz diff --git a/x-symbol/lisp/_pkg.el b/x-symbol/lisp/_pkg.el deleted file mode 100644 index 21347fe5..00000000 --- a/x-symbol/lisp/_pkg.el +++ /dev/null @@ -1,5 +0,0 @@ -;;;###autoload -(if (fboundp 'package-provide) - (package-provide 'x-symbol - :version 4.51 - :type 'regular)) diff --git a/x-symbol/lisp/auto-autoloads.el b/x-symbol/lisp/auto-autoloads.el deleted file mode 100644 index cdd29e1a..00000000 --- a/x-symbol/lisp/auto-autoloads.el +++ /dev/null @@ -1,381 +0,0 @@ -;;; DO NOT MODIFY THIS FILE -(if (featurep 'x-symbol-autoloads) (error "Already loaded")) - -;;;### (autoloads nil "_pkg" "lisp/_pkg.el") - -(if (fboundp 'package-provide) (package-provide 'x-symbol :version 4.51 :type 'regular)) - -;;;*** - -;;;### (autoloads (x-symbol-initialize x-symbol-register-language x-symbol-fontify turn-on-x-symbol-conditionally x-symbol-mode x-symbol-key-autoload x-symbol-auto-mode-suffixes) "x-symbol-hooks" "lisp/x-symbol-hooks.el") - -(autoload 'x-symbol-auto-mode-suffixes "x-symbol-hooks" "\ -Return REGEXPs of three-value elements in `auto-mode-alist'. -These REGEXPs are added to SUFFIXES." nil nil) - -(autoload 'x-symbol-key-autoload "x-symbol-hooks" "\ -Initialize package x-symbol and use the keys for this command again. -Package x-symbol and the functions in `x-symbol-load-hook' should -re-bind all key-sequence which invoke this command. You should provide -a prefix argument ARG to this command if `x-symbol-auto-key-autoload' is -nil." t nil) - -(defalias 'x-symbol-map-autoload 'x-symbol-key-autoload) - -(autoload 'x-symbol-mode "x-symbol-hooks" "\ -Toggle X-Symbol mode. -Toggle X-Symbol mode. If provided with a prefix argument, turn X-Symbol -mode on if the numeric value of the argument is positive, else turn it -off. If no token language can be deduced, ask for a token language; if -provided with a non-numeric prefix argument, always ask. - -By default, X-Symbol mode is disabled in special major-modes visiting a -file, e.g., `vm-mode'. Use a prefix argument to be asked whether to -turn in on anyway. - -When not already defined, various buffer-local variables are set when -turning on X-Symbol. See `x-symbol-auto-style-alist' and the language -access `x-symbol-LANG-modes'. - -Turning X-Symbol mode on requires a valid `x-symbol-language' and also -decodes tokens if the mode was turned off before, see -\\[x-symbol-decode-recode]. Turning X-Symbol mode off also encodes -x-symbol characters if the mode was turned on before, see -\\[x-symbol-encode-recode]. If optional argument SPECIAL has value -`init', the old mode status is assumed to be off." t nil) - -(autoload 'turn-on-x-symbol-conditionally "x-symbol-hooks" "\ -Turn on x-symbol mode conditionally, see `x-symbol-mode'. -Call `x-symbol-mode' with SPECIAL having value `init'." nil nil) - -(autoload 'x-symbol-fontify "x-symbol-hooks" "\ -Re-fontify region between BEG and END." t nil) - -(autoload 'x-symbol-register-language "x-symbol-hooks" "\ -Register token language LANGUAGE. -FEATURE is a feature which `provide's LANGUAGE. MODES are major modes -which typically use LANGUAGE. Using LANGUAGE's accesses will initialize -LANGUAGE, see `x-symbol-language-value'." nil nil) - -(autoload 'x-symbol-initialize "x-symbol-hooks" "\ -Initialize package X-Symbol. -See variable `x-symbol-initialize' and function `x-symbol-after-init'. -Also allocate colormap, see `x-symbol-image-colormap-allocation'. -Unless optional argument ARG is non-nil, do not initialize package -X-Symbol twice." t nil) - -;;;*** - -;;;### (autoloads (x-symbol-image-editor x-symbol-image-delete-extents x-symbol-image-after-change-function x-symbol-image-parse-buffer) "x-symbol-image" "lisp/x-symbol-image.el") - -(autoload 'x-symbol-image-parse-buffer "x-symbol-image" "\ -*Parse buffer to find image insertion commands. -Parse buffer to display glyphs at the end of image insertion commands. -Image files are converted to \"image cache files\" with images not -bigger than `x-symbol-image-max-width' and `x-symbol-image-max-height' -having a image format XEmacs understands. The conversion is done by a -program determined by `x-symbol-image-converter', currently you need -\"convert\" from ImageMagick. To make this conversion fast, we use -asynchronous processes and two cache hierarchies: - - * Memory cache (`x-symbol-image-memory-cache'): buffer-local alist - FILE.eps -> GLYPH, see also `x-symbol-image-use-remote'. - * File cache: the image cache file, mentioned above, are kept, see also - `x-symbol-image-update-cache', which is shadowed by a non-nil - UPDATE-CACHE and `x-symbol-image-cache-directories'. - -When the mouse is over an image insertion command, it is highlighted. -button2 starts an image editor, see `x-symbol-image-editor-alist'. -button3 pops up a menu, see `x-symbol-image-menu'. - -The image insertion commands are recognized by keywords in the language -access `x-symbol-LANG-image-keywords' whose value have the form - (IMAGE-REGEXP KEYWORD ...) -IMAGE-REGEXP should match all images files and is used to initialize the -buffer local memory cache, see `x-symbol-image-init-memory-cache'. - -Each KEYWORD looks like (REGEXP [FUNCTION] ARG...). Image insertion -commands matched by REGEXP are highlighted. FUNCTION, which defaults to -`x-symbol-image-default-file-name', is called with ARGs to get the file -name of the corresponding image file. If FUNCTION returns nil, the -command is not highlighted. - -Relative image file names are expanded in the directory returned by the -function in the language access `x-symbol-LANG-master-directory', value -nil means function `default-directory'. Implicitly relative image file -names are searched in a search path, see `x-symbol-image-use-remote'." t nil) - -(autoload 'x-symbol-image-after-change-function "x-symbol-image" "\ -Function in `after-change-functions' for image insertion commands." nil nil) - -(autoload 'x-symbol-image-delete-extents "x-symbol-image" "\ -Delete x-symbol image extents covering text between BEG and END. -See also `x-symbol-image-buffer-extents'." nil nil) - -(autoload 'x-symbol-image-editor "x-symbol-image" "\ -Start image editor for the image file FILE used in BUFFER. -If BUFFER is nil, just return string describing the command. See -`x-symbol-image-editor-alist' and `x-symbol-image-current-marker'." t nil) - -;;;*** - -;;;### (autoloads (x-symbol-tex-auto-coding-alist) "x-symbol-tex" "lisp/x-symbol-tex.el") - -(autoload 'x-symbol-tex-auto-coding-alist "x-symbol-tex" "\ -Find encoding in file `x-symbol-tex-coding-master'. -For ALIST and LIMIT, see `x-symbol-auto-coding-alist'." nil nil) - -;;;*** - -;;;### (autoloads (x-symbol-variable-interactive) "x-symbol-vars" "lisp/x-symbol-vars.el") - -(autoload 'x-symbol-variable-interactive "x-symbol-vars" "\ -Provide interactive specification for `set-variable'. -VAR's options has been defined with `x-symbol-define-user-options'." nil nil) - -;;;*** - -;;;### (autoloads (x-symbol-init-input x-symbol-rotate-key x-symbol-modify-key x-symbol-grid x-symbol-read-language x-symbol-init-language-interactive x-symbol-mode-internal x-symbol-auto-8bit-search x-symbol-auto-coding-alist x-symbol-unalias x-symbol-encode x-symbol-encode-recode x-symbol-decode x-symbol-decode-recode x-symbol-encode-all x-symbol-encode-string x-symbol-decode-single-token x-symbol-decode-all x-symbol-decode-region x-symbol-package-reply-to-report x-symbol-package-bug x-symbol-package-info x-symbol-package-web x-symbol-translate-to-ascii) "x-symbol" "lisp/x-symbol.el") - -(autoload 'x-symbol-translate-to-ascii "x-symbol" "\ -Translate STRING to an ascii string. -Non-ascii characters in STRING are converted to charsyms. Their ascii -representation is determined by: - - * If CHARSYM is a key in `x-symbol-charsym-ascii-alist', use its ASCII. - * Charsym is defined in the table to have an ascii representation, see - ASCII in `x-symbol-init-cset'. - * Compute ascii representation according to the CHARSYM's GROUP, - SUBGROUP and `x-symbol-charsym-ascii-groups'. - * Use \"\" otherwise." nil nil) - -(autoload 'x-symbol-package-web "x-symbol" "\ -Ask a WWW browser to load URL `x-symbol-package-url'." t nil) - -(autoload 'x-symbol-package-info "x-symbol" "\ -Read documentation for package X-Symbol in the info system." t nil) - -(autoload 'x-symbol-package-bug "x-symbol" "\ -Send a bug/problem report to the maintainer of package X-Symbol. -Please try to contact person in `x-symbol-installer-address' first. -Normal reports are sent without prefix argument ARG. - -If you are sure that the problem cannot be solved locally, e.g., by -contacting the person who has installed package X-Symbol, use prefix -argument 2 to send the message to `x-symbol-maintainer-address'. - -If your message has nothing to do with a problem or a bug, use prefix 9 -to send a short message to `x-symbol-maintainer-address'." t nil) - -(autoload 'x-symbol-package-reply-to-report "x-symbol" "\ -Reply to a bug/problem report not using \\[x-symbol-package-bug]." t nil) - -(autoload 'x-symbol-decode-region "x-symbol" "\ -Decode all tokens between BEG and END. -Make sure that X-Symbol characters are correctly displayed under -XEmacs/no-Mule even when font-lock is disabled." nil nil) - -(autoload 'x-symbol-decode-all "x-symbol" "\ -Decode all tokens in buffer to characters. -Use executables for decoding if buffer is larger than EXEC-THRESHOLD -which defaults to `x-symbol-exec-threshold'. Before decoding, decode -8bit characters in CODING which defaults to `x-symbol-coding'." nil nil) - -(autoload 'x-symbol-decode-single-token "x-symbol" nil nil nil) - -(autoload 'x-symbol-encode-string "x-symbol" nil nil nil) - -(autoload 'x-symbol-encode-all "x-symbol" "\ -Encode all characters in buffer to tokens. -Use executables for decoding if buffer is larger than EXEC-THRESHOLD -which defaults to `x-symbol-exec-threshold'. If CODING is non-nil, do -not encode 8bit characters in CODING. Otherwise, do not encode 8bit -characters in `x-symbol-coding' or `x-symbol-default-coding' if -`x-symbol-8bits' is non-nil. If BUFFER is non-nil, copy contexts -between START and END to BUFFER, make BUFFER current and do conversion -there. If BUFFER is non-nil, START and END must be buffer positions or -START is a string, see kludgy feature of `write-region'." nil nil) - -(autoload 'x-symbol-decode-recode "x-symbol" "\ -Decode all tokens in active region or buffer to characters. -If called interactively and if the region is active, BEG and END are the -boundaries of the region. BEG and END default to the buffer boundaries. -8bit characters are treated according to `x-symbol-coding'. See also -commands `x-symbol-encode' and `x-symbol-mode'. - -Note that in most token languages, different tokens might be decoded to -the same character, e.g., \\neq and \\ne in `tex', Ä and Ä -in `sgml', see `x-symbol-unique'!" t nil) - -(autoload 'x-symbol-decode "x-symbol" "\ -Decode all tokens in active region or buffer to characters. -As opposed to `x-symbol-decode-recode', this function performs no -recoding, i.e., `x-symbol-coding' is considered to have the value of -`x-symbol-default-coding'." t nil) - -(autoload 'x-symbol-encode-recode "x-symbol" "\ -Encode all characters in active region or buffer to tokens. -If called interactively and if the region is active, BEG and END are the -boundaries of the region. BEG and END default to the buffer boundaries. -Variables `x-symbol-8bits' and `x-symbol-coding' determine whether to -encode 8bit characters. See also commands `x-symbol-decode' and -`x-symbol-mode'." t nil) - -(autoload 'x-symbol-encode "x-symbol" "\ -Encode all characters in active region or buffer to tokens. -As opposed to `x-symbol-encode-recode', this function performs no -recoding, i.e., `x-symbol-coding' is considered to have the value of -`x-symbol-default-coding'. Additionally, `x-symbol-8bits' is assumed to -be nil if `x-symbol-coding' is not nil or not having the same value as -`x-symbol-default-coding'." t nil) - -(autoload 'x-symbol-unalias "x-symbol" "\ -Resolve all character aliases in active region or buffer. -A char alias is a character which is also a character in a font with -another registry, e.g., `adiaeresis' is defined in all supported latin -fonts. XEmacs distinguish between these four characters. In package -x-symbol, one of them, with `x-symbol-default-coding' if possible, is -supported by the input methods, the other ones are char aliases to the -supported one. The character and all the aliases are represented by the -same charsym. The info in the minibuffer displays char aliases, you can -resolve a single character before point with \\[x-symbol-modify-key]. - -8bit characters in files with a file coding `x-symbol-coding' other than -`x-symbol-default-coding' are converted to the \"normal\" form. E.g., -if you have a latin-1 font by default, the `adiaeresis' in a latin-2 -encoded file is a latin-1 `adiaeresis' in the buffer. When saving the -buffer, its is again the right 8bit character in the latin-2 encoded -file. Seven positions in latin-3 fonts are not used, the corresponding -8bit bytes in latin-3 encoded files are not changed. - -In normal cases, buffers do not have char aliases: with Mule support, -this is only possible if you copy characters from buffers with -characters considered as char aliases by package x-symbol, e.g., from -the Mule file \"european.el\". Without Mule support, this is only -possible if you use commands like `\\[universal-argument] 2 3 4'. - -The reason why package x-symbol does not support all versions of -`adiaeresis'es: - * It is confusing to the user to choose among four similar characters. - * These four versions are not distinguished in Unicode. - * There are not different tokens for them, neither in the token - language \"TeX macro\", nor \"SGML entity\"." t nil) - -(autoload 'x-symbol-auto-coding-alist "x-symbol" "\ -Return first match for ALIST in buffer limited by LIMIT. -Each element in ALIST looks like - (REGEXP . RESULT) or (REGEXP MATCH (KEY . RESULT)...) - -Search forward from the start of the buffer for a match with REGEXP. -With the first form, return RESULT. With the second form, return RESULT -where KEY is equal to the MATCH'th regexp group of the match." nil nil) - -(autoload 'x-symbol-auto-8bit-search "x-symbol" nil nil nil) - -(autoload 'x-symbol-mode-internal "x-symbol" "\ -Setup X-Symbol mode according to buffer-local variables. -If CONVERSION is non-nil, do conversion with EXEC-THRESHOLD. See -command `x-symbol-mode' for details." nil nil) - -(autoload 'x-symbol-init-language-interactive "x-symbol" "\ -Initialize token language LANGUAGE. -See `x-symbol-init-language'." t nil) - -(autoload 'x-symbol-read-language "x-symbol" "\ -Read token language in the minibuffer with completion. -Use PROMPT in minibuffer. If the inserted string is empty, use DEFAULT -as return value. If PREDICATE non-nil, only match languages if -PREDICATE with argument (NAME . LANGUAGE) returns non-nil." nil nil) - -(autoload 'x-symbol-grid "x-symbol" "\ -Displays characters in a grid-like fashion for mouse selection. -Display global or language dependent grid, see `x-symbol-local-grid'. -See `x-symbol-list-mode' for key and mouse bindings. Without optional -argument ARG and non-nil `x-symbol-grid-reuse', just popup old grid -buffer if it already exists, but is not displayed. Store window -configuration current before the invocation if `x-symbol-temp-grid' is -non-nil, see `x-symbol-list-restore'." t nil) - -(autoload 'x-symbol-modify-key "x-symbol" "\ -Modify key for input method CONTEXT. -If character before point is a char alias, resolve alias, see -\\[x-symbol-unalias]. If character before point is a character -supported by package x-symbol, replace it by the next valid character in -the modify-to chain. - -Otherwise replace longest context before point by a character which -looks similar to it. See also \\[x-symbol-rotate-key] and -`x-symbol-electric-input'. If called interactively and if the region is -active, restrict context to the region between BEG and END." t nil) - -(autoload 'x-symbol-rotate-key "x-symbol" "\ -Rotate key for input method CONTEXT. -If character before point is a char alias, resolve alias, see -\\[x-symbol-unalias]. If character before point is a character -supported by package x-symbol, replace it by the next valid character in -the rotate-to chain. With optional prefix argument ARG, the -\"direction\" of the new character should be according to ARG and -`x-symbol-rotate-prefix-alist'. - -Otherwise replace longest context before point by a character which -looks similar to it, assuming an additional context suffix -`x-symbol-rotate-suffix-char'. See also \\[x-symbol-modify-key] and -`x-symbol-electric-input'. If called interactively and if the region is -active, restrict context to the region between BEG and END." t nil) - -(autoload 'x-symbol-init-input "x-symbol" "\ -Initialize all input methods for all charsyms defined so far. -Run `x-symbol-after-init-input-hook' afterwards. This function should -be called if new charsyms have been added, but not too often since it -takes some time to complete. Input methods TOKEN and READ-TOKEN are -defined with `x-symbol-init-language'. - -As explained in the docstring of `x-symbol-init-cset', charsyms are -defined with \"character descriptions\" which consist of different -\"aspects\" and \"contexts\", which can also be inherited from a -\"parent\" character. All characters which are connected with parents, -form a \"component\". Aspects and contexts are used to determine the -Modify-to and Rotate-to chain for characters, the contexts for input -method CONTEXT and ELECTRIC, the key bindings, and the position in the -MENU and the GRID. - -If a table entry of a charsym does not define its own contexts, they are -the same as the contexts of the charsym in an earlier position in the -\"modify chain\" (see below), or the contexts of the first charsym with -defined contexts in the modify chain. The modify context of a charsym -is the first context. - -Characters in the same component whose aspects only differ by their -\"direction\" (east,...), a key in `x-symbol-rotate-aspects-alist', are -circularly connected by \"rotate-to\". The sequence in the \"rotate -chain\" is determined by rotate scores depending on the values in the -rotate aspects. Charsyms with the same \"rotate-aspects\" are not -connected (charsyms with the smallest modify scores are preferred). - -Characters in the same components whose aspects only differ by their -\"size\" (big,...), \"shape\" (round, square,...) and/or \"shift\" (up, -down,...), keys in `x-symbol-modify-aspects-alist', are circularly -connected by \"modify-to\", if all their modify contexts are used -exclusively, i.e., no other modify chain uses any of them. The sequence -in the \"modify chain\" is determined by modify scores depending on the -values in the modify aspects and the charsym score. - -Otherwise, the \"modify chain\" is divided into modify subchains, which -are those charsyms sharing the same modify context. All modify -subchains using the same modify context, build a \"horizontal chain\" -whose charsyms are circularly connected by \"modify-to\". - -We build a \"key chain\" for all contexts (not just modify contexts), -consisting of all charsyms (sorted according to modify scores) having -the context. Input method CONTEXT modifies the context to the first -charsym in the \"key chain\". - -If there is only one charsym in the key chain, `x-symbol-compose-key' -plus the context inserts the charsym. Otherwise, we use a digit (1..9, -0) as a suffix for each charsym in the key chain. -`x-symbol-compose-key' plus the context plus the optional suffix inserts -the charsym." nil nil) - -;;;*** - -(provide 'x-symbol-autoloads) diff --git a/x-symbol/lisp/custom-load.el b/x-symbol/lisp/custom-load.el deleted file mode 100644 index 399d38ea..00000000 --- a/x-symbol/lisp/custom-load.el +++ /dev/null @@ -1,25 +0,0 @@ -;;; custom-load.el --- automatically extracted custom dependencies - -;;; Code: - -(autoload 'custom-add-loads "cus-load") - -(custom-add-loads 'x-symbol-tex '("x-symbol-hooks" "x-symbol-tex")) -(custom-add-loads 'tex '("x-symbol-vars")) -(custom-add-loads 'x-symbol-mode '("x-symbol-bib" "x-symbol-hooks" "x-symbol-sgml" "x-symbol-tex" "x-symbol-texi" "x-symbol-vars")) -(custom-add-loads 'x-symbol-input-init '("x-symbol-bib" "x-symbol-hooks" "x-symbol-sgml" "x-symbol-tex" "x-symbol-texi" "x-symbol-vars")) -(custom-add-loads 'docs '("x-symbol-vars")) -(custom-add-loads 'x-symbol-bib '("x-symbol-bib" "x-symbol-hooks")) -(custom-add-loads 'x-symbol-input-control '("x-symbol-bib" "x-symbol-sgml" "x-symbol-tex" "x-symbol-texi" "x-symbol-vars")) -(custom-add-loads 'x-symbol-info-general '("x-symbol-bib" "x-symbol-sgml" "x-symbol-tex" "x-symbol-texi" "x-symbol-vars")) -(custom-add-loads 'x-symbol-image-language '("x-symbol-sgml" "x-symbol-tex")) -(custom-add-loads 'sgml '("x-symbol-vars")) -(custom-add-loads 'x-symbol-miscellaneous '("x-symbol-hooks" "x-symbol-vars")) -(custom-add-loads 'x-symbol-sgml '("x-symbol-hooks" "x-symbol-sgml")) -(custom-add-loads 'x-symbol-image-general '("x-symbol-hooks" "x-symbol-vars")) -(custom-add-loads 'x-symbol-info-strings '("x-symbol-bib" "x-symbol-sgml" "x-symbol-tex" "x-symbol-texi" "x-symbol-vars")) -(custom-add-loads 'wp '("x-symbol-vars")) -(custom-add-loads 'x-symbol '("x-symbol-vars")) -(custom-add-loads 'x-symbol-texi '("x-symbol-hooks" "x-symbol-texi")) - -;;; custom-load.el ends here diff --git a/x-symbol/lisp/makefile.pkg b/x-symbol/lisp/makefile.pkg deleted file mode 100644 index aea5c6dd..00000000 --- a/x-symbol/lisp/makefile.pkg +++ /dev/null @@ -1,9 +0,0 @@ -PACKAGE = x-symbol -# list-mode.el -# da: removed this one, can't compile it on xemacs: x-symbol-emacs.el -ELFILES = x-symbol-hooks.el x-symbol-macs.el \ - x-symbol-mule.el \ - x-symbol-vars.el x-symbol.el \ - x-symbol-image.el x-symbol-sgml.el \ - x-symbol-tex.el x-symbol-bib.el \ - x-symbol-texi.el diff --git a/x-symbol/lisp/x-symbol-autoloads.el b/x-symbol/lisp/x-symbol-autoloads.el deleted file mode 100644 index cdd29e1a..00000000 --- a/x-symbol/lisp/x-symbol-autoloads.el +++ /dev/null @@ -1,381 +0,0 @@ -;;; DO NOT MODIFY THIS FILE -(if (featurep 'x-symbol-autoloads) (error "Already loaded")) - -;;;### (autoloads nil "_pkg" "lisp/_pkg.el") - -(if (fboundp 'package-provide) (package-provide 'x-symbol :version 4.51 :type 'regular)) - -;;;*** - -;;;### (autoloads (x-symbol-initialize x-symbol-register-language x-symbol-fontify turn-on-x-symbol-conditionally x-symbol-mode x-symbol-key-autoload x-symbol-auto-mode-suffixes) "x-symbol-hooks" "lisp/x-symbol-hooks.el") - -(autoload 'x-symbol-auto-mode-suffixes "x-symbol-hooks" "\ -Return REGEXPs of three-value elements in `auto-mode-alist'. -These REGEXPs are added to SUFFIXES." nil nil) - -(autoload 'x-symbol-key-autoload "x-symbol-hooks" "\ -Initialize package x-symbol and use the keys for this command again. -Package x-symbol and the functions in `x-symbol-load-hook' should -re-bind all key-sequence which invoke this command. You should provide -a prefix argument ARG to this command if `x-symbol-auto-key-autoload' is -nil." t nil) - -(defalias 'x-symbol-map-autoload 'x-symbol-key-autoload) - -(autoload 'x-symbol-mode "x-symbol-hooks" "\ -Toggle X-Symbol mode. -Toggle X-Symbol mode. If provided with a prefix argument, turn X-Symbol -mode on if the numeric value of the argument is positive, else turn it -off. If no token language can be deduced, ask for a token language; if -provided with a non-numeric prefix argument, always ask. - -By default, X-Symbol mode is disabled in special major-modes visiting a -file, e.g., `vm-mode'. Use a prefix argument to be asked whether to -turn in on anyway. - -When not already defined, various buffer-local variables are set when -turning on X-Symbol. See `x-symbol-auto-style-alist' and the language -access `x-symbol-LANG-modes'. - -Turning X-Symbol mode on requires a valid `x-symbol-language' and also -decodes tokens if the mode was turned off before, see -\\[x-symbol-decode-recode]. Turning X-Symbol mode off also encodes -x-symbol characters if the mode was turned on before, see -\\[x-symbol-encode-recode]. If optional argument SPECIAL has value -`init', the old mode status is assumed to be off." t nil) - -(autoload 'turn-on-x-symbol-conditionally "x-symbol-hooks" "\ -Turn on x-symbol mode conditionally, see `x-symbol-mode'. -Call `x-symbol-mode' with SPECIAL having value `init'." nil nil) - -(autoload 'x-symbol-fontify "x-symbol-hooks" "\ -Re-fontify region between BEG and END." t nil) - -(autoload 'x-symbol-register-language "x-symbol-hooks" "\ -Register token language LANGUAGE. -FEATURE is a feature which `provide's LANGUAGE. MODES are major modes -which typically use LANGUAGE. Using LANGUAGE's accesses will initialize -LANGUAGE, see `x-symbol-language-value'." nil nil) - -(autoload 'x-symbol-initialize "x-symbol-hooks" "\ -Initialize package X-Symbol. -See variable `x-symbol-initialize' and function `x-symbol-after-init'. -Also allocate colormap, see `x-symbol-image-colormap-allocation'. -Unless optional argument ARG is non-nil, do not initialize package -X-Symbol twice." t nil) - -;;;*** - -;;;### (autoloads (x-symbol-image-editor x-symbol-image-delete-extents x-symbol-image-after-change-function x-symbol-image-parse-buffer) "x-symbol-image" "lisp/x-symbol-image.el") - -(autoload 'x-symbol-image-parse-buffer "x-symbol-image" "\ -*Parse buffer to find image insertion commands. -Parse buffer to display glyphs at the end of image insertion commands. -Image files are converted to \"image cache files\" with images not -bigger than `x-symbol-image-max-width' and `x-symbol-image-max-height' -having a image format XEmacs understands. The conversion is done by a -program determined by `x-symbol-image-converter', currently you need -\"convert\" from ImageMagick. To make this conversion fast, we use -asynchronous processes and two cache hierarchies: - - * Memory cache (`x-symbol-image-memory-cache'): buffer-local alist - FILE.eps -> GLYPH, see also `x-symbol-image-use-remote'. - * File cache: the image cache file, mentioned above, are kept, see also - `x-symbol-image-update-cache', which is shadowed by a non-nil - UPDATE-CACHE and `x-symbol-image-cache-directories'. - -When the mouse is over an image insertion command, it is highlighted. -button2 starts an image editor, see `x-symbol-image-editor-alist'. -button3 pops up a menu, see `x-symbol-image-menu'. - -The image insertion commands are recognized by keywords in the language -access `x-symbol-LANG-image-keywords' whose value have the form - (IMAGE-REGEXP KEYWORD ...) -IMAGE-REGEXP should match all images files and is used to initialize the -buffer local memory cache, see `x-symbol-image-init-memory-cache'. - -Each KEYWORD looks like (REGEXP [FUNCTION] ARG...). Image insertion -commands matched by REGEXP are highlighted. FUNCTION, which defaults to -`x-symbol-image-default-file-name', is called with ARGs to get the file -name of the corresponding image file. If FUNCTION returns nil, the -command is not highlighted. - -Relative image file names are expanded in the directory returned by the -function in the language access `x-symbol-LANG-master-directory', value -nil means function `default-directory'. Implicitly relative image file -names are searched in a search path, see `x-symbol-image-use-remote'." t nil) - -(autoload 'x-symbol-image-after-change-function "x-symbol-image" "\ -Function in `after-change-functions' for image insertion commands." nil nil) - -(autoload 'x-symbol-image-delete-extents "x-symbol-image" "\ -Delete x-symbol image extents covering text between BEG and END. -See also `x-symbol-image-buffer-extents'." nil nil) - -(autoload 'x-symbol-image-editor "x-symbol-image" "\ -Start image editor for the image file FILE used in BUFFER. -If BUFFER is nil, just return string describing the command. See -`x-symbol-image-editor-alist' and `x-symbol-image-current-marker'." t nil) - -;;;*** - -;;;### (autoloads (x-symbol-tex-auto-coding-alist) "x-symbol-tex" "lisp/x-symbol-tex.el") - -(autoload 'x-symbol-tex-auto-coding-alist "x-symbol-tex" "\ -Find encoding in file `x-symbol-tex-coding-master'. -For ALIST and LIMIT, see `x-symbol-auto-coding-alist'." nil nil) - -;;;*** - -;;;### (autoloads (x-symbol-variable-interactive) "x-symbol-vars" "lisp/x-symbol-vars.el") - -(autoload 'x-symbol-variable-interactive "x-symbol-vars" "\ -Provide interactive specification for `set-variable'. -VAR's options has been defined with `x-symbol-define-user-options'." nil nil) - -;;;*** - -;;;### (autoloads (x-symbol-init-input x-symbol-rotate-key x-symbol-modify-key x-symbol-grid x-symbol-read-language x-symbol-init-language-interactive x-symbol-mode-internal x-symbol-auto-8bit-search x-symbol-auto-coding-alist x-symbol-unalias x-symbol-encode x-symbol-encode-recode x-symbol-decode x-symbol-decode-recode x-symbol-encode-all x-symbol-encode-string x-symbol-decode-single-token x-symbol-decode-all x-symbol-decode-region x-symbol-package-reply-to-report x-symbol-package-bug x-symbol-package-info x-symbol-package-web x-symbol-translate-to-ascii) "x-symbol" "lisp/x-symbol.el") - -(autoload 'x-symbol-translate-to-ascii "x-symbol" "\ -Translate STRING to an ascii string. -Non-ascii characters in STRING are converted to charsyms. Their ascii -representation is determined by: - - * If CHARSYM is a key in `x-symbol-charsym-ascii-alist', use its ASCII. - * Charsym is defined in the table to have an ascii representation, see - ASCII in `x-symbol-init-cset'. - * Compute ascii representation according to the CHARSYM's GROUP, - SUBGROUP and `x-symbol-charsym-ascii-groups'. - * Use \"\" otherwise." nil nil) - -(autoload 'x-symbol-package-web "x-symbol" "\ -Ask a WWW browser to load URL `x-symbol-package-url'." t nil) - -(autoload 'x-symbol-package-info "x-symbol" "\ -Read documentation for package X-Symbol in the info system." t nil) - -(autoload 'x-symbol-package-bug "x-symbol" "\ -Send a bug/problem report to the maintainer of package X-Symbol. -Please try to contact person in `x-symbol-installer-address' first. -Normal reports are sent without prefix argument ARG. - -If you are sure that the problem cannot be solved locally, e.g., by -contacting the person who has installed package X-Symbol, use prefix -argument 2 to send the message to `x-symbol-maintainer-address'. - -If your message has nothing to do with a problem or a bug, use prefix 9 -to send a short message to `x-symbol-maintainer-address'." t nil) - -(autoload 'x-symbol-package-reply-to-report "x-symbol" "\ -Reply to a bug/problem report not using \\[x-symbol-package-bug]." t nil) - -(autoload 'x-symbol-decode-region "x-symbol" "\ -Decode all tokens between BEG and END. -Make sure that X-Symbol characters are correctly displayed under -XEmacs/no-Mule even when font-lock is disabled." nil nil) - -(autoload 'x-symbol-decode-all "x-symbol" "\ -Decode all tokens in buffer to characters. -Use executables for decoding if buffer is larger than EXEC-THRESHOLD -which defaults to `x-symbol-exec-threshold'. Before decoding, decode -8bit characters in CODING which defaults to `x-symbol-coding'." nil nil) - -(autoload 'x-symbol-decode-single-token "x-symbol" nil nil nil) - -(autoload 'x-symbol-encode-string "x-symbol" nil nil nil) - -(autoload 'x-symbol-encode-all "x-symbol" "\ -Encode all characters in buffer to tokens. -Use executables for decoding if buffer is larger than EXEC-THRESHOLD -which defaults to `x-symbol-exec-threshold'. If CODING is non-nil, do -not encode 8bit characters in CODING. Otherwise, do not encode 8bit -characters in `x-symbol-coding' or `x-symbol-default-coding' if -`x-symbol-8bits' is non-nil. If BUFFER is non-nil, copy contexts -between START and END to BUFFER, make BUFFER current and do conversion -there. If BUFFER is non-nil, START and END must be buffer positions or -START is a string, see kludgy feature of `write-region'." nil nil) - -(autoload 'x-symbol-decode-recode "x-symbol" "\ -Decode all tokens in active region or buffer to characters. -If called interactively and if the region is active, BEG and END are the -boundaries of the region. BEG and END default to the buffer boundaries. -8bit characters are treated according to `x-symbol-coding'. See also -commands `x-symbol-encode' and `x-symbol-mode'. - -Note that in most token languages, different tokens might be decoded to -the same character, e.g., \\neq and \\ne in `tex', Ä and Ä -in `sgml', see `x-symbol-unique'!" t nil) - -(autoload 'x-symbol-decode "x-symbol" "\ -Decode all tokens in active region or buffer to characters. -As opposed to `x-symbol-decode-recode', this function performs no -recoding, i.e., `x-symbol-coding' is considered to have the value of -`x-symbol-default-coding'." t nil) - -(autoload 'x-symbol-encode-recode "x-symbol" "\ -Encode all characters in active region or buffer to tokens. -If called interactively and if the region is active, BEG and END are the -boundaries of the region. BEG and END default to the buffer boundaries. -Variables `x-symbol-8bits' and `x-symbol-coding' determine whether to -encode 8bit characters. See also commands `x-symbol-decode' and -`x-symbol-mode'." t nil) - -(autoload 'x-symbol-encode "x-symbol" "\ -Encode all characters in active region or buffer to tokens. -As opposed to `x-symbol-encode-recode', this function performs no -recoding, i.e., `x-symbol-coding' is considered to have the value of -`x-symbol-default-coding'. Additionally, `x-symbol-8bits' is assumed to -be nil if `x-symbol-coding' is not nil or not having the same value as -`x-symbol-default-coding'." t nil) - -(autoload 'x-symbol-unalias "x-symbol" "\ -Resolve all character aliases in active region or buffer. -A char alias is a character which is also a character in a font with -another registry, e.g., `adiaeresis' is defined in all supported latin -fonts. XEmacs distinguish between these four characters. In package -x-symbol, one of them, with `x-symbol-default-coding' if possible, is -supported by the input methods, the other ones are char aliases to the -supported one. The character and all the aliases are represented by the -same charsym. The info in the minibuffer displays char aliases, you can -resolve a single character before point with \\[x-symbol-modify-key]. - -8bit characters in files with a file coding `x-symbol-coding' other than -`x-symbol-default-coding' are converted to the \"normal\" form. E.g., -if you have a latin-1 font by default, the `adiaeresis' in a latin-2 -encoded file is a latin-1 `adiaeresis' in the buffer. When saving the -buffer, its is again the right 8bit character in the latin-2 encoded -file. Seven positions in latin-3 fonts are not used, the corresponding -8bit bytes in latin-3 encoded files are not changed. - -In normal cases, buffers do not have char aliases: with Mule support, -this is only possible if you copy characters from buffers with -characters considered as char aliases by package x-symbol, e.g., from -the Mule file \"european.el\". Without Mule support, this is only -possible if you use commands like `\\[universal-argument] 2 3 4'. - -The reason why package x-symbol does not support all versions of -`adiaeresis'es: - * It is confusing to the user to choose among four similar characters. - * These four versions are not distinguished in Unicode. - * There are not different tokens for them, neither in the token - language \"TeX macro\", nor \"SGML entity\"." t nil) - -(autoload 'x-symbol-auto-coding-alist "x-symbol" "\ -Return first match for ALIST in buffer limited by LIMIT. -Each element in ALIST looks like - (REGEXP . RESULT) or (REGEXP MATCH (KEY . RESULT)...) - -Search forward from the start of the buffer for a match with REGEXP. -With the first form, return RESULT. With the second form, return RESULT -where KEY is equal to the MATCH'th regexp group of the match." nil nil) - -(autoload 'x-symbol-auto-8bit-search "x-symbol" nil nil nil) - -(autoload 'x-symbol-mode-internal "x-symbol" "\ -Setup X-Symbol mode according to buffer-local variables. -If CONVERSION is non-nil, do conversion with EXEC-THRESHOLD. See -command `x-symbol-mode' for details." nil nil) - -(autoload 'x-symbol-init-language-interactive "x-symbol" "\ -Initialize token language LANGUAGE. -See `x-symbol-init-language'." t nil) - -(autoload 'x-symbol-read-language "x-symbol" "\ -Read token language in the minibuffer with completion. -Use PROMPT in minibuffer. If the inserted string is empty, use DEFAULT -as return value. If PREDICATE non-nil, only match languages if -PREDICATE with argument (NAME . LANGUAGE) returns non-nil." nil nil) - -(autoload 'x-symbol-grid "x-symbol" "\ -Displays characters in a grid-like fashion for mouse selection. -Display global or language dependent grid, see `x-symbol-local-grid'. -See `x-symbol-list-mode' for key and mouse bindings. Without optional -argument ARG and non-nil `x-symbol-grid-reuse', just popup old grid -buffer if it already exists, but is not displayed. Store window -configuration current before the invocation if `x-symbol-temp-grid' is -non-nil, see `x-symbol-list-restore'." t nil) - -(autoload 'x-symbol-modify-key "x-symbol" "\ -Modify key for input method CONTEXT. -If character before point is a char alias, resolve alias, see -\\[x-symbol-unalias]. If character before point is a character -supported by package x-symbol, replace it by the next valid character in -the modify-to chain. - -Otherwise replace longest context before point by a character which -looks similar to it. See also \\[x-symbol-rotate-key] and -`x-symbol-electric-input'. If called interactively and if the region is -active, restrict context to the region between BEG and END." t nil) - -(autoload 'x-symbol-rotate-key "x-symbol" "\ -Rotate key for input method CONTEXT. -If character before point is a char alias, resolve alias, see -\\[x-symbol-unalias]. If character before point is a character -supported by package x-symbol, replace it by the next valid character in -the rotate-to chain. With optional prefix argument ARG, the -\"direction\" of the new character should be according to ARG and -`x-symbol-rotate-prefix-alist'. - -Otherwise replace longest context before point by a character which -looks similar to it, assuming an additional context suffix -`x-symbol-rotate-suffix-char'. See also \\[x-symbol-modify-key] and -`x-symbol-electric-input'. If called interactively and if the region is -active, restrict context to the region between BEG and END." t nil) - -(autoload 'x-symbol-init-input "x-symbol" "\ -Initialize all input methods for all charsyms defined so far. -Run `x-symbol-after-init-input-hook' afterwards. This function should -be called if new charsyms have been added, but not too often since it -takes some time to complete. Input methods TOKEN and READ-TOKEN are -defined with `x-symbol-init-language'. - -As explained in the docstring of `x-symbol-init-cset', charsyms are -defined with \"character descriptions\" which consist of different -\"aspects\" and \"contexts\", which can also be inherited from a -\"parent\" character. All characters which are connected with parents, -form a \"component\". Aspects and contexts are used to determine the -Modify-to and Rotate-to chain for characters, the contexts for input -method CONTEXT and ELECTRIC, the key bindings, and the position in the -MENU and the GRID. - -If a table entry of a charsym does not define its own contexts, they are -the same as the contexts of the charsym in an earlier position in the -\"modify chain\" (see below), or the contexts of the first charsym with -defined contexts in the modify chain. The modify context of a charsym -is the first context. - -Characters in the same component whose aspects only differ by their -\"direction\" (east,...), a key in `x-symbol-rotate-aspects-alist', are -circularly connected by \"rotate-to\". The sequence in the \"rotate -chain\" is determined by rotate scores depending on the values in the -rotate aspects. Charsyms with the same \"rotate-aspects\" are not -connected (charsyms with the smallest modify scores are preferred). - -Characters in the same components whose aspects only differ by their -\"size\" (big,...), \"shape\" (round, square,...) and/or \"shift\" (up, -down,...), keys in `x-symbol-modify-aspects-alist', are circularly -connected by \"modify-to\", if all their modify contexts are used -exclusively, i.e., no other modify chain uses any of them. The sequence -in the \"modify chain\" is determined by modify scores depending on the -values in the modify aspects and the charsym score. - -Otherwise, the \"modify chain\" is divided into modify subchains, which -are those charsyms sharing the same modify context. All modify -subchains using the same modify context, build a \"horizontal chain\" -whose charsyms are circularly connected by \"modify-to\". - -We build a \"key chain\" for all contexts (not just modify contexts), -consisting of all charsyms (sorted according to modify scores) having -the context. Input method CONTEXT modifies the context to the first -charsym in the \"key chain\". - -If there is only one charsym in the key chain, `x-symbol-compose-key' -plus the context inserts the charsym. Otherwise, we use a digit (1..9, -0) as a suffix for each charsym in the key chain. -`x-symbol-compose-key' plus the context plus the optional suffix inserts -the charsym." nil nil) - -;;;*** - -(provide 'x-symbol-autoloads) diff --git a/x-symbol/lisp/x-symbol-bib.el b/x-symbol/lisp/x-symbol-bib.el deleted file mode 100644 index 2b7e85d9..00000000 --- a/x-symbol/lisp/x-symbol-bib.el +++ /dev/null @@ -1,125 +0,0 @@ -;;; x-symbol-bib.el --- token language "BibTeX macro" for package x-symbol - -;; Copyright (C) 2002-2003 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: 4.5 -;; 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]). - -;; - -;;; Code: - -(provide 'x-symbol-bib) -(require 'x-symbol-tex) - - -;;;=========================================================================== -;;; General language accesses, see `x-symbol-language-access-alist' -;;;=========================================================================== - -(defcustom x-symbol-bib-auto-style '(t nil nil nil nil nil) - "Values for X-Symbol's buffer-local variables with language `bib'. -See language access `x-symbol-LANG-auto-style'." - :group 'x-symbol-bib - :group 'x-symbol-mode - :type 'x-symbol-auto-style) - -(defcustom x-symbol-bib-modeline-name "bib" - "Modeline name of token language `bib'. -See language access `x-symbol-LANG-modeline-name'." - :group 'x-symbol-bib - :type 'string) - -(defcustom x-symbol-bib-header-groups-alist x-symbol-tex-header-groups-alist - "Header/submenu specification of the specific menu for language `bib'. -See language access `x-symbol-LANG-header-groups-alist'." - :group 'x-symbol-bib - :group 'x-symbol-input-init - :type 'x-symbol-headers) - -(defcustom x-symbol-bib-electric-ignore x-symbol-tex-electric-ignore - "Specification restricting input method ELECTRIC with language `bib'. -See language access `x-symbol-LANG-electric-ignore'." - :group 'x-symbol-bib - :group 'x-symbol-input-control - :type 'x-symbol-function-or-regexp) - -(defcustom x-symbol-bib-class-alist x-symbol-tex-class-alist - "Token classes displayed by info in echo area, for language `bib'. -See language access `x-symbol-LANG-class-alist'." - :group 'x-symbol-bib - :group 'x-symbol-info-strings - :type 'x-symbol-class-info) - -(defcustom x-symbol-bib-class-face-alist x-symbol-tex-class-face-alist - "Color scheme in language specific grid and info, for language `bib'. -See language access `x-symbol-LANG-class-face-alist'." - :group 'x-symbol-bib - :group 'x-symbol-input-init - :group 'x-symbol-info-general - :type 'x-symbol-class-faces) - - -;;;=========================================================================== -;;; foo -;;;=========================================================================== - -(defvar x-symbol-bib-token-grammar - '(x-symbol-make-grammar - :encode-spec (?\\ (math . "[a-z@-Z]")) - :decode-regexp "\\\\\\(?:[@A-Za-z]+\\|[-{}#_&]\\)\\|{\\\\\\(?:[ckvuHr]\\(?: [A-Za-z]\\|{}\\|\\\\ \\)\\|[@A-Za-z]+\\|[.~^\"'`=]\\(?:[A-Za-z]\\|{}\\|\\\\[ij]\\)\\)}" - :decode-spec (?\\) - :input-spec (?\\ (math . "[a-z@-Z]")) - :token-list x-symbol-bib-default-token-list) - "Grammar of token language `bib'. -See language access `x-symbol-LANG-token-grammar'.") - -(defvar x-symbol-bib-required-fonts x-symbol-tex-required-fonts - "Features providing required fonts for language `bib'. -See language access `x-symbol-LANG-required-fonts'.") - -(defvar x-symbol-bib-user-table nil - "User table defining TeX macros, used in `x-symbol-bib-table'.") - -(defvar x-symbol-bib-table - (append x-symbol-bib-user-table x-symbol-tex-table) - "Table defining `bib' tokens for the characters. -See language access `x-symbol-LANG-table'. Default value uses all -definitions in `x-symbol-tex-table'. Use `x-symbol-bib-user-table' to -define private TeX macros or shadow existing ones. ") - -(defvar x-symbol-bib-generated-data nil - "Generated data for token language `bib'. -See language access `x-symbol-LANG-generated-data'.") - -(defun x-symbol-bib-default-token-list (tokens) - (if (stringp tokens) - (list (list (concat "{" tokens "}"))) - (mapcar (lambda (x) - (cons x (if (string-match "\\\\[A-Za-z]+\\'" x) 'math))) - tokens))) - -;;; Local IspellPersDict: .ispell_xsymb -;;; x-symbol-bib.el ends here diff --git a/x-symbol/lisp/x-symbol-emacs.el b/x-symbol/lisp/x-symbol-emacs.el deleted file mode 100644 index 5fa9da5f..00000000 --- a/x-symbol/lisp/x-symbol-emacs.el +++ /dev/null @@ -1,467 +0,0 @@ -;;; x-symbol-emacs.el --- make package x-symbol work with Emacs - -;; Copyright (C) 2000-2002 Free Software Foundation, Inc. -;; -;; Authors: Stefan Monnier, Christoph Wedler -;; Maintainer: (Please use `M-x x-symbol-package-bug' to contact the maintainer) -;; Version: 4.5.X -;; 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]). - -(provide 'x-symbol-emacs) - -(unless (fboundp 'emacs-version>=) -(defun emacs-version>= (major &optional minor patch) - "Return true if the Emacs version is >= to the given version. -The version is provided by the required argument MAJOR, and the optional -arguments MINOR and PATCH. Only the non-nil arguments are used in the -test." - (cond ((> emacs-major-version major)) - ((< emacs-major-version major) nil) - ((null minor)) - ((> emacs-minor-version minor)) - ((< emacs-minor-version minor) nil) - ((null patch)) - ((string-match "^[0-9]+\\.[0-9]+\\.\\([0-9]+\\)" emacs-version) - (>= (string-to-number (match-string 1 emacs-version)) patch))))) - - -;;;=========================================================================== -;;; Emacs-21.4 features -;;;=========================================================================== -;; To make use of newer Emacs features with the current stable version of -;; Emacs, you can download individual files from the CVS repository of -;; <http://savannah.gnu.org/projects/emacs/>. E.g., I use Emacs-21.1.5 -;; together with updates of the following files: - -;; lisp/font-lock.el,v 1.200 (+ exchange all cc-mode font-lock keywords, -;; recursive backquote not possible in Emacs-21.1), lisp/font-core.el,v -;; 1.8(new), lisp/emacs-lisp/syntax.el,v 1.5(new): -;; (defvar char-property-alias-alist nil) -;; (unless (fboundp 'copy-tree) (defalias 'copy-tree 'copy-alist)) -;; (unless (fboundp 'remove-list-of-text-properties) -;; (defun remove-list-of-text-properties (start end proplist) -;; (let (props) -;; (while proplist (push nil props) (push (pop proplist) props)) -;; (remove-text-properties start end props)))) -;; (or (featurep 'font-core) (load "font-core" t)) -(defvar x-symbol-emacs-has-font-lock-with-props - (and (boundp 'font-lock-extra-managed-props) - (boundp 'char-property-alias-alist) - (fboundp 'copy-tree) - (locate-library "font-core") - (locate-library "syntax"))) - -;; with the following line, "reveal invisible around point" won't work: -(setq x-symbol-emacs-has-font-lock-with-props - (if (boundp 'font-lock-extra-managed-props) - 'invisible)) -;; da: above seems no longer true with, e.g., works in Emacs 22.1.1. -;; So enable this by default now since it results in better -;; display, no space between text and sub/superscripts. - - -;; lisp/warnings.el,v 1.6(new): recommended -(condition-case nil (require 'warnings) (error)) - -;; src/fileio.c,v 1.447: -(defvar x-symbol-emacs-has-correct-find-safe-coding - (not (and (boundp 'char-coding-system-table) - (arrayp char-coding-system-table)))) - -;; lisp/format.el,v 1.39 (with src/fileio.c,v 1.447): -;; (setq x-symbol-auto-conversion-method 'format) - -;; lisp/isearch.el,v 1.213 (makes isearch+GRID work): -;; (load "isearch") ; only nec/ when updated after Emacs built - -;; lisp/language/european.el,v 1.76 (makes X-Symbol+ispell work) -;; (load "european") ; only nec/ when updated after Emacs built - -;;; Bugs: - -(defvar x-symbol-emacs-after-create-image-function -;; I want to know why `clear-image-cache' is necessary sometimes, -;; 'redraw-display is not enough - (if (emacs-version>= 21 3 50) nil 'clear-image-cache)) - -;;; Todo: - -;; - Invisible text support. -;; - Use Emacs-21's `display' text-property to make sub/super-scripts. -;; - many more, I'm sure. - -;; Changes I (CW) would like to see in Emacs: -;; * `directory-files': 5th arg FILES-ONLY like in XEmacs -;; * `file-remote-p' like in XEmacs (defined below) -;; * tooltip and menu cannot use text props, Emacs display strings with prop -;; as "("STRING" 0 4 nil...) instead, which is not useful - -;; Restrictions, Questions (or other changes I would like to see): -;; * how to use temp image files for images? - -;;; Code: - -(require 'cl) -(require 'fontset) ;seems not to be loaded in batch mode - -;; temp hack: -(defvar image-types nil) ; necessary in Emacs-21.2 w/o image - ; support, still in Emacs-21.3? -(if (memq 'png image-types) (provide 'png)) -(if (memq 'gif image-types) (provide 'gif)) - -;; No way to test patch level? -(cond ((not (and (boundp 'emacs-major-version) - (>= emacs-major-version 21) - (or (> emacs-major-version 21) (>= emacs-minor-version 1)))) - (error "Package X-Symbol can only be used with Emacs-21.1+"))) - -;;(require 'x-symbol-hooks) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; Emacs-20 specific ;;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -;;(unless (fboundp 'puthash) (defalias 'puthash 'cl-puthash)) -;;(unless (fboundp 'plist-member) (defalias 'plist-member 'widget-plist-member)) -;;(unless (fboundp 'point-at-bol) (defalias 'point-at-bol 'line-end-position)) -;;(unless (fboundp 'point-at-eol) (defalias 'point-at-eol 'line-beginning-position)) -;;(unless (fboundp 'add-minor-mode) -;; (defun add-minor-mode (tog name map) -;; (when name (add-to-list 'minor-mode-alist (list tog name))) -;; (when map (add-to-list 'minor-mode-map-alist (cons tog map))))) - -(unless (and (boundp 'emacs-major-version) (>= emacs-major-version 21)) - (error "X-Symbol requires Emacs-21 or higher")) - - -;;(define-key isearch-mode-map [?\C-=] nil) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; Problematic XEmacs compatibility ;;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -(defvar init-file-loaded t) - -;; Used in x-symbol-show-info-and-invisible -(defvar message-stack nil) ;message-stack ~= (current-message) -(unless (fboundp 'warn) (defalias 'warn 'message)) -(unless (fboundp 'lwarn) - (defun lwarn (class level msg &rest args) - (warn (format "(%s/%s) %s" class level msg) args))) -(unless (fboundp 'display-message) - (defun display-message (label msg) - (if (memq label '(help-echo command progress prompt no-log - garbage-collecting auto-saving)) - ;; XEmacs `log-message-ignore-labels' - (let ((message-log-max nil)) ;#dynamic - (message "%s" msg)) - (message "%s" msg)))) - -(unless (fboundp 'face-font-instance) - (defalias 'face-font-instance 'face-font)) -(unless (fboundp 'try-font-name) - (defun try-font-name (name) - (and name - ;; TODO: shouldn't `x-list-fonts' work when not running on X? - (condition-case nil (x-list-fonts name) (error nil)) - name))) -(unless (fboundp 'put-nonduplicable-text-property) - (defun put-nonduplicable-text-property (start end prop val &optional obj) - (let ((inhibit-modification-hooks t) - (modified (buffer-modified-p))) - (unwind-protect - (put-text-property start end prop val obj) - (set-buffer-modified-p modified))))) - -;;; list-mode ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(unless (fboundp 'list-mode) - (define-derived-mode list-mode completion-list-mode "List" - "Major mode for buffer containing lists of items." - (setq buffer-read-only t))) -(unless (fboundp 'add-list-mode-item) - (defun add-list-mode-item (start end &optional buffer activate-callback - ;; activate-callback is ignored - user-data) - ;; BEWARE!!! (list 'highlight) here is tricky. It makes sure that each - ;; item has a distinct mouse-face text-property value, so that they - ;; won't be aggregated arbitrarily (aggregation uses `eq' rather - ;; than `equal'). - (put-text-property start end 'mouse-face (list 'highlight) buffer) - (let ((ol (make-overlay start end buffer))) - (overlay-put ol 'list-mode-item t) - (if user-data (overlay-put ol 'list-mode-item-user-data user-data)) - ol))) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; Plain XEmacs compatibility ;;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -;;; Extents ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -(require 'lucid) -(unless (fboundp 'extent-property) (defalias 'extent-property 'overlay-get)) -(unless (fboundp 'map-extents) (defalias 'map-extents 'cl-map-overlays)) -(unless (fboundp 'set-extent-end-glyph) - (defun set-extent-end-glyph (extent glyph) - (overlay-put extent 'after-string glyph))) -(unless (fboundp 'insert-face) - (defun insert-face (string face) - (let ((ol (make-overlay (point) (progn (insert string) (point))))) - (overlay-put ol 'face face) ol))) - -;;; Chars ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -(unless (fboundp 'characterp) (defalias 'characterp 'integerp)) -(unless (fboundp 'int-to-char) (defalias 'int-to-char 'identity)) -(unless (fboundp 'char-to-int) (defalias 'char-to-int 'identity)) - -;;; Char tables ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -;; TODO: use 'x-symbol instead 'generic with Emacs -(put 'generic 'char-table-extra-slots 0) -(unless (fboundp 'put-char-table) - (defun put-char-table (range val tab) (set-char-table-range tab range val))) -(unless (fboundp 'get-char-table) - (defun get-char-table (ch table) (char-table-range table ch))) - -;;; Charsets ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -(defun region-active-p () (and transient-mark-mode mark-active)) -(unless (fboundp 'make-charset) - (defun make-charset (name docstring info) - (let ((registry (plist-get info 'registry)) - (graphic (plist-get info 'graphic)) - (dimension (plist-get info 'dimension)) - (ccl-program (plist-get info 'ccl-program))) - (define-charset nil name - (vector dimension - (plist-get info 'chars) - (or (plist-get info 'columns) dimension) - (if (eq (plist-get info 'direction) 'l2r) 0 1) - (plist-get info 'final) - graphic - (symbol-name name) - (symbol-name name) - docstring)) - ;; Don't ask for X-Symbol's private charsets (with Emacs-21.0.104+). But - ;; you're still asked for latin-{2,3,5,9} chars even if they are encoded - ;; by X-Symbol (changes in Emacs-21.4: first do annotate functions, then - ;; determine safe coding). - (or x-symbol-emacs-has-correct-find-safe-coding - (aset char-coding-system-table (make-char name) t)) - (when registry - (set-fontset-font "fontset-default" name (cons "*" registry)) - (when (eq graphic 0) - (cond - ((>= emacs-major-version 23) - ;; this change not good enough: characters in xsymb font still lost - (set-font-encoding registry name)) - (t - (set-font-encoding registry name 0)))) - (when ccl-program - (add-to-list 'font-ccl-encoder-alist (cons registry ccl-program)))) - name))) - -(unless (fboundp 'find-charset) - (defun find-charset (c) (and (charsetp c) c))) - -;;; Misc ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -(autoload 'Info-goto-node "info") - -(defvar x-symbol-data-directory (expand-file-name "x-symbol" data-directory)) - -(unless (fboundp 'signal-error) (defalias 'signal-error 'signal)) - -(unless (fboundp 'console-type) - (defun console-type () - (case window-system - (x 'x) - (w32 'mswindows) - (nil 'tty) - (t window-system)))) - -(unless (fboundp 'symbol-value-in-buffer) - (defun symbol-value-in-buffer (sym buf &optional def) - (with-current-buffer buf (if (boundp sym) (symbol-value sym) def)))) - -(unless (fboundp 'make-key-weak-hashtable) - (defun make-key-weak-hashtable (size &optional test) - ;; The :weakness is (hopefully) ignored on Emacs-20 - (make-hash-table :size size :test test :weakness 'key))) - -(unless (fboundp 'set-keymap-default-binding) - (defun set-keymap-default-binding (map cmd) - (define-key-after map [t] cmd t))) - -(unless (fboundp 'destructive-alist-to-plist) - (defun destructive-alist-to-plist (alist) - (let ((next alist) tmp head) - (while next - (setq head (car next) tmp next) - (if (not (consp head)) (pop next) - (setcar next (car head)) - (setcar head (cdr head)) - (setcdr head (setq next (cdr next))) - (setcdr tmp head)))) - alist)) - -(unless (fboundp 'plists-eq) - ;; All kinds of potential problems here with "shadowed properties". - (defun plists-eq (a b) - (when (= (length a) (length b)) - (let (tmp) - (while (and a - (setq tmp (plist-member b (pop a))) - (eq (car a) (cadr tmp))) - (setq a (cdr a))) - (null a))))) - -;; From XEmacs -(unless (fboundp 'sorted-key-descriptions) - (defun sorted-key-descriptions (keys &optional separator) - "Sort and separate the key descriptions for KEYS. -The sorting is done by length (shortest bindings first), and the bindings -are separated with SEPARATOR (\", \" by default)." - (mapconcat 'key-description - (sort keys #'(lambda (x y) - (< (length x) (length y)))) - (or separator ", ")))) - -;; defined in Emacs-21.3.50 -(unless (fboundp 'file-remote-p) - (defun file-remote-p (file-name) - "Test whether FILE-NAME is looked for on a remote system." - (cond ((featurep 'ange-ftp) - (if (fboundp 'ange-ftp-ftp-name) - (ange-ftp-ftp-name file-name) - (ange-ftp-ftp-path file-name))) - ((fboundp 'efs-ftp-path) (efs-ftp-path file-name)) - (t nil)))) - -(defun x-symbol-directory-files (dirname &optional full match nosort - files-only) - (let ((files (directory-files dirname full match nosort)) - result) - (if (null files-only) - files - (while files - (if (if (file-directory-p (car files)) - (null (eq files-only t)) - (eq files-only t)) - (push (car files) result)) - (setq files (cdr files))) - (nreverse result)))) - -(defun x-symbol-event-in-current-buffer () - t) - -(defun x-symbol-create-image (file type) - (create-image file type nil :ascent 80)) - -(defun x-symbol-make-glyph (image) - (propertize "x" 'display image)) - -(defun x-symbol-set-glyph-image (glyph image) - (set-text-properties 0 (length glyph) (list 'display image) glyph)) - -(unless (fboundp 'event-closest-point) - (defun event-closest-point (event) (posn-point (event-end event)))) - -(unless (fboundp 'event-buffer) - (defun event-buffer (event) (window-buffer (posn-window (event-end event))))) - -;;; -;;; X-Symbol functions -;;; - -;; Defvarred to prevent their initialization code to run (since that -;; code uses XEmacs'isms that haven't been ported yet). -(defvar x-symbol-heading-strut-glyph " ") - -;; Define face's vars for Emacs' font-lock. -(defvar x-symbol-invisible-face 'x-symbol-invisible-face) -(defvar x-symbol-face 'x-symbol-face) -(defvar x-symbol-sub-face 'x-symbol-sub-face) -(defvar x-symbol-sup-face 'x-symbol-sup-face) - -(defvar x-symbol-emacs-w32-font-directories - (mapcar (lambda (dir) (expand-file-name dir x-symbol-data-directory)) - '("fonts/" "origfonts/" "genfonts/"))) - -(if (and (eq window-system 'w32) - x-symbol-emacs-w32-font-directories - (fboundp 'w32-find-bdf-fonts) - (boundp 'w32-bdf-filename-alist)) - (setq w32-bdf-filename-alist - (nconc w32-bdf-filename-alist - (w32-find-bdf-fonts x-symbol-emacs-w32-font-directories)))) - -;; Invisibility cannot be done this way in Emacs. -(defvar x-symbol-invisible-display-table nil) - -(defalias 'x-symbol-window-width 'window-width) - -(if - (>= emacs-major-version 23) - ;; da: emacs-23 version: maybe OK... -(defun x-symbol-set-face-font (face font charsets default) - (let* ((fontset-name (concat "fontset-" - (replace-in-string - (symbol-name face) "-" ""))) - (decomposed (x-decompose-font-name font)) - fontset) - (aset decomposed 11 fontset-name) - (setq fontset (new-fontset (x-compose-font-name decomposed) - (list (cons 'ascii font)))) - (dolist (charset charsets) - (when charset (set-fontset-font fontset charset font))) - (set-face-font face fontset))) -;; Otherwise, emacs-21/22 version - (defun x-symbol-set-face-font (face font charsets default) - (let ((fontset (concat "fontset-" (symbol-name face)))) - (unless (query-fontset fontset) - ;; We assume that the first time around we're using latin-8859-1 - (new-fontset fontset - (x-complement-fontset-spec (make-vector 14 "*") - (list (cons 'ascii font))))) - (dolist (charset charsets) - (when charset (set-fontset-font fontset charset font))) - (set-face-font face fontset)))) - -(defun x-symbol-event-matches-key-specifier-p (event specifier) - (if (consp specifier) (setq specifier (event-convert-list specifier))) - (if (consp event) (setq event (car event))) - (eq event specifier)) - -;;; -;;; Possibly useful compat functions -;;; - -;;; from Sang-Min -(defun start-itimer (name func value restart isidle) - (run-with-idle-timer value restart func)) -(defun itimer-live-p (obj) (and obj (not (aref obj 0)))) - -;;; x-symbol-emacs.el ends here diff --git a/x-symbol/lisp/x-symbol-hooks.el b/x-symbol/lisp/x-symbol-hooks.el deleted file mode 100644 index 22d82460..00000000 --- a/x-symbol/lisp/x-symbol-hooks.el +++ /dev/null @@ -1,1356 +0,0 @@ -;;; x-symbol-hooks.el --- pre-loaded stuff for package x-symbol - -;; Copyright (C) 1996-1999, 2001-2003 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: 4.5.X -;; 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 provides `autoload's for package x-symbol, adds functions to hooks -;; for the automatic conversion and defines variables which control the -;; conversion. - -;;; Code: - -(provide 'x-symbol-hooks) -(require 'font-lock) -(eval-when-compile (require 'cl)) -(eval-when-compile - (defvar x-symbol-coding-name-alist) ; in "x-symbol-vars" - (defvar x-symbol-image-colormap-allocation) ; here - (defvar x-symbol-image-convert-colormap) ; here - (defvar x-symbol-cstring-table) ; in x-symbol.el, only needed if loaded - ) -(eval-when-compile - (defvar lazy-shot-minimum-size) - (defvar comint-input-sender) - (defvar comint-last-input-end) - (defvar comint-last-output-start) - (defvar fast-lock-save-faces) - (defvar latex-mode-hook) - (defvar LaTeX-mode-hook) - (defvar LaTeX-math-insert-function) - (defvar orig-buffer) - (defvar reftex-translate-to-ascii-function) -) - -(put 'x-symbol-define-user-options 'lisp-indent-function 2) -(put 'x-symbol-dolist-delaying 'lisp-indent-function 2) -(put 'x-symbol-do-plist 'lisp-indent-function 1) -(put 'x-symbol-while-charsym 'lisp-indent-function 1) -(put 'x-symbol-encode-for-charsym 'lisp-indent-function 1) -(put 'x-symbol-decode-for-charsym 'lisp-indent-function 2) -(put 'x-symbol-ignore-property-changes 'lisp-indent-function 0) - -(defvar x-symbol-warn-of-old-emacs t - "If non-nil, issue warning when using a old/buggy XEmacs. -XEmacs-21.0 to XEmacs-21.1.8 has been reported to core when using input -method token.") - -;; CW: if possible, back to x-symbol.el, do not load too many files at init -(require (if (featurep 'xemacs) 'x-symbol-xmacs 'x-symbol-emacs)) - - - -;;;;########################################################################## -;;;; Variables -;;;;########################################################################## - - -(defvar x-symbol-data-directory - (or (locate-data-directory "x-symbol") - (progn (warn "X-Symbol is not installed at the proper place") - nil)) - "Directory of data files that come with package X-Symbol.") - -(defvar x-symbol-font-directory - (and x-symbol-data-directory - (expand-file-name "pcf/" x-symbol-data-directory)) - "Directory for additional X-Symbol fonts. -If non-nil, used in function `x-symbol-initialize'.") - - -;;;=========================================================================== -;;; Functions to set user options -;;;=========================================================================== - -(defun x-symbol-define-user-options (var options &optional after-set set-fn) - "Define options and setting behavior for user option VAR. -OPTIONS has the form (FALLBACK . ALIST) where ALIST has elements of the -form (OPTION . MENU-TEXT). If ALIST is non-nil, one OPTION should be -equal to FALLBACK, its MENU-TEXT is used for any values not being keys -in ALIST. OPTIONS can also be a function which should return the form -mention above. - -If ALIST is nil, `x-symbol-submenu-filter', which is used by -`x-symbol-menu', uses a toggle button with FALLBACK as the non-nil value -and \\[set-variable] offers completion with matches nil and FALLBACK. -Otherwise, the menu uses radio buttons for all OPTIONs, where MENU-TEXT -is the name of the menu item, and \\[set-variable] offers completion -over all OPTIONs. - -`x-symbol-set-variable', which is invoked by the menu callbacks, uses -SET-FN instead `set' to set the value of VAR if SET-FN is non-nil. -Otherwise, all functions in AFTER-SET are invoked after `set'ting VAR." - (put var 'x-symbol-options options) - (put var 'variable-interactive - (list 'x-symbol-variable-interactive (list 'quote var))) - (while after-set - (pushnew (pop after-set) (get var 'x-symbol-after-set-hook) :test 'equal)) - (if set-fn (put var 'x-symbol-set-function set-fn))) - -;; CW: autoload important if var `x-symbol-auto-mode-suffixes' is saved by -;; custom -;;;###autoload -(defun x-symbol-auto-mode-suffixes (&optional suffixes) - "Return REGEXPs of three-value elements in `auto-mode-alist'. -These REGEXPs are added to SUFFIXES." - (setq suffixes (reverse suffixes)) - (let ((alist auto-mode-alist)) - (while alist - (and (consp (cdar alist)) - (null (member (caar alist) suffixes)) - (push (caar alist) suffixes)) - (setq alist (cdr alist))) - (nreverse suffixes))) - - -;;;=========================================================================== -;;; Initialization -;;;=========================================================================== - -(defcustom x-symbol-initialize t - "Whether to do an extended initialization of package X-Symbol. -If t, do full initialization. Otherwise, the value should be a list -with element. To enable, include - - * `languages' to register all supported token languages, - * `global' to turn on X-Symbol's global mode, i.e., as files are - loaded, execute `turn-on-x-symbol-conditionally', - * `keys' to set up the usual X-Symbol key bindings in `global-map', - * `font-path' to add `x-symbol-font-directory' to the font-path, - * `comint' to make X-Symbol work with comint, - * `fast-lock' to make X-Symbol work with fast-lock, - * `auctex' to make X-Symbol optimally work with AucTeX 9.8a+, it - changes AucTeX's `TeX-region-hook', `TeX-translate-location-hook', - and `LaTeX-math-insert-function', - * `reftex' to make X-Symbol optimally work with RefTeX 3.26+, - * `bib-cite' to make X-Symbol not overwriting bib-cite's highlighting. - -You do not have to install the packages whose initialization is -enabled." - :group 'x-symbol-mode - :type '(choice (const :tag "All" t) - (set :value (languages global keys font-path comint - fast-lock auctex reftex bib-cite) - (const :tag "Token languages" languages) - (const :tag "Global mode" global) - (const :tag "Key bindings" keys) - (const :tag "Font path" font-path) - (const :tag "Package comint" comint) - (const :tag "Package fast-lock" fast-lock) - (const :tag "Package AucTeX" auctex) - (const :tag "Package RefTeX" reftex) - (const :tag "Package bib-cite" bib-cite)))) - -(defvar x-symbol-orig-comint-input-sender 'comint-simple-send - "Original function which sends a string to the comint process.") - - -;;;=========================================================================== -;;; Determine Locale -;;;=========================================================================== - -(defun x-symbol-coding-system-from-locale () - ;; See also EMACS/lisp/international/mule-cmds.el, `set-locale-environment'. - "Get value for `x-symbol-default-coding' from locale. -Use \"locale -ck code_set_name charmap\" and search for the value of -\"code_set_name\" or \"charmap\"." - (save-excursion - (set-buffer (get-buffer-create " *x-symbol-coding-system-from-locale*")) - (erase-buffer) - (call-process shell-file-name nil t nil shell-command-switch - "locale -ck code_set_name charmap") - (goto-char (point-min)) - - (let* ((case-fold-search t) - ;; The GNU recode manual (www-find "recode charset iso646"), lists a - ;; lot of aliases, there are a bit less on - ;; http://mail.nl.linux.org/linux-utf8/2001-10/msg00072.html, I - ;; added some. But this function shouldn't exceed 40 lines... - (map '((iso-8859-1 - "iso-8859-1" "iso8859-1" "iso88591" ; HP: iso88591 - ;; vendor-specific, supersets of ascii - ;; "roman8" ; HP: roman8 is not latin1 - ;; ascii - "ascii" "us-ascii" "ansi_x3.4-1968" "646" "iso646" - "iso_646.irv") - (iso-8859-2 - "iso-8859-2" "iso8859-2" "iso88592") ; HP: iso88592 - (iso-8859-3 - "iso-8859-3" "iso8859-3" "iso88593") ; HP: iso88593 - (iso-8859-9 - "iso-8859-9" "iso8859-9" "iso88599") - (iso-8859-15 - "iso-8859-15" "iso8859-15" "iso885915"))) ; HP: iso885915 - (charmap (and (re-search-forward "^[ \t]*\\(code_set_name\\|charmap\\)[ \t]*=[ \t]*\"\\([^\n\"]+\\)\"" nil t) - (find (downcase (match-string 2)) map - :test 'member)))) - (kill-buffer (current-buffer)) - (car charmap)))) - -(defun x-symbol-buffer-coding (&optional system) - ;; nil = unknown, iso-8859-N otherwise - (let (name) - (if (featurep 'xemacs) - (if (featurep 'mule) - (let* ((sy (or system buffer-file-coding-system)) - (cs (if (symbolp sy) (find-coding-system sy) sy))) - (when (coding-system-p cs) - (setq name (cdr (assq (coding-system-name - (coding-system-base cs)) - '((raw-text . iso-8859-1) - (binary . iso-8859-1) - (escape-quoted . iso-8859-1) - (iso-2022-8 . iso-8859-1) - (iso-2022-8bit-ss2 . iso-8859-1) - (iso-2022-lock . iso-8859-1) - (iso-8859-2 . iso-8859-2) - (iso-8859-3 . iso-8859-3) - (iso-8859-9 . iso-8859-9) - (iso-8859-15 . iso-8859-15) - (ctext . iso-8859-1))))))) - (setq name x-symbol-default-coding)) - (let ((cs (or system buffer-file-coding-system 'no-conversion))) - (when (coding-system-p cs) - (setq name (cdr (assq (coding-system-base cs) - '((raw-text . iso-8859-1) ; console - ;; (undecided . iso-8859-1) "-i" is correct - ;; here, see - ;; `x-symbol-set-coding-system-if-undecided' - (iso-latin-1 . iso-8859-1) - (iso-latin-1-with-esc . iso-8859-1) - (iso-latin-2 . iso-8859-2) - (iso-latin-2-with-esc . iso-8859-2) - (iso-latin-3 . iso-8859-3) - (iso-latin-3-with-esc . iso-8859-3) - (iso-latin-9 . iso-8859-9) - (iso-latin-9-with-esc . iso-8859-9) - (iso-latin-15 . iso-8859-15) - (iso-latin-15-with-esc . iso-8859-15) - (compound-text . iso-8859-1)))))))) - (if (or (null (boundp 'x-symbol-fchar-tables)) - (assq name x-symbol-fchar-tables)) - name))) - -(unless window-system - (warn "X-Symbol: only limited support on a character terminal") - (unless (and (boundp 'x-symbol-latin-force-use) - (eq x-symbol-latin-force-use 'console-user)) - (setq x-symbol-latin1-fonts nil) - (setq x-symbol-latin2-fonts nil) - (setq x-symbol-latin3-fonts nil) - (setq x-symbol-latin5-fonts nil) - (setq x-symbol-latin9-fonts nil) - (setq x-symbol-xsymb0-fonts nil) - (setq x-symbol-xsymb1-fonts nil))) - -(defvar x-symbol-default-coding - ;; TODO: make much nicer (do not use `x-symbol-buffer-coding' directly) - (cond (noninteractive 'iso-8859-1) - ((featurep 'mule) - (let* ((cs (default-value 'buffer-file-coding-system)) - (val (cond (cs - (x-symbol-buffer-coding cs)) - ((member (downcase current-language-environment) - '("english" "ascii")) - 'iso-8859-1))) - (loc (x-symbol-coding-system-from-locale))) - (and loc - (not (eq loc val)) - (warn "X-Symbol: Emacs language environment and system locale specify different encoding, I'll assume `%s'" val)) - val)) - ((x-symbol-coding-system-from-locale)) - (t - (warn "X-Symbol: cannot deduce default encoding, I'll assume `iso-8859-1'") - 'iso-8859-1)) - "Default coding used for 8bit characters in buffers. -Supported values are `iso-8859-1', `iso-8859-2', `iso-8859-3', -`iso-8859-9', `iso-8859-15', and nil. Value nil is the same as -`iso-8859-1', while disabling some uses of `x-symbol-coding'. - -Without Mule support, the value determines the coding in all buffers -with value nil for `x-symbol-coding'. With Mule support, Emacs -recognizes the coding itself. - -This value is also used to determine the canoncial character if a -character is supported by various latin charsets, see -\\[x-symbol-unalias].") - -(unless (or (memq x-symbol-default-coding - '(nil iso-8859-1 iso-8859-2 iso-8859-3 iso-8859-9)) - (and (eq x-symbol-default-coding 'iso-8859-15) - (or (not (featurep 'xemacs)) - (not (featurep 'mule)) - (fboundp 'emacs-version>=) (emacs-version>= 21 5)))) - (warn "X-Symbol: illegal `x-symbol-default-coding', I'll use nil") - (setq x-symbol-default-coding nil)) - - -;;;=========================================================================== -;;; General Configuration -;;;=========================================================================== - -(defcustom x-symbol-compose-key '(control ?\=) - "Key used to access command `x-symbol-map'. -By default, pressing this key twice invokes the GRID: \\[x-symbol-grid]. -This is a list, no vector!" - :group 'x-symbol-input-init - :type '(x-symbol-key :tag "Prefix key")) - -(defcustom x-symbol-auto-key-autoload t - "*If non-nil, pressing `x-symbol-compose-key' initialize x-symbol. -The binding of `x-symbol-compose-key' is redefined after initialization. -With value nil, you must provide a prefix argument to initialize package -X-Symbol." - :group 'x-symbol-input-init - :type 'boolean) - -(defvar x-symbol-auto-conversion-method 'auto-slow - ;;(if (featurep 'crypt) 'slow 'fast) - "Non-nil means, set up hooks for auto conversion. -Fast methods are used if this variable has value `fast'. Otherwise, -slower methods are used and \\[vc-register] or \\[vc-next-action] will -fail to decode the buffer contents. - -You should set this variable to value `slowest' if, for example, the -symbol for \\alpha looks like \\233a after \\[save-buffer] (this happens -on some systems). Value `fast' should not be used, if some other -package, e.g., crypt, adds a function to `write-file-hooks' which does -not inspect the remaining functions in this hook. - -Default value `auto-slow' is set to `fast' after the initialization of -XEmacs if package crypt has not been loaded by then.") - - -;;;=========================================================================== -;;; Known Token Languages -;;;=========================================================================== - -(defvar x-symbol-language-alist nil - "Alist of currently registered token languages. -Elements look like (LANGUAGE . NAME) where LANGUAGE is the symbol -representing and NAME is the name normally presented to the user, -see `x-symbol-language-text'. - -You should not set this variable directly, use -`x-symbol-register-language' instead!") - -(defcustom x-symbol-charsym-name "x-symbol charsym" - "Standard name of the pseudo token language x-symbol charsym. -See language access `x-symbol-LANG-name'. The pseudo language -corresponds to `x-symbol-language' having value nil and is only used for -input methods. See `x-symbol-language-text'." - :group 'x-symbol-miscellaneous - :type 'string) - -(defcustom x-symbol-tex-name "TeX macro" - "Standard name of token language `tex'. -See language access `x-symbol-LANG-name'." - :group 'x-symbol-tex - :type 'string) - -(defcustom x-symbol-tex-modes - '(tex-mode latex-mode plain-tex-mode noweb-mode) - "Major modes typically using X-Symbol with token language `tex'. -See language access `x-symbol-LANG-modes'." - :group 'x-symbol-tex - :group 'x-symbol-mode - :type '(repeat function)) - -(defcustom x-symbol-sgml-name "SGML entity" - "Standard name of token language `sgml'. -See language access `x-symbol-LANG-name'." - :group 'x-symbol-sgml - :type 'string) - -(defcustom x-symbol-sgml-modes - ;;'(sgml-mode xml-mode html-mode hm--html-mode html-helper-mode) - '(html-mode hm--html-mode html-helper-mode) - "Major modes typically using X-Symbol with language `sgml'. -See language access `x-symbol-LANG-modes'." - :group 'x-symbol-sgml - :group 'x-symbol-mode - :type '(repeat function)) - -(defcustom x-symbol-bib-name "BibTeX macro" - "Standard name of token language `bib'. -See language access `x-symbol-LANG-name'." - :group 'x-symbol-bib - :type 'string) - -(defcustom x-symbol-bib-modes '(bibtex-mode) - "Major modes typically using X-Symbol with language `bib'. -See language access `x-symbol-LANG-modes'." - :group 'x-symbol-bib - :group 'x-symbol-mode - :type '(repeat function)) - -(defcustom x-symbol-texi-name "TeXinfo command" - "Standard name of token language `texi'. -See language access `x-symbol-LANG-name'." - :group 'x-symbol-texi - :type 'string) - -(defcustom x-symbol-texi-modes '(texinfo-mode) - "Major modes typically using X-Symbol with language `texi'. -See language access `x-symbol-LANG-modes'." - :group 'x-symbol-texi - :group 'x-symbol-mode - :type '(repeat function)) - - -;;;=========================================================================== -;;; Buffer-locals -;;;=========================================================================== - -(defvar x-symbol-mode nil - "Non-nil if X-Symbol minor mode is enabled.") - -(make-variable-buffer-local 'x-symbol-mode) -(x-symbol-define-user-options 'x-symbol-mode '(t) - nil (lambda (dummy arg) (x-symbol-mode (if arg 1 0)))) - -(defvar x-symbol-language nil - "*Token language used in current buffer. -A valid value is required to turn on `x-symbol-mode' which also sets -this variable to a reasonable value if the variable is not yet -buffer-local. The value influences the conversion, i.e., decoding and -encoding of X-Symbol characters, input methods TOKEN and READ-TOKEN, -fontification of super- and subscripts, image command recognition, the -info in the echo area, etc.") - -(make-variable-buffer-local 'x-symbol-language) -(put 'x-symbol-language 'permanent-local t) -(x-symbol-define-user-options 'x-symbol-language - (lambda () (list* nil '(nil . "None") x-symbol-language-alist)) - '(x-symbol-update-modeline)) - -(defvar x-symbol-coding nil - "*Coding of 8bit characters in a file. -Determines which characters are considered to be 8bit characters for -file operations. Supported values are `iso-8859-1', `iso-8859-2', -`iso-8859-3', `iso-8859-9', and `iso-8859-15'. Value nil means a value -according to `buffer-file-coding-system' with Mule support, or the value -of `x-symbol-default-coding' without Mule support. - -With Mule support, any value other than `nil' is considered invalid if -encoding according to `buffer-file-coding-system' is neither the same as -this value nor the same as `x-symbol-default-coding'. - -Function `x-symbol-mode' sets this variable to a reasonable value if the -variable is not yet buffer-local. - -During decoding, e.g., when visiting a file, the value is always -important for the interpretation of 8bit characters, an invalid value is -considered to be equivalent to value nil. During encoding, e.g., when -saving a buffer, 8bit characters are not encoded to tokens if the value -is valid and `x-symbol-8bits' is non-nil.") - -(make-variable-buffer-local 'x-symbol-coding) -(put 'x-symbol-coding 'permanent-local t) -(x-symbol-define-user-options 'x-symbol-coding - (lambda () (cons x-symbol-default-coding x-symbol-coding-name-alist)) - '(x-symbol-update-modeline)) - -(defvar x-symbol-8bits nil - "*If non-nil, do not encode 8bit characters. -Variable `x-symbol-coding' determines which characters are assumed to be -8bit characters. Note that tokens representing 8bit characters are -always decoded, except if `x-symbol-unique' is non-nil. - -Function `x-symbol-mode' sets this variable to a reasonable value if the -variable is not yet buffer-local.") -;; TODO: link to `x-symbol-unique' - -(make-variable-buffer-local 'x-symbol-8bits) -(put 'x-symbol-8bits 'permanent-local t) -(x-symbol-define-user-options 'x-symbol-8bits '(t) - '(x-symbol-update-modeline)) - -(defvar x-symbol-unique nil - "*If non-nil, only decode canonical tokens. -Canonical tokens are those which are produced when X-Symbol encodes the -corresponding character. If `x-symbol-8bits' is non-nil, do not decode -tokens which would be decoded to 8bit characters according to -`x-symbol-coding'. - -Function `x-symbol-mode' sets this variable to a reasonable value if the -variable is not yet buffer-local.") - -(make-variable-buffer-local 'x-symbol-unique) -(put 'x-symbol-unique 'permanent-local t) -(x-symbol-define-user-options 'x-symbol-unique '(t) - '(x-symbol-update-modeline)) - -(defvar x-symbol-subscripts nil - "*If non-nil, use special fonts to display super- and subscripts. -This feature must be supported by the token language via language access -`x-symbol-LANG-subscript-matcher'. Some parts of the text might be -invisible, see also variable `x-symbol-reveal-invisible'. - -Function `x-symbol-mode' sets this variable to a reasonable value if the -variable is not yet buffer-local.") - -(make-variable-buffer-local 'x-symbol-subscripts) -(x-symbol-define-user-options 'x-symbol-subscripts '(t) - '(x-symbol-update-modeline x-symbol-fontify)) - -(defvar x-symbol-image nil - "*If non-nil, show little glyphs after image insertion commands. -This feature must be supported by the token language via language access -`x-symbol-LANG-image-keywords'. - -Function `x-symbol-mode' sets this variable to a reasonable value if the -variable is not yet buffer-local.") - -(make-variable-buffer-local 'x-symbol-image) -(x-symbol-define-user-options 'x-symbol-image '(t) - '(x-symbol-update-modeline) 'x-symbol-set-image) - - -;;;=========================================================================== -;;; Minor mode control -;;;=========================================================================== - -(defcustom x-symbol-auto-mode-suffixes (x-symbol-auto-mode-suffixes) - "*Regexps matching file suffixes not to be considered. -All suffixes from a file name matching these regexps are deleted before -the file name is used for `x-symbol-auto-mode-alist'. The default value -includes the REGEXP in all three-valued elements of `auto-mode-alist', -at definition time, of course." - :group 'x-symbol-mode - :type '(repeat regexp)) - -(defcustom x-symbol-auto-8bit-search-limit nil - "*Limits search for 8bit characters in the file. -Used when finding an appropriate value for `x-symbol-8bits'. See also -`x-symbol-mode'." - :group 'x-symbol-mode - :type '(choice (const :tag "No limit" nil) (integer :tag "Limit"))) - -(defcustom x-symbol-auto-style-alist nil - ;; TODO: docstring outdated - "*Alist to setup X-Symbol values for buffers visiting files. -Elements look like - (MATCH LANGUAGE MODE-ON CODING 8BITS UNIQUE SUBSCRIPTS IMAGE) -or - (MATCH LANGUAGE . VARIABLE) - -If MATCH matches a buffer in which command `x-symbol-mode' is invoked, -the rest of the element is used to setup some buffer-local x-symbol -specific variables. If no element matches, set `x-symbol-language' to -the symbol property `x-symbol-language' of the major mode symbol if the -variable is not already buffer-local. - -If `x-symbol-mode' is not already buffer-local, MODE-ON determines -whether to turn the mode on with `turn-on-x-symbol-conditionally'. -LANGUAGE, CODING, 8BITS, UNIQUE, SUBSCRIPTS and IMAGE are used to set -`x-symbol-language', `x-symbol-coding', `x-symbol-8bits', -`x-symbol-unique', `x-symbol-subscripts' and `x-symbol-image' if these -values are not already buffer-local. - -MATCH is either a list of major modes which must include the mode of the -current buffer or a regexp matching the file name ignoring some -suffixes, see `x-symbol-auto-mode-suffixes', or a value used directly. - -MODE-ON, LANGUAGE, CODING, 8BITS, UNIQUE, SUBSCRIPTS and IMAGE are -`eval'ed in that order. During the evaluation, `x-symbol-mode' is -non-nil according to MODE-ON. - -VARIABLE is a symbol whose value contains the above mentioned values, -see the language access `x-symbol-LANG-auto-style'." - :group 'x-symbol-mode - :type '(repeat (cons :format "%v" - (choice (repeat :tag "In major modes" - :menu-tag "In major modes" - (function :value text-mode)) - (regexp :tag "When matched by") - (function :tag "Predicate")) - (cons :format "%v" - (symbol :tag "Token language") - ;;(x-symbol-auto-style :inline t)))) - (choice (x-symbol-auto-style - :menu-tag "Values" - :format "\n%v") - (variable :tag "Like variable")))))) - -(defvar x-symbol-mode-disable-alist nil) -;; just a `defvar' people should know what they are doing... - - -;;;=========================================================================== -;;; Images -;;;=========================================================================== - -(defun x-symbol-image-set-colormap (var value) - "Set VAR's value to VALUE. -Custom set function of `x-symbol-image-colormap-allocation' and -`x-symbol-image-convert-colormap'." - (if var (set var value)) - (if (boundp 'x-symbol-image-convert-colormap) - (put 'x-symbol-image-convert-colormap 'x-symbol-image-instance - (and (boundp 'x-symbol-image-colormap-allocation) - x-symbol-image-colormap-allocation - x-symbol-image-convert-colormap - (if (featurep 'xemacs) - (make-image-instance - (vector x-symbol-image-colormap-allocation - :file x-symbol-image-convert-colormap) - nil nil t) - (create-image x-symbol-image-convert-colormap - x-symbol-image-colormap-allocation)))))) - -(defcustom x-symbol-image-colormap-allocation 'xpm - "If non-nil, prevent colors in colormap to be de-allocated. -The non-nil value should be an image format. See -`x-symbol-image-convert-colormap'." - :group 'x-symbol-image-general - :initialize 'custom-initialize-default - :set 'x-symbol-image-set-colormap - :type '(choice (const :tag "Colors can be de-allocated" nil) - (const :tag "Colormap is xpm file" xpm) - (symbol :tag "Other image format"))) - -(defcustom x-symbol-image-convert-colormap - (and x-symbol-data-directory - (expand-file-name "colormap138.xpm" x-symbol-data-directory)) - "File name of colormap files. -Used by `x-symbol-image-start-convert-colormap' for image cache file -names not matched by `x-symbol-image-convert-mono-regexp'. See also -`x-symbol-image-colormap-allocation'." - :group 'x-symbol-image-general - :initialize 'custom-initialize-default - :set 'x-symbol-image-set-colormap - :type '(choice (const :tag "No map" nil) file)) - - - -;;;;########################################################################## -;;;; Code -;;;;########################################################################## - - -(defalias 'x-symbol-cset-registry 'caaar) -(defalias 'x-symbol-cset-coding 'cdaar) -(defalias 'x-symbol-cset-leading 'cadar) -(defalias 'x-symbol-cset-score 'caddar) -(defalias 'x-symbol-cset-left 'cadr) -(defalias 'x-symbol-cset-right 'cddr) - -(defvar x-symbol-input-initialized nil - "Internal. If non-nil, the input methods are initialized.") - - -;;;=========================================================================== -;;; Key autoload -;;;=========================================================================== - -;;;###autoload -(defun x-symbol-key-autoload (&optional arg) - "Initialize package x-symbol and use the keys for this command again. -Package x-symbol and the functions in `x-symbol-load-hook' should -re-bind all key-sequence which invoke this command. You should provide -a prefix argument ARG to this command if `x-symbol-auto-key-autoload' is -nil." - (interactive "P") - (when x-symbol-input-initialized - (error "%s should be rebound in `x-symbol-init-input-hook'" - (key-description (this-command-keys)))) - (unless (or arg x-symbol-auto-key-autoload) - (error "Use %s with prefix argument to initialize the input methods" - (key-description (this-command-keys)))) - (let ((this (append (this-command-keys) nil))) - ;; for some reason this loop is necessary... - (while (and this (null (eq (key-binding (vector (car this))) this-command))) - (setq this (cdr this))) - (setq prefix-arg arg) - (setq unread-command-events this)) - (x-symbol-init-input)) - -;;;###autoload -(defalias 'x-symbol-map-autoload 'x-symbol-key-autoload) - - -;;;=========================================================================== -;;; Minor mode, fontification -;;;=========================================================================== - -(defun x-symbol-buffer-file-name () - (when buffer-file-name - (let ((name (file-name-sans-versions buffer-file-name)) - (case-fold-search (eq system-type 'vax-vms)) - (suffixes x-symbol-auto-mode-suffixes)) - (while suffixes - (and (string-match (pop suffixes) name) - (< (match-beginning 0) (length name)) - ; protect against stupid regexp - (setq name (substring name 0 (match-beginning 0)) - suffixes x-symbol-auto-mode-suffixes))) - name))) - -(defun x-symbol-auto-set-variable (symbol form) - "Set SYMBOL's value to evaluated FORM if SYMBOL is not buffer-local." - (or (local-variable-p symbol (current-buffer)) - (set symbol (eval form)))) - -;;;###autoload -(defun x-symbol-mode (&optional arg special) - "Toggle X-Symbol mode. -Toggle X-Symbol mode. If provided with a prefix argument, turn X-Symbol -mode on if the numeric value of the argument is positive, else turn it -off. If no token language can be deduced, ask for a token language; if -provided with a non-numeric prefix argument, always ask. - -By default, X-Symbol mode is disabled in special major-modes visiting a -file, e.g., `vm-mode'. Use a prefix argument to be asked whether to -turn in on anyway. - -When not already defined, various buffer-local variables are set when -turning on X-Symbol. See `x-symbol-auto-style-alist' and the language -access `x-symbol-LANG-modes'. - -Turning X-Symbol mode on requires a valid `x-symbol-language' and also -decodes tokens if the mode was turned off before, see -\\[x-symbol-decode-recode]. Turning X-Symbol mode off also encodes -x-symbol characters if the mode was turned on before, see -\\[x-symbol-encode-recode]. If optional argument SPECIAL has value -`init', the old mode status is assumed to be off." - (interactive (list current-prefix-arg 'interactive)) - (if (eq special 'init) (setq x-symbol-mode nil)) - (let* ((old-mode (if (eq special 'init) nil x-symbol-mode)) - (new-mode (if arg (> (prefix-numeric-value arg) 0) (not old-mode))) - (disabled0 (assq major-mode x-symbol-mode-disable-alist)) - (disabled1 (if disabled0 - (cdr disabled0) - (get major-mode 'x-symbol-mode-disable))) - (disabled (cond (old-mode nil) - ((null new-mode) nil) - ((null disabled1) - (and buffer-file-name (get major-mode 'mode-class) t)) - ((eq disabled1 'error)) - ((stringp disabled1) disabled1) - ((functionp disabled1) (funcall disabled1))))) - (setq x-symbol-mode nil) - (when disabled - (if (and (eq special 'interactive) - arg - (yes-or-no-p - (format "Cannot use X-Symbol with %s Mode. Turn on anyway? " - mode-name))) - (setq disabled nil) - (or (stringp disabled) - (setq disabled (format "%s Mode does not allow to turn on X-Symbol" - mode-name))) - (setq new-mode nil))) - (when new-mode - (let* ((buffer-file-name (x-symbol-buffer-file-name)) - (buffer-name (or buffer-file-name (buffer-name))) - (alist x-symbol-auto-style-alist) - (style (get major-mode 'x-symbol-style)) - ;; WARNING: `values' is a global variable which is set during GC - ;; (and we have dynamic scoping)! major-modes can set a specific - ;; language - matcher) - (while alist - (setq matcher (caar alist)) - (if (cond ((stringp matcher) (string-match matcher buffer-name)) - ((consp matcher) (memq major-mode matcher)) - ((functionp matcher) (funcall matcher))) - (setq style (cdar alist) - alist nil) - (setq alist (cdr alist)))) - (unless style - (let ((langs x-symbol-language-alist)) - (while langs - (if (memq major-mode - (symbol-value (get (caar langs) 'x-symbol-LANG-modes))) - (setq style (cons (caar langs) t) - langs nil) - (setq langs (cdr langs)))))) - (if (car style) - (or (local-variable-p 'x-symbol-language (current-buffer)) - (setq x-symbol-language (car style)))) - ;; check language ---------------------------------------------------- - (if (and x-symbol-language - (symbolp x-symbol-language) - (get x-symbol-language 'x-symbol-LANG-feature)) - (when (and (eq special 'interactive) (consp arg)) - (setq x-symbol-language - (x-symbol-read-language - (format "Token Language for X-Symbol mode (default %s): " - (x-symbol-language-text)) - x-symbol-language 'cdr))) - (if (eq special 'interactive) - (or (setq x-symbol-language - (x-symbol-read-language - "Token Language for X-Symbol mode: " nil 'cdr)) - (setq disabled - "A valid token language is required to turn on X-Symbol")) - ;; no simple `setq': prevent making `x-symbol-language' buffer-local - (if x-symbol-language (setq x-symbol-language nil))) - (setq style nil)) - (when x-symbol-language - (require (get x-symbol-language 'x-symbol-LANG-feature)) - (setq style - (cond ((or (null style) (eq (cdr style) t) - (not (eq (car style) x-symbol-language))) - (symbol-value (get x-symbol-language - 'x-symbol-LANG-auto-style))) - ((and (symbolp (cdr style)) (boundp (cdr style))) - (symbol-value (cdr style))) - (t - (cdr style)))) - (setq x-symbol-mode (eval (car style))) - (x-symbol-auto-set-variable 'x-symbol-coding (cadr style)) - (or (local-variable-p 'x-symbol-8bits (current-buffer)) - (setq x-symbol-8bits (or (eval (caddr style)) - (x-symbol-auto-8bit-search - x-symbol-auto-8bit-search-limit)) - ;; use value `null' to disable 8bit char search - x-symbol-8bits (and (not (eq x-symbol-8bits 'null)) - x-symbol-8bits))) - (x-symbol-auto-set-variable 'x-symbol-unique (cadddr style)) - (x-symbol-auto-set-variable 'x-symbol-subscripts (nth 4 style)) - (x-symbol-auto-set-variable 'x-symbol-image (nth 5 style)) - (or (and (eq special 'init) (null arg)) - (setq x-symbol-mode new-mode))))) - (if (eq special 'init) - (if x-symbol-mode (x-symbol-mode-internal t)) - (x-symbol-mode-internal (and x-symbol-language - (eq (null old-mode) (and x-symbol-mode t)))) - (and disabled - (eq special 'interactive) - (error (if (stringp disabled) - disabled - "Cannot turn on X-Symbol mode")))))) - -;;;###autoload -(defun turn-on-x-symbol-conditionally () - "Turn on x-symbol mode conditionally, see `x-symbol-mode'. -Call `x-symbol-mode' with SPECIAL having value `init'." - (x-symbol-mode (and (local-variable-p 'x-symbol-mode (current-buffer)) - (if x-symbol-mode 1 0)) - 'init)) - -;;;###autoload -(defun x-symbol-fontify (&optional beg end) - "Re-fontify region between BEG and END." - (interactive (and (region-active-p) (list (region-beginning) (region-end)))) - (cond ((not font-lock-mode) (turn-on-font-lock)) - ((and (featurep 'xemacs) (boundp 'lazy-shot-mode) lazy-shot-mode) - ;; copied from lazy-shot: - (setq font-lock-fontified - (and lazy-shot-minimum-size - (>= (buffer-size) lazy-shot-minimum-size))) - (lazy-shot-install-extents (point-min) (point-max) - font-lock-fontified)) - ((and (featurep 'xemacs) (boundp 'lazy-lock-mode) lazy-lock-mode) - ;; copied from lazy-lock: - (let ((modified (buffer-modified-p)) (inhibit-read-only t) - (buffer-undo-list t) - ;;deactivate-mark - buffer-file-name buffer-file-truename) - (remove-text-properties (or beg 1) (or end (1+ (buffer-size))) - '(fontified nil)) - (or modified (set-buffer-modified-p nil)))) - (t - (font-lock-fontify-buffer)))) - - -;;;=========================================================================== -;;; comint support -;;;=========================================================================== - -(defun x-symbol-comint-output-filter (dummy) - ;; checkdoc-params: (dummy) - "Decode output of comint's process. -Used as value in `comint-output-filter-functions'." - (and x-symbol-mode x-symbol-language - (x-symbol-decode-region - (if (interactive-p) comint-last-input-end comint-last-output-start) - (process-mark (get-buffer-process (current-buffer)))))) - -(defun x-symbol-comint-send (proc string) - "Encode STRING and send it to process PROC. -Used as value of `comint-input-sender', uses -`x-symbol-orig-comint-input-sender'." - (and x-symbol-mode x-symbol-language - (setq string (x-symbol-encode-string string (current-buffer)))) - (funcall x-symbol-orig-comint-input-sender proc string)) - - -;;;=========================================================================== -;;; Hooks for automatic conversion -;;;=========================================================================== - -;; TODO: for format fns: check whether read-only stuff is still necessary... -;; TODO: check the narrow-to-region stuff - -(defun x-symbol-format-decode (start end) - (if (and x-symbol-mode x-symbol-language) - (save-restriction - (narrow-to-region start end) - (let ((modified (buffer-modified-p)) ; t if `recover-file'! - ;;(buffer-undo-list t) ; do not record changes - ;; we cannot set buffer-undo-list to t even if the previous - ;; value is nil because M-x insert-file as the first command - ;; after reading a file would set the old insert-region - ;; boundaries into the undo-list - (buffer-read-only nil) ; always allow conversion - (inhibit-read-only t) - (first-change-hook nil) ; no `flyspell-mode' here - (after-change-functions nil)) ; no fontification -;;; (and orig-buffer -;;; (not (eq (current-buffer) orig-buffer)) -;;; (x-symbol-inherit-from-buffer orig-buffer)) - (x-symbol-decode-all) - (or modified (set-buffer-modified-p nil)) - (point-max))) - end)) - -(defun x-symbol-format-encode (start end orig-buffer) - (let ((new-buffer (current-buffer))) - (if (eq new-buffer orig-buffer) - (and x-symbol-mode x-symbol-language - (save-restriction - (narrow-to-region start end) - (x-symbol-encode-all))) - (set-buffer orig-buffer) - (and x-symbol-mode x-symbol-language - (if (featurep 'mule) - (let ((cs buffer-file-coding-system)) - (x-symbol-encode-all new-buffer) - (setq buffer-file-coding-system cs)) - (x-symbol-encode-all new-buffer)))))) - -(defun x-symbol-after-insert-file (len) - ;; checkdoc-params: (len) - "Decode tokens, e.g., after \\[vc-register] or \\[vc-next-action]. -Added to `after-insert-file-functions' if -`x-symbol-auto-conversion-method' has value `fast'." - ;; TODO (outdated?, dropped coding): in old XEmacsen, there is no way to know - ;; the start position of the region. If `insert-file-contents' is called - ;; with argument REPLACE being non-nil, it is not always point. Thus, we use - ;; `point-min', except when called from `M-x insert-file'. - - ;; The docstring of `after-insert-file-functions' talks about bytes, but that - ;; seems to be nonsense and doesn't match the coding in lisp/format.el, - ;; must be checked with src/fileio.c. - (and x-symbol-mode x-symbol-language - (if (<= (+ (point) len) (point-max)) - (save-restriction - (narrow-to-region (point) (+ (point) len)) - (let ((origpos (point)) - (modified (buffer-modified-p)) ; t if `recover-file'! - ;;(buffer-undo-list t) ; do not record changes - ;; we cannot set buffer-undo-list to t even if the previous - ;; value is nil because M-x insert-file as the first command - ;; after reading a file would set the old insert-region - ;; boundaries into the undo-list - (buffer-read-only nil) ; always allow conversion - (inhibit-read-only t) - (first-change-hook nil) ; no `flyspell-mode' here - (after-change-functions nil)) ; no fontification - (x-symbol-decode-all) - (goto-char origpos) - (or modified (set-buffer-modified-p nil)) - (setq len (- (point-max) (point-min))))) - (lwarn 'x-symbol 'warning - ;; might leed to quite a few warnings with old XEmacs, get those - "Wrong point position %d (len: %d, max: %d) provided by Emacs for functions in `after-insert-file-functions'" (point) len (point-max)))) - len) - -(defun x-symbol-write-region-annotate-function (start end) - ;; checkdoc-params: (start end) - "Encode x-symbol characters using another buffer. -Added to `write-region-annotate-functions' if -`x-symbol-auto-conversion-method' has value `fast'." - (and x-symbol-mode x-symbol-language - (not (equal start "")) ; kludgy feature of `write-region' - ;; Without the test, "x-symbol.el" is loaded twice, the initialization - ;; done twice (resulting in warnings about charsym redefinitions). - ;; Reason: in Emacs, `make-temp-name', used for the value of some var in - ;; "x-symbol-vars.el", required by "x-symbol.el", calls `write-region'. - (let ((selective selective-display)) - ;; at least in XEmacs, this function might be called with both args - ;; nil - (x-symbol-encode-all (get-buffer-create " x-symbol conversion") - (or start (point-min)) (or end (point-max))) - ;; set `selective-display' according to orig buffer - (setq selective-display selective))) - nil) - -(defun x-symbol-write-file-hook () - "Encode x-symbol characters in current buffer. -Added to `write-file-hooks' if `x-symbol-auto-conversion-method' has a -value other than nil or `fast'. Refontifies buffer if -`x-symbol-auto-conversion-method' has value `slowest'." - (and x-symbol-mode x-symbol-language - (let ((buffer-read-only nil) - ;; `buffer-read-only' is only dec/ if `inhibit-read-only' doesn't - ;; exist. TODO: check whether still nec/ in XEmacs-21.1 - (inhibit-read-only t) - (inhibit-modification-hooks t) ; Emacs only: then - ; `after-change-functions' not nec/ - (first-change-hook nil) ; no `flyspell-mode' here - (after-change-functions nil)) ; no fontification! - (widen) ;; Called inside `save-recursion' and `save-restriction'. - ;; TODO: define a common macro in x-symbol-macs.el instead, which can - ;; also be used in `x-symbol-tex-translate-locations', it has an - ;; addition argument for the var `changed' there, with that arg: no - ;; `unwind-protect' - (if (featurep 'xemacs) - (call-with-transparent-undo - (lambda () - (x-symbol-encode-all) - (continue-save-buffer))) - ;; not called inside `save-excursion' in Emacs >= 20.3 - (save-excursion - (let ((buffer-undo-list nil) - ;; Kludge to prevent undo list truncation: - (undo-limit most-positive-fixnum) ; Emacs - (undo-strong-limit most-positive-fixnum) ; Emacs - (undo-high-threshold -1) ; XEmacs - (undo-threshold -1)) ; XEmacs - (unwind-protect - (let ((file-hooks (cdr (memq 'x-symbol-write-file-hook - (default-value - 'write-file-hooks)))) - setmodes) - (x-symbol-encode-all) - (or (run-hook-with-args-until-success 'file-hooks) - (setq setmodes (basic-save-buffer-1))) - ;; See `basic-save-buffer'. TODO: do I also have to set the - ;; coding system and `buffer-file-number'? - (if setmodes - (condition-case () - (set-file-modes buffer-file-name setmodes) - (error nil)))) - (let ((tail buffer-undo-list)) - (setq buffer-undo-list t) - (while tail - (setq tail (primitive-undo (length tail) tail)))))))) - (and (eq x-symbol-auto-conversion-method 'slowest) - font-lock-mode - (x-symbol-fontify)) - (set-buffer-modified-p nil) - 'x-symbol-write-file-hook))) ; do not write again - - -;;;=========================================================================== -;;; Init -;;;=========================================================================== - -(defvar x-symbol-modeline-string "" - "String that should appear in the modeline when `x-symbol-mode' is on. -Its value is set by `x-symbol-update-modeline'.") -(make-variable-buffer-local 'x-symbol-modeline-string) - -(defvar x-symbol-mode-map - (let ((m (make-sparse-keymap))) - ;; (substitute-key-definition 'x-symbol-map-autoload 'x-symbol-map - ;; m global-map) - m)) - -(add-minor-mode 'x-symbol-mode 'x-symbol-modeline-string x-symbol-mode-map) -(put 'x-symbol-mode :menu-tag "X-Symbol") - -(defconst x-symbol-early-language-access-alist - '((x-symbol-LANG-name "name" nil stringp) - (x-symbol-LANG-modes "modes" t listp) ; TODO: non-optional - (x-symbol-LANG-auto-style "auto-style" require))) - -(defun x-symbol-init-language-accesses (language alist) - "Initialize accesses for token language LANGUAGE according to ALIST. -The symbol property `x-symbol-feature' of LANGUAGE must be set before. -See also `x-symbol-language-access-alist'." - ;;If optional NO-TEST is nil, accesses which do not point to a bound - ;;variable are not set. - (let ((feature (get language 'x-symbol-LANG-feature)) - (ok t) - symbol) - (dolist (item alist) - (setq symbol (intern (format "%s-%s" feature (cadr item)))) - (if (not (or (boundp symbol) (eq (caddr item) 'require))) - (or (eq (caddr item) t) ; optional access - (and (caddr item) (not (get language (caddr item)))) - (progn - (lwarn feature 'error - "Token language `%s' does not define `%s'" language symbol) - (setq ok nil)) - (put language (car item) symbol)) - (or (null (cadddr item)) - (caddr item) ; optional access: value nil always ok - (funcall (cadddr item) (symbol-value symbol)) - (progn - (lwarn feature 'error - "Token language `%s' uses illegal type for value of `%s'" - language symbol) - (setq ok nil))) - (put language (car item) symbol))) - ok)) - -;;;###autoload -(defun x-symbol-register-language (language feature &optional modes) - "Register token language LANGUAGE. -FEATURE is a feature which `provide's LANGUAGE. MODES are major modes -which typically use LANGUAGE. Using LANGUAGE's accesses will initialize -LANGUAGE, see `x-symbol-language-value'." - (unless (get language 'x-symbol-LANG-feature) - (put language 'x-symbol-LANG-feature feature)) - (unless - (x-symbol-init-language-accesses language - x-symbol-early-language-access-alist) - (error "Registration of X-Symbol language `%s' has failed" language)) - (dolist (mode modes) (put mode 'x-symbol-style (cons language t))) - (unless (assq language x-symbol-language-alist) - (setq x-symbol-language-alist - (nconc x-symbol-language-alist - (list (cons language - (symbol-value - (get language 'x-symbol-LANG-name)))))))) - -;;;###autoload -(defun x-symbol-initialize (&optional arg) - "Initialize package X-Symbol. -See variable `x-symbol-initialize' and function `x-symbol-after-init'. -Also allocate colormap, see `x-symbol-image-colormap-allocation'. -Unless optional argument ARG is non-nil, do not initialize package -X-Symbol twice." - (interactive "P") - (unless (and (get 'x-symbol 'x-symbol-initialized) (null arg)) - (put 'x-symbol 'x-symbol-initialized t) - ;; X-Symbol doesn't make sense without the following. `ctl-arrow' is a - ;; boolean in Emacs, but not in XEmacs: despite its docstring, value t - ;; means the same as 256 (and 255 sometimes, which is probably wrong). - (or (default-value 'ctl-arrow) (setq-default ctl-arrow 'iso-8859/1)) - ;; Token languages ------------------------------------------------------- - (when (or (eq x-symbol-initialize t) - (memq 'languages x-symbol-initialize)) - (x-symbol-register-language 'tex 'x-symbol-tex) - (x-symbol-register-language 'sgml 'x-symbol-sgml) - (x-symbol-register-language 'bib 'x-symbol-bib) - (x-symbol-register-language 'texi 'x-symbol-texi)) - ;; Global mode ----------------------------------------------------------- - (when (or (eq x-symbol-initialize t) - (memq 'global x-symbol-initialize)) - (add-hook 'hack-local-variables-hook 'turn-on-x-symbol-conditionally)) - ;; Key bindings ---------------------------------------------------------- - (when (or (eq x-symbol-initialize t) - (memq 'keys x-symbol-initialize)) - (global-set-key (vector x-symbol-compose-key) 'x-symbol-map-autoload) - (unless (featurep 'xemacs) - (define-key isearch-mode-map (vector x-symbol-compose-key) nil) - ;;(define-key isearch-mode-map [mouse-2] 'isearch-mouse-2) - (define-key isearch-mode-map [menu-bar X-Symbol] nil)) - (global-set-key [(control ?\,)] 'x-symbol-modify-key) - (global-set-key [(control ?\.)] 'x-symbol-rotate-key)) - ;; Font path ------------------------------------------------------------- - (and (or (eq x-symbol-initialize t) - (memq 'font-path x-symbol-initialize)) - x-symbol-font-directory - (file-accessible-directory-p x-symbol-font-directory) - ;; by Jim Radford <radford@robby.caltech.edu>: - (memq (console-type) '(x gtk)) - (if (fboundp 'x-set-font-path) ; XEmacs >= 21.4 - (let ((font-path (x-get-font-path))) - (condition-case nil - (unless (or (member (file-name-as-directory - x-symbol-font-directory) font-path) - (member (directory-file-name - x-symbol-font-directory) font-path)) - (x-set-font-path (nconc font-path - (list x-symbol-font-directory))) - nil) - (t - (lwarn 'x-symbol 'error - "Couldn't add %s to X font path" x-symbol-font-directory) - t))) ; (error t) doesn't work (XEmacs bug?) - ;; This should be commented out until I can figure out how to - ;; get the display name into the -display arg for xset. - (with-temp-buffer - (call-process "xset" nil t nil "q") - (goto-char (point-min)) - (unless (search-forward (directory-file-name - x-symbol-font-directory) nil t) - (not (eq 0 (call-process "xset" nil nil nil "fp+" - x-symbol-font-directory)))))) - ;; one cause: other dir with X-Symbol fonts already exists (old - ;; installation) - (lwarn 'x-symbol 'error - "Couldn't add %s to X font path" x-symbol-font-directory)) - ;; Package fast-lock ----------------------------------------------------- - (when (or (eq x-symbol-initialize t) - (memq 'fast-lock x-symbol-initialize)) - (setq fast-lock-save-faces nil)) - ;; Package AucTeX ---------------------------------------------------------- - (when (or (eq x-symbol-initialize t) - (memq 'auctex x-symbol-initialize)) - (or (fboundp 'x-symbol-tex-error-location) ; esp for preview-latex - (fset 'x-symbol-tex-error-location 'ignore)) - (add-hook 'TeX-translate-location-hook 'x-symbol-tex-error-location) - (add-hook 'TeX-region-hook 'x-symbol-inherit-from-buffer) ; v9.8a+ - (setq LaTeX-math-insert-function 'x-symbol-auctex-math-insert)) ; v9.8a+ - ;; Package RefTeX -------------------------------------------------------- - (when (or (eq x-symbol-initialize t) - (memq 'reftex x-symbol-initialize)) - (unless (and (boundp 'reftex-translate-to-ascii-function) - (fboundp reftex-translate-to-ascii-function) - (not (eq reftex-translate-to-ascii-function - 'reftex-latin1-to-ascii))) - (setq reftex-translate-to-ascii-function 'x-symbol-translate-to-ascii)) - (add-hook 'reftex-pre-refontification-functions - 'x-symbol-inherit-from-buffer) - (unless (featurep 'mule) - ;; RefTeX might be invoked from a TeX buffer without X-Symbol - (or (fboundp 'x-symbol-nomule-fontify-cstrings) - (fset 'x-symbol-nomule-fontify-cstrings 'ignore)) - (add-hook 'reftex-display-copied-context-hook - 'x-symbol-nomule-fontify-cstrings))) - ;; Miscellaneous --------------------------------------------------------- - (x-symbol-image-set-colormap nil nil) - (if init-file-loaded - (x-symbol-after-init) - (add-hook 'after-init-hook 'x-symbol-after-init)))) - -(defun x-symbol-after-init () - "Late initialization for package X-Symbol. -See function `x-symbol-initialize' and variables `x-symbol-initialize' -and `x-symbol-auto-conversion-method'. Also add elements to -`x-symbol-auto-mode-suffixes' if necessary." - (when x-symbol-auto-conversion-method - (and (eq x-symbol-auto-conversion-method 'auto-slow) - (null (featurep 'crypt)) - (setq x-symbol-auto-conversion-method 'fast)) - (cond ((eq x-symbol-auto-conversion-method 'format) - (or (assq 'x-symbol format-alist) - (push '(x-symbol "X-Symbol" nil - x-symbol-format-decode x-symbol-format-encode - t x-symbol-mode t) - format-alist))) - ((eq x-symbol-auto-conversion-method 'fast) - (add-hook 'after-insert-file-functions - 'x-symbol-after-insert-file t) - ;; If we don't use APPEND for the hook below, we must use APPEND for - ;; the hook above (and v/v). For Emacs-21.2, using APPEND when - ;; inserting is the only correct one, because function - ;; `after-insert-file-set-buffer-file-coding-system', which has been - ;; added to the hook, must run first (BTW, also for format.el...). - (add-hook 'write-region-annotate-functions - 'x-symbol-write-region-annotate-function)) - ((and (not (featurep 'xemacs)) - (local-variable-p 'write-file-hooks)) - (error "Cannot use X-Symbol with crypt.el/crypt++.el and local `write-file-hooks'")) - (t - (add-hook 'write-file-hooks 'x-symbol-write-file-hook)))) - ;; misc user additions to `auto-mode-alist': - (setq x-symbol-auto-mode-suffixes (x-symbol-auto-mode-suffixes - x-symbol-auto-mode-suffixes)) - ;; Package comint ---------------------------------------------------------- - (when (or (eq x-symbol-initialize t) - (memq 'comint x-symbol-initialize)) - (add-hook 'comint-output-filter-functions 'x-symbol-comint-output-filter) - (and (boundp 'comint-input-sender) - (not (eq comint-input-sender 'x-symbol-comint-send)) - (setq x-symbol-orig-comint-input-sender comint-input-sender)) - (setq comint-input-sender 'x-symbol-comint-send)) - ;; Package bib-cite: X-Symbol decoding would overwrite cite highlighting with - ;; normal installation of bib-cite ----------------------------------------- - (when (and (or (eq x-symbol-initialize t) - (memq 'bib-cite x-symbol-initialize)) - (or (and (boundp 'LaTeX-mode-hook) - (memq 'turn-on-bib-cite LaTeX-mode-hook)) - (and (boundp 'latex-mode-hook) - (memq 'turn-on-bib-cite latex-mode-hook)))) - (remove-hook 'LaTeX-mode-hook 'turn-on-bib-cite) - (remove-hook 'latex-mode-hook 'turn-on-bib-cite) - (add-hook 'find-file-hooks 'x-symbol-turn-on-bib-cite))) - - -;;;=========================================================================== -;;; Support for other packages -;;;=========================================================================== - -(defun x-symbol-inherit-from-buffer (&optional parent action) - "Inherit X-Symbol's buffer-local variables from buffer PARENT. -Inherit `x-symbol-mode', `x-symbol-coding', `x-symbol-8bits', -`x-symbol-language', and `x-symbol-subscripts' from PARENT and set -`x-symbol-image' to nil. If PARENT is nil, `orig-buffer' is used if -it is bound. ACTION is ignored." - (and (null parent) (boundp 'orig-buffer) (setq parent orig-buffer)) - ;; I don't care too much that people who use X-Symbol in the master buffer, - ;; but not in the buffer where they invoke M-x TeX-command-region from, won't - ;; have the X-Symbol characters in the "master envelope" decoded... - (if (buffer-live-p (get-buffer parent)) - (let (mode-on coding 8bits unique language subscripts) - (save-excursion - (set-buffer parent) - (setq mode-on x-symbol-mode - coding x-symbol-coding - 8bits x-symbol-8bits - unique x-symbol-unique - language x-symbol-language - subscripts x-symbol-subscripts)) - (setq x-symbol-mode mode-on) - (if (local-variable-p 'x-symbol-coding parent) - (setq x-symbol-coding coding)) - (if (local-variable-p 'x-symbol-8bits parent) - (setq x-symbol-8bits 8bits)) - (if (local-variable-p 'x-symbol-unique parent) - (setq x-symbol-unique unique)) - (if (local-variable-p 'x-symbol-language parent) - (setq x-symbol-language language)) - (if (local-variable-p 'x-symbol-subscripts parent) - (setq x-symbol-subscripts subscripts)) - (setq x-symbol-image nil)))) - -(defun x-symbol-auctex-math-insert (string) - "Insert the character for \\STRING. -Used as value for `LaTeX-math-insert-function'." - (let ((cstring (and x-symbol-mode x-symbol-language - (x-symbol-decode-single-token (concat "\\" string))))) - (if cstring - (insert cstring) - (TeX-insert-macro string)))) - -(defun x-symbol-turn-on-bib-cite () - "Run `turn-on-bib-cite' if we are in `latex-mode'. -Added to `find-file-hooks' if the initialization for X-Symbol has -removed `turn-on-bib-cite' from `LaTeX-mode-hook' or `latex-mode-hook'. -See variable `x-symbol-initialize'." - (if (eq major-mode 'latex-mode) (turn-on-bib-cite))) - -;;; Local IspellPersDict: .ispell_xsymb -;;; x-symbol-hooks.el ends here diff --git a/x-symbol/lisp/x-symbol-image.el b/x-symbol/lisp/x-symbol-image.el deleted file mode 100644 index 525c3c7c..00000000 --- a/x-symbol/lisp/x-symbol-image.el +++ /dev/null @@ -1,796 +0,0 @@ -;;; x-symbol-image.el --- display glyphs at the end of image insertion commands - -;; Copyright (C) 1997-1999, 2001, 2003 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: 4.5 -;; 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 requires file `x-symbol.el which does some initialization. Thus, -;; do not put any `defcustom' commands into this file. If you think some -;; variables in this files should be customized, move them to file -;; `x-symbol-vars.el'. - -;;; Code: - -(provide 'x-symbol-image) -(require 'x-symbol) -(eval-when-compile (require 'cl)) - - - -;;;;########################################################################## -;;;; Main code -;;;;########################################################################## - - -(defvar x-symbol-image-process-buffer "*x-symbol-image conversion*" - "Name of the image conversion buffer.") - -(defvar x-symbol-image-process-name "Image-Conversion" - "Name of the image conversion process.") - -(defvar x-symbol-image-highlight-map - (let ((map (make-sparse-keymap))) - ;; CW: two independend `when's or one `if' or 2*2 `when's ? - (if (lookup-key global-map [(button2)]) - (progn - ;; XEmacs bindings - (define-key map [(button2)] 'x-symbol-image-mouse-editor) - (define-key map [(button3)] 'x-symbol-image-highlight-menu)) - ;; Emacs bindings - (define-key map [(mouse-2)] 'x-symbol-image-mouse-editor) - (define-key map [(mouse-3)] 'x-symbol-image-highlight-menu)) - map) - "Keymap for mouse event over image insertion commands.") - - -;;;=========================================================================== -;;; Internal variables -;;;=========================================================================== - -(defun x-symbol-image-try-special (image) - "Return image for image specification IMAGE or [nothing]. -IMAGE is an element in `x-symbol-image-special-glyphs'." - (or (and x-symbol-image-data-directory - (x-symbol-create-image - (expand-file-name (car image) x-symbol-image-data-directory) - (cdr image))) - (and (featurep 'xemacs) [nothing]))) - -(defvar x-symbol-image-broken-image - (x-symbol-image-try-special (first x-symbol-image-special-glyphs)) - "Image to represent broken image files. -IMAGE is an element in `x-symbol-image-special-glyphs'.") - -(defvar x-symbol-image-create-image - (x-symbol-image-try-special (second x-symbol-image-special-glyphs)) - "Image to represent image files which are currently converted. -IMAGE is an element in `x-symbol-image-special-glyphs'.") - -(defvar x-symbol-image-design-glyph - (x-symbol-make-glyph (x-symbol-image-try-special - (third x-symbol-image-special-glyphs))) - "Glyph to represent image files still to be designed. -IMAGE is an element in `x-symbol-image-special-glyphs'.") - -(defvar x-symbol-image-locked-glyph - (x-symbol-make-glyph (x-symbol-image-try-special - (fourth x-symbol-image-special-glyphs))) - "Glyph to represent locked image files. -IMAGE is an element in `x-symbol-image-special-glyphs'.") - -(defvar x-symbol-image-remote-glyph - (x-symbol-make-glyph (x-symbol-image-try-special - (fifth x-symbol-image-special-glyphs))) - "Glyph to represent \"remote\" image files. -IMAGE is an element in `x-symbol-image-special-glyphs'.") - -(defvar x-symbol-image-junk-glyph - (x-symbol-make-glyph (x-symbol-image-try-special - (sixth x-symbol-image-special-glyphs))) - "Glyph to represent \"junk\" image files. -IMAGE is an element in `x-symbol-image-special-glyphs'.") - -(defvar x-symbol-image-buffer-extents nil - "Internal variable. Extents for image commands in the current buffer.") -(make-variable-buffer-local 'x-symbol-image-buffer-extents) -(put 'x-symbol-image-buffer-extents 'permanent-local t) - -(defvar x-symbol-image-memory-cache nil - "Internal variable. Buffer local memory cache for glyphs. -Each element has the form (FILE FULL . GLYPH) where FILE is the given -image file name, FULL is the full file name and GLYPH is the glyph used -for that image file. If GLYPH is nil, it is not created yet. See also -`x-symbol-image-use-remote'. The memory cache is flushed with -`x-symbol-image-init-memory-cache'.") - -(make-variable-buffer-local 'x-symbol-image-memory-cache) - -(defvar x-symbol-image-all-recursive-dirs nil - "Internal variable. Used by `x-symbol-image-searchpath'.") -(defvar x-symbol-image-all-dirs nil - "Internal variable. Used by `x-symbol-image-searchpath'.") - - -;;;=========================================================================== -;;; Main functions -;;;=========================================================================== - -;;;###autoload -(defun x-symbol-image-parse-buffer (&optional update-cache) - "*Parse buffer to find image insertion commands. -Parse buffer to display glyphs at the end of image insertion commands. -Image files are converted to \"image cache files\" with images not -bigger than `x-symbol-image-max-width' and `x-symbol-image-max-height' -having a image format XEmacs understands. The conversion is done by a -program determined by `x-symbol-image-converter', currently you need -\"convert\" from ImageMagick. To make this conversion fast, we use -asynchronous processes and two cache hierarchies: - - * Memory cache (`x-symbol-image-memory-cache'): buffer-local alist - FILE.eps -> GLYPH, see also `x-symbol-image-use-remote'. - * File cache: the image cache file, mentioned above, are kept, see also - `x-symbol-image-update-cache', which is shadowed by a non-nil - UPDATE-CACHE and `x-symbol-image-cache-directories'. - -When the mouse is over an image insertion command, it is highlighted. -button2 starts an image editor, see `x-symbol-image-editor-alist'. -button3 pops up a menu, see `x-symbol-image-menu'. - -The image insertion commands are recognized by keywords in the language -access `x-symbol-LANG-image-keywords' whose value have the form - (IMAGE-REGEXP KEYWORD ...) -IMAGE-REGEXP should match all images files and is used to initialize the -buffer local memory cache, see `x-symbol-image-init-memory-cache'. - -Each KEYWORD looks like (REGEXP [FUNCTION] ARG...). Image insertion -commands matched by REGEXP are highlighted. FUNCTION, which defaults to -`x-symbol-image-default-file-name', is called with ARGs to get the file -name of the corresponding image file. If FUNCTION returns nil, the -command is not highlighted. - -Relative image file names are expanded in the directory returned by the -function in the language access `x-symbol-LANG-master-directory', value -nil means function `default-directory'. Implicitly relative image file -names are searched in a search path, see `x-symbol-image-use-remote'." - (interactive) - (save-excursion - (x-symbol-image-init-memory-cache) - (x-symbol-image-parse-region (point-min) (point-max) update-cache))) - -;;;###autoload -(defun x-symbol-image-after-change-function (beg end old-len) - ;; checkdoc-params: (beg end old-len) - "Function in `after-change-functions' for image insertion commands." - (if x-symbol-language - (save-excursion - (save-match-data - (let ((zmacs-region-stays (and (boundp 'zmacs-region-stays) - zmacs-region-stays))) - (goto-char end) - (end-of-line) - (setq end (point)) - (goto-char beg) - (beginning-of-line) - (x-symbol-image-parse-region (point) end)))))) - -;; Idea from package bib-cite: OK with a relatively small number of extents -;;;###autoload -(defun x-symbol-image-delete-extents (beg end) - "Delete x-symbol image extents covering text between BEG and END. -See also `x-symbol-image-buffer-extents'." - (let ((extents x-symbol-image-buffer-extents) extent) - (setq x-symbol-image-buffer-extents nil) - (if (featurep 'xemacs) - (while extents - (setq extent (pop extents)) - (if (or (extent-detached-p extent) - (and (> (extent-end-position extent) beg) - ;; If (beginning-of-line 2) instead (end-of-line) in - ;; `x-symbol-image-after-change-function': (> end...) - (>= end (extent-start-position extent)))) - (delete-extent extent) - (push extent x-symbol-image-buffer-extents))) - (while extents - (setq extent (pop extents)) - (if (and (> (overlay-end extent) beg) - ;; If (beginning-of-line 2) instead (end-of-line) in - ;; `x-symbol-image-after-change-function': (> end...) - (>= end (overlay-start extent))) - (delete-overlay extent) - (push extent x-symbol-image-buffer-extents)))))) - - -;;;=========================================================================== -;;; Main parse function -;;;=========================================================================== - -(defun x-symbol-image-parse-region (beg end &optional update-cache) - "*Parse region between BEG and END to find image insertion commands. -If optional UPDATE-CACHE is non-nil, use it instead of -`x-symbol-image-update-cache' to determine whether to create new image -cache files." - (or update-cache (setq update-cache x-symbol-image-update-cache)) - (let ((modified (buffer-modified-p)) - (buffer-undo-list t) (inhibit-read-only t) - buffer-file-name buffer-file-truename) - (unwind-protect - (let (;;(case-fold-search nil) - (keywords (cdr (x-symbol-language-value - 'x-symbol-LANG-image-keywords))) - (cached-dirs (cons nil - (mapcar 'file-name-as-directory - (x-symbol-language-value - 'x-symbol-LANG-image-cached-dirs)))) - (master-dir (x-symbol-language-value - 'x-symbol-LANG-master-directory)) - keyword matcher file-fn file-args - file extent cache-elem extent-beg extent-end) - (if master-dir (funcall master-dir)) - (x-symbol-image-delete-extents beg end) - (while keywords - (setq keyword (pop keywords) - matcher (car keyword) - file-fn #'x-symbol-image-default-file-name - file-args (cdr keyword)) - (if (functionp (car file-args)) - (setq file-fn (pop file-args))) - (goto-char beg) - (while (setq extent-end (re-search-forward matcher end t)) - (setq extent-beg (match-beginning 0)) - (when (setq file (apply file-fn file-args)) - (if (featurep 'xemacs) - (progn - (push (setq extent (make-extent extent-beg extent-end)) - x-symbol-image-buffer-extents) - (set-extent-property extent 'start-open t) - (set-extent-property extent 'highlight t) - (set-extent-property extent 'x-symbol-image-file file) - (set-extent-property extent 'help-echo - 'x-symbol-image-help-echo) - (set-extent-property extent 'keymap - x-symbol-image-highlight-map) - (set-extent-end-glyph - extent - (if (member (file-name-directory file) cached-dirs) - (if (setq cache-elem - (cdr (assoc file x-symbol-image-memory-cache))) - (or (cdr cache-elem) - (setcdr cache-elem (x-symbol-image-create-glyph - (car cache-elem) update-cache - (stringp - x-symbol-image-temp-name)))) - x-symbol-image-design-glyph) - (if x-symbol-image-use-remote - (x-symbol-image-create-glyph - (expand-file-name file master-dir) update-cache) - x-symbol-image-remote-glyph)))) - (push (setq extent (make-overlay extent-beg extent-end)) - x-symbol-image-buffer-extents) - (overlay-put extent 'mouse-face 'highlight) - (overlay-put extent 'x-symbol-image-file file) - (overlay-put extent 'help-echo 'x-symbol-image-help-echo) - (overlay-put extent 'keymap x-symbol-image-highlight-map) - (overlay-put - extent 'after-string - (if (member (file-name-directory file) cached-dirs) - (if (setq cache-elem - (cdr (assoc file x-symbol-image-memory-cache))) - (or (cdr cache-elem) - (setcdr cache-elem (x-symbol-image-create-glyph - (car cache-elem) update-cache - (stringp - x-symbol-image-temp-name)))) - x-symbol-image-design-glyph) - (if x-symbol-image-use-remote - (x-symbol-image-create-glyph - (expand-file-name file master-dir) update-cache) - x-symbol-image-remote-glyph)))))))) - (and (not modified) (buffer-modified-p) (set-buffer-modified-p nil))))) - -(defun x-symbol-image-default-file-name (num &optional regexp extension) - "Return image file name for last match. -Default FUNCTION in language access `x-symbol-LANG-image-keywords', see -`x-symbol-image-parse-buffer'. Return text matched by the NUMth regexp -group of the corresponding keyword regexp. If REGEXP is non-nil and the -file name does not match REGEXP, add EXTENSION to the file name." - (let ((file (match-string num))) - (if regexp - (if (string-match regexp file) file (concat file extension)) - file))) - - -;;;=========================================================================== -;;; Create an (empty) memory cache -;;;=========================================================================== - -(defun x-symbol-image-init-memory-cache () - "Create an empty memory cache. -Scan all directories in the searchpath and all subdirectories in the -language access `x-symbol-LANG-image-cached-dirs' for files matched by -IMAGE-REGEXP in the language access `x-symbol-LANG-image-keywords' to -build `x-symbol-image-memory-cache' where all GLYPHs are nil." - (let* ((master-dir (funcall (x-symbol-language-value - 'x-symbol-LANG-master-directory))) - (cached-dirs (x-symbol-language-value - 'x-symbol-LANG-image-cached-dirs)) - (path (x-symbol-image-searchpath master-dir)) - (suffixes (car (x-symbol-language-value - 'x-symbol-LANG-image-keywords))) - implicit-dirs - dirs dir) - (setq x-symbol-image-memory-cache nil) - (while cached-dirs - (setq dir (file-name-as-directory (pop cached-dirs))) - (if (or (string-match x-symbol-image-explicitly-relative-regexp dir) - (file-name-absolute-p dir)) - (x-symbol-image-init-memory-cache-1 - (and master-dir (file-name-as-directory master-dir)) dir suffixes) - (push dir implicit-dirs))) - (while path - (setq dir (pop path) - dirs implicit-dirs) - (while dirs - (x-symbol-image-init-memory-cache-1 dir (pop dirs) suffixes)) - (x-symbol-image-init-memory-cache-1 dir nil suffixes)))) - -(defun x-symbol-image-init-memory-cache-1 (root subdir suffixes) - "Initialize memory cache for image files in ROOT/SUBDIR with SUFFIXES." - (let* ((dir (if subdir (expand-file-name subdir root) root)) - (files (and (file-accessible-directory-p dir) - (file-readable-p dir) - (x-symbol-directory-files dir nil suffixes t t))) - file) - (while files - (setq file (pop files)) - (push (list (concat subdir file) (expand-file-name file dir)) - x-symbol-image-memory-cache)))) - -(defun x-symbol-image-searchpath (master-dir) - "Return language dependent image searchpath in reverse order. -Uses the language accesses `x-symbol-LANG-image-searchpath' and -`x-symbol-LANG-master-directory' (via argument MASTER-DIR). Include all -subdirectories of elements in the image searchpath ending with \"//\", -except symbolic links if `x-symbol-image-searchpath-follow-symlink' is -nil." - (let ((path (or (x-symbol-language-value 'x-symbol-LANG-image-searchpath) - '("./"))) - (dirs nil) - dir truename slashslash) - (setq x-symbol-image-all-dirs nil) - (while path - (setq dir (pop path) - slashslash (and (> (length dir) 1) - (string-equal (substring dir -2) "//")) - dir (file-name-as-directory - (expand-file-name (if slashslash (substring dir 0 -1) dir) - master-dir)) - truename (file-truename dir)) - (unless (member truename x-symbol-image-all-dirs) - (push truename x-symbol-image-all-dirs) - (push dir dirs)) - (when slashslash - (setq x-symbol-image-all-recursive-dirs (list truename)) - (setq dirs (x-symbol-image-searchpath-1 dir dirs)))) - dirs)) - -(defun x-symbol-image-searchpath-1 (dir dirs) - "Add subdirectories of DIR to DIRS and return result." - (and (file-accessible-directory-p dir) - (file-readable-p dir) - (let ((subs (x-symbol-directory-files dir t "[^.]" nil 'dirs)) - truename) - (while subs - (setq dir (pop subs)) - (when (or x-symbol-image-searchpath-follow-symlink - (not (file-symlink-p dir))) - (setq dir (file-name-as-directory dir) - truename (file-truename dir)) - (unless (member truename x-symbol-image-all-recursive-dirs) - (push truename x-symbol-image-all-recursive-dirs) - (if (member truename x-symbol-image-all-dirs) - (setq dirs (x-symbol-image-searchpath-1 dir dirs)) - (push truename x-symbol-image-all-dirs) - (setq dirs - (x-symbol-image-searchpath-1 dir (cons dir dirs))))))))) - dirs) - - -;;;=========================================================================== -;;; Highlighting the image commands: main functions -;;;=========================================================================== - -(defun x-symbol-image-mouse-editor (event) - (interactive "e") - (let ((file (x-symbol-image-event-file event))) - (if file - (x-symbol-image-editor file (event-buffer event)) - (error "No image file to edit")))) - -;;;###autoload -(defun x-symbol-image-editor (file &optional buffer) - "Start image editor for the image file FILE used in BUFFER. -If BUFFER is nil, just return string describing the command. See -`x-symbol-image-editor-alist' and `x-symbol-image-current-marker'." - (interactive - (list (read-file-name "Edit image design file for: " - (funcall (x-symbol-language-value - 'x-symbol-LANG-master-directory))) - (current-buffer))) - (let ((result (and file (x-symbol-match-in-alist - file x-symbol-image-editor-alist)))) - (and file buffer (setq file (x-symbol-image-active-file file buffer))) - (if (and result file) - (if (functionp (car result)) - (apply (car result) file buffer (cdr result)) - (setq result - (format (car result) - (if (cadr result) - (x-symbol-image-file-name file (cadr result)) - file))) - (if buffer - (let ((default-directory (file-name-directory file))) - (shell-command result)) - result)) - (if buffer - (if file - (error "Do not know which image editor to use for %S" file) - (error "Cannot use highlighted file")))))) - -(defun x-symbol-image-highlight-menu (event) - ;; checkdoc-params: (event) - "Popup menu over the highlighted image insertion command. -See `x-symbol-image-menu' and `x-symbol-image-editor-alist'." - (interactive "e") - (let ((file (x-symbol-image-event-file event))) - (if file - (popup-menu (x-symbol-image-active-file file (event-buffer event) t))))) - -(defun x-symbol-image-help-echo (extent &optional object pos) - "Return help echo for the EXTENT of the image insertion command. -See variable `x-symbol-image-help-echo'." - (if object (setq extent object)) ; Emacs - (x-symbol-fancy-string - (cons (format (car x-symbol-image-help-echo) - (x-symbol-image-editor (extent-property extent - 'x-symbol-image-file))) - (cdr x-symbol-image-help-echo)))) - - -;;;=========================================================================== -;;; Get files which the image editor could work on -;;;=========================================================================== - -(defun x-symbol-image-file-name (file &optional extension dir) - "Return a name deduced from the image file name FILE. -Use EXTENSION as the new extension. If DIR is non-nil, replace -directory part by DIR. With a non-nil `x-symbol-image-scale-method', -the scale factor is deleted in the file name." - (and file - (let ((edit (file-name-sans-extension (file-name-nondirectory file)))) - (or dir (setq dir (file-name-directory file))) - (setq file - (concat (if (and x-symbol-image-scale-method - (string-match x-symbol-image-scale-method edit)) - (substring edit 0 (match-beginning 0)) - edit) - extension)) - (if dir (expand-file-name file dir) file)))) - -(defun x-symbol-image-event-file (event) - "Return image file name at position of mouse event EVENT." - (and event - (setq event (extent-at (if (featurep 'xemacs) - (or (event-point event) - (1- (event-closest-point event))) - (posn-point (event-end event))) - (event-buffer event) - 'x-symbol-image-file)) - (extent-property event 'x-symbol-image-file))) - -(defun x-symbol-image-active-file (file buffer &optional menup) - ;; checkdoc-params: (event) - "Return the full name of the active image file FILE in BUFFER. -If MENUP is non-nil, return menu specified by `x-symbol-image-menu' -instead." - (save-excursion - (set-buffer buffer) - (let ((master-dir (funcall (x-symbol-language-value - 'x-symbol-LANG-master-directory))) - path) - (if (or (string-match x-symbol-image-explicitly-relative-regexp file) - (file-name-absolute-p file)) - (setq path (list (expand-file-name (file-name-directory file) - master-dir)) - file (file-name-nondirectory file)) - (setq path (x-symbol-image-searchpath master-dir))) - (if menup - (let ((menu (cdr x-symbol-image-menu)) - dir full exists) - (while path - (setq dir (pop path) - full (expand-file-name file dir) - exists (file-exists-p full)) - (push (vector (if (featurep 'xemacs) - (abbreviate-file-name dir t) - (abbreviate-file-name dir)) - (list 'x-symbol-image-editor full buffer) - :active (if exists - (file-readable-p full) - (file-writable-p full)) - :keys (and exists x-symbol-image-current-marker)) - menu)) - (cons (format (car x-symbol-image-menu) - (x-symbol-image-editor file)) - menu)) - (let (result full) - (setq path (nreverse path)) - (while path - (setq full (expand-file-name file (pop path))) - (if (file-readable-p full) - (setq result full - path nil) - (or result - (file-exists-p full) ; i.e., not readable - (if (file-writable-p full) (setq result full))))) - result))))) - - - -;;;;########################################################################## -;;;; Glyph creation via processes -;;;;########################################################################## - - -;; A stack is better than a FIFO queue since editing the current line should -;; have the highest priority. -(defvar x-symbol-image-process-stack nil - "Internal variable. Stack of image conversion tasks. -Each element looks like the value of `x-symbol-image-process-elem'.") - -(defvar x-symbol-image-process-elem nil - "Internal variable. Current image conversion task element. -It has the form (CACHE GLYPH COMMAND TEMP). CACHE is the name of the -image cache file, GLYPH is the glyph whose image will be defined by the -finished image cache file. COMMAND is the command which starts the -process creating CACHE, see `x-symbol-image-converter'. If TEMP is -non-nil, the image cache file will be deleted directly after its -usage.") - - -;;;=========================================================================== -;;; Main function for glyph creation -;;;=========================================================================== - -(defun x-symbol-image-create-glyph (file update-cache &optional temp) - "Return a glyph for the image file FILE. -Start a process to create a new image cache file. If UPDATE-CACHE is -non-nil, use it instead of `x-symbol-image-update-cache' to determine -whether this is really necessary. If optional TEMP is non-nil, allow -the use of temporary cache files." - (let ((infile (condition-case nil - (file-truename file) - (error nil))) - outfile elem) - (cond ((null infile) x-symbol-image-locked-glyph) - ((null (file-readable-p infile)) - (if (and (null (file-exists-p infile)) - (file-writable-p infile)) - x-symbol-image-design-glyph - x-symbol-image-locked-glyph)) - ((null x-symbol-image-converter) x-symbol-image-junk-glyph) - ((null (setq outfile - (x-symbol-image-cache-name - infile - ;; TODO: temp image files don't work with Emacs - (and temp (featurep 'xemacs) temp)))) - x-symbol-image-junk-glyph) - ((and (stringp outfile) - (null (file-writable-p outfile))) - x-symbol-image-junk-glyph) - ((and (equal outfile (car x-symbol-image-process-elem)) - (get-process x-symbol-image-process-name)) - (cadr x-symbol-image-process-elem)) - ((setq elem (assoc outfile x-symbol-image-process-stack)) - (prog1 (cadr elem) - (x-symbol-image-process-stack))) - (t - (let* ((ofile (if (symbolp outfile) - (concat x-symbol-image-temp-name - (cadr x-symbol-image-converter)) - outfile)) - (image (and (null (symbolp outfile)) - (x-symbol-create-image - ofile (car x-symbol-image-converter)))) - (glyph (x-symbol-make-glyph - (or image x-symbol-image-create-image)))) - (when (or (null image) - (eq update-cache t) - (and update-cache - (file-newer-than-file-p infile outfile))) - (push (list ofile glyph - (list (cddr x-symbol-image-converter) infile ofile) - (symbolp outfile)) - x-symbol-image-process-stack) - (x-symbol-image-process-stack)) - glyph))))) - - -;;;=========================================================================== -;;; Compute name of file cache -;;;=========================================================================== - -(defun x-symbol-image-cache-name (infile temp) - "Return the name of the image cache file for the image file INFILE. -The directory part is determined by `x-symbol-image-cache-directories'. -INFILE must be a fully expanded file name, the extension by -`x-symbol-image-converter'. Return value nil means, do not convert the -image, use `x-symbol-image-junk-glyph' instead. If optional TEMP is -non-nil, allow the use of temporary cache files, in this case, t would -be returned." - (let* ((case-fold-search (eq system-type 'vax-vms)) - (indir (file-name-directory infile)) - (outdir (x-symbol-match-in-alist indir x-symbol-image-cache-directories - nil t))) - (if (symbolp outdir) (and outdir temp) - (if (or (file-directory-p (setq outdir (expand-file-name outdir indir))) - (condition-case nil - (progn (make-directory outdir t) t) - (error nil))) - (x-symbol-image-file-name - infile (cadr x-symbol-image-converter) outdir))))) - - -;;;=========================================================================== -;;; Process handling -;;;=========================================================================== - -(defun x-symbol-image-process-stack () - "Handle next task in variable `x-symbol-image-process-stack'." - (if x-symbol-image-process-stack - (let ((process (get-process x-symbol-image-process-name))) - (unless (and process (eq (process-status process) 'run)) - (if process (delete-process process)) - (setq x-symbol-image-process-elem - (pop x-symbol-image-process-stack)) - (setq process (apply (caaddr x-symbol-image-process-elem) - (cdaddr x-symbol-image-process-elem))) - (set-process-sentinel process 'x-symbol-image-process-sentinel) - )))) - -(defun x-symbol-image-convert-file (infile) - "Put prefix before INFILE if necessary for \"convert\". -Uses `x-symbol-image-convert-file-alist'. Also put postfix \"[0]\" -after INFILE to just use the first part of a multi-part image." - (concat (x-symbol-match-in-alist infile x-symbol-image-convert-file-alist) - infile - "[0]")) - -(defun x-symbol-image-start-convert-mono (infile outfile) - "Start process convert INFILE to monochrome OUTFILE. -Used as value in `x-symbol-image-converter'." - (start-process x-symbol-image-process-name - (get-buffer-create x-symbol-image-process-buffer) - x-symbol-image-convert-program "+matte" - "-geometry" (format "%dx%d>" x-symbol-image-max-width - x-symbol-image-max-height) - "-threshold" "190" "-monochrome" - (x-symbol-image-convert-file infile) outfile)) - -(defun x-symbol-image-start-convert-color (infile outfile) - "Start process convert INFILE to OUTFILE with restricted colors. -Used as value in `x-symbol-image-converter'." - (start-process x-symbol-image-process-name - (get-buffer-create x-symbol-image-process-buffer) - x-symbol-image-convert-program "+matte" - "-geometry" (format "%dx%d>" x-symbol-image-max-width - x-symbol-image-max-height) - "-sharpen" "58" "-colors" "4" - (x-symbol-image-convert-file infile) outfile)) - -(defun x-symbol-image-start-convert-truecolor (infile outfile) - "Start process convert INFILE to OUTFILE using colors. -Used as value in `x-symbol-image-converter'." - (start-process x-symbol-image-process-name - (get-buffer-create x-symbol-image-process-buffer) - x-symbol-image-convert-program "+matte" - "-geometry" (format "%dx%d>" x-symbol-image-max-width - x-symbol-image-max-height) - (x-symbol-image-convert-file infile) outfile)) - -(defun x-symbol-image-start-convert-mswindows (infile outfile) - "Start process convert INFILE to OUTFILE using colors. -Used as value in `x-symbol-image-converter'." - (start-process x-symbol-image-process-name - (get-buffer-create x-symbol-image-process-buffer) - x-symbol-image-convert-program "+matte" - "-geometry" (format "%dx%d>" x-symbol-image-max-width - x-symbol-image-max-height) - ;; for some reason [0] at the end of the file name does not - ;; work under ms-windows - (concat (x-symbol-match-in-alist - infile x-symbol-image-convert-file-alist) - infile) - outfile)) - -(defun x-symbol-image-start-convert-colormap (infile outfile) - "Start process convert INFILE to OUTFILE using a colormap. -Produce OUTFILE with `x-symbol-image-convert-colormap' or monochrome -OUTFILE if `x-symbol-image-convert-mono-regexp' matches INFILE. Used as -value in `x-symbol-image-converter'." - (if (or (and x-symbol-image-convert-mono-regexp - (string-match x-symbol-image-convert-mono-regexp infile)) - (null x-symbol-image-convert-colormap)) - (x-symbol-image-start-convert-mono infile outfile) - (start-process x-symbol-image-process-name - (get-buffer-create x-symbol-image-process-buffer) - x-symbol-image-convert-program "+matte" - "-geometry" (format "%dx%d>" x-symbol-image-max-width - x-symbol-image-max-height) - "-map" x-symbol-image-convert-colormap - (x-symbol-image-convert-file infile) outfile))) - -(defun x-symbol-image-process-sentinel (process event) - "Set glyph image after process PROCESS has finished with value EVENT. -Also look for more tasks in variable `x-symbol-image-process-stack'." - (if (memq (process-status process) '(signal exit)) - (let ((buffer (process-buffer process))) - (if (buffer-live-p buffer) - ;; Don't follow info files, use some code from compile.el instead: - ;; do not let cursor movement influence output placement - (save-excursion - (set-buffer buffer) - (goto-char (point-max)) - (insert-before-markers (current-time-string) ": " - (process-name process) " " event - "\"" (car x-symbol-image-process-elem) - (if (eq (process-status process) 'exit) - "\" created\n" - "\" failed\n")))) - (x-symbol-set-glyph-image - (cadr x-symbol-image-process-elem) - (or (and (eq (process-status process) 'exit) - (x-symbol-create-image (car x-symbol-image-process-elem) - (car x-symbol-image-converter))) - x-symbol-image-broken-image)) - ;; TODO: in Emacs, we need `clear-image-cache' for some reason, in - ;; older XEmacsen, we did need something, but it wasn't really - ;; important, and I haven't noticed it anymore... - (or (featurep 'xemacs) - (and (boundp 'x-symbol-emacs-after-create-image-function) - (functionp x-symbol-emacs-after-create-image-function) - (funcall x-symbol-emacs-after-create-image-function))) -;;; (redisplay-frame nil t) ; doesn't work -;;; (sit-for 0) ; does that work? - (if (cadddr x-symbol-image-process-elem) - (condition-case nil - (delete-file (car x-symbol-image-process-elem)) - (error nil))) - (setq x-symbol-image-process-elem nil) - (delete-process process) - (x-symbol-image-process-stack)))) - -;;; Local IspellPersDict: .ispell_xsymb -;;; x-symbol-image.el ends here diff --git a/x-symbol/lisp/x-symbol-macs.el b/x-symbol/lisp/x-symbol-macs.el deleted file mode 100644 index 7245d3bb..00000000 --- a/x-symbol/lisp/x-symbol-macs.el +++ /dev/null @@ -1,257 +0,0 @@ -;;; x-symbol-macs.el --- macros used when compiling or interpreting x-symbol.el - -;; Copyright (C) 1998-2002 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: 4.5 -;; 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]). - -;; Macro expansion must not dependent on Mule vs no-Mule! Depending on Emacs -;; vs XEmacs is OK, since the elc files aren't compatible anyway. - -;;; Code: - -(provide 'x-symbol-macs) -(require 'cl) - - -;;;=========================================================================== -;;; -;;;=========================================================================== - -(defmacro x-symbol-ignore-property-changes (&rest body) - (if (featurep 'xemacs) - (cons 'progn body) - (let ((modified (gensym "--x-symbol-modified--"))) - `(let ((,modified (buffer-modified-p)) - (buffer-undo-list t) - (inhibit-read-only t) - (inhibit-modification-hooks t) - (inhibit-point-motion-hooks t)) - (unwind-protect - (progn ,@body) - (and (not ,modified) (buffer-modified-p) - (set-buffer-modified-p nil))))))) - - -;;;=========================================================================== -;;; Function used by macros and the macros -;;;=========================================================================== - -(defun x-symbol-set/push-assq/assoc (x key alist pushp test) - (let* ((temp (gensym "--x-symbol-set/push-assq/assoc-temp--")) - (evalp (and (consp key) (null (eq (car key) 'quote)))) - (keysymb (if evalp - (gensym "--x-symbol-set/push-assq/assoc-temp--") - key)) - (keydef (and evalp (list (list keysymb key))))) - `(let* (,@keydef - (,temp (,test ,keysymb ,alist))) - (if ,temp - (setcdr ,temp ,(if pushp `(cons ,x (cdr ,temp)) x)) - (setq ,alist (cons (,(if pushp 'list 'cons) ,keysymb ,x) ,alist))) - ,temp))) - -(defmacro x-symbol-set-assq (x key alist) - "Set X to be the association for KEY in ALIST. -If no car of an element in ALIST is `eq' to KEY, inserts (KEY . X) at -the head of ALIST." - (x-symbol-set/push-assq/assoc x key alist nil 'assq)) - -(defmacro x-symbol-set-assoc (x key alist) - "Set X to be the association for KEY in ALIST. -If no car of an element in ALIST is `equal' to KEY, inserts (KEY . X) at -the head of ALIST." - (x-symbol-set/push-assq/assoc x key alist nil 'assoc)) - -(defmacro x-symbol-push-assq (x key alist) - "Insert X at the head of the association for KEY in ALIST. -If no car of an element in ALIST is `eq' to KEY, inserts (KEY X) at the -head of ALIST. An element (KEY A B) would look like (KEY X A B) after -the operation." - (x-symbol-set/push-assq/assoc x key alist t 'assq)) - -(defmacro x-symbol-push-assoc (x key alist) - "Insert X at the head of the association for KEY in ALIST. -If no car of an element in ALIST is `equal' to KEY, inserts (KEY X) at -the head of ALIST. An element (KEY A B) would look like (KEY X A B) -after the operation." - (x-symbol-set/push-assq/assoc x key alist t 'assoc)) - - -;;;=========================================================================== -;;; Macros -;;;=========================================================================== - -(defmacro x-symbol-dolist-delaying (spec cond &rest body) - ;; checkdoc-params: (spec) - "Loop over a list delaying elements if condition yields non-nil. -The macro looks like - (x-symbol-dolist-delaying (VAR LIST [WORKING [DELAYED]]) COND BODY...) -Bind VAR to each `car' from LIST, in turn. If COND yields nil, evaluate -BODY. Otherwise, BODY with VAR bound to the list value is evaluated -after all other list values have been processed. Return all list -values which could not been processed. - -The looping is done in cycles. In each cycle, the value of WORKING, -which defaults to some internal symbol, is the list of elements still to -be processed during the current cycle. VAR is always the head of -WORKING. If COND yields non-nil, VAR is inserted at the head of the -list stored in DELAYED which defaults to some internal symbol. At the -end of each CYCLE, WORKING is set to the reversed value of DELAYED. The -macro ends if all elements has been processed or all elements in a cycle -has been inserted into the delayed list." - (let ((working (or (nth 2 spec) - (gensym "--x-symbol-dolist-delaying-temp--"))) - (delayed (or (nth 3 spec) - (gensym "--x-symbol-dolist-delaying-temp--"))) - (non-circ (gensym "--x-symbol-dolist-delaying-temp--"))) - `(block nil - (let ((,working ,(nth 1 spec)) - (,non-circ t) - ,delayed - ,(car spec)) - (while (and ,working ,non-circ) - (setq ,delayed nil - ,non-circ nil) - (while ,working - (setq ,(car spec) (car ,working)) - (if ,cond - (setq ,delayed (cons ,(car spec) ,delayed)) - ,@body - (setq ,non-circ t)) - (setq ,working (cdr ,working))) - (setq ,working (nreverse ,delayed))) - ,working)))) - -(defmacro x-symbol-do-plist (spec &rest body) - ;; checkdoc-params: (spec) - "Loop over a property list. -The macro looks like - (x-symbol-do-plist (PROP VAR PLIST) BODY...) -Evaluate BODY with each PROP bound to each property of PLIST and VAR -bound to the corresponding value, in turn. PROP and VAR can also be nil -if their value is not important. Return nil." - (let ((plist (gensym "--x-symbol-do-plist-temp--"))) - `(block nil - (let ((,plist ,(nth 2 spec)) - ,@(and (car spec) (list (car spec))) - ,@(and (nth 1 spec) (list (nth 1 spec)))) - (while ,plist - (setq ,@(and (car spec) `(,(car spec) (car ,plist))) - ,@(and (nth 1 spec) `(,(nth 1 spec) (cadr ,plist)))) - ,@body - (setq ,plist (cddr ,plist))) - nil)))) - -(defmacro x-symbol-while-charsym (spec &rest body) - "(x-symbol-while-charsym (CHARSYM CHAR) BODY...)" - (unless (and (consp spec) - (symbolp (car spec)) - (symbolp (cadr spec)) - (null (cddr spec))) - (error "Wrong call of `x-symbol-while-charsym'.")) - (let ((charsym (car spec)) - (char (cadr spec))) - `(let (,charsym ,char) - (block nil - (skip-chars-forward "\000-\177") - (while (setq ,char (char-after)) - (if (setq ,charsym - ,(if (featurep 'xemacs) - '(x-symbol-encode-charsym-after) - ;; no need for nomule byte-comp in Emacs => inline - `(get-char-table ,char x-symbol-mule-char-table))) - (progn ,@body) - (forward-char x-symbol-encode-rchars)) - (skip-chars-forward "\000-\177")))))) - -(defmacro x-symbol-encode-for-charsym (spec &rest body) - "(x-symbol-while-charsym ((TOKEN-TABLE FCHAR-TABLE FCHAR-FALLBACK-TABLE) TOKEN CHARSYM)) BODY...)" - (let* ((tables (car spec)) - (vars (cdr spec)) - (fchar-table (cadr tables)) - (fchar-fb-table (caddr tables)) - (token (car vars)) - (charsym (or (cadr vars) - (gensym "--x-symbol-encode-for-charsym-temp--"))) - (char (gensym "--x-symbol-encode-for-charsym-temp--")) - (fchar (gensym "--x-symbol-encode-for-charsym-temp--"))) - `(let (,fchar ,token) - (x-symbol-while-charsym ,(list charsym char) - (cond ((and ,fchar-table - (setq ,fchar (gethash ,charsym ,fchar-table))) - ;; fchar-fb-table = nil => no recoding - (if (or (null ,fchar-fb-table) (eq ,fchar ,char)) - (forward-char x-symbol-encode-rchars) - (insert ,fchar) - (delete-char x-symbol-encode-rchars))) - ((setq ,token (gethash ,charsym ,(car tables))) - ,@body) - ((setq ,fchar (gethash ,charsym ,fchar-fb-table)) - (if (eq ,fchar ,char) - (forward-char x-symbol-encode-rchars) - (insert ,fchar) - (delete-char x-symbol-encode-rchars))) - (t - (forward-char x-symbol-encode-rchars))))))) - -(defmacro x-symbol-decode-for-charsym (spec undefined &rest body) - "(x-symbol-decode-for-charsym ((REGEXP DECODE-OBARRAY CASE-FN) DEFN BEG END) UNDEFINED BODY...)" - (let* ((grammar (car spec)) - (case-fn (caddar spec)) - (defn (cadr spec)) - (beg (caddr spec)) - (end (cadddr spec))) - `(let (,beg ,end ,defn) - (block nil - (while (re-search-forward ,(car grammar) nil t) - (setq ,beg (match-beginning 0) - ,end (match-end 0)) - (if (setq ,defn (intern-soft - ,(if case-fn - `(if ,case-fn - (funcall ,case-fn - (buffer-substring ,beg ,end)) - (buffer-substring ,beg ,end)) - `(buffer-substring ,beg ,end)) - ,(cadr grammar))) - (progn - (setq ,defn (symbol-value ,defn)) ; nil shouldn't happen - ,@body) - ,@(if undefined (list undefined)))))))) - -(defmacro x-symbol-decode-unique-test (token-spec unique) - `(and ,unique - (or (cddr ,token-spec) - (and (hash-table-p ,unique) - (gethash (car ,token-spec) ,unique))))) - -(defmacro x-symbol-set-buffer-multibyte () - ;; Make sure the buffer is not in unibyte mode (for Emacs). - (unless (featurep 'xemacs) - '(set-buffer-multibyte t))) - -;;; Local IspellPersDict: .ispell_xsymb -;;; x-symbol-macs.el ends here diff --git a/x-symbol/lisp/x-symbol-mule.el b/x-symbol/lisp/x-symbol-mule.el deleted file mode 100644 index 6ab5ca36..00000000 --- a/x-symbol/lisp/x-symbol-mule.el +++ /dev/null @@ -1,325 +0,0 @@ -;;; x-symbol-mule.el --- XEmacs/Mule support for package x-symbol - -;; Copyright (C) 1997-1999, 2001-2002 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: 4.5 -;; Keywords: WYSIWYG, LaTeX, HTML, wp, math, internationalization, Mule -;; 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]). - -;;; Code: - -;; No `eval-and-compile' around this test, would just complicate distribution -(unless (featurep 'mule) - (error "This file is meant to be used with XEmacs/Mule")) -(provide 'x-symbol-mule) -(eval-when-compile (require 'cl)) -(require 'x-symbol-hooks) -(eval-when-compile (require 'x-symbol-vars)) ; TODO: or always? or next line? -(eval-when-compile (require 'x-symbol)) ; x-symbol also requires this file -;; (defvar x-symbol-cstring-table) ; in x-symbol.el -;; (defvar x-symbol-face-docstrings)) -;;(require 'quail) has autoload - -;;(unless (eq x-symbol-default-coding 'iso-8859-1) -;; (warn "Package x-symbol under XEmacs/Mule has only been tested with default coding `iso-8859-1'")) - -;; Provide easier XEmacs-21/Mule bug workaround: -(defvar x-symbol-mule-default-charset - (cond - ((or (null x-symbol-default-coding) - (eq x-symbol-default-coding 'iso-8859-1)) - 'latin-iso8859-1) - ;; XEmacs iso-2022 coding-system-type - ((eq (coding-system-type x-symbol-default-coding) 'iso2022) - (coding-system-property x-symbol-default-coding 'charset-g1)) - ;; Emacs iso-2022 coding-system-type - ((eq (coding-system-type x-symbol-default-coding) 2) - (aref (coding-system-flags x-symbol-default-coding) 1)) - (t - (lwarn 'x-symbol 'warning - "Can't determine charset from coding system %s, using latin-iso8859-1" - x-symbol-default-coding) - 'latin-iso8859-1)) - "Mule charset corresponding to `x-symbol-default-coding'.") - - -;;;=========================================================================== -;;; Function aliases and internal variables -;;;=========================================================================== - -(defalias 'x-symbol-make-cset 'x-symbol-mule-make-cset) -(defalias 'x-symbol-make-char 'x-symbol-mule-make-char) -(defalias 'x-symbol-init-charsym-syntax 'x-symbol-mule-init-charsym-syntax) -(defalias 'x-symbol-charsym-after 'x-symbol-mule-charsym-after) -(defalias 'x-symbol-string-to-charsyms 'x-symbol-mule-string-to-charsyms) -(defalias 'x-symbol-match-before 'x-symbol-mule-match-before) -(defalias 'x-symbol-encode-lisp 'x-symbol-mule-encode-lisp) -(defalias 'x-symbol-pre-command-hook 'x-symbol-mule-pre-command-hook) -(defalias 'x-symbol-post-command-hook 'x-symbol-mule-post-command-hook) -(defalias 'x-symbol-encode-charsym-after 'x-symbol-mule-encode-charsym-after) -(defalias 'x-symbol-init-quail-bindings 'x-symbol-mule-init-quail-bindings) - -(defvar x-symbol-mule-char-table nil - "Internal. Map characters to charsyms.") -(defvar x-symbol-mule-pre-command nil - "Internal. Used for pre- and post-command handling.") - - -;;;=========================================================================== -;;; Init code -;;;=========================================================================== - -(defun x-symbol-mule-make-charset (definition graphic registry) - "Define new charset according to DEFINITION. -DEFINITION looks like nil or (NAME) or (NAME DOCSTRING CHARS FINAL), see -`x-symbol-init-cset'. GRAPHIC and REGISTRY are charset properties, see -`make-charset' for details." - (and definition - (null (find-charset (car definition))) - (make-charset (car definition) (cadr definition) - (list 'registry registry - 'dimension 1 - 'chars (caddr definition) - 'final (cadddr definition) - 'graphic graphic)))) - -(defvar x-symbol-mule-default-font nil) - -(defun x-symbol-mule-default-font () - ;; It would be probably better to set the font for all (device-list)s. But - ;; even better would be if XEmacs would allow an easy way to set fonts for - ;; other charset-encodings without changing the font for the default - ;; charset-encoding. No using `append' instead `prepend' as HOW-TO-ADD is - ;; loosing since then other settings might have preference. - (or x-symbol-mule-default-font - (setq x-symbol-mule-default-font - (font-instance-name - (face-property-instance 'default 'font (selected-device)))))) -;;; (let ((temp-buffer (get-buffer-create " x-symbol default font"))) -;;; (save-window-excursion -;;; (display-buffer temp-buffer) -;;; (sit-for 0.1) ; necessary? -;;; (setq x-symbol-mule-default-font -;;; (font-instance-name (face-property-instance 'default 'font)))) -;;; (kill-buffer temp-buffer) -;;; x-symbol-mule-default-font))) - -(defun x-symbol-mule-make-cset (cset fonts) - "Define new charsets according to CSET using FONTS. -See `x-symbol-init-cset'. Return (NORMAL SUBSCRIPT SUPERSCIPT). Each -element is a face or nil if the corresponding font in FONTS could not be -found. Return nil, if no default font for that registry could be found." - (let ((first (if noninteractive - (caar fonts) - (x-symbol-try-font-name (car fonts))))) - (when (or first - (and x-symbol-latin-force-use (x-symbol-cset-coding cset)) - (and (find-charset (car (x-symbol-cset-left cset))) - (find-charset (car (x-symbol-cset-right cset))))) - (let ((default (eq (x-symbol-cset-coding cset) - (or x-symbol-default-coding 'iso-8859-1))) - (registry (x-symbol-cset-registry cset)) - (left (x-symbol-cset-left cset)) - (right (x-symbol-cset-right cset))) - (x-symbol-mule-make-charset left 0 registry) - (x-symbol-mule-make-charset right 1 registry) - (or default - (null first) - noninteractive - (not (fboundp 'face-property-matching-instance)) ;Only for XEmacs. - (and (null x-symbol-mule-change-default-face) - (face-property-matching-instance 'default 'font - (let ((cset - (or (car-safe left) - (car-safe right)))) - (if (and - (>= 21 emacs-major-version) - (>= emacs-minor-version 5)) - ;; da: rough patch here for - ;; brokage in 21.5 (beta28) - ;; (including distributed version) - ;; See `specifier-matching-instance' - (cons cset 'initial) - cset)) - nil nil t)) - (let ((origfont (x-symbol-mule-default-font))) - (set-face-property 'default 'font first nil - '(mule-fonts) 'prepend) - ;; If we do not reset the originally default font, we end up - ;; using a latin5 default font... - (set-face-property 'default 'font origfont))) - (if noninteractive - (list nil) - (let ((faces '(x-symbol-face x-symbol-sub-face x-symbol-sup-face)) - (docstrings x-symbol-face-docstrings) - (raise 0) - font) - (while faces - (when (setq font (x-symbol-try-font-name (car fonts) raise)) - (make-face (car faces) (car docstrings)) - (x-symbol-set-face-font (car faces) font - (list (car left) (car right)) - default)) - (setq fonts (cdr fonts) - raise (1+ raise) - faces (cdr faces) - docstrings (cdr docstrings)))) - (if first '(x-symbol-face) '(default))))))) - -(defun x-symbol-mule-make-char (cset encoding charsym face coding) - "Define character in CSET with ENCODING, represented by CHARSYM. -The character is considered to be a 8bit character in CODING. Use FACE -when character is presented in the grid." - (unless (char-table-p x-symbol-mule-char-table) - (setq x-symbol-mule-char-table (make-char-table 'generic)) - (put-char-table t nil x-symbol-mule-char-table)) - (let* ((char (cond - ((and (not x-symbol-use-unicode) (< encoding 128)) - (make-char (caadr cset) encoding)) - ((and (not x-symbol-use-unicode) (< encoding 256)) - (make-char (caddr cset) (- encoding 128))) - (t - ;; it must be Unicode... - (decode-char 'ucs encoding))))) -; (make-char (caddr cset) -; (mod encoding 256) -; (/ encoding 256)))))) - (put-char-table char charsym x-symbol-mule-char-table) - (x-symbol-set-cstrings charsym coding char - (and coding - (>= encoding 160) - (not x-symbol-use-unicode) - (make-char x-symbol-mule-default-charset - (- encoding 128))) - face))) - -;; (format "#x%x" (+ (* 3 256) 147)) = 0x393 -;; (make-char 'mule-unicode-2500-33ff 147 3) - -(defun x-symbol-mule-init-charsym-syntax (charsyms) - "Initialize the syntax for the characters represented by CHARSYMS. -See `x-symbol-init-cset' and `x-symbol-group-syntax-alist'." - (dolist (charsym charsyms) - (when (gethash charsym x-symbol-cstring-table) - (let ((syntax (get charsym 'x-symbol-syntax))) - (when syntax - (let ((opposite (and (cdr syntax) - (gethash (cddr syntax) x-symbol-cstring-table)))) - (modify-syntax-entry (aref (gethash charsym x-symbol-cstring-table) - 0) - (if opposite - (format (cadr syntax) opposite) - (car syntax)) - (standard-syntax-table)))))))) - -(defun x-symbol-mule-init-quail-bindings (context chain) - (if context - (quail-defrule (if (< (length context) (max x-symbol-key-min-length 2)) - (concat context x-symbol-quail-suffix-string) - context) - (mapconcat (lambda (charsym) - (gethash charsym x-symbol-cstring-table)) - chain "")) - (quail-define-package - "x-symbol" "X-Symbol" "XS" t - "X-Symbol input method Quail, see <info:(x-symbol)Input Method Quail>" - nil t ; FORGET-LAST-SELECTION - nil nil nil nil t))) ; MAXIMUM-SHORTEST - - -;;;=========================================================================== -;;; Character recognition -;;;=========================================================================== - -(defun x-symbol-mule-encode-charsym-after () - (get-char-table (char-after) x-symbol-mule-char-table)) - - -(defun x-symbol-mule-charsym-after (&optional pos) - "Return x-symbol charsym for character at POS. -POS defaults to point. If POS is out of range, return nil. Otherwise, -return (POS . CHARSYM) where CHARSYM is the x-symbol charsym for the -character at POS or nil otherwise." - (or pos (setq pos (point))) - (and (char-after pos) - (cons pos (get-char-table (char-after pos) x-symbol-mule-char-table)))) - -(defun x-symbol-mule-string-to-charsyms (string) - "Return list of charsyms for the characters in STRING. -If a character is not represented as a charsym, use the character itself -if is an ascii in the range \\040-\\176, otherwise nil." - (let ((chars (nreverse (append string nil))) - result after) - (while chars - (setq after (pop chars)) - (push (or (get-char-table after x-symbol-mule-char-table) - (and (<= ?\040 after) (< after ?\177) after)) - result)) - result)) - -(defun x-symbol-mule-match-before (atree pos &optional case-fn) - "Return association in ATREE for longest match before POS. -Return (START . VALUE) where the buffer substring between START and -point is the key to the association VALUE in ATREE. If optional CASE-FN -is non-nil, convert characters before the current position with CASE-FN. -See `x-symbol-atree-push'." - (let ((result nil)) - (while (setq atree (cdr (assoc (if case-fn - (funcall case-fn (char-after (decf pos))) - (char-after (decf pos))) - (cdr atree)))) - (and (car atree) - (setq result (cons pos (car atree))))) - result)) - - -;;;=========================================================================== -;;; Command hooks -;;;=========================================================================== - -;; Functions in these hooks are run twice (and more) when pressing a key which -;; runs a keyboard macro, e.g., if [backspace] runs [delete] and [delete] runs -;; `delete-backward-char'. - -(defun x-symbol-mule-pre-command-hook () - "Function used in `pre-command-hook' when `x-symbol-mode' is turned on. -Hide revealed characters, see `x-symbol-hide-revealed-at-point'. -Provide input method TOKEN, see `x-symbol-token-input'." - (x-symbol-hide-revealed-at-point) - (when (and x-symbol-mode (null x-symbol-mule-pre-command)) - (setq x-symbol-mule-pre-command t) - (x-symbol-token-input))) - -(defun x-symbol-mule-post-command-hook () - "Function used in `post-command-hook' when `x-symbol-mode' is turned on. -Provide input method ELECTRIC, see `x-symbol-electric-input'. Start -idle timer for info in echo area and revealing invisible characters, see -`x-symbol-start-itimer-once'." - (when (and x-symbol-mode x-symbol-mule-pre-command) - (x-symbol-electric-input) - (x-symbol-start-itimer-once)) - (setq x-symbol-mule-pre-command nil)) - -;;; Local IspellPersDict: .ispell_xsymb -;;; x-symbol-mule.el ends here diff --git a/x-symbol/lisp/x-symbol-nomule.el b/x-symbol/lisp/x-symbol-nomule.el deleted file mode 100644 index 9ca2d483..00000000 --- a/x-symbol/lisp/x-symbol-nomule.el +++ /dev/null @@ -1,382 +0,0 @@ -;;; x-symbol-nomule.el --- XEmacs/no-Mule support for package x-symbol - -;; Copyright (C) 1996-1998, 2002 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: 4.5 -;; 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]). - -;;; Code: - -(when (featurep 'mule) - (error "This file is meant to be used with XEmacs/no-Mule")) -(provide 'x-symbol-nomule) -(require 'x-symbol-hooks) -(eval-when-compile (require 'x-symbol)) ; x-symbol also requires this file -;;(eval-when-compile -;; (defvar x-symbol-encode-rchars) -;; (defvar x-symbol-face-docstrings)) - - -;;;=========================================================================== -;;; Function aliases and internal variables -;;;=========================================================================== - -(defalias 'x-symbol-make-cset 'x-symbol-nomule-make-cset) -(defalias 'x-symbol-make-char 'x-symbol-nomule-make-char) -(defalias 'x-symbol-init-charsym-syntax 'ignore) -(defalias 'x-symbol-charsym-after 'x-symbol-nomule-charsym-after) -(defalias 'x-symbol-string-to-charsyms 'x-symbol-nomule-string-to-charsyms) -(defalias 'x-symbol-match-before 'x-symbol-nomule-match-before) -(defalias 'x-symbol-encode-lisp 'x-symbol-nomule-encode-lisp) -(defalias 'x-symbol-pre-command-hook 'x-symbol-nomule-pre-command-hook) -(defalias 'x-symbol-post-command-hook 'x-symbol-nomule-post-command-hook) -(defalias 'x-symbol-encode-charsym-after 'x-symbol-nomule-encode-charsym-after) -(defalias 'x-symbol-init-quail-bindings 'ignore) - -(defvar x-symbol-nomule-mouse-yank-function mouse-yank-function - "Function that is called upon by `x-symbol-nomule-mouse-yank-function'.") - -(defvar x-symbol-nomule-mouse-track-function - (and (boundp 'default-mouse-track-normalize-point-function) - default-mouse-track-normalize-point-function) - "Function that is called upon by `x-symbol-nomule-mouse-track-function'.") - -(defvar x-symbol-nomule-cstring-regexp "[\231-\237][\041-\176\240-\377]" - "Internal configuration. Regexp matching cstrings of length 2. -You should probably change the value when adding additional csets.") -;; should match `x-symbol-nomule-multibyte-char-p'. - -(defvar x-symbol-nomule-char-table nil - "Internal. Map characters to charsyms.") -(defvar x-symbol-nomule-pre-command nil - "Internal. Used for pre- and post-command handling.") - -(defvar x-symbol-nomule-leading-faces-alist nil - "Internal. Alist of leading character with their faces. -Each element looks like (LEADING NORMAL SUBSCRIPT SUPERSCRIPT).") -(defvar x-symbol-nomule-font-lock-face nil - "Internal. Face to fontify current font-lock match.") - -(defvar x-symbol-nomule-display-table - ;; display-table via characters table is not implemented in XEmacs yet... - (let ((table (make-vector 256 nil)) - (i 128)) - (while (< i 160) - (aset table i "") - (incf i)) - table) - "Display table in faces with non-standard charset registry. -It makes the leading characters, range \\200-\\237, invisible.") - -(defvar x-symbol-nomule-character-quote-syntax "\\" ; bug in XEmacs - "Syntax designator for leading characters in cstrings.") - - -;;;=========================================================================== -;;; Init code -;;;=========================================================================== - -(defun x-symbol-nomule-init-faces (fonts prefix &optional display-table) - "Create and return faces for FONTS. -If a font can not be found, return nil for that font. PREFIX is the -prefix in the name of the new face. If non-nil, the new faces use -display table DISPLAY-TABLE." - (let ((suffixes '("-face" "-sub-face" "-sup-face")) - (docstrings x-symbol-face-docstrings) - (raise 0) - faces font face) - (while suffixes - (push (when (setq font (x-symbol-try-font-name (car fonts) raise)) - (setq face (intern (concat prefix (car suffixes)))) - (make-face face (car docstrings)) - (set-face-font face font) - (if display-table (set-face-display-table face display-table)) - face) - faces) - (setq fonts (cdr fonts) - suffixes (cdr suffixes) - raise (1+ raise) - docstrings (cdr docstrings))) - (nreverse faces))) - -(defun x-symbol-nomule-make-cset (cset fonts) - "Define new charsets according to CSET using FONTS. -See `x-symbol-init-cset'. Return (NORMAL SUBSCRIPT SUPERSCIPT). Each -element is a face or nil if the corresponding font in FONTS could not be -found. Return nil, if no default font for that registry could be found." - (cond ((noninteractive) (list nil)) - ((eq (x-symbol-cset-coding cset) x-symbol-default-coding) - (or (x-symbol-nomule-init-faces fonts "x-symbol") ; no registry! - (list nil))) - ((x-symbol-try-font-name (car fonts)) - (let* ((faces (x-symbol-nomule-init-faces - fonts - (concat "x-symbol-" (x-symbol-cset-registry cset)) - x-symbol-nomule-display-table)) - (leading (x-symbol-cset-leading cset)) - (ass (assq leading x-symbol-nomule-leading-faces-alist))) - (if x-symbol-nomule-character-quote-syntax - (modify-syntax-entry leading - x-symbol-nomule-character-quote-syntax - (standard-syntax-table))) - (if ass - (setcdr ass faces) - (push (cons leading faces) - x-symbol-nomule-leading-faces-alist)) - faces)))) - -(defun x-symbol-nomule-make-char (cset encoding charsym face coding) - "Define character in CSET with ENCODING, represented by CHARSYM. -The character is considered to be a 8bit character in CODING. Use FACE -when character is presented in the grid or has a non-standard registry." - (unless (char-table-p x-symbol-nomule-char-table) - (setq x-symbol-nomule-char-table (make-char-table 'generic)) - (put-char-table t nil x-symbol-nomule-char-table)) - (let* ((leading (and (null (eq coding - (or x-symbol-default-coding 'iso-8859-1))) - (cadar cset))) - (table (if leading - (get-char-table leading x-symbol-nomule-char-table) - x-symbol-nomule-char-table)) - (cstring (if leading - (concat (list leading encoding)) - (char-to-string (int-to-char encoding))))) - (unless (char-table-p table) - (setq table (make-char-table 'generic)) - (put-char-table t nil table) - (put-char-table leading table x-symbol-nomule-char-table)) - (put-char-table encoding charsym table) - (x-symbol-set-cstrings charsym coding cstring - (and coding (>= encoding 160) (int-to-char encoding)) - face))) - - -;;;=========================================================================== -;;; Character recognition -;;;=========================================================================== - -(defun x-symbol-nomule-multibyte-char-p (leading octet) - "Non-nil if LEADING and OCTET are a multibyte character." - (and leading (>= leading ?\200) (< leading ?\240) - octet (or (< octet ?\177) (>= octet ?\240)) (>= octet ?\41))) - -(defun x-symbol-nomule-encode-charsym-after () - (let ((charsym (get-char-table (char-after) x-symbol-nomule-char-table))) - (if (char-table-p charsym) - (let ((after (char-after (1+ (point))))) - (if after - (progn (setq x-symbol-encode-rchars 2) - (get-char-table after charsym)) - (setq x-symbol-encode-rchars 1) - nil)) - (setq x-symbol-encode-rchars 1) - charsym))) - -(defun x-symbol-nomule-charsym-after (&optional pos) - "Return x-symbol charsym for character at POS. -POS defaults to point. If POS is out of range, return nil. Otherwise, -return (POS1 . CHARSYM) where POS1 is POS-1 if the character before POS -is a leading character and POS1 is POS otherwise. CHARSYM is the -x-symbol charsym for the character at POS1 or nil otherwise." - (or pos (setq pos (point))) - (let ((before (char-before pos)) - (after (char-after pos))) - (and after - (if (or (x-symbol-nomule-multibyte-char-p before after) - (x-symbol-nomule-multibyte-char-p - (setq before after) - (setq after (char-after (incf pos))))) - (let ((table (get-char-table before x-symbol-nomule-char-table))) - (cons (1- pos) - (and (char-table-p table) (get-char-table after table)))) - (cons (1- pos) - (and (symbolp (setq after (get-char-table - before - x-symbol-nomule-char-table))) - after)))))) - -(defun x-symbol-nomule-string-to-charsyms (string) - "Return list of charsyms for the characters in STRING. -If a character is not represented as a charsym, use the character itself -if is an ascii in the range \\040-\\176, otherwise nil." - (let ((chars (nreverse (append string nil))) - result after table) - (while chars - (setq after (pop chars)) - (push (if (x-symbol-nomule-multibyte-char-p (car chars) after) - (and (setq table (get-char-table (pop chars) - x-symbol-nomule-char-table)) - (get-char-table after table)) - (or (get-char-table after x-symbol-nomule-char-table) after)) - result)) - result)) - -(defun x-symbol-nomule-match-before (atree pos &optional case-fn) - "Return association in ATREE for longest match before POS. -Return (START . VALUE) where the buffer substring between START and -point is the key to the association VALUE in ATREE. Do not use matches -where the character before START is a leading character. If optional -CASE-FN is non-nil, convert characters before the current position with -CASE-FN. See `x-symbol-atree-push'." - (or pos (setq pos (point))) - (let ((result nil) - char) - (while (setq char (if case-fn - (funcall case-fn (char-after (decf pos))) - (char-after (decf pos))) - atree (cdr (assoc char (cdr atree)))) - (and (car atree) - (not (x-symbol-nomule-multibyte-char-p (char-before pos) char)) - (setq result (cons pos (car atree))))) - result)) - - -;;;=========================================================================== -;;; Point correction -;;;=========================================================================== - -;; `mouse-track', `mouse-yank': If you set `mouse-yank-function' and/or -;; `default-mouse-track-normalize-point-function', set them before initializing -;; package X-Symbol. -(and x-symbol-nomule-mouse-yank-function - (setq mouse-yank-function 'x-symbol-nomule-mouse-yank-function)) -(and x-symbol-nomule-mouse-track-function - (setq default-mouse-track-normalize-point-function - 'x-symbol-nomule-mouse-track-function)) - -(defun x-symbol-nomule-goto-leading-char () - "If character before point is a leading character, move point left." - (if (x-symbol-nomule-multibyte-char-p (char-before (point)) - (char-after (point))) - (backward-char))) - -(defun x-symbol-nomule-mouse-yank-function () - "Function used as value for `mouse-yank'. -If character under point is a x-symbol character, move point to its -leading character before calling `x-symbol-nomule-mouse-yank-function'." - (x-symbol-nomule-goto-leading-char) - (funcall x-symbol-nomule-mouse-yank-function)) - -(defun x-symbol-nomule-mouse-track-function (type forwardp) - ;; checkdoc-params: (type forwardp) - "Function used as value for `default-mouse-track-normalize-point-function'. -After calling `x-symbol-nomule-mouse-track-function', if character under -point is a x-symbol character, move point to its leading character." - (funcall x-symbol-nomule-mouse-track-function type forwardp) - (x-symbol-nomule-goto-leading-char)) - - -;;;=========================================================================== -;;; Command hooks -;;;=========================================================================== - -;; Functions in these hooks are run twice (and more) when pressing a key which -;; runs a keyboard macro, e.g., if [backspace] runs [delete] and [delete] runs -;; `delete-backward-char'. - -(defun x-symbol-nomule-pre-command-hook () - "Function used in `pre-command-hook' when `x-symbol-mode' is turned on. -Hide revealed characters, see `x-symbol-hide-revealed-at-point'. -Provide input method TOKEN, see `x-symbol-token-input'. If character -under point is a x-symbol character, move point to its leading character." - (x-symbol-hide-revealed-at-point) - (when (and x-symbol-mode (null x-symbol-nomule-pre-command)) - (setq x-symbol-nomule-pre-command - (if (x-symbol-nomule-multibyte-char-p (char-before (point)) - (char-after (point))) - (prog1 (point) (backward-char)) - t)) - (x-symbol-token-input))) - -(defun x-symbol-nomule-post-command-hook () - "Function used in `post-command-hook' when `x-symbol-mode' is turned on. -Provide input method ELECTRIC, see `x-symbol-electric-input'. Start -idle timer for info in echo area and revealing invisible characters, see -`x-symbol-start-itimer-once'. Make sure that not only a part of a -length-two cstring has been deleted by the previous command." - (when (and x-symbol-nomule-pre-command x-symbol-mode) - (if (stringp (car-safe (car-safe buffer-undo-list))) - ;; i.e., after deleting text (`delete-char',...) - (let* ((pos (abs (cdar buffer-undo-list))) - (str (caar buffer-undo-list)) - (len (length str)) - (pre (and (> len 0) - (x-symbol-nomule-multibyte-char-p - (char-before (point)) (aref str 0)))) - (post (and (> len 0) - (x-symbol-nomule-multibyte-char-p - (aref str (1- len)) (char-after pos))))) - (if (or pre post) - (delete-region (if pre (1- pos) pos) (if post (1+ pos) pos)))) - (and (null (car-safe buffer-undo-list)) - (integerp x-symbol-nomule-pre-command) - (= (point) x-symbol-nomule-pre-command) - ;; i.e., after pressing Right - (< x-symbol-nomule-pre-command (point-max)) - (goto-char (1+ x-symbol-nomule-pre-command)))) - (x-symbol-electric-input) - (if (x-symbol-nomule-multibyte-char-p (char-after (point)) - (char-after (1+ (point)))) - (forward-char)) - (x-symbol-start-itimer-once)) - (setq x-symbol-nomule-pre-command nil)) - - -;;;=========================================================================== -;;; Font-lock support -;;;=========================================================================== - -(defun x-symbol-nomule-match-cstring (limit) - "Match next cstring of length 2 before LIMIT if `x-symbol-mode' is on. -Sets `x-symbol-nomule-font-lock-face' to the face used for this cstring -considering super- and subscripts." - (when x-symbol-mode - (let (faces old) - (block nil - (while (re-search-forward x-symbol-nomule-cstring-regexp limit t) - (setq faces (cdr (assq (char-after (match-beginning 0)) - x-symbol-nomule-leading-faces-alist)) - old (get-text-property (match-beginning 0) 'face)) - (or (listp old) (setq old (list old))) - (if (setq x-symbol-nomule-font-lock-face - (or (and (memq 'x-symbol-sup-face old) (caddr faces)) - (and (memq 'x-symbol-sub-face old) (cadr faces)) - (car faces))) - (return t))))))) - -(defun x-symbol-nomule-fontify-cstrings () - "Fontify all cstrings in buffer even when `x-symbol-mode' is off. -Faces according to the cstrings are prepended to existing face settings. -See also `x-symbol-nomule-match-cstring'." - (let ((x-symbol-mode t) - (limit (point-max))) - (goto-char (point-min)) - (while (x-symbol-nomule-match-cstring limit) - (font-lock-prepend-text-property (match-beginning 0) (match-end 0) - 'face - x-symbol-nomule-font-lock-face)))) - -;;; Local IspellPersDict: .ispell_xsymb -;;; x-symbol-nomule.el ends here diff --git a/x-symbol/lisp/x-symbol-sgml.el b/x-symbol/lisp/x-symbol-sgml.el deleted file mode 100644 index 98ae41a2..00000000 --- a/x-symbol/lisp/x-symbol-sgml.el +++ /dev/null @@ -1,690 +0,0 @@ -;;; x-symbol-sgml.el --- token language "SGML entity" for package x-symbol - -;; Copyright (C) 1996-1999, 2002, 2003 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: 4.5 -;; Keywords: WYSIWYG, 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]). - -;; Token language sgml is registered in x-symbol-hooks. - -;;; Code: - -(provide 'x-symbol-sgml) - - -;;;=========================================================================== -;;; Auto-style -;;;=========================================================================== - -(defcustom x-symbol-sgml-auto-style - '((not (memq major-mode '(sgml-mode xml-mode))) - (x-symbol-auto-coding-alist x-symbol-sgml-auto-coding-alist) - x-symbol-coding (not x-symbol-mode) - x-symbol-mode x-symbol-mode) - "Values for X-Symbol's buffer-local variables with language `sgml'. -See language access `x-symbol-LANG-auto-style'." - :group 'x-symbol-sgml - :group 'x-symbol-mode - :type 'x-symbol-auto-style) - -(defcustom x-symbol-sgml-auto-coding-alist - '(("<meta\\s-+http-equiv\\s-*=\\s-*\"content-type\"\\s-*content\\s-*=\\s-*\"text/html\\s-*;\\s-*charset\\s-*=\\s-*\\([A-Za-z0-9---]+\\)\"\\s-*>" 1 - ("iso-8859-1" . iso-8859-1) - ("iso-8859-2" . iso-8859-2) - ("iso-8859-3" . iso-8859-3) - ("iso-8859-9" . iso-8859-9) - ("iso-8859-15" . iso-8859-15))) - "*Alist used to determine the file coding with language `sgml'. -Used in the default value of `x-symbol-sgml-auto-style'. See variable -`x-symbol-auto-coding-alist' for details." - :group 'x-symbol-sgml - :group 'x-symbol-mode - :type 'x-symbol-auto-coding) - - -;;;=========================================================================== -;;; Miscellaneous variables -;;;=========================================================================== - -(defface x-symbol-sgml-symbol-face - '((((class color) (background light)) - (:foreground "orange4"))) - "*Face used for entities with name representing non-Latin-1 characters. -Used in `x-symbol-sgml-class-face-alist'." - :group 'x-symbol-sgml - :group 'x-symbol-info-general) - -(defface x-symbol-sgml-noname-face - '((((class color) (background light)) - (:foreground "red4"))) - "*Face used for Latin-N character entities without name. -Used in `x-symbol-sgml-class-face-alist'." - :group 'x-symbol-sgml - :group 'x-symbol-info-general) - -(defcustom x-symbol-sgml-modeline-name "sgml" - "Modeline name of token language `sgml'. -See language access `x-symbol-LANG-modeline-name'." - :group 'x-symbol-sgml - :type 'string) - -(defcustom x-symbol-sgml-header-groups-alist - '(("Operator" bigop operator) - ("Relation" relation) - ("Arrow, Punctuation" arrow triangle shape - white line dots punctuation quote parenthesis) - ("Symbol" symbol currency mathletter setsymbol) - ("Greek Letter" greek greek1) - ("Misc. Letter" letter slash) - ("Cedilla, Ogonek" cedilla ogonek) - ("Dotaccent, Ring" dotaccent ring) - ("Tilde, Breve" tilde breve) - ("Circumflex, Caron" circumflex caron) - ("Diaeresis, Umlaut" diaeresis hungarumlaut) - ("Acute, Grave" acute grave)) - "Header/submenu specification of the specific menu for language `sgml'. -See language access `x-symbol-LANG-header-groups-alist'." - :group 'x-symbol-sgml - :group 'x-symbol-input-init - :type 'x-symbol-headers) - -(defcustom x-symbol-sgml-class-alist - '((symbol) - (noname "SGML char-ref" (x-symbol-emph-info-face)) - (VALID "SGML entity" (x-symbol-info-face)) - (INVALID "no SGML entity" (x-symbol-emph-info-face))) - "Token classes displayed by info in echo area, for language `sgml'. -See language access `x-symbol-LANG-class-alist'." - :group 'x-symbol-sgml - :group 'x-symbol-info-strings - :type 'x-symbol-class-info) - -(defcustom x-symbol-sgml-class-face-alist - '((symbol x-symbol-sgml-symbol-face (x-symbol-sgml-symbol-face)) - (noname x-symbol-sgml-noname-face (x-symbol-sgml-noname-face))) - "Color scheme in language specific grid and info, for language `sgml'. -See language access `x-symbol-LANG-class-face-alist'." - :group 'x-symbol-sgml - :group 'x-symbol-input-init - :group 'x-symbol-info-general - :type 'x-symbol-class-faces) - -(defcustom x-symbol-sgml-electric-ignore nil - "Specification restricting input method ELECTRIC with language `sgml'. -See language access `x-symbol-LANG-electric-ignore'." - :group 'x-symbol-sgml - :group 'x-symbol-input-control - :type 'x-symbol-function-or-regexp) - -(defvar x-symbol-sgml-token-list 'x-symbol-sgml-token-list-name - "Symbol specifying the token definition for language `sgml'. -Allowed values are - - `x-symbol-sgml-token-list-name': the canonical token for a character - is a entity references, - - `x-symbol-sgml-token-list-code': the canonical token for a character - is a character references, - - `x-symbol-sgml-token-list-netscape': the canonical token for a - Latin-1 character is a entity references, for others, it is a - character references. Bug workaround for Netscape, v4.6 or lower. - -The value is used by function `x-symbol-sgml-default-token-list' which -is used for the definition of the conversion tables. See -`x-symbol-sgml-token-grammar'.") - -(defvar x-symbol-sgml-token-grammar - '(x-symbol-make-grammar - :decode-regexp "&[#0-9A-Za-z]+;" - :token-list x-symbol-sgml-default-token-list) - "Grammar of token language `sgml'. -See language access `x-symbol-LANG-token-grammar'.") - -(defvar x-symbol-sgml-user-table nil - "User table defining SGML entities, used in `x-symbol-sgml-table'.") - -(defvar x-symbol-sgml-generated-data nil - "Generated data for token language `sgml'. -See language access `x-symbol-LANG-generated-data'.") - - -;;;=========================================================================== -;;; Image support -;;;=========================================================================== - -(defcustom x-symbol-sgml-master-directory 'ignore - "Function returning the directory of the master file or nil. -See `x-symbol-image-parse-buffer'." - :group 'x-symbol-sgml - :group 'x-symbol-image-language - :type 'function) - -(defcustom x-symbol-sgml-image-searchpath '("./") - "Search path for implicitly relative image file names. -See language access `x-symbol-LANG-image-searchpath'." - :group 'x-symbol-sgml - :group 'x-symbol-image-language - :type '(repeat directory)) - -(defcustom x-symbol-sgml-image-cached-dirs '("images/" "pictures/") - "Directory parts of images stored in the memory cache. -See language access `x-symbol-LANG-image-cached-dirs'." - :group 'x-symbol-sgml - :group 'x-symbol-image-language - :type '(repeat string)) - -(defcustom x-symbol-sgml-image-file-truename-alist - '(("\\`file:" . "") - ("\\`[A-Za-z]+:")) - "Alist used to determine the file name of an image URL. -Each element looks like - (REGEXP) or - (REGEXP . NEWTEXT) or - (REGEXP FUNCTION ARG...) -If the the image file name is matched by REGEXP, the corresponding -element is processed, if no REGEXP matches, the image file name is used -as it is. With the first form, the image command will not be -highlighted. With the second form, replace text matched by REGEXP with -NEWTEXT, see `replace-match' for details. With the third form, -FUNCTION, call FUNCTION with the image file name and the remaining -arguments ARGs to get the true file name. - -E.g., I add the following element to this variable: - (\"\\\\`http://www\\\\.fmi\\\\.uni-passau\\\\.de/~wedler/\" \. \"~/public_html/\")" - :group 'x-symbol-sgml - :group 'x-symbol-image-language - :type '(repeat (cons :format "%v" - :value ("" . "") ; doesn't work (custom bug?) - regexp - (choice ;;:value "" - (const :tag "Not highlighted" nil) - (string :tag "Replace match with") - (cons :tag "Call" - function - (repeat :tag "With arguments" sexp)))))) - -(defcustom x-symbol-sgml-image-keywords - '("\\.\\(gif\\|png\\|jpe?g\\)\\'" - ("<img[ \t][^\n>]*src=\"\\([^\n\"]+\\)\"[^\n>]*>" - x-symbol-sgml-image-file-truename 1)) - "Keywords for image insertion commands of language `sgml'. -See language access `x-symbol-LANG-image-keywords'." - :group 'x-symbol-sgml - :group 'x-symbol-image-language - :type 'x-symbol-image-keywords) - -(defun x-symbol-sgml-image-file-truename (num) - "Return true image file name for last match. -Return text matched by the NUMth regexp group of the corresponding -keyword regexp, after being processed according to -`x-symbol-sgml-image-file-truename-alist'." - (x-symbol-match-in-alist (setq num (match-string num)) - x-symbol-sgml-image-file-truename-alist - num t)) - - -;;;=========================================================================== -;;; Super- and Subscripts -;;;=========================================================================== - -(defcustom x-symbol-sgml-subscript-matcher 'x-symbol-sgml-subscript-matcher - "Function matching super-/subscripts for language `sgml'. -See language access `x-symbol-LANG-subscript-matcher'." - :group 'x-symbol-sgml - :type 'function) - -(defcustom x-symbol-sgml-font-lock-regexp "<su[bp]>" - "Regexp matching the start tag of SGML's super- and subscripts. -See also `x-symbol-sgml-font-lock-alist'." - :group 'x-symbol-sgml - :type 'regexp) - -(defcustom x-symbol-sgml-font-lock-limit-regexp "\n\\|</?su[bp]>" - "Regexp matching the end tag of SGML's super- and subscripts. -This regexp should match the end of line and the closing tags in -`x-symbol-sgml-font-lock-alist'." - :group 'x-symbol-sgml - :type 'regexp) - -(defcustom x-symbol-sgml-font-lock-contents-regexp "[^ \t\n\240]" - "*Regexp matching the super- and subscript contents. -This regexp should match the text between the opening and closing super- -or subscript tag." - :group 'x-symbol-sgml - :type 'regexp) - -(defcustom x-symbol-sgml-font-lock-alist - '(("<sub>" . "</sub>") ("<sup>" . "</sup>")) - "Alist for correct tag pairs for HTML's super- and subscripts. -Each element looks like (OPEN . CLOSE). All keys OPEN in this alist -should be matched by `x-symbol-sgml-font-lock-regexp', all CLOSEs should -be matched by `x-symbol-sgml-font-lock-limit-regexp'." - :group 'x-symbol-sgml - :type '(repeat (cons :format "%v" - (string :tag "Open tag") - (string :tag "Close tag")))) - - -;;;=========================================================================== -;;; The tables -;;;=========================================================================== - -(defun x-symbol-sgml-default-token-list (tokens) - (mapcar #'list - (and (car tokens) - (memq x-symbol-sgml-token-list - '(x-symbol-sgml-token-list-name - x-symbol-sgml-token-list-code - x-symbol-sgml-token-list-netscape)) - (if (or (eq x-symbol-sgml-token-list - 'x-symbol-sgml-token-list-name) - (and (eq x-symbol-sgml-token-list - 'x-symbol-sgml-token-list-netscape) - (< (car tokens) 256))) - (append (cdr tokens) (list (format "&#%d;" (car tokens)))) - (cons (format "&#%d;" (car tokens)) (cdr tokens)))))) - -;; http://www.w3.org/TR/REC-html40/sgml/entities.html -;; (query-replace-regexp "<!ENTITY[ \t]*\\([A-Za-z][A-Za-z0-9]*\\)[ \t]*CDATA[ \t]*\"&#\\([0-9]+\\);\"[ \t]*--\\(.+\\) -->[ \t]*.*$" " (\\1 () \\2 \"&\\1;\") ; \\3") - -(defvar x-symbol-sgml-latin1-table - '((nobreakspace () 160 " ") - (exclamdown () 161 "¡") - (cent () 162 "¢") - (sterling () 163 "£") - (currency () 164 "¤") - (yen () 165 "¥") - (brokenbar () 166 "¦" "&brkbar;") - (section () 167 "§") - (diaeresis () 168 "¨" "¨") - (copyright () 169 "©") - (ordfeminine () 170 "ª") - (guillemotleft () 171 "«") - (notsign () 172 "¬") - (hyphen () 173 "­") - (registered () 174 "®") - (macron () 175 "¯" "&hibar;") - (degree () 176 "°") - (plusminus () 177 "±") - (twosuperior () 178 "²") - (threesuperior () 179 "³") - (acute () 180 "´") - (mu1 () 181 "µ") - (paragraph () 182 "¶") - (periodcentered () 183 "·") - (cedilla () 184 "¸") - (onesuperior () 185 "¹") - (masculine () 186 "º") - (guillemotright () 187 "»") - (onequarter () 188 "¼") - (onehalf () 189 "½") - (threequarters () 190 "¾") - (questiondown () 191 "¿") - (Agrave () 192 "À") - (Aacute () 193 "Á") - (Acircumflex () 194 "Â") - (Atilde () 195 "Ã") - (Adiaeresis () 196 "Ä") - (Aring () 197 "Å") - (AE () 198 "Æ") - (Ccedilla () 199 "Ç") - (Egrave () 200 "È") - (Eacute () 201 "É") - (Ecircumflex () 202 "Ê") - (Ediaeresis () 203 "Ë") - (Igrave () 204 "Ì") - (Iacute () 205 "Í") - (Icircumflex () 206 "Î") - (Idiaeresis () 207 "Ï") - (ETH () 208 "Ð") ; "Đ" for Dbar (U0110) = latin2#208? - (Ntilde () 209 "Ñ") - (Ograve () 210 "Ò") - (Oacute () 211 "Ó") - (Ocircumflex () 212 "Ô") - (Otilde () 213 "Õ") - (Odiaeresis () 214 "Ö") - (multiply () 215 "×") - (Ooblique () 216 "Ø") - (Ugrave () 217 "Ù") - (Uacute () 218 "Ú") - (Ucircumflex () 219 "Û") - (Udiaeresis () 220 "Ü") - (Yacute () 221 "Ý") - (THORN () 222 "Þ") - (ssharp () 223 "ß") - (agrave () 224 "à") - (aacute () 225 "á") - (acircumflex () 226 "â") - (atilde () 227 "ã") - (adiaeresis () 228 "ä") - (aring () 229 "å") - (ae () 230 "æ") - (ccedilla () 231 "ç") - (egrave () 232 "è") - (eacute () 233 "é") - (ecircumflex () 234 "ê") - (ediaeresis () 235 "ë") - (igrave () 236 "ì") - (iacute () 237 "í") - (icircumflex () 238 "î") - (idiaeresis () 239 "ï") - (eth () 240 "ð") - (ntilde () 241 "ñ") - (ograve () 242 "ò") - (oacute () 243 "ó") - (ocircumflex () 244 "ô") - (otilde () 245 "õ") - (odiaeresis () 246 "ö") - (division () 247 "÷") - (oslash () 248 "ø") - (ugrave () 249 "ù") - (uacute () 250 "ú") - (ucircumflex () 251 "û") - (udiaeresis () 252 "ü") - (yacute () 253 "ý") - (thorn () 254 "þ") - (ydiaeresis () 255 "ÿ")) - "Table defining SGML entities, see `x-symbol-sgml-table'.") - -(defvar x-symbol-sgml-latinN-table - '((Aogonek (noname) 260) - (breve (noname) 728) - (Lslash (noname) 321) - (Lcaron (noname) 317) - (Sacute (noname) 346) - (Scaron (symbol) 352 "Š") - (Scedilla (noname) 350) - (Tcaron (noname) 356) - (Zacute (noname) 377) - (Zcaron (noname) 381) - (Zdotaccent (noname) 379) - (aogonek (noname) 261) - (ogonek (noname) 731) - (lslash (noname) 322) - (lcaron (noname) 318) - (sacute (noname) 347) - (caron (noname) 711) - (scaron (symbol) 353 "š") - (scedilla (noname) 351) - (tcaron (noname) 357) - (zacute (noname) 378) - (hungarumlaut (noname) 733) - (zcaron (noname) 382) - (zdotaccent (noname) 380) - (Racute (noname) 340) - (Abreve (noname) 258) - (Lacute (noname) 313) - (Cacute (noname) 262) - (Ccaron (noname) 268) - (Eogonek (noname) 280) - (Ecaron (noname) 282) - (Dcaron (noname) 270) - (Dbar (noname) 272) - (Nacute (noname) 323) - (Ncaron (noname) 327) - (Ohungarumlaut (noname) 336) - (Rcaron (noname) 344) - (Uring (noname) 366) - (Uhungarumlaut (noname) 368) - (Tcedilla (noname) 354) - (racute (noname) 341) - (abreve (noname) 259) - (lacute (noname) 314) - (cacute (noname) 263) - (ccaron (noname) 269) - (eogonek (noname) 281) - (ecaron (noname) 283) - (dcaron (noname) 271) - (dbar (noname) 273) - (nacute (noname) 324) - (ncaron (noname) 328) - (ohungarumlaut (noname) 337) - (rcaron (noname) 345) - (uring (noname) 367) - (uhungarumlaut (noname) 369) - (tcedilla (noname) 355) - (dotaccent (noname) 729) - (Hbar (noname) 294) - (Hcircumflex (noname) 292) - (Idotaccent (noname) 304) - (Gbreve (noname) 286) - (Jcircumflex (noname) 308) - (hbar (noname) 295) - (hcircumflex (noname) 293) - (dotlessi (noname) 305) - (gbreve (noname) 287) - (jcircumflex (noname) 309) - (Cdotaccent (noname) 266) - (Ccircumflex (noname) 264) - (Gdotaccent (noname) 288) - (Gcircumflex (noname) 284) - (Ubreve (noname) 364) - (Scircumflex (noname) 348) - (cdotaccent (noname) 267) - (ccircumflex (noname) 265) - (gdotaccent (noname) 289) - (gcircumflex (noname) 285) - (ubreve (noname) 365) - (scircumflex (noname) 349) - (euro (symbol) 8364 "€") - (OE (symbol) 338 "Œ") - (oe (symbol) 339 "œ") - (Ydiaeresis (symbol) 376 "Ÿ")) - "Table defining SGML entities, see `x-symbol-sgml-table'.") - -(defvar x-symbol-sgml-xsymb0-table - '((Delta (symbol) 916 "Δ") - (Phi (symbol) 934 "Φ") - (Gamma (symbol) 915 "Γ") - (theta1 (symbol) 977 "ϑ") - (Lambda (symbol) 923 "Λ") - (Pi (symbol) 928 "Π") - (Theta (symbol) 920 "Θ") - (Sigma (symbol) 931 "Σ") - (sigma1 (symbol) 962 "ς") - (Omega (symbol) 937 "Ω") - (Xi (symbol) 926 "Ξ") - (Psi (symbol) 936 "Ψ") - (alpha (symbol) 945 "α") - (beta (symbol) 946 "β") - (chi (symbol) 967 "χ") - (delta (symbol) 948 "δ") - (epsilon (symbol) 949 "ε") - (phi (symbol) 966 "φ") - (gamma (symbol) 947 "γ") - (eta (symbol) 951 "η") - (iota (symbol) 953 "ι") - (kappa (symbol) 954 "κ") - (lambda (symbol) 955 "λ") - (mu (symbol) 956 "μ") - (nu (symbol) 957 "ν") - (pi (symbol) 960 "π") - (theta (symbol) 952 "θ") - (rho (symbol) 961 "ρ") - (sigma (symbol) 963 "σ") - (tau (symbol) 964 "τ") - (upsilon (symbol) 965 "υ") - (omega1 (symbol) 982 "ϖ") - (omega (symbol) 969 "ω") - (xi (symbol) 958 "ξ") - (psi (symbol) 968 "ψ") - (zeta (symbol) 950 "ζ") - (Upsilon1 (symbol) 978 "ϒ") - - (florin (symbol) 402 "ƒ") - (bullet (symbol) 8226 "•") - (ellipsis (symbol) 8230 "…") - (minute (symbol) 8242 "′") - (second (symbol) 8243 "″") - (radicalex (symbol) 8254 "‾") - (fraction (symbol) 8260 "⁄") - (weierstrass (symbol) 8472 "℘") - (Ifraktur (symbol) 8465 "ℑ") - (Rfraktur (symbol) 8476 "ℜ") - (trademark (symbol) 8482 "™") - (aleph (symbol) 8501 "ℵ") - (arrowleft (symbol) 8592 "←") - (arrowup (symbol) 8593 "↑") - (arrowright (symbol) 8594 "→") - (arrowdown (symbol) 8595 "↓") - (arrowboth (symbol) 8596 "↔") - (carriagereturn (symbol) 8629 "↵") - (arrowdblleft (symbol) 8656 "⇐") - (arrowdblup (symbol) 8657 "⇑") - (arrowdblright (symbol) 8658 "⇒") - (arrowdbldown (symbol) 8659 "⇓") - (arrowdblboth (symbol) 8660 "⇔") - - (partialdiff (symbol) 8706 "∂") - (emptyset (symbol) 8709 "∅") - (gradient (symbol) 8711 "∇") - (element (symbol) 8712 "∈") - (notelement (symbol) 8713 "∉") - (suchthat (symbol) 8715 "∋") - (product (symbol) 8719 "∏") - (summation (symbol) 8721 "∑") - (minus1 (symbol) 8722 "−") - (asterisk1 (symbol) 8727 "∗") - (radical (symbol) 8730 "√") - (proportional (symbol) 8733 "∝") - (infinity (symbol) 8734 "∞") - (angle (symbol) 8736 "∠") - (logicaland (symbol) 8743 "∧") - (logicalor (symbol) 8744 "∨") - (intersection (symbol) 8745 "∩") - (union (symbol) 8746 "∪") - (integral (symbol) 8747 "∫") - (similar (symbol) 8764 "∼") - (congruent (symbol) 8773 "≅") - (notequal (symbol) 8800 "≠") - (equivalence (symbol) 8801 "≡") - (lessequal (symbol) 8804 "≤") - (greaterequal (symbol) 8805 "≥") - (propersubset (symbol) 8834 "⊂") - (propersuperset (symbol) 8835 "⊃") - (notsubset (symbol) 8836 "⊄") - (reflexsubset (symbol) 8838 "⊆") - (reflexsuperset (symbol) 8839 "⊇") - (circleplus (symbol) 8853 "⊕") - (circlemultiply (symbol) 8855 "⊗") - (perpendicular (symbol) 8869 "⊥") - (periodcentered1 (symbol) 8901 "⋅") - (angleleft (symbol) 9001 "⟨") - (angleright (symbol) 9002 "⟩") - (lozenge (symbol) 9674 "◊") - (spade (symbol) 9824 "♠") - (club (symbol) 9827 "♣") - (heart (symbol) 9829 "♥") - (diamond (symbol) 9830 "♦")) - "Table defining SGML entities, see `x-symbol-sgml-table'.") - -(defvar x-symbol-sgml-xsymb1-table - '((ampersand2 () 38 "&") - (quotedbl1 () 34 """) - (less2 () 60 "<") - (greater2 () 62 ">") - (universal1 (symbol) 8704 "∀") - (existential1 (symbol) 8707 "∃") - (circumflex (symbol) 710 "ˆ") - (tilde (symbol) 732 "˜") - ;;(ensp (symbol) 8194 " ") ; en space, U+2002 ISOpub - ;;(emsp (symbol) 8195 " ") ; em space, U+2003 ISOpub - ;;(thinsp (symbol) 8201 " ") ; thin space, U+2009 ISOpub - ;;(zwnj (symbol) 8204 "‌") ; zero width non-joiner, U+200C NEW RFC 2070 - ;;(zwj (symbol) 8205 "‍") ; zero width joiner, U+200D NEW RFC 2070 - ;;(lrm (symbol) 8206 "‎") ; left-to-right mark, U+200E NEW RFC 2070 - ;;(rlm (symbol) 8207 "‏") ; right-to-left mark, U+200F NEW RFC 2070 - (endash (symbol) 8211 "–") - (emdash (symbol) 8212 "—") - ;;(lsquo (symbol) 8216 "‘") ; left single quotation mark, U+2018 ISOnum - ;;(rsquo (symbol) 8217 "’") ; right single quotation mark, U+2019 ISOnum - ;;(sbquo (symbol) 8218 "‚") ; single low-9 quotation mark, U+201A NEW - ;;(ldquo (symbol) 8220 "“") ; left double quotation mark, U+201C ISOnum - ;;(rdquo (symbol) 8221 "”") ; right double quotation mark, U+201D ISOnum - ;;(bdquo (symbol) 8222 "„") ; double low-9 quotation mark, U+201E NEW - (dagger (symbol) 8224 "†") - (daggerdbl (symbol) 8225 "‡") - (perthousand (symbol) 8240 "‰") - (guilsinglleft (symbol) 8249 "‹") - (guilsinglright (symbol) 8250 "›") - (therefore1 (symbol) 8756 "∴") - (ceilingleft (symbol) 8968 "⌈") - (ceilingright (symbol) 8969 "⌉") - (floorleft (symbol) 8970 "⌊") - (floorright (symbol) 8971 "⌋") - (asym (symbol) 8776 "≈") - ) - "Table defining SGML entities, see `x-symbol-sgml-table'.") - -;; Should I add symbols from http://www.bbsinc.com/iso8859.html ? -(defvar x-symbol-sgml-table - (append x-symbol-sgml-user-table - '(nil) - x-symbol-sgml-latin1-table - x-symbol-sgml-latinN-table - x-symbol-sgml-xsymb0-table - x-symbol-sgml-xsymb1-table) - "Table defining `sgml' tokens for the characters. -See language access `x-symbol-LANG-table' and variable -`x-symbol-sgml-token-list'. Use `x-symbol-sgml-user-table' to define -private SGML entities or shadow existing ones.") - - -;;;=========================================================================== -;;; Subscript functions -;;;=========================================================================== - -(defun x-symbol-sgml-subscript-matcher (limit) - ;; checkdoc-params: (limit) - "Match and skip over super- and subscripts. -Return nil if `x-symbol-mode' or `x-symbol-subscripts' is nil. Uses -`x-symbol-sgml-font-lock-regexp'." - (block nil - (let (open-beg open-end close-end close-beg) - (while (re-search-forward x-symbol-sgml-font-lock-regexp limit t) - (setq open-beg (match-beginning 0) - open-end (match-end 0)) - (when (re-search-forward x-symbol-sgml-font-lock-limit-regexp - limit 'limit) - (setq close-beg (match-beginning 0) - close-end (match-end 0)) - (if (equal (cdr (assoc (downcase - (buffer-substring open-beg open-end)) - x-symbol-sgml-font-lock-alist)) - (downcase (buffer-substring close-beg close-end))) - (when - (save-excursion - (goto-char open-end) - (re-search-forward x-symbol-sgml-font-lock-contents-regexp - close-beg t)) - (store-match-data (list open-beg close-end - open-beg open-end - open-end close-beg - close-beg close-end)) - (return (if (eq (char-after (+ 3 open-beg)) ?b) - 'x-symbol-sub-face - 'x-symbol-sup-face))) - (goto-char close-beg))))))) - -;;; Local IspellPersDict: .ispell_xsymb -;;; x-symbol-sgml.el ends here diff --git a/x-symbol/lisp/x-symbol-tex.el b/x-symbol/lisp/x-symbol-tex.el deleted file mode 100644 index d9c073f9..00000000 --- a/x-symbol/lisp/x-symbol-tex.el +++ /dev/null @@ -1,1291 +0,0 @@ -;;; x-symbol-tex.el --- token language "TeX macro" for package x-symbol - -;; Copyright (C) 1996-2003 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: 4.5.X -;; Keywords: WYSIWYG, LaTeX, 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]). - -;; Token language tex is registered in x-symbol-hooks. - -;;; Code: - -(provide 'x-symbol-tex) - -(eval-when-compile - (require 'cl) - (require 'x-symbol-macs) - (require 'x-symbol)) - -(eval-when-compile - (defvar TeX-master) - (defvar file) (defvar line) (defvar offset) - (defvar string) (defvar after-string)) - -;; (defgroup x-symbol-tex ...) in x-symbol-hooks.el -;; (defcustom x-symbol-tex-name ...) in x-symbol-hooks.el -;; (defcustom x-symbol-tex-modes ...) in x-symbol-hooks.el - - -;;;=========================================================================== -;;; Auto-style -;;;=========================================================================== - -(defcustom x-symbol-tex-auto-style - '(;; during eval, `buffer-file-name' is sans-version and mode-suffixes - (if buffer-file-name (string-match "\\.tex\\'" buffer-file-name) t) - (if x-symbol-mode - (x-symbol-auto-coding-alist x-symbol-tex-auto-coding-alist nil - (if x-symbol-tex-coding-master - 'x-symbol-tex-auto-coding-alist))) - x-symbol-coding (not x-symbol-mode) - x-symbol-mode x-symbol-mode) - "Values for X-Symbol's buffer-local variables with language `tex'. -See language access `x-symbol-LANG-auto-style'." - :group 'x-symbol-tex - :group 'x-symbol-mode - :type 'x-symbol-auto-style) - -(defcustom x-symbol-tex-auto-coding-alist - '(("\\\\usepackage[ \t]*\\[\\([A-Za-z]+[0-9]+\\)\\]{inputenc}" 1 - ("latin1" . iso-8859-1) - ("latin2" . iso-8859-2) - ("latin3" . iso-8859-3) - ("latin5" . iso-8859-9) - ("latin9" . iso-8859-15)) - ("\\`[ \t]*%&.*[ \t]+--?translate-file[ \t]*=[ \t]*i\\([A-Za-z]+[0-9]+\\)-" 1 - ("l1" . iso-8859-1) - ("l2" . iso-8859-2))) - "*Alist used to determine the file coding with language `tex'. -Used in the default value of `x-symbol-tex-auto-style'. See variable -`x-symbol-auto-coding-alist' for details." - :group 'x-symbol-tex - :group 'x-symbol-mode - :type 'x-symbol-auto-coding) - -(defcustom x-symbol-tex-coding-master 'TeX-master - "*If non-nil, symbol of local variable with name of master file. -Used inside function `x-symbol-tex-auto-coding-alist'." - :group 'x-symbol-tex - :group 'x-symbol-mode - :type 'boolean) - - -;;;=========================================================================== -;;; General language accesses, see `x-symbol-language-access-alist' -;;;=========================================================================== - -(defcustom x-symbol-tex-modeline-name "tex" - "Modeline name of token language `tex'. -See language access `x-symbol-LANG-modeline-name'." - :group 'x-symbol-tex - :type 'string) - -(defcustom x-symbol-tex-header-groups-alist nil - "Header/submenu specification of the specific menu for language `tex'. -See language access `x-symbol-LANG-header-groups-alist'." - :group 'x-symbol-tex - :group 'x-symbol-input-init - :type 'x-symbol-headers) - -(defcustom x-symbol-tex-electric-ignore 'x-symbol-tex-default-electric-ignore - "Specification restricting input method ELECTRIC with language `tex'. -See language access `x-symbol-LANG-electric-ignore'." - :group 'x-symbol-tex - :group 'x-symbol-input-control - :type 'x-symbol-function-or-regexp) - -(defcustom x-symbol-tex-electric-ignore-regexp "[A-Za-z]~\\'" - "*Regexp matching contexts not to be used for input method ELECTRIC. -Used by `x-symbol-tex-default-electric-ignore'." - :group 'x-symbol-tex - :group 'x-symbol-input-control - :type '(choice (const :tag "None" nil) regexp)) - -(defcustom x-symbol-tex-token-suppress-space t - "*If non-nil, suppress space after text-mode control words. -If non-nil, inserting SPC without prefix argument after a text-mode only -control word will only replace the control word with the character -according to `x-symbol-token-input', it will not insert the space." - :group 'x-symbol-tex - :group 'x-symbol-input-control - :type 'boolean) - -(defvar x-symbol-tex-extra-menu-items - '(("Conversion" - "---" - ["tex: Decode Accented Letters (alt)" x-symbol-tex-xdecode-latex - :active (and x-symbol-mode (not buffer-read-only))] - ["tex: Remove Braces around Letters" x-symbol-tex-xdecode-old - :active (and x-symbol-mode (not buffer-read-only))])) - "Extra menu entries in menu for language `tex'. -See language access `x-symbol-LANG-extra-menu-items'.") - -(defvar x-symbol-tex-token-grammar - '(x-symbol-make-grammar - :encode-spec x-symbol-tex-encode - :decode-regexp "\\\\\\(?:[@A-Za-z]+\\|[-{}#_&|%$]\\|[.~^\"'`=]\\(?:[A-Za-z]\\|{}\\|\\(\\\\\\)[ij][@A-Za-z]?\\)\\)" - :decode-spec x-symbol-tex-decode - :input-regexp ("\\\\\\(?:[.~^\"'`=]\\\\[ij]\\|[ckvuHr]\\(?: [A-Za-z]\\|{ ?}\\)\\)\\'" "\\\\\\(?:[@A-Za-z]+\\|[-{}#_&|%$]\\|[.~^\"'`=]\\(?:[A-Za-z]\\|{}\\)\\)\\'") - :input-spec x-symbol-tex-token-input - :token-list x-symbol-tex-default-token-list - :after-init x-symbol-tex-after-init-language) - "Grammar of token language `tex'. -See language access `x-symbol-LANG-token-grammar'.") - -;; The following vars could be made customizable, but it would not be a good -;; idea if different users have a different decode behavior: - -(defvar x-symbol-tex-verb-delimiter-regexp "[-!#$&*+/=?^|~]" - "Regexp matching delimiters of \verb arguments not to be decoded.") -;; by default: not letter, digits, punctuation and quotation - -(defvar x-symbol-tex-env-verbatim-regexp "{verbatim\\*?}" - "Regexp matching environments with a contents not to be decoded. -The regexp should also match the surrounding braces.") - -(defvar x-symbol-tex-env-tabbing-regexp "{tabbing}" - "Regexp matching environments with a contents not to be decoded. -The regexp should also match the surrounding braces.") - -(defvar x-symbol-tex-user-table nil - "User table defining TeX macros, used in `x-symbol-tex-table'.") - -(defvar x-symbol-tex-generated-data nil - "Generated data for token language `tex'. -See language access `x-symbol-LANG-generated-data'.") - - -;;;=========================================================================== -;;; Image support -;;;=========================================================================== - -(defcustom x-symbol-tex-master-directory 'x-symbol-tex-default-master-directory - "Specification of the master directory for images for language `tex'. -See language access `x-symbol-LANG-master-directory'." - :group 'x-symbol-tex - :group 'x-symbol-image-language - :type 'function) - -(defcustom x-symbol-tex-image-searchpath - (let ((dirs (or (getenv "TEXPICTS") (getenv "TEXINPUTS"))) - dir result) - (if dirs (setq dirs (if (fboundp 'split-path) - (split-path dirs) - (parse-colon-path dirs)))) - (while dirs - (when (setq dir (pop dirs)) - (or (member dir '("" "/")) ; `parse-colon-path': foo// -> / - (member (setq dir (file-name-as-directory dir)) result) - (push dir result)))) - (nreverse (if (member "./" result) result (cons "./" result)))) - "Search path for implicitly relative image file names. -See language access `x-symbol-LANG-image-searchpath'." - :group 'x-symbol-tex - :group 'x-symbol-image-language - :type '(repeat directory)) - -(defcustom x-symbol-tex-image-cached-dirs '("figures/") - "Directory parts of images stored in the memory cache. -See language access `x-symbol-LANG-image-cached-dirs'." - :group 'x-symbol-tex - :group 'x-symbol-image-language - :type '(repeat string)) - -(defcustom x-symbol-tex-image-keywords - ;; keep it short! - '("\\.\\(eps\\|ps\\(tex\\)?\\|gif\\|png\\|jpe?g\\|pdf\\)\\'" - ("\\\\epsf\\(box\\|file\\)[ \t]*\\(\\[[^][\n]*\\]\\)?{\\([^ \t\n,{}]+\\.e?ps\\)}" 3) - ("\\\\e?psfig[ \t]*{file=\\([^ \t\n,{}]+\\.e?ps\\)[^\n{}]*}" 1) - ("\\\\includegraphics\\*?[ \t]*\\(\\[[^][\n]*\\]\\)?\\(\\[[^][\n]*\\]\\)?{\\([^ \t\n,{}]+\\)}" 3 ".\\.[^./]+\\'" ".eps") - ("\\\\input[ \t]*{\\([^ \t\n,{}]+\\.pstex\\)_t}" 1)) - "Keywords for image insertion commands of language `tex'. -See language access `x-symbol-LANG-image-keywords'." - :group 'x-symbol-tex - :group 'x-symbol-image-language - :type 'x-symbol-image-keywords) - - -;;;=========================================================================== -;;; Super- and Subscripts -;;;=========================================================================== - -(defcustom x-symbol-tex-subscript-matcher 'x-symbol-tex-subscript-matcher - "Function matching super-/subscripts for language `tex'. -See language access `x-symbol-LANG-subscript-matcher'." - :group 'x-symbol-tex - :type 'function) - -(defcustom x-symbol-tex-invisible-braces nil - "TODO" - :group 'x-symbol-tex - :type 'boolean) - -(defcustom x-symbol-tex-font-lock-allowed-faces - '(tex-math-face - font-lock-string-face font-lock-doc-string-face font-latex-math-face) - "*Faces which are allowed when fontifying simple super- and subscripts. -Package x-symbol only uses super- and subscripts if they are in braces, -if the \"^\"/\"_\" has not been fontified yet or is only fontified with -faces which appear in this list. Value t means, always use super- and -subscripts." - :group 'x-symbol-tex - :type '(repeat (symbol :tag "Face name"))) ; face would create faces... :-( - -(defvar x-symbol-tex-font-lock-regexp - "[^\000-\040\134\177-\237]\\([_^]\\)\\([^ \t\n\f%\\}^_$#&~]\\|\\\\[@A-Za-z]+\\)" - "Regexp matching the prefix of super-/subscripts. -The first regexp group should match the super-/subscript command.") - -(defvar x-symbol-tex-font-lock-limit-regexp "[\n^_]" - "Regexp matching the limit for the end of super-/subscripts. -This regexp should match the end of line.") - - -;;;=========================================================================== -;;; Charsym Info -;;;=========================================================================== - -(defface x-symbol-tex-math-face - '((((class color) (background light)) - (:foreground "purple3"))) - "*Face, normally used for tokens only allowed in TeX's math mode. -Used in `x-symbol-tex-class-face-alist'." - :group 'x-symbol-tex - :group 'x-symbol-info-general) - -(defface x-symbol-tex-text-face - '((((class color) (background light)) - (:foreground "Royalblue"))) - "*Face, normally used for tokens only allowed in TeX's text mode. -Used in `x-symbol-tex-class-face-alist'." - :group 'x-symbol-tex - :group 'x-symbol-info-general) - -(defcustom x-symbol-tex-class-alist - '((text) - (math) - (accent "accent" (x-symbol-info-face)) - (aletter "acc.letter" (x-symbol-info-face)) - (letter "letter" (x-symbol-info-face)) - (greek "greek" (x-symbol-info-face)) - (ordinary "ordinary" (x-symbol-info-face)) - (binop "binop" (x-symbol-info-face)) - (bigop "bigop" (x-symbol-info-face)) - (relation "relation" (x-symbol-info-face)) - (delim "delimiter" (x-symbol-info-face)) - (punct "punctuation" (x-symbol-info-face)) - (quote "quote" (x-symbol-info-face)) - (space "space" (x-symbol-info-face)) - (special "special" (x-symbol-info-face)) - (latexsym "latexsym.sty" (x-symbol-emph-info-face)) ; w/ latexsym or amssymb - (amssymb "amssymb.sty" (x-symbol-emph-info-face)) - (stmaryrd "stmaryrd.sty" (x-symbol-emph-info-face)) - (T1 "T1 fontenc.sty" (x-symbol-emph-info-face)) - (correct-T1 "correct: T1 fontenc.sty" (x-symbol-info-face)) - (inputenc "inputenc.sty" (x-symbol-emph-info-face)) ; v0.97 - (inputenc-unavail "inputenc.sty: unavailable" (x-symbol-emph-info-face)) -;;; (inputenc-incorrect "old inputenc: incorrect" . red) ; IMHO - (gobbles-spc "gobbles space" (x-symbol-info-face)) - (user "user" (x-symbol-emph-info-face)) - (VALID "unknown TeX class" (x-symbol-emph-info-face)) - (INVALID "no TeX macro" (x-symbol-emph-info-face))) - "Token classes displayed by info in echo area, for language `tex'. -See language access `x-symbol-LANG-class-alist'." - :group 'x-symbol-tex - :group 'x-symbol-info-strings - :type 'x-symbol-class-info) - -(defcustom x-symbol-tex-class-face-alist - '((math x-symbol-tex-math-face (x-symbol-tex-math-face)) - (text x-symbol-tex-text-face (x-symbol-tex-text-face))) - "Color scheme in language specific grid and info, for language `tex'. -See language access `x-symbol-LANG-class-face-alist'." - :group 'x-symbol-tex - :group 'x-symbol-input-init - :group 'x-symbol-info-general - :type 'x-symbol-class-faces) - - -;;;=========================================================================== -;;; Misc -;;;=========================================================================== - -;;;###autoload -(defun x-symbol-tex-auto-coding-alist (alist &optional limit) - "Find encoding in file `x-symbol-tex-coding-master'. -For ALIST and LIMIT, see `x-symbol-auto-coding-alist'." - ;; called inside `save-excursion' - (and (local-variable-p x-symbol-tex-coding-master (current-buffer)) - ;; I don't like the idea of having to visit a second file in order to - ;; visit first one, but people have complained about X-Symbol not - ;; recognizing \usepackage[latinN]{inputenc} in the master file... Not - ;; only that, a file should describe its encoding itself... - (stringp (symbol-value x-symbol-tex-coding-master)) - (condition-case nil - (let ((master (expand-file-name - (symbol-value x-symbol-tex-coding-master)))) - ;; I have absolutely no intention to use `find-file-noselect' - ;; here, i.e., decode the master file via X-Symbol in order to get - ;; the correct coding for the current buffer - (set-buffer (get-buffer-create " x-symbol master")) - (insert-file-contents master nil nil nil - ;; 5th arg not t with empty accessible part - ;; (XEmacs bug workaround: would infloop) - (> (point-max) (point-min))) - (x-symbol-auto-coding-alist alist limit)) - (error nil)))) - -(defun x-symbol-tex-default-master-directory () - "Convert NAME to absolute file name, respecting `TeX-master'. -Variable `TeX-master' should be buffer-local and a string to be used. -Used as default value of `x-symbol-tex-master-directory'." - (and (local-variable-p 'TeX-master (current-buffer)) - (stringp TeX-master) - (file-name-directory (expand-file-name TeX-master)))) - -(defun x-symbol-tex-default-electric-ignore (context charsym) - "Non nil, if CONTEXT should not be replaced by input method ELECTRIC. -Return non-nil if `x-symbol-tex-electric-ignore-regexp' matches CONTEXT -or if CHARSYM represents a TeX macro which can only be used in math mode -whereas point is in a text area or vice versa. This function uses -package \"texmathp\" whose variables you might want to customize. Used -as default value for `x-symbol-tex-electric-ignore'." - (or (and x-symbol-tex-electric-ignore-regexp - (string-match x-symbol-tex-electric-ignore-regexp context)) - (condition-case nil - (let ((class (car (gethash charsym - (x-symbol-generated-token-classes - x-symbol-tex-generated-data))))) - (cond ((eq class 'math) (not (texmathp))) - ((eq class 'text) (texmathp)))) - (error nil)))) - - -;;;=========================================================================== -;;; The tables -;;;=========================================================================== - -(defun x-symbol-tex-default-token-list (tokens) - (if (stringp tokens) - (list (cons (if (string-match "\\\\ \\'" tokens) - (concat (substring tokens 0 (match-beginning 0)) "{ }") - tokens) - (if (string-match "\\\\[A-Za-z]+\\'" tokens) t))) - (mapcar (lambda (x) - (cons x (if (string-match "\\\\[A-Za-z]+\\'" x) 'math))) - tokens))) - -(defun x-symbol-tex-after-init-language () - (let ((decode-obarray (x-symbol-generated-decode-obarray - x-symbol-tex-generated-data)) - (tex-accent '(nil tex-accent))) - (set (intern "\\begin" decode-obarray) '(nil tex-begin)) - (set (intern "\\end" decode-obarray) '(nil tex-end)) - (set (intern "\\verb" decode-obarray) '(nil tex-verb)) - (set (intern "\\c" decode-obarray) tex-accent) - (set (intern "\\k" decode-obarray) tex-accent) - (set (intern "\\v" decode-obarray) tex-accent) - (set (intern "\\u" decode-obarray) tex-accent) - (set (intern "\\H" decode-obarray) tex-accent) - (set (intern "\\r" decode-obarray) tex-accent))) - - -;;;=========================================================================== -;;; The tables -;;;=========================================================================== - -(defvar x-symbol-tex-required-fonts nil - "Features providing required fonts for language `tex'. -See language access `x-symbol-LANG-required-fonts'.") - -(defvar x-symbol-tex-latin1-table - '((nobreakspace (space) . "\\nobreakspace") - (exclamdown (text punct) . "\\textexclamdown") - (cent (text inputenc-unavail) . "\\textcent") - (sterling (ordinary) . "\\pounds") - (currency (text inputenc) . "\\textcurrency") - (yen (text inputenc-unavail) . "\\textyen") - (brokenbar (text inputenc-unavail) . "\\textbrokenbar") - (section (ordinary) . "\\S") - (diaeresis (text accent) . "\\\"{}") - (copyright (text ordinary) . "\\textcopyright") - (ordfeminine (text ordinary inputenc) . "\\textordfeminine") - (guillemotleft (text quote T1) . "\\guillemotleft") - (notsign (math ordinary) "\\lnot" "\\neg") - (hyphen (special) "\\-") - (registered (text ordinary) . "\\textregistered") - (macron (text accent) . "\\={}") - (degree (text ordinary inputenc) . "\\textdegree") - (plusminus (math binop) "\\pm") - (twosuperior (math ordinary inputenc) "\\mathtwosuperior") - (threesuperior (math ordinary inputenc) "\\maththreesuperior") - (acute (text accent) . "\\'{}") - (mu1 (math greek user) "\\mathmicro") - (paragraph (ordinary) . "\\P") - (periodcentered (text punct) . "\\textperiodcentered") - (cedilla (text accent) . "\\c\\ ") - (onesuperior (math ordinary inputenc) "\\mathonesuperior") - (masculine (text ordinary inputenc) . "\\textordmasculine") - (guillemotright (text quote T1) . "\\guillemotright") - (onequarter (text ordinary inputenc) . "\\textonequarter") - (onehalf (text ordinary inputenc) . "\\textonehalf") - (threequarters (text ordinary inputenc) . "\\textthreequarters") - (questiondown (text punct) . "\\textquestiondown") - (Agrave (text aletter) . "\\`A") - (Aacute (text aletter) . "\\'A") - (Acircumflex (text aletter) . "\\^A") - (Atilde (text aletter) . "\\~A") - (Adiaeresis (text aletter) . "\\\"A") - (Aring (text aletter) . "\\AA") - (AE (text letter) . "\\AE") - (Ccedilla (text aletter) . "\\c C") - (Egrave (text aletter) . "\\`E") - (Eacute (text aletter) . "\\'E") - (Ecircumflex (text aletter) . "\\^E") - (Ediaeresis (text aletter) . "\\\"E") - (Igrave (text aletter) . "\\`I") - (Iacute (text aletter) . "\\'I") - (Icircumflex (text aletter) . "\\^I") - (Idiaeresis (text aletter) . "\\\"I") - (ETH (text letter T1) . "\\DH") - (Ntilde (text aletter) . "\\~N") - (Ograve (text aletter) . "\\`O") - (Oacute (text aletter) . "\\'O") - (Ocircumflex (text aletter) . "\\^O") - (Otilde (text aletter) . "\\~O") - (Odiaeresis (text aletter) . "\\\"O") - (multiply (math binop) "\\times") - (Ooblique (text letter) . "\\O") - (Ugrave (text aletter) . "\\`U") - (Uacute (text aletter) . "\\'U") - (Ucircumflex (text aletter) . "\\^U") - (Udiaeresis (text aletter) . "\\\"U") - (Yacute (text aletter) . "\\'Y") - (THORN (text letter T1) . "\\TH") - (ssharp (text letter) . "\\ss") - (agrave (text aletter) . "\\`a") - (aacute (text aletter) . "\\'a") - (acircumflex (text aletter) . "\\^a") - (atilde (text aletter) . "\\~a") - (adiaeresis (text aletter) . "\\\"a") - (aring (text aletter) . "\\aa") - (ae (text letter) . "\\ae") - (ccedilla (text aletter) . "\\c c") - (egrave (text aletter) . "\\`e") - (eacute (text aletter) . "\\'e") - (ecircumflex (text aletter) . "\\^e") - (ediaeresis (text aletter) . "\\\"e") - (igrave (text aletter) . "\\`\\i") - (iacute (text aletter) . "\\'\\i") - (icircumflex (text aletter) . "\\^\\i") - (idiaeresis (text aletter) . "\\\"\\i") - (eth (text letter T1) . "\\dh") - (ntilde (text aletter) . "\\~n") - (ograve (text aletter) . "\\`o") - (oacute (text aletter) . "\\'o") - (ocircumflex (text aletter) . "\\^o") - (otilde (text aletter) . "\\~o") - (odiaeresis (text aletter) . "\\\"o") - (division (math binop) "\\div") - (oslash (text letter) . "\\o") - (ugrave (text aletter) . "\\`u") - (uacute (text aletter) . "\\'u") - (ucircumflex (text aletter) . "\\^u") - (udiaeresis (text aletter) . "\\\"u") - (yacute (text aletter) . "\\'y") - (thorn (text letter T1) . "\\th") - (ydiaeresis (text aletter) . "\\\"y")) - "Table defining TeX macros, see `x-symbol-tex-table'.") - -(defvar x-symbol-tex-latinN-table - '((Aogonek (text aletter T1) . "\\k A") - (breve (text accent) . "\\u{}") - (Lslash (text letter) . "\\L") - (Lcaron (text aletter correct-T1) . "\\v L") - (Sacute (text aletter) . "\\'S") - (Scaron (text aletter) . "\\v S") - (Scedilla (text aletter) . "\\c S") - (Tcaron (text aletter) . "\\v T") - (Zacute (text aletter) . "\\'Z") - (Zcaron (text aletter) . "\\v Z") - (Zdotaccent (text aletter) . "\\.Z") - (aogonek (text aletter T1) . "\\k a") - (ogonek (text accent T1) . "\\k\\ ") - (lslash (text letter) . "\\l") - (lcaron (text aletter correct-T1) . "\\v l") - (sacute (text aletter) . "\\'s") - (caron (text accent) . "\\v{}") - (scaron (text aletter) . "\\v s") - (scedilla (text aletter) . "\\c s") - (tcaron (text aletter correct-T1) . "\\v t") - (zacute (text aletter) . "\\'z") - (hungarumlaut (text accent) . "\\H{}") - (zcaron (text aletter) . "\\v z") - (zdotaccent (text aletter) . "\\.z") - (Racute (text aletter) . "\\'R") - (Abreve (text aletter) . "\\u A") - (Lacute (text aletter) . "\\'L") - (Cacute (text aletter) . "\\'C") - (Ccaron (text aletter) . "\\v C") - (Eogonek (text aletter T1) . "\\k E") - (Ecaron (text aletter) . "\\v E") - (Dcaron (text aletter) . "\\v D") - (Dbar (text letter inputenc T1) . "\\DJ") - (Nacute (text aletter) . "\\'N") - (Ncaron (text aletter) . "\\v N") - (Ohungarumlaut (text aletter) . "\\H O") - (Rcaron (text aletter) . "\\v R") - (Uring (text aletter) . "\\r U") - (Uhungarumlaut (text aletter) . "\\H U") - (Tcedilla (text aletter) . "\\c T") - (racute (text aletter) . "\\'r") - (abreve (text aletter) . "\\u a") - (lacute (text aletter) . "\\'l") - (cacute (text aletter) . "\\'c") - (ccaron (text aletter) . "\\v c") - (eogonek (text aletter T1) . "\\k e") - (ecaron (text aletter) . "\\v e") - (dcaron (text aletter correct-T1) . "\\v d") - (dbar (text letter inputenc T1) . "\\dj") - (nacute (text aletter) . "\\'n") - (ncaron (text aletter) . "\\v n") - (ohungarumlaut (text aletter) . "\\H o") - (rcaron (text aletter) . "\\v r") - (uring (text aletter) . "\\r u") - (uhungarumlaut (text aletter) . "\\H u") - (tcedilla (text aletter) . "\\c t") - (dotaccent (text accent) . "\\.{}") - (Hbar (text letter inputenc-unavail) . "\\textmalteseH") - (Hcircumflex (text aletter) . "\\^H") - (Idotaccent (text aletter) . "\\.I") - (Gbreve (text aletter) . "\\u G") - (Jcircumflex (text aletter) . "\\^J") - (hbar (text letter inputenc-unavail) . "\\textmalteseh") - (hcircumflex (text aletter) . "\\^h") - (dotlessi (text letter) . "\\i") - (gbreve (text aletter) . "\\u g") - (jcircumflex (text aletter) . "\\^\\j") - (Cdotaccent (text aletter) . "\\.C") - (Ccircumflex (text aletter) . "\\^C") - (Gdotaccent (text aletter) . "\\.G") - (Gcircumflex (text aletter) . "\\^G") - (Ubreve (text aletter) . "\\u U") - (Scircumflex (text aletter) . "\\^S") - (cdotaccent (text aletter) . "\\.c") - (ccircumflex (text aletter) . "\\^c") - (gdotaccent (text aletter) . "\\.g") - (gcircumflex (text aletter) . "\\^g") - (ubreve (text aletter) . "\\u u") - (scircumflex (text aletter) . "\\^s") - (euro (text ordinary inputenc-unavail) . "\\texteuro") - (OE (text letter) . "\\OE") - (oe (text letter) . "\\oe") - (Ydiaeresis (text aletter) . "\\\"Y")) - "Table defining TeX macros, see `x-symbol-tex-table'.") - -;; Characters w/ NEW weren't defined before, w/ (NEW) were defined at other -;; positions. If we get problems in the nomule version (e.g., w/ font-lock), -;; we could be forced to move these characters to the xsymb1 font. -(defvar x-symbol-tex-xsymb0-table - ;; With elems (SYMBOL (TEX-CLASS ...) TEX-MACRO ...) - '((numbersign1 (ordinary) "\\#") ; NEW - ;;(existential) - (suchthat (math relation) "\\ni" "\\owns") - (asterisk1 (math binop) "\\ast") ; NEW - ;;(comma1 (mark) "\\quotesinglbase") ; not in {}! (spacing) - (period1 (math punct) "\\ldotp") ; (NEW) - (colon1 (math punct) "\\colon") ; (NEW) - (congruent (math relation) "\\cong") - (Delta (math greek) "\\Delta") - (Phi (math greek) "\\Phi") - (Gamma (math greek) "\\Gamma") - (theta1 (math greek) "\\vartheta") - (Lambda (math greek) "\\Lambda") - (Pi (math greek) "\\Pi") - (Theta (math greek) "\\Theta") - (Sigma (math greek) "\\Sigma") - (sigma1 (math greek) "\\varsigma") - (Omega (math greek) "\\Omega") - (Xi (math greek) "\\Xi") - (Psi (math greek) "\\Psi") - ;;(therefore (math relation) "\\therefore") - (perpendicular (math ordinary) "\\bot") ; (NEW) - (underscore1 (ordinary) "\\_") ; NEW - ;;(radicalex) - (alpha (math greek) "\\alpha") - (beta (math greek) "\\beta") - (chi (math greek) "\\chi") - (delta (math greek) "\\delta") - (epsilon (math greek) "\\epsilon") - (phi (math greek) "\\phi") - (gamma (math greek) "\\gamma") - (eta (math greek) "\\eta") - (iota (math greek) "\\iota") - (phi1 (math greek) "\\varphi") - (kappa (math greek) "\\kappa") - (lambda (math greek) "\\lambda") - (mu (math greek) "\\mu") - (nu (math greek) "\\nu") - (pi (math greek) "\\pi") - (theta (math greek) "\\theta") - (rho (math greek) "\\rho") - (sigma (math greek) "\\sigma") - (tau (math greek) "\\tau") - (upsilon (math greek) "\\upsilon") - (omega1 (math greek) "\\varpi") - (omega (math greek) "\\omega") - (xi (math greek) "\\xi") - (psi (math greek) "\\psi") - (zeta (math greek) "\\zeta") - (bar1 (math relation) "\\mid") ; (NEW) - (similar (math relation) "\\sim") - (Upsilon1 (math greek) "\\Upsilon") - (minute (math ordinary) "\\prime") - (lessequal (math relation) "\\leq" "\\le") - ;;(fraction) - (infinity (math ordinary) "\\infty") - (florin (text ordinary user) . "\\textflorin") ; NEW - (club (math ordinary) "\\clubsuit") - (diamond (math ordinary) "\\diamondsuit") - (heart (math ordinary) "\\heartsuit") - (spade (math ordinary) "\\spadesuit") - (arrowboth (math relation) "\\leftrightarrow") - (arrowleft (math relation) "\\gets" "\\leftarrow") - (arrowup (math relation delim) "\\uparrow") - (arrowright (math relation) "\\to" "\\rightarrow") - (arrowdown (math relation delim) "\\downarrow") - (ring (text accent) . "\\r{}") ; NEW - ;;(second) - (greaterequal (math relation) "\\geq" "\\ge") - (proportional (math relation) "\\propto") - (partialdiff (math ordinary) "\\partial") - (bullet (math binop) "\\bullet") - (notequal (math relation) "\\neq" "\\ne") - (equivalence (math relation) "\\equiv") - (approxequal (math relation) "\\approx") - (ellipsis (ordinary gobbles-spc) "\\ldots") - ;;(carriagereturn) - (aleph (math letter) "\\aleph") - (Ifraktur (math letter) "\\Im") - (Rfraktur (math letter) "\\Re") - (weierstrass (math letter) "\\wp") - (circlemultiply (math binop) "\\otimes") - (circleplus (math binop) "\\oplus") - (emptyset (math ordinary) "\\emptyset") - (intersection (math binop) "\\cap") - (union (math binop) "\\cup") - (propersuperset (math relation) "\\supset") - (reflexsuperset (math relation) "\\supseteq") - (notsubset (math relation user) "\\nsubset") - (propersubset (math relation) "\\subset") - (reflexsubset (math relation) "\\subseteq") - (element (math relation) "\\in") - (notelement (math relation) "\\notin") - (angle (ordinary gobbles-spc) "\\angle") - (gradient (math ordinary) "\\nabla") - (product (math bigop) "\\prod") - (radical (math ordinary) "\\surd") - (periodcentered1 (math binop) "\\cdot") ; (NEW) - (logicaland (math binop) "\\land" "\\wedge") - (logicalor (math binop) "\\lor" "\\vee") - (arrowdblboth (math relation) "\\Leftrightarrow" "\\lequiv") - (arrowdblleft (math relation) "\\Leftarrow") - (arrowdblup (math relation delim) "\\Uparrow") - (arrowdblright (math relation) "\\Rightarrow") - (arrowdbldown (math relation delim) "\\Downarrow") - (lozenge (math ordinary amssymb) "\\lozenge") - (angleleft (math delim) "\\langle") ; (NEW) - (trademark (text ordinary) . "\\texttrademark") - (summation (math bigop) "\\sum") - (angleright (math delim) "\\rangle") ; (NEW) - (integral (math bigop) "\\int")) - "Table defining TeX macros, see `x-symbol-tex-table'.") - -(defvar x-symbol-tex-xsymb1-table - ;; With elems (SYMBOL (TEX-CLASS ...) TEX-MACRO ...) - '((verticaldots (ordinary gobbles-spc) "\\vdots") - (backslash1 (text ordinary) . "\\textbackslash") - (dagger (ordinary) . "\\dag") - (percent2 (ordinary) "\\%") ; NEW - (guilsinglright (text quote T1) . "\\guilsinglright") - (NG (text letter T1) . "\\NG") - (dotlessj (text letter) . "\\j") - (ng (text letter T1) . "\\ng") - (sharp (math ordinary) "\\sharp") - (ceilingleft (math delim) "\\lceil") - (ceilingright (math delim) "\\rceil") - (star (math binop) "\\star") - (lozenge1 (math ordinary latexsym) "\\Diamond") - (braceleft2 (delim) "\\{") ; \lbrace is math-only - (circleslash (math binop) "\\oslash") - (braceright2 (delim) "\\}") ; \rbrace is math-only - (triangle1 (math binop) "\\bigtriangleup") - (smltriangleright (math binop) "\\triangleright") - (triangleleft (math binop latexsym) "\\lhd") - (triangle (math ordinary) "\\triangle") - (triangleright (math binop latexsym) "\\rhd") - (trianglelefteq (math binop latexsym) "\\unlhd") - (trianglerighteq (math binop latexsym) "\\unrhd") - (periodcentered2 (math punct) "\\cdotp") - (dotequal (math relation) "\\doteq") - (wrong (math binop) "\\wr") - (natural (math ordinary) "\\natural") - (flat (math ordinary) "\\flat") - (epsilon1 (math greek) "\\varepsilon") - (hbarmath (math letter) "\\hbar") - (imath (math letter) "\\imath") - (kappa1 (math greek amssymb) "\\varkappa") - (jmath (math letter) "\\jmath") - (ell (math letter) "\\ell") - (amalg (math binop) "\\amalg") - (rho1 (math greek) "\\varrho") - (top (math ordinary) "\\top") - (Mho (math greek latexsym) "\\mho") - (floorleft (math delim) "\\lfloor") - (floorright (math delim) "\\rfloor") - (perpendicular1 (math relation) "\\perp") - (box (math ordinary latexsym) "\\Box") - (asciicircum1 (text ordinary) . "\\textasciicircum") - (asciitilde1 (text ordinary) . "\\textasciitilde") - (leadsto (math relation latexsym) "\\leadsto") - (longarrowleft (math relation) "\\longleftarrow") - (arrowupdown (math relation delim) "\\updownarrow") - (longarrowright (math relation) "\\longrightarrow") - (longmapsto (math relation) "\\longmapsto") - (longarrowdblboth (math relation) "\\Longleftrightarrow") - (longarrowdblleft (math relation) "\\Longleftarrow") - (arrowdblupdown (math relation delim) "\\Updownarrow") - (longarrowdblright (math relation) "\\Longrightarrow") - (mapsto (math relation) "\\mapsto") - (iff (math relation) "\\iff") - (hookleftarrow (math relation) "\\hookleftarrow") - (hookrightarrow (math relation) "\\hookrightarrow") - (arrownortheast (math relation) "\\nearrow") - (arrowsoutheast (math relation) "\\searrow") - (arrownorthwest (math relation) "\\nwarrow") - (arrowsouthwest (math relation) "\\swarrow") - (rightleftharpoons (math relation) "\\rightleftharpoons") - (leftharpoondown (math relation) "\\leftharpoondown") - (rightharpoondown (math relation) "\\rightharpoondown") - (leftharpoonup (math relation) "\\leftharpoonup") - (rightharpoonup (math relation) "\\rightharpoonup") - (bardbl (math ordinary delim) "\\|") ; removed \Vert - (bardbl1 (math relation) "\\parallel") - (backslash2 (math ordinary delim) "\\backslash") - (backslash3 (math binop) "\\setminus") - (diagonaldots (math ordinary) "\\ddots") - (simequal (math relation) "\\simeq") - (digamma (math ordinary amssymb) "\\digamma") - (asym (math relation) "\\asymp") - (minusplus (math binop) "\\mp") - (bowtie (math relation) "\\bowtie") - (centraldots (math ordinary) "\\cdots") - (visiblespace (text ordinary) . "\\textvisiblespace") - (dagger1 (math binop) "\\dagger") - (circledot (math binop) "\\odot") - (propersqsuperset (math relation latexsym) "\\sqsupset") - (reflexsqsuperset (math relation) "\\sqsupseteq") - (gradient1 (math binop) "\\bigtriangledown") - (propersqsubset (math relation latexsym) "\\sqsubset") - (reflexsqsubset (math relation) "\\sqsubseteq") - (smllozenge (math binop) "\\diamond") - (lessless (math relation) "\\ll") - (greatergreater (math relation) "\\gg") - (unionplus (math binop) "\\uplus") - (sqintersection (math binop) "\\sqcap") - (squnion (math binop) "\\sqcup") - (frown (math relation) "\\frown") - (smile (math relation) "\\smile") - (reflexprec (math relation) "\\preceq") - (reflexsucc (math relation) "\\succeq") - (properprec (math relation) "\\prec") - (propersucc (math relation) "\\succ") - (bardash (math relation) "\\vdash") - (dashbar (math relation) "\\dashv") - (bardashdbl (math relation) "\\models") - (smlintegral (math ordinary) "\\smallint") - (circleintegral (math bigop) "\\oint") - (coproduct (math bigop) "\\coprod") - (bigcircledot (math bigop) "\\bigodot") - (bigcirclemultiply (math bigop) "\\bigotimes") - (bigcircleplus (math bigop) "\\bigoplus") - (biglogicaland (math bigop) "\\bigwedge") - (biglogicalor (math bigop) "\\bigvee") - (bigintersection (math bigop) "\\bigcap") - (bigunion (math bigop) "\\bigcup") - (bigunionplus (math bigop) "\\biguplus") - (bigsqunion (math bigop) "\\bigsqcup") - (bigcircle (math binop) "\\bigcirc") - (guilsinglleft (text quote T1) . "\\guilsinglleft") - (circleminus (math binop) "\\ominus") - (smltriangleleft (math binop) "\\triangleleft") - (existential1 (math ordinary) "\\exists") - (daggerdbl1 (math binop) "\\ddagger") - (daggerdbl (ordinary) . "\\ddag") - (bigbowtie (math relation latexsym) "\\Join") - (circ (math binop) "\\circ") - (grave (text accent) . "\\`{}") ; NEW - (circumflex (text accent) . "\\^{}") ; NEW - (tilde (text accent) . "\\~{}") ; NEW - (longarrowboth (math relation) "\\longleftrightarrow") - (endash (text ordinary) . "\\textendash") ; NEW - (emdash (text ordinary) . "\\textemdash") - (ampersand2 (ordinary) "\\&") ; NEW - (universal1 (math ordinary) "\\forall") - (booleans (math letter user) "\\setB") - (complexnums (math letter user) "\\setC") - (natnums (math letter user) "\\setN") - (rationalnums (math letter user) "\\setQ") - (realnums (math letter user) "\\setR") - (integers (math letter user) "\\setZ") - (lesssim (math relation amssymb) "\\lesssim") - (greatersim (math relation amssymb) "\\gtrsim") - (lessapprox (math relation amssymb) "\\lessapprox") - (greaterapprox (math relation amssymb) "\\gtrapprox") - (definedas (math relation amssymb) "\\triangleq") - (circleminus1 (math binop amssymb) "\\circleddash") - (circleasterisk (math binop amssymb) "\\circledast") - (circlecirc (math binop amssymb) "\\circledcirc") - (dollar1 (ordinary) "\\$") - (therefore1 (math relation amssymb) "\\therefore") - (coloncolon (math relation user) "\\coloncolon") - (bigsqintersection (math bigop stmaryrd) "\\bigsqcap") - (semanticsleft (math delim stmaryrd) "\\llbracket") - (semanticsright (math delim stmaryrd) "\\rrbracket") - (cataleft (math delim stmaryrd) "\\llparenthesis") - (cataright (math delim stmaryrd) "\\rrparenthesis") - ;;(quotedblbase (mark T1) "\\quotedblbase") ; not in {}! (spacing) - ;;(quotedblleft (mark) . "\\textquotedblleft") ; not in {}! (spacing) - ;;(quotedblright (mark) . "\\textquotedblright") ; not in {}! (spacing) - ;;(perthousand) - ) - "Table defining TeX macros, see `x-symbol-tex-table'.") - -(defvar x-symbol-tex-table - (append x-symbol-tex-user-table - '(nil) - x-symbol-tex-latin1-table - x-symbol-tex-latinN-table - x-symbol-tex-xsymb0-table - x-symbol-tex-xsymb1-table) - "Table defining `tex' tokens for the characters. -See language access `x-symbol-LANG-table'. Use -`x-symbol-tex-user-table' to define private TeX macros or shadow -existing ones.") - - -;;;=========================================================================== -;;; Super- and Subscripts -;;;=========================================================================== - -(defun x-symbol-tex-subscript-matcher (limit) - (block nil - (let (beg mid) - (or (bolp) (backward-char)) - ;; (backward-char) is not necessary in the loop because: if a simple = - ;; braces-less subscript is not allowed according to the "allowed" faces, - ;; then a directly following _ or ^ is also not allowed... - (while (re-search-forward x-symbol-tex-font-lock-regexp limit t) - (setq beg (match-beginning 1) - mid (match-beginning 2)) - (if (if (eq (char-after mid) ?\{) - (let ((end (save-restriction - (narrow-to-region - (point) - (save-excursion - (re-search-forward - x-symbol-tex-font-lock-limit-regexp - limit 'limit) - (point))) - (ignore-errors (scan-lists (point) 1 1))))) - (when (and end (eq (char-before end) ?})) - (goto-char end) - (store-match-data - (if x-symbol-tex-invisible-braces - (list beg end - beg (1+ mid) - (1+ mid) (1- end) - (1- end) end) - (list beg end beg mid mid end))) - t)) - (or (eq x-symbol-tex-font-lock-allowed-faces t) - (let ((faces (plist-get (text-properties-at beg) 'face))) - (cond ((null faces)) - ((consp faces) - (while (and faces (memq (car faces) x-symbol-tex-font-lock-allowed-faces)) - (setq faces (cdr faces))) - (null faces)) - ((memq faces - x-symbol-tex-font-lock-allowed-faces)))))) - (return (if (eq (char-after beg) ?_) - 'x-symbol-sub-face - 'x-symbol-sup-face))))))) - - -;;;=========================================================================== -;;; Conversion -;;;=========================================================================== - -(defun x-symbol-tex-encode (encode-table fchar-table fchar-fb-table) - (let (char) - (x-symbol-encode-for-charsym ((encode-table fchar-table fchar-fb-table) - token) - (and (eq (char-before) ?\\) - (x-symbol-even-escapes-before-p (1- (point)) ?\\) - (insert ?\ )) - (insert (car token)) - (delete-char x-symbol-encode-rchars) - (when (cdr token) ; \MACRO - (setq char (char-after)) - (cond ((memq char '(?\ ?\t ?\n ?\r nil)) - ;; faster than any `looking-at' or `or'ed `eq's - (or (eq (cdr token) 'math) - (insert-before-markers "{}"))) - ((or (and (<= ?a char) (<= char ?z)) - (and (<= ?@ char) (<= char ?Z))) - ;; much faster than any `looking-at', XEmacs' 3-arg `<=' is - ;; slower than `and'ed 2-arg `<='s - (insert-before-markers " "))))))) - -(defun x-symbol-tex-decode (decode-regexp decode-obarray unique) - (let ((in-tabbing nil) - retry charsym after) - (x-symbol-decode-for-charsym ((decode-regexp decode-obarray) - token beg end) - (if (setq retry (match-beginning 1)) - (goto-char retry)) - (cond ((and (eq (char-before beg) ?\\) - (x-symbol-even-escapes-before-p (1- beg) ?\\)) - (if (setq retry (match-beginning 1)) (goto-char retry))) - ((and in-tabbing - (memq (char-after (1+ beg)) '(?\` ?\' ?= ?-))) - (if (setq retry (match-beginning 1)) (goto-char retry))) - ((x-symbol-decode-unique-test token unique)) - ;; would be bad to decode a part only because of unique decoding - ((setq charsym (car token)) - (if (eq (cadr token) t) ; text-mode \MACRO - (unless - (cond ((eq (setq after (char-after)) ?\ ) - (setq after (char-after (incf end))) - (if unique - (not (or (and (<= ?a after) (<= after ?z)) - (and (<= ?@ after) (<= after ?Z)))) - (memq after '(?\ ?\t ?\n ?\r ?% nil)))) - ((eq after ?\{) - (if (eq (char-after (incf end)) ?\}) - (or (memq (char-after (incf end)) - '(?\ ?\t ?\n ?\r nil)) - (decf end 2)) - (decf end)) - nil) - (t - (memq (char-after) '(?\t ?\n ?\r ?% nil)))) - (goto-char end) - (insert-before-markers (gethash charsym - x-symbol-cstring-table)) - (delete-region beg end)) - (replace-match (gethash charsym x-symbol-cstring-table) t t))) - ;; special definitions ------------------------------------------- - ((eq (setq charsym (cadr token)) 'tex-begin) ; \begin - (skip-chars-forward " \t") - (cond ((looking-at x-symbol-tex-env-verbatim-regexp) - (setq retry (concat "\\\\end[ \t]*" - (regexp-quote (match-string 0)))) - (while (and (re-search-forward retry nil t) - (not (x-symbol-even-escapes-before-p - (match-beginning 0) ?\\))))) - ((looking-at x-symbol-tex-env-tabbing-regexp) - (setq in-tabbing t)))) - ((eq charsym 'tex-end) ; \end - (skip-chars-forward " \t") - (and in-tabbing - (looking-at x-symbol-tex-env-tabbing-regexp) - (setq in-tabbing nil))) - ((eq charsym 'tex-verb) ; \verb - (skip-chars-forward " \t") - (when (looking-at x-symbol-tex-verb-delimiter-regexp) - (setq after (char-after)) - (forward-char) - (while (not (or (eq (char-after) after) (eobp))) - (forward-char)))) - ((eq charsym 'tex-accent) ; accents \c, \k, \v, \u, \H, \r - ;; there are 41 chars using these accents => do something special - ;; here instead using an complicated regexp for the main search - (when (looking-at " [A-Za-z]\\|{}") - (goto-char (setq end (match-end 0))) - (when (setq token (symbol-value - (intern-soft (buffer-substring beg end) - decode-obarray))) - (unless (x-symbol-decode-unique-test token unique) - (goto-char end) - (insert-before-markers (gethash (car token) - x-symbol-cstring-table)) - (delete-region beg end))))))))) - -(defun x-symbol-tex-token-input (input-regexp decode-obarray command-char) - (let ((res (x-symbol-match-token-before - '(?\\ (math . "[a-z@-Z]") (t . "[a-z@-Z]")) - input-regexp decode-obarray command-char))) - (and x-symbol-tex-token-suppress-space - (eq (caddr res) t) ; text mode \MACRO - (eq command-char ?\ ) - (null prefix-arg) - (setq prefix-arg 0)) - res)) - - -;;;=========================================================================== -;;; AucTeX, preview-latex -;;;=========================================================================== - -(defun x-symbol-tex-translate-locations (file-buffer beg end locations) - ;;(set-buffer conv-buffer) - (let ((char-offset (1- beg)) - changed - ;; Kludge to prevent undo list truncation: - (undo-limit most-positive-fixnum) ; Emacs - (undo-strong-limit most-positive-fixnum) ; Emacs - (undo-high-threshold -1) ; XEmacs - (undo-threshold -1)) ; XEmacs - (setq buffer-undo-list t) - (erase-buffer) - (insert-buffer-substring file-buffer beg end) - (map-extents (lambda (e dummy) (delete-extent e) nil)) - (setq buffer-undo-list nil) - (x-symbol-encode-all) - (let* ((curr (car locations)) - (file (aref curr 0)) - (line (aref curr 1)) - string after-string) - (while curr - (when buffer-undo-list - (setq string (aref curr 2)) - (if (number-or-marker-p string) - (setq string (- string char-offset)) - (goto-char 1) - (setq string (or (and (stringp (setq after-string (aref curr 3))) - (search-forward (concat string after-string) - nil t) - (- (point) (length after-string))) - (search-forward string nil t)))) - (when string - (aset curr 2 (copy-marker string t)) - ;; The second arg t is important in both Emacs and XEmacs: this is - ;; a marker which should keep its correct position after the - ;; `primitive-undo's, the encoding has already been done. - (aset curr 3 beg) - (push curr changed))) - (or (and (setq locations (cdr locations)) - (eq line (aref (setq curr (car locations)) 1)) - (equal file (aref curr 0))) - (setq curr nil)))) - (when changed - (let ((tail buffer-undo-list) - mpos) - (setq buffer-undo-list t) - (while tail (setq tail (primitive-undo (length tail) tail))) - (dolist (curr changed) - (setq mpos (aref curr 2)) - (aset curr 2 (+ char-offset mpos)) - (aset curr 3 beg) - (set-marker mpos nil)))) - locations)) - -(put 'x-symbol-tex-error-location 'TeX-translate-via-list - 'x-symbol-tex-preview-locations) - -(defun x-symbol-tex-error-location () - (unless (string= string " ") - (save-excursion - (set-buffer (find-file-noselect file)) - (when x-symbol-mode - (save-restriction - (widen) - (let ((file-buffer (current-buffer)) - (conv-buffer (get-buffer-create " x-symbol error location")) - (location (vector nil nil string - (and (boundp 'after-string) after-string))) - beg end pos) - (goto-line (+ offset line)) - (setq beg (point)) - (end-of-line) - (setq end (point)) - (set-buffer conv-buffer) - (erase-buffer) - (when (fboundp 'set-buffer-multibyte) - (set-buffer-multibyte t)) - (x-symbol-inherit-from-buffer file-buffer) - (x-symbol-tex-translate-locations file-buffer beg end - (list location)) - ;; narrow-to-region gets confused otherwise... - (set-buffer file-buffer) - (when (numberp (setq pos (aref location 2))) - (setq string (buffer-substring beg pos)) - (and (boundp 'after-string) - (setq after-string (buffer-substring pos end)))))))))) - -(defun x-symbol-tex-preview-locations (locations) - (when locations - (prog1 locations - (let* ((conv-buffer (get-buffer-create " x-symbol error location")) - file - (dir default-directory)) - (save-excursion - (set-buffer conv-buffer) - (erase-buffer) - (when (fboundp 'set-buffer-multibyte) - (set-buffer-multibyte t)) - (while locations - (setq file (aref (car locations) 0)) - (set-buffer (find-file-noselect (expand-file-name file dir))) - (if x-symbol-mode - (save-restriction - (widen) - (goto-char 1) - (let ((file-buffer (current-buffer)) - (pline 1) - (line (aref (car locations) 1)) - beg end) - (set-buffer conv-buffer) - (x-symbol-inherit-from-buffer file-buffer) - (while line - (set-buffer file-buffer) - (if (>= line pline) - (if (eq selective-display t) - (re-search-forward "[\n\C-m]" - nil 'end (- line pline)) - (forward-line (- line pline))) - (goto-line line)) - (setq beg (point)) - (end-of-line) - (setq end (point)) - (set-buffer conv-buffer) - (setq locations - (x-symbol-tex-translate-locations file-buffer - beg end - locations)) - (setq pline line - line (and locations - (equal (aref (car locations) 0) file) - (aref (car locations) 1)))) - ;; narrow-to-region gets confused otherwise... - (set-buffer file-buffer))) - (while (and (setq locations (cdr locations)) - (equal (aref (car locations) 0) file)))))))))) - - -;;;=========================================================================== -;;; Extra decoding = executed after normal decoding -;;;=========================================================================== - -(defun x-symbol-tex-xdecode-old (&optional beg end) - "Remove braces around text-mode characters like {C}." - (interactive (and (region-active-p) (list (region-beginning) (region-end)))) - (unless (eq x-symbol-language 'tex) - (error "Command is meant to be used with token language `tex'")) - (unless x-symbol-mode - (error "Command is meant to be used if X-Symbol mode is enabled")) - (or beg (setq beg (point-min))) - (or end (setq end (point-max))) - (save-excursion - (save-restriction - (narrow-to-region beg end) - (let ((first-change-hook nil) ; no `flyspell-mode' here - (after-change-functions nil) ; no fontification! - (count 0) - (case-fold-search (x-symbol-grammar-case-function - x-symbol-tex-token-grammar)) - (regexp (if (featurep 'mule) - "{[^\000-\177]}" - "{\\(?:[\240-\377]\\|[\200-\237][\240-\377]\\)}")) - (token-classes (x-symbol-generated-token-classes - x-symbol-tex-generated-data)) - charsym - (end (make-marker))) - (goto-char (point-min)) - (while (re-search-forward regexp nil t) - (set-marker end (point)) - (goto-char (1+ (match-beginning 0))) - (when (and (setq charsym (x-symbol-encode-charsym-after)) - (x-symbol-even-escapes-before-p (match-beginning 0) ?\\) - (eq (car (gethash charsym token-classes)) 'text)) - (goto-char (match-beginning 0)) - (delete-char 1) - (goto-char end) - (delete-char -1) - (incf count))) - (if font-lock-mode (x-symbol-fontify (point-min) (point-max))) - (set-marker end nil) - (if (interactive-p) - (message "Converted %d old TeX sequences like {C} in %s" - count (x-symbol-region-text t))))))) - -(defvar x-symbol-tex-xdecode-obarray nil) - -(defun x-symbol-tex-xdecode-latex (&optional beg end) - "Decode LaTeX sequences for accented characters like \'{C}." - (interactive (and (region-active-p) (list (region-beginning) (region-end)))) - (unless (eq x-symbol-language 'tex) - (error "Command is meant to be used with token language `tex'")) - (unless x-symbol-mode - (error "Command is meant to be used if X-Symbol mode is enabled")) - (or beg (setq beg (point-min))) - (or end (setq end (point-max))) - (unless x-symbol-tex-xdecode-obarray - (let ((re "\\`\\(\\\\[.~^\"'`=ckvuHr]\\) ?\\([A-Za-z]\\|\\\\[ij]\\)\\'") - (ij (list (cons "\\i" (gethash 'dotlessi x-symbol-cstring-table)) - (cons "\\j" (gethash 'dotlessj x-symbol-cstring-table)))) - alist) - (maphash (lambda (charsym value) - (setq value (car value)) - (when (string-match re value) - (push (list (format "%s{%s}" - (match-string 1 value) - (or (cdr (assoc (match-string 2 value) - ij)) - (match-string 2 value))) - charsym nil) - alist))) - (x-symbol-generated-encode-table x-symbol-tex-generated-data)) - (setq x-symbol-tex-xdecode-obarray (x-symbol-alist-to-obarray alist)))) - (save-excursion - (save-restriction - (narrow-to-region beg end) - (let ((first-change-hook nil) ; no `flyspell-mode' here - (after-change-functions nil)) ; no fontification! - (goto-char (point-min)) - (x-symbol-decode-lisp - '(?\\) - (format "\\\\[.~^\"'`=ckvuHr]{\\(?:[A-Za-z]\\|%s\\|%s\\)}" - (gethash 'dotlessi x-symbol-cstring-table) - (gethash 'dotlessj x-symbol-cstring-table)) - x-symbol-tex-xdecode-obarray nil) - (if font-lock-mode (x-symbol-fontify (point-min) (point-max))) - (if (interactive-p) - (message "Decoded alternative TeX sequences like \\'{C} in %s" - (x-symbol-region-text t))))))) - -;;; Local IspellPersDict: .ispell_xsymb -;;; x-symbol-tex.el ends here diff --git a/x-symbol/lisp/x-symbol-texi.el b/x-symbol/lisp/x-symbol-texi.el deleted file mode 100644 index 79fceeee..00000000 --- a/x-symbol/lisp/x-symbol-texi.el +++ /dev/null @@ -1,339 +0,0 @@ -;;; x-symbol-texi.el --- token language "TeXinfo command" for package x-symbol - -;; Copyright (C) 2000, 2002, 2003 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: 4.5 -;; Keywords: WYSIWYG, TeXinfo, wp, 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]). - -;; Token language tex is registered in x-symbol-hooks. - -;;; Code: - -(provide 'x-symbol-texi) - - -;;;=========================================================================== -;;; General language accesses, see `x-symbol-language-access-alist' -;;;=========================================================================== - -(defcustom x-symbol-texi-auto-style '(t nil nil nil nil nil) - "Values for X-Symbol's buffer-local variables with language `texi'. -See language access `x-symbol-LANG-auto-style'." - :group 'x-symbol-texi - :group 'x-symbol-mode - :type 'x-symbol-auto-style) - -(defcustom x-symbol-texi-modeline-name "texi" - "Modeline name of token language `texi'. -See language access `x-symbol-LANG-modeline-name'." - :group 'x-symbol-texi - :type 'string) - -(defcustom x-symbol-texi-header-groups-alist - '(("Symbol" bigop operator line relation arrow triangle shape white dots - punctuation quote parenthesis symbol currency mathletter setsymbol) - ("Misc. Letter" greek greek1 letter slash cedilla ogonek) - ("Dotaccent, Ring" dotaccent ring) - ("Tilde, Breve" tilde breve) - ("Circumflex, Caron" circumflex caron) - ("Diaeresis, Umlaut" diaeresis hungarumlaut) - ("Acute, Grave" acute grave)) - "Header/submenu specification of the specific menu for language `texi'. -See language access `x-symbol-LANG-header-groups-alist'." - :group 'x-symbol-texi - :group 'x-symbol-input-init - :type 'x-symbol-headers) - -(defcustom x-symbol-texi-electric-ignore nil - "Specification restricting input method ELECTRIC with language `texi'. -See language access `x-symbol-LANG-electric-ignore'." - :group 'x-symbol-texi - :group 'x-symbol-input-control - :type 'x-symbol-function-or-regexp) - -(defcustom x-symbol-texi-class-alist - '((aletter "acc.letter" (x-symbol-info-face)) - (symbol "symbol" (x-symbol-info-face)) - (bullet "bullet" (x-symbol-info-face)) - (no-code "not as code" (x-symbol-emph-info-face)) - (VALID "unknown TeXinfo command" (x-symbol-emph-info-face)) - (INVALID "no TeXinfo command" (x-symbol-emph-info-face))) - "Token classes displayed by info in echo area, for language `texi'. -See language access `x-symbol-LANG-class-alist'." - :group 'x-symbol-texi - :group 'x-symbol-info-strings - :type 'x-symbol-class-info) - -(defcustom x-symbol-texi-class-face-alist nil - "Color scheme in language specific grid and info, for language `texi'. -See language access `x-symbol-LANG-class-face-alist'." - :group 'x-symbol-texi - :group 'x-symbol-input-init - :group 'x-symbol-info-general - :type 'x-symbol-class-faces) - - -(defvar x-symbol-texi-token-grammar - '(x-symbol-make-grammar - :encode-spec (?@) - :decode-regexp - "@\\(?:[A-Za-z]+{[A-Za-z]?}\\|[{}]\\|[~^\"'`][A-Za-z]\\|,{[A-Za-z]}\\)" - :decode-spec (?@)) - "Grammar of token language `texi'. -See language access `x-symbol-LANG-token-grammar'.") - -(defvar x-symbol-texi-user-table nil - "User table defining TeXinfo commands, used in `x-symbol-texi-table'.") - -(defvar x-symbol-texi-generated-data nil - "Generated data for token language `texi'. -See language access `x-symbol-LANG-generated-data'.") - - -;;;=========================================================================== -;;; The tables -;;;=========================================================================== - -(defvar x-symbol-texi-latin1-table - '(;;(nobreakspace () "\\nobreakspace") - (exclamdown (symbol) "@exclamdown{}") - ;;(cent () "\\textcent") - (sterling (symbol) "@pounds{}") - ;;(currency () "\\textcurrency") - ;;(yen () "\\textyen") - ;;(brokenbar () "\\textbrokenbar") - ;;(section () "\\S") - ;;(diaeresis () "@\"{}") - (copyright (symbol) "@copyright{}") - ;;(ordfeminine () "\\textordfeminine") - ;;(guillemotleft () "\\guillemotleft") - ;;(notsign () "\\lnot" "\\neg") - ;;(hyphen () "\\-") - ;;(registered () "\\textregistered") - ;;(macron () "\\={}") - ;;(degree () "\\textdegree") - ;;(plusminus () "\\pm") - ;;(twosuperior () "\\mathtwosuperior") - ;;(threesuperior () "\\maththreesuperior") - ;;(acute () "@'{}") - ;;(mu1 () "\\mathmicro") - ;;(paragraph () "\\P") - ;;(periodcentered () "\\textperiodcentered") - ;;(cedilla () "@,\\ ") - ;;(onesuperior () "\\mathonesuperior") - ;;(masculine () "\\textordmasculine") - ;;(guillemotright () "\\guillemotright") - ;;(onequarter () "\\textonequarter") - ;;(onehalf () "\\textonehalf") - ;;(threequarters () "\\textthreequarters") - (questiondown (symbol) "@questiondown{}") - (Agrave (aletter) "@`A") - (Aacute (aletter) "@'A") - (Acircumflex (aletter) "@^A") - (Atilde (aletter) "@~A") - (Adiaeresis (aletter) "@\"A") - (Aring (aletter) "@AA{}") - (AE (aletter) "@AE{}") - (Ccedilla (aletter) "@,{C}") - (Egrave (aletter) "@`E") - (Eacute (aletter) "@'E") - (Ecircumflex (aletter) "@^E") - (Ediaeresis (aletter) "@\"E") - (Igrave (aletter) "@`I") - (Iacute (aletter) "@'I") - (Icircumflex (aletter) "@^I") - (Idiaeresis (aletter) "@\"I") - ;;(ETH () "\\DH") - (Ntilde (aletter) "@~N") - (Ograve (aletter) "@`O") - (Oacute (aletter) "@'O") - (Ocircumflex (aletter) "@^O") - (Otilde (aletter) "@~O") - (Odiaeresis (aletter) "@\"O") - ;;(multiply () "\\times") - (Ooblique (aletter) "@O{}") - (Ugrave (aletter) "@`U") - (Uacute (aletter) "@'U") - (Ucircumflex (aletter) "@^U") - (Udiaeresis (aletter) "@\"U") - (Yacute (aletter) "@'Y") - ;;(THORN () "\\TH") - (ssharp (aletter) "@ss{}") - (agrave (aletter) "@`a") - (aacute (aletter) "@'a") - (acircumflex (aletter) "@^a") - (atilde (aletter) "@~a") - (adiaeresis (aletter) "@\"a") - (aring (aletter) "@aa{}") - (ae (aletter) "@ae{}") - (ccedilla (aletter) "@,{c}") - (egrave (aletter) "@`e") - (eacute (aletter) "@'e") - (ecircumflex (aletter) "@^e") - (ediaeresis (aletter) "@\"e") - (igrave (aletter) "@`i") - (iacute (aletter) "@'i") - (icircumflex (aletter) "@^i") - (idiaeresis (aletter) "@\"i") ; TeX should used dotless-i - ;;(eth () "\\dh") - (ntilde (aletter) "@~n") - (ograve (aletter) "@`o") - (oacute (aletter) "@'o") - (ocircumflex (aletter) "@^o") - (otilde (aletter) "@~o") - (odiaeresis (aletter) "@\"o") - ;;(division () "\\div") - (oslash (aletter) "@o{}") - (ugrave (aletter) "@`u") - (uacute (aletter) "@'u") - (ucircumflex (aletter) "@^u") - (udiaeresis (aletter) "@\"u") - (yacute (aletter) "@'y") - ;;(thorn () "\\th") - (ydiaeresis (aletter) "@\"y")) - "Table defining TeXinfo commands, see `x-symbol-texi-table'.") - -(defvar x-symbol-texi-latinN-table - '(;;(Aogonek () "\\k A") - ;;(breve () "@u{}") - (Lslash (aletter) "@L{}") - (Lcaron (aletter) "@v{L}") ; TeX should use T1 fontenc - (Sacute (aletter) "@'S") - (Scaron (aletter) "@v{S}") - (Scedilla (aletter) "@,{S}") - (Tcaron (aletter) "@v{T}") - (Zacute (aletter) "@'Z") - (Zcaron (aletter) "@v{Z}") - (Zdotaccent (aletter) "@dotaccent{Z}") - ;;(aogonek () "\\k a") - ;;(ogonek () "\\k\\ ") - (lslash (aletter) "@l{}") - (lcaron (aletter) "@v{l}") ; TeX should use T1 fontenc - (sacute (aletter) "@'s") - ;;(caron () "\\v{}") - (scaron (aletter) "@v{s}") - (scedilla (aletter) "@,{s}") - (tcaron (aletter) "@v{t}") ; TeX should use T1 fontenc - (zacute (aletter) "@'z") - ;;(hungarumlaut () "@H{}") - (zcaron (aletter) "@v{z}") - (zdotaccent (aletter) "@dotaccent{z}") - (Racute (aletter) "@'R") - (Abreve (aletter) "@u{A}") - (Lacute (aletter) "@'L") - (Cacute (aletter) "@'C") - (Ccaron (aletter) "@v{C}") - ;;(Eogonek () "\\k E") - (Ecaron (aletter) "@v{E}") - (Dcaron (aletter) "@v{D}") - ;;(Dbar () "\\DJ") - (Nacute (aletter) "@'N") - (Ncaron (aletter) "@v{N}") - (Ohungarumlaut (aletter) "@H{O}") - (Rcaron (aletter) "@v{R}") - (Uring (aletter) "@ringaccent{U}") - (Uhungarumlaut (aletter) "@H{U}") - (Tcedilla (aletter) "@,{T}") - (racute (aletter) "@'r") - (abreve (aletter) "@u{a}") - (lacute (aletter) "@'l") - (cacute (aletter) "@'c") - (ccaron (aletter) "@v{c}") - ;;(eogonek () "\\k e") - (ecaron (aletter) "@v{e}") - (dcaron (aletter) "@v{d}") ; TeX should use T1 fontenc - ;;(dbar () "\\dj") - (nacute (aletter) "@'n") - (ncaron (aletter) "@v{n}") - (ohungarumlaut (aletter) "@H{o}") - (rcaron (aletter) "@v{r}") - (uring (aletter) "@ringaccent{u}") - (uhungarumlaut (aletter) "@H{u}") - (tcedilla (aletter) "@,{t}") - ;;(dotaccent () "@dotaccent{}") - ;;(Hbar () "\\textmalteseH") - (Hcircumflex (aletter) "@^H") - (Idotaccent (aletter) "@dotaccent{I}") - (Gbreve (aletter) "@u{G}") - (Jcircumflex (aletter) "@^J") - ;;(hbar () "\\textmalteseh") - (hcircumflex (aletter) "@^h") - (dotlessi (aletter) "@dotless{i}") - (gbreve (aletter) "@u{g}") - (jcircumflex (aletter) "@^j") - (Cdotaccent (aletter) "@dotaccent{C}") - (Ccircumflex (aletter) "@^C") - (Gdotaccent (aletter) "@dotaccent{G}") - (Gcircumflex (aletter) "@^G") - (Ubreve (aletter) "@u{U}") - (Scircumflex (aletter) "@^S") - (cdotaccent (aletter) "@dotaccent{c}") - (ccircumflex (aletter) "@^c") - (gdotaccent (aletter) "@dotaccent{g}") - (gcircumflex (aletter) "@^g") - (ubreve (aletter) "@u{u}") - (scircumflex (aletter) "@^s") - (OE (aletter) "@OE{}") - (oe (aletter) "@oe{}") - (Ydiaeresis (aletter) "@\"Y")) - "Table defining TeXinfo commands, see `x-symbol-texi-table'.") - -(defvar x-symbol-texi-xsymbX-table - '((bullet (bullet) "@bullet{}") - (equivalence (symbol) "@equiv{}") - (ellipsis (symbol) "@dots{}") - (arrowdblright (symbol) "@result{}") - ;;(NG () "\\NG") - (dotlessj (aletter) "@dotless{j}") - ;;(ng () "\\ng") - (star (symbol) "@point{}") - (braceleft2 (symbol) "@{") - (braceright2 (symbol) "@}") - (mapsto (symbol) "@expansion{}") - (dashbar (symbol) "@print{}") - ;;(grave () "@`{}") - ;;(circumflex () "@^{}") - ;;(tilde () "@~{}") - (endash (bullet no-code) "@minus{}") - ;;(emdash () "\\textemdash") - ;;(at2 () "@@") - ;;(endellipsis () "enddots{}") - ;;(error () "error{}") - ) - "Table defining TeXinfo commands, see `x-symbol-texi-table'.") - -(defvar x-symbol-texi-table - (append x-symbol-texi-user-table - '(nil) - x-symbol-texi-latin1-table - x-symbol-texi-latinN-table - x-symbol-texi-xsymbX-table) - "Table defining `texi' tokens for the characters. -See language access `x-symbol-LANG-table'. Use -`x-symbol-texi-user-table' to define private TeXinfo commands or shadow -existing ones.") - -;;; Local IspellPersDict: .ispell_xsymb -;;; x-symbol-texi.el ends here diff --git a/x-symbol/lisp/x-symbol-unichars.el b/x-symbol/lisp/x-symbol-unichars.el deleted file mode 100644 index 4882604c..00000000 --- a/x-symbol/lisp/x-symbol-unichars.el +++ /dev/null @@ -1,5062 +0,0 @@ -;;; x-symbol-unichars.el --- table of Unicode characters for X-Symbol - -;; Adapted from Norman Walsh's unichars.el - -(defvar x-symbol-unicode-character-list - '(;Unicode name Codept - ("NULL" #x000000) - ("START OF HEADING" #x000001) - ("START OF TEXT" #x000002) - ("END OF TEXT" #x000003) - ("END OF TRANSMISSION" #x000004) - ("ENQUIRY" #x000005) - ("ACKNOWLEDGE" #x000006) - ("BELL" #x000007) - ("BACKSPACE" #x000008) - ("CHARACTER TABULATION" #x000009) - ("LINE FEED (LF)" #x00000a) - ("LINE TABULATION" #x00000b) - ("FORM FEED (FF)" #x00000c) - ("CARRIAGE RETURN (CR)" #x00000d) - ("SHIFT OUT" #x00000e) - ("SHIFT IN" #x00000f) - ("DATA LINK ESCAPE" #x000010) - ("DEVICE CONTROL ONE" #x000011) - ("DEVICE CONTROL TWO" #x000012) - ("DEVICE CONTROL THREE" #x000013) - ("DEVICE CONTROL FOUR" #x000014) - ("NEGATIVE ACKNOWLEDGE" #x000015) - ("SYNCHRONOUS IDLE" #x000016) - ("END OF TRANSMISSION BLOCK;" #x000017) - ("CANCEL" #x000018) - ("END OF MEDIUM" #x000019) - ("SUBSTITUTE" #x00001a) - ("ESCAPE" #x00001b) - ("INFORMATION SEPARATOR FOUR" #x00001c) - ("INFORMATION SEPARATOR THREE" #x00001d) - ("INFORMATION SEPARATOR TWO" #x00001e) - ("INFORMATION SEPARATOR ONE" #x00001f) - ("SPACE" #x000020) - ("EXCLAMATION MARK" #x000021) - ("QUOTATION MARK" #x000022) - ("NUMBER SIGN" #x000023) - ("DOLLAR SIGN" #x000024) - ("PERCENT SIGN" #x000025) - ("AMPERSAND" #x000026) - ("APOSTROPHE" #x000027) - ("LEFT PARENTHESIS" #x000028) - ("RIGHT PARENTHESIS" #x000029) - ("ASTERISK" #x00002a) - ("PLUS SIGN" #x00002b) - ("COMMA" #x00002c) - ("HYPHEN-MINUS" #x00002d) - ("FULL STOP" #x00002e) - ("SOLIDUS" #x00002f) - ("DIGIT ZERO" #x000030) - ("DIGIT ONE" #x000031) - ("DIGIT TWO" #x000032) - ("DIGIT THREE" #x000033) - ("DIGIT FOUR" #x000034) - ("DIGIT FIVE" #x000035) - ("DIGIT SIX" #x000036) - ("DIGIT SEVEN" #x000037) - ("DIGIT EIGHT" #x000038) - ("DIGIT NINE" #x000039) - ("COLON" #x00003a) - ("SEMICOLON" #x00003b) - ("LESS-THAN SIGN" #x00003c) - ("EQUALS SIGN" #x00003d) - ("GREATER-THAN SIGN" #x00003e) - ("QUESTION MARK" #x00003f) - ("COMMERCIAL AT" #x000040) - ("LATIN CAPITAL LETTER A" #x000041) - ("LATIN CAPITAL LETTER B" #x000042) - ("LATIN CAPITAL LETTER C" #x000043) - ("LATIN CAPITAL LETTER D" #x000044) - ("LATIN CAPITAL LETTER E" #x000045) - ("LATIN CAPITAL LETTER F" #x000046) - ("LATIN CAPITAL LETTER G" #x000047) - ("LATIN CAPITAL LETTER H" #x000048) - ("LATIN CAPITAL LETTER I" #x000049) - ("LATIN CAPITAL LETTER J" #x00004a) - ("LATIN CAPITAL LETTER K" #x00004b) - ("LATIN CAPITAL LETTER L" #x00004c) - ("LATIN CAPITAL LETTER M" #x00004d) - ("LATIN CAPITAL LETTER N" #x00004e) - ("LATIN CAPITAL LETTER O" #x00004f) - ("LATIN CAPITAL LETTER P" #x000050) - ("LATIN CAPITAL LETTER Q" #x000051) - ("LATIN CAPITAL LETTER R" #x000052) - ("LATIN CAPITAL LETTER S" #x000053) - ("LATIN CAPITAL LETTER T" #x000054) - ("LATIN CAPITAL LETTER U" #x000055) - ("LATIN CAPITAL LETTER V" #x000056) - ("LATIN CAPITAL LETTER W" #x000057) - ("LATIN CAPITAL LETTER X" #x000058) - ("LATIN CAPITAL LETTER Y" #x000059) - ("LATIN CAPITAL LETTER Z" #x00005a) - ("LEFT SQUARE BRACKET" #x00005b) - ("REVERSE SOLIDUS" #x00005c) - ("RIGHT SQUARE BRACKET" #x00005d) - ("CIRCUMFLEX ACCENT" #x00005e) - ("LOW LINE" #x00005f) - ("GRAVE ACCENT" #x000060) - ("LATIN SMALL LETTER A" #x000061) - ("LATIN SMALL LETTER B" #x000062) - ("LATIN SMALL LETTER C" #x000063) - ("LATIN SMALL LETTER D" #x000064) - ("LATIN SMALL LETTER E" #x000065) - ("LATIN SMALL LETTER F" #x000066) - ("LATIN SMALL LETTER G" #x000067) - ("LATIN SMALL LETTER H" #x000068) - ("LATIN SMALL LETTER I" #x000069) - ("LATIN SMALL LETTER J" #x00006a) - ("LATIN SMALL LETTER K" #x00006b) - ("LATIN SMALL LETTER L" #x00006c) - ("LATIN SMALL LETTER M" #x00006d) - ("LATIN SMALL LETTER N" #x00006e) - ("LATIN SMALL LETTER O" #x00006f) - ("LATIN SMALL LETTER P" #x000070) - ("LATIN SMALL LETTER Q" #x000071) - ("LATIN SMALL LETTER R" #x000072) - ("LATIN SMALL LETTER S" #x000073) - ("LATIN SMALL LETTER T" #x000074) - ("LATIN SMALL LETTER U" #x000075) - ("LATIN SMALL LETTER V" #x000076) - ("LATIN SMALL LETTER W" #x000077) - ("LATIN SMALL LETTER X" #x000078) - ("LATIN SMALL LETTER Y" #x000079) - ("LATIN SMALL LETTER Z" #x00007a) - ("LEFT CURLY BRACKET" #x00007b) - ("VERTICAL LINE" #x00007c) - ("RIGHT CURLY BRACKET" #x00007d) - ("TILDE" #x00007e) - ("DELETE" #x00007f) - ("BREAK PERMITTED HERE" #x000082) - ("NO BREAK HERE" #x000083) - ("NEXT LINE (NEL)" #x000085) - ("START OF SELECTED AREA" #x000086) - ("END OF SELECTED AREA" #x000087) - ("CHARACTER TABULATION SET" #x000088) - ("CHARACTER TABULATION WITH JUSTIFICATION" #x000089) - ("LINE TABULATION SET" #x00008a) - ("PARTIAL LINE FORWARD" #x00008b) - ("PARTIAL LINE BACKWARD" #x00008c) - ("REVERSE LINE FEED" #x00008d) - ("SINGLE SHIFT TWO" #x00008e) - ("SINGLE SHIFT THREE" #x00008f) - ("DEVICE CONTROL STRING" #x000090) - ("PRIVATE USE ONE" #x000091) - ("PRIVATE USE TWO" #x000092) - ("SET TRANSMIT STATE" #x000093) - ("CANCEL CHARACTER" #x000094) - ("MESSAGE WAITING" #x000095) - ("START OF GUARDED AREA" #x000096) - ("END OF GUARDED AREA" #x000097) - ("START OF STRING" #x000098) - ("SINGLE CHARACTER INTRODUCER" #x00009a) - ("CONTROL SEQUENCE INTRODUCER" #x00009b) - ("STRING TERMINATOR" #x00009c) - ("OPERATING SYSTEM COMMAND" #x00009d) - ("PRIVACY MESSAGE" #x00009e) - ("APPLICATION PROGRAM COMMAND" #x00009f) - ("NO-BREAK SPACE" #x0000a0) - ("INVERTED EXCLAMATION MARK" #x0000a1) - ("CENT SIGN" #x0000a2) - ("POUND SIGN" #x0000a3) - ("CURRENCY SIGN" #x0000a4) - ("YEN SIGN" #x0000a5) - ("BROKEN BAR" #x0000a6) - ("SECTION SIGN" #x0000a7) - ("DIAERESIS" #x0000a8) - ("COPYRIGHT SIGN" #x0000a9) - ("FEMININE ORDINAL INDICATOR" #x0000aa) - ("LEFT-POINTING DOUBLE ANGLE QUOTATION MARK" #x0000ab) - ("NOT SIGN" #x0000ac) - ("SOFT HYPHEN" #x0000ad) - ("REGISTERED SIGN" #x0000ae) - ("MACRON" #x0000af) - ("DEGREE SIGN" #x0000b0) - ("PLUS-MINUS SIGN" #x0000b1) - ("SUPERSCRIPT TWO" #x0000b2) - ("SUPERSCRIPT THREE" #x0000b3) - ("ACUTE ACCENT" #x0000b4) - ("MICRO SIGN" #x0000b5) - ("PILCROW SIGN" #x0000b6) - ("MIDDLE DOT" #x0000b7) - ("CEDILLA" #x0000b8) - ("SUPERSCRIPT ONE" #x0000b9) - ("MASCULINE ORDINAL INDICATOR" #x0000ba) - ("RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK" #x0000bb) - ("VULGAR FRACTION ONE QUARTER" #x0000bc) - ("VULGAR FRACTION ONE HALF" #x0000bd) - ("VULGAR FRACTION THREE QUARTERS" #x0000be) - ("INVERTED QUESTION MARK" #x0000bf) - ("LATIN CAPITAL LETTER A WITH GRAVE" #x0000c0) - ("LATIN CAPITAL LETTER A WITH ACUTE" #x0000c1) - ("LATIN CAPITAL LETTER A WITH CIRCUMFLEX" #x0000c2) - ("LATIN CAPITAL LETTER A WITH TILDE" #x0000c3) - ("LATIN CAPITAL LETTER A WITH DIAERESIS" #x0000c4) - ("LATIN CAPITAL LETTER A WITH RING ABOVE" #x0000c5) - ("LATIN CAPITAL LETTER AE" #x0000c6) - ("LATIN CAPITAL LETTER C WITH CEDILLA" #x0000c7) - ("LATIN CAPITAL LETTER E WITH GRAVE" #x0000c8) - ("LATIN CAPITAL LETTER E WITH ACUTE" #x0000c9) - ("LATIN CAPITAL LETTER E WITH CIRCUMFLEX" #x0000ca) - ("LATIN CAPITAL LETTER E WITH DIAERESIS" #x0000cb) - ("LATIN CAPITAL LETTER I WITH GRAVE" #x0000cc) - ("LATIN CAPITAL LETTER I WITH ACUTE" #x0000cd) - ("LATIN CAPITAL LETTER I WITH CIRCUMFLEX" #x0000ce) - ("LATIN CAPITAL LETTER I WITH DIAERESIS" #x0000cf) - ("LATIN CAPITAL LETTER ETH" #x0000d0) - ("LATIN CAPITAL LETTER N WITH TILDE" #x0000d1) - ("LATIN CAPITAL LETTER O WITH GRAVE" #x0000d2) - ("LATIN CAPITAL LETTER O WITH ACUTE" #x0000d3) - ("LATIN CAPITAL LETTER O WITH CIRCUMFLEX" #x0000d4) - ("LATIN CAPITAL LETTER O WITH TILDE" #x0000d5) - ("LATIN CAPITAL LETTER O WITH DIAERESIS" #x0000d6) - ("MULTIPLICATION SIGN" #x0000d7) - ("LATIN CAPITAL LETTER O WITH STROKE" #x0000d8) - ("LATIN CAPITAL LETTER U WITH GRAVE" #x0000d9) - ("LATIN CAPITAL LETTER U WITH ACUTE" #x0000da) - ("LATIN CAPITAL LETTER U WITH CIRCUMFLEX" #x0000db) - ("LATIN CAPITAL LETTER U WITH DIAERESIS" #x0000dc) - ("LATIN CAPITAL LETTER Y WITH ACUTE" #x0000dd) - ("LATIN CAPITAL LETTER THORN" #x0000de) - ("LATIN SMALL LETTER SHARP S" #x0000df) - ("LATIN SMALL LETTER A WITH GRAVE" #x0000e0) - ("LATIN SMALL LETTER A WITH ACUTE" #x0000e1) - ("LATIN SMALL LETTER A WITH CIRCUMFLEX" #x0000e2) - ("LATIN SMALL LETTER A WITH TILDE" #x0000e3) - ("LATIN SMALL LETTER A WITH DIAERESIS" #x0000e4) - ("LATIN SMALL LETTER A WITH RING ABOVE" #x0000e5) - ("LATIN SMALL LETTER AE" #x0000e6) - ("LATIN SMALL LETTER C WITH CEDILLA" #x0000e7) - ("LATIN SMALL LETTER E WITH GRAVE" #x0000e8) - ("LATIN SMALL LETTER E WITH ACUTE" #x0000e9) - ("LATIN SMALL LETTER E WITH CIRCUMFLEX" #x0000ea) - ("LATIN SMALL LETTER E WITH DIAERESIS" #x0000eb) - ("LATIN SMALL LETTER I WITH GRAVE" #x0000ec) - ("LATIN SMALL LETTER I WITH ACUTE" #x0000ed) - ("LATIN SMALL LETTER I WITH CIRCUMFLEX" #x0000ee) - ("LATIN SMALL LETTER I WITH DIAERESIS" #x0000ef) - ("LATIN SMALL LETTER ETH" #x0000f0) - ("LATIN SMALL LETTER N WITH TILDE" #x0000f1) - ("LATIN SMALL LETTER O WITH GRAVE" #x0000f2) - ("LATIN SMALL LETTER O WITH ACUTE" #x0000f3) - ("LATIN SMALL LETTER O WITH CIRCUMFLEX" #x0000f4) - ("LATIN SMALL LETTER O WITH TILDE" #x0000f5) - ("LATIN SMALL LETTER O WITH DIAERESIS" #x0000f6) - ("DIVISION SIGN" #x0000f7) - ("LATIN SMALL LETTER O WITH STROKE" #x0000f8) - ("LATIN SMALL LETTER U WITH GRAVE" #x0000f9) - ("LATIN SMALL LETTER U WITH ACUTE" #x0000fa) - ("LATIN SMALL LETTER U WITH CIRCUMFLEX" #x0000fb) - ("LATIN SMALL LETTER U WITH DIAERESIS" #x0000fc) - ("LATIN SMALL LETTER Y WITH ACUTE" #x0000fd) - ("LATIN SMALL LETTER THORN" #x0000fe) - ("LATIN SMALL LETTER Y WITH DIAERESIS" #x0000ff) - ("LATIN CAPITAL LETTER A WITH MACRON" #x000100) - ("LATIN SMALL LETTER A WITH MACRON" #x000101) - ("LATIN CAPITAL LETTER A WITH BREVE" #x000102) - ("LATIN SMALL LETTER A WITH BREVE" #x000103) - ("LATIN CAPITAL LETTER A WITH OGONEK" #x000104) - ("LATIN SMALL LETTER A WITH OGONEK" #x000105) - ("LATIN CAPITAL LETTER C WITH ACUTE" #x000106) - ("LATIN SMALL LETTER C WITH ACUTE" #x000107) - ("LATIN CAPITAL LETTER C WITH CIRCUMFLEX" #x000108) - ("LATIN SMALL LETTER C WITH CIRCUMFLEX" #x000109) - ("LATIN CAPITAL LETTER C WITH DOT ABOVE" #x00010a) - ("LATIN SMALL LETTER C WITH DOT ABOVE" #x00010b) - ("LATIN CAPITAL LETTER C WITH CARON" #x00010c) - ("LATIN SMALL LETTER C WITH CARON" #x00010d) - ("LATIN CAPITAL LETTER D WITH CARON" #x00010e) - ("LATIN SMALL LETTER D WITH CARON" #x00010f) - ("LATIN CAPITAL LETTER D WITH STROKE" #x000110) - ("LATIN SMALL LETTER D WITH STROKE" #x000111) - ("LATIN CAPITAL LETTER E WITH MACRON" #x000112) - ("LATIN SMALL LETTER E WITH MACRON" #x000113) - ("LATIN CAPITAL LETTER E WITH BREVE" #x000114) - ("LATIN SMALL LETTER E WITH BREVE" #x000115) - ("LATIN CAPITAL LETTER E WITH DOT ABOVE" #x000116) - ("LATIN SMALL LETTER E WITH DOT ABOVE" #x000117) - ("LATIN CAPITAL LETTER E WITH OGONEK" #x000118) - ("LATIN SMALL LETTER E WITH OGONEK" #x000119) - ("LATIN CAPITAL LETTER E WITH CARON" #x00011a) - ("LATIN SMALL LETTER E WITH CARON" #x00011b) - ("LATIN CAPITAL LETTER G WITH CIRCUMFLEX" #x00011c) - ("LATIN SMALL LETTER G WITH CIRCUMFLEX" #x00011d) - ("LATIN CAPITAL LETTER G WITH BREVE" #x00011e) - ("LATIN SMALL LETTER G WITH BREVE" #x00011f) - ("LATIN CAPITAL LETTER G WITH DOT ABOVE" #x000120) - ("LATIN SMALL LETTER G WITH DOT ABOVE" #x000121) - ("LATIN CAPITAL LETTER G WITH CEDILLA" #x000122) - ("LATIN SMALL LETTER G WITH CEDILLA" #x000123) - ("LATIN CAPITAL LETTER H WITH CIRCUMFLEX" #x000124) - ("LATIN SMALL LETTER H WITH CIRCUMFLEX" #x000125) - ("LATIN CAPITAL LETTER H WITH STROKE" #x000126) - ("LATIN SMALL LETTER H WITH STROKE" #x000127) - ("LATIN CAPITAL LETTER I WITH TILDE" #x000128) - ("LATIN SMALL LETTER I WITH TILDE" #x000129) - ("LATIN CAPITAL LETTER I WITH MACRON" #x00012a) - ("LATIN SMALL LETTER I WITH MACRON" #x00012b) - ("LATIN CAPITAL LETTER I WITH BREVE" #x00012c) - ("LATIN SMALL LETTER I WITH BREVE" #x00012d) - ("LATIN CAPITAL LETTER I WITH OGONEK" #x00012e) - ("LATIN SMALL LETTER I WITH OGONEK" #x00012f) - ("LATIN CAPITAL LETTER I WITH DOT ABOVE" #x000130) - ("LATIN SMALL LETTER DOTLESS I" #x000131) - ("LATIN CAPITAL LIGATURE IJ" #x000132) - ("LATIN SMALL LIGATURE IJ" #x000133) - ("LATIN CAPITAL LETTER J WITH CIRCUMFLEX" #x000134) - ("LATIN SMALL LETTER J WITH CIRCUMFLEX" #x000135) - ("LATIN CAPITAL LETTER K WITH CEDILLA" #x000136) - ("LATIN SMALL LETTER K WITH CEDILLA" #x000137) - ("LATIN SMALL LETTER KRA" #x000138) - ("LATIN CAPITAL LETTER L WITH ACUTE" #x000139) - ("LATIN SMALL LETTER L WITH ACUTE" #x00013a) - ("LATIN CAPITAL LETTER L WITH CEDILLA" #x00013b) - ("LATIN SMALL LETTER L WITH CEDILLA" #x00013c) - ("LATIN CAPITAL LETTER L WITH CARON" #x00013d) - ("LATIN SMALL LETTER L WITH CARON" #x00013e) - ("LATIN CAPITAL LETTER L WITH MIDDLE DOT" #x00013f) - ("LATIN SMALL LETTER L WITH MIDDLE DOT" #x000140) - ("LATIN CAPITAL LETTER L WITH STROKE" #x000141) - ("LATIN SMALL LETTER L WITH STROKE" #x000142) - ("LATIN CAPITAL LETTER N WITH ACUTE" #x000143) - ("LATIN SMALL LETTER N WITH ACUTE" #x000144) - ("LATIN CAPITAL LETTER N WITH CEDILLA" #x000145) - ("LATIN SMALL LETTER N WITH CEDILLA" #x000146) - ("LATIN CAPITAL LETTER N WITH CARON" #x000147) - ("LATIN SMALL LETTER N WITH CARON" #x000148) - ("LATIN SMALL LETTER N PRECEDED BY APOSTROPHE" #x000149) - ("LATIN CAPITAL LETTER ENG" #x00014a) - ("LATIN SMALL LETTER ENG" #x00014b) - ("LATIN CAPITAL LETTER O WITH MACRON" #x00014c) - ("LATIN SMALL LETTER O WITH MACRON" #x00014d) - ("LATIN CAPITAL LETTER O WITH BREVE" #x00014e) - ("LATIN SMALL LETTER O WITH BREVE" #x00014f) - ("LATIN CAPITAL LETTER O WITH DOUBLE ACUTE" #x000150) - ("LATIN SMALL LETTER O WITH DOUBLE ACUTE" #x000151) - ("LATIN CAPITAL LIGATURE OE" #x000152) - ("LATIN SMALL LIGATURE OE" #x000153) - ("LATIN CAPITAL LETTER R WITH ACUTE" #x000154) - ("LATIN SMALL LETTER R WITH ACUTE" #x000155) - ("LATIN CAPITAL LETTER R WITH CEDILLA" #x000156) - ("LATIN SMALL LETTER R WITH CEDILLA" #x000157) - ("LATIN CAPITAL LETTER R WITH CARON" #x000158) - ("LATIN SMALL LETTER R WITH CARON" #x000159) - ("LATIN CAPITAL LETTER S WITH ACUTE" #x00015a) - ("LATIN SMALL LETTER S WITH ACUTE" #x00015b) - ("LATIN CAPITAL LETTER S WITH CIRCUMFLEX" #x00015c) - ("LATIN SMALL LETTER S WITH CIRCUMFLEX" #x00015d) - ("LATIN CAPITAL LETTER S WITH CEDILLA" #x00015e) - ("LATIN SMALL LETTER S WITH CEDILLA" #x00015f) - ("LATIN CAPITAL LETTER S WITH CARON" #x000160) - ("LATIN SMALL LETTER S WITH CARON" #x000161) - ("LATIN CAPITAL LETTER T WITH CEDILLA" #x000162) - ("LATIN SMALL LETTER T WITH CEDILLA" #x000163) - ("LATIN CAPITAL LETTER T WITH CARON" #x000164) - ("LATIN SMALL LETTER T WITH CARON" #x000165) - ("LATIN CAPITAL LETTER T WITH STROKE" #x000166) - ("LATIN SMALL LETTER T WITH STROKE" #x000167) - ("LATIN CAPITAL LETTER U WITH TILDE" #x000168) - ("LATIN SMALL LETTER U WITH TILDE" #x000169) - ("LATIN CAPITAL LETTER U WITH MACRON" #x00016a) - ("LATIN SMALL LETTER U WITH MACRON" #x00016b) - ("LATIN CAPITAL LETTER U WITH BREVE" #x00016c) - ("LATIN SMALL LETTER U WITH BREVE" #x00016d) - ("LATIN CAPITAL LETTER U WITH RING ABOVE" #x00016e) - ("LATIN SMALL LETTER U WITH RING ABOVE" #x00016f) - ("LATIN CAPITAL LETTER U WITH DOUBLE ACUTE" #x000170) - ("LATIN SMALL LETTER U WITH DOUBLE ACUTE" #x000171) - ("LATIN CAPITAL LETTER U WITH OGONEK" #x000172) - ("LATIN SMALL LETTER U WITH OGONEK" #x000173) - ("LATIN CAPITAL LETTER W WITH CIRCUMFLEX" #x000174) - ("LATIN SMALL LETTER W WITH CIRCUMFLEX" #x000175) - ("LATIN CAPITAL LETTER Y WITH CIRCUMFLEX" #x000176) - ("LATIN SMALL LETTER Y WITH CIRCUMFLEX" #x000177) - ("LATIN CAPITAL LETTER Y WITH DIAERESIS" #x000178) - ("LATIN CAPITAL LETTER Z WITH ACUTE" #x000179) - ("LATIN SMALL LETTER Z WITH ACUTE" #x00017a) - ("LATIN CAPITAL LETTER Z WITH DOT ABOVE" #x00017b) - ("LATIN SMALL LETTER Z WITH DOT ABOVE" #x00017c) - ("LATIN CAPITAL LETTER Z WITH CARON" #x00017d) - ("LATIN SMALL LETTER Z WITH CARON" #x00017e) - ("LATIN SMALL LETTER LONG S" #x00017f) - ("LATIN SMALL LETTER B WITH STROKE" #x000180) - ("LATIN CAPITAL LETTER B WITH HOOK" #x000181) - ("LATIN CAPITAL LETTER B WITH TOPBAR" #x000182) - ("LATIN SMALL LETTER B WITH TOPBAR" #x000183) - ("LATIN CAPITAL LETTER TONE SIX" #x000184) - ("LATIN SMALL LETTER TONE SIX" #x000185) - ("LATIN CAPITAL LETTER OPEN O" #x000186) - ("LATIN CAPITAL LETTER C WITH HOOK" #x000187) - ("LATIN SMALL LETTER C WITH HOOK" #x000188) - ("LATIN CAPITAL LETTER AFRICAN D" #x000189) - ("LATIN CAPITAL LETTER D WITH HOOK" #x00018a) - ("LATIN CAPITAL LETTER D WITH TOPBAR" #x00018b) - ("LATIN SMALL LETTER D WITH TOPBAR" #x00018c) - ("LATIN SMALL LETTER TURNED DELTA" #x00018d) - ("LATIN CAPITAL LETTER REVERSED E" #x00018e) - ("LATIN CAPITAL LETTER SCHWA" #x00018f) - ("LATIN CAPITAL LETTER OPEN E" #x000190) - ("LATIN CAPITAL LETTER F WITH HOOK" #x000191) - ("LATIN SMALL LETTER F WITH HOOK" #x000192) - ("LATIN CAPITAL LETTER G WITH HOOK" #x000193) - ("LATIN CAPITAL LETTER GAMMA" #x000194) - ("LATIN SMALL LETTER HV" #x000195) - ("LATIN CAPITAL LETTER IOTA" #x000196) - ("LATIN CAPITAL LETTER I WITH STROKE" #x000197) - ("LATIN CAPITAL LETTER K WITH HOOK" #x000198) - ("LATIN SMALL LETTER K WITH HOOK" #x000199) - ("LATIN SMALL LETTER L WITH BAR" #x00019a) - ("LATIN SMALL LETTER LAMBDA WITH STROKE" #x00019b) - ("LATIN CAPITAL LETTER TURNED M" #x00019c) - ("LATIN CAPITAL LETTER N WITH LEFT HOOK" #x00019d) - ("LATIN SMALL LETTER N WITH LONG RIGHT LEG" #x00019e) - ("LATIN CAPITAL LETTER O WITH MIDDLE TILDE" #x00019f) - ("LATIN CAPITAL LETTER O WITH HORN" #x0001a0) - ("LATIN SMALL LETTER O WITH HORN" #x0001a1) - ("LATIN CAPITAL LETTER OI" #x0001a2) - ("LATIN SMALL LETTER OI" #x0001a3) - ("LATIN CAPITAL LETTER P WITH HOOK" #x0001a4) - ("LATIN SMALL LETTER P WITH HOOK" #x0001a5) - ("LATIN LETTER YR" #x0001a6) - ("LATIN CAPITAL LETTER TONE TWO" #x0001a7) - ("LATIN SMALL LETTER TONE TWO" #x0001a8) - ("LATIN CAPITAL LETTER ESH" #x0001a9) - ("LATIN LETTER REVERSED ESH LOOP" #x0001aa) - ("LATIN SMALL LETTER T WITH PALATAL HOOK" #x0001ab) - ("LATIN CAPITAL LETTER T WITH HOOK" #x0001ac) - ("LATIN SMALL LETTER T WITH HOOK" #x0001ad) - ("LATIN CAPITAL LETTER T WITH RETROFLEX HOOK" #x0001ae) - ("LATIN CAPITAL LETTER U WITH HORN" #x0001af) - ("LATIN SMALL LETTER U WITH HORN" #x0001b0) - ("LATIN CAPITAL LETTER UPSILON" #x0001b1) - ("LATIN CAPITAL LETTER V WITH HOOK" #x0001b2) - ("LATIN CAPITAL LETTER Y WITH HOOK" #x0001b3) - ("LATIN SMALL LETTER Y WITH HOOK" #x0001b4) - ("LATIN CAPITAL LETTER Z WITH STROKE" #x0001b5) - ("LATIN SMALL LETTER Z WITH STROKE" #x0001b6) - ("LATIN CAPITAL LETTER EZH" #x0001b7) - ("LATIN CAPITAL LETTER EZH REVERSED" #x0001b8) - ("LATIN SMALL LETTER EZH REVERSED" #x0001b9) - ("LATIN SMALL LETTER EZH WITH TAIL" #x0001ba) - ("LATIN LETTER TWO WITH STROKE" #x0001bb) - ("LATIN CAPITAL LETTER TONE FIVE" #x0001bc) - ("LATIN SMALL LETTER TONE FIVE" #x0001bd) - ("LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE" #x0001be) - ("LATIN LETTER WYNN" #x0001bf) - ("LATIN LETTER DENTAL CLICK" #x0001c0) - ("LATIN LETTER LATERAL CLICK" #x0001c1) - ("LATIN LETTER ALVEOLAR CLICK" #x0001c2) - ("LATIN LETTER RETROFLEX CLICK" #x0001c3) - ("LATIN CAPITAL LETTER DZ WITH CARON" #x0001c4) - ("LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON" #x0001c5) - ("LATIN SMALL LETTER DZ WITH CARON" #x0001c6) - ("LATIN CAPITAL LETTER LJ" #x0001c7) - ("LATIN CAPITAL LETTER L WITH SMALL LETTER J" #x0001c8) - ("LATIN SMALL LETTER LJ" #x0001c9) - ("LATIN CAPITAL LETTER NJ" #x0001ca) - ("LATIN CAPITAL LETTER N WITH SMALL LETTER J" #x0001cb) - ("LATIN SMALL LETTER NJ" #x0001cc) - ("LATIN CAPITAL LETTER A WITH CARON" #x0001cd) - ("LATIN SMALL LETTER A WITH CARON" #x0001ce) - ("LATIN CAPITAL LETTER I WITH CARON" #x0001cf) - ("LATIN SMALL LETTER I WITH CARON" #x0001d0) - ("LATIN CAPITAL LETTER O WITH CARON" #x0001d1) - ("LATIN SMALL LETTER O WITH CARON" #x0001d2) - ("LATIN CAPITAL LETTER U WITH CARON" #x0001d3) - ("LATIN SMALL LETTER U WITH CARON" #x0001d4) - ("LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON" #x0001d5) - ("LATIN SMALL LETTER U WITH DIAERESIS AND MACRON" #x0001d6) - ("LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE" #x0001d7) - ("LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE" #x0001d8) - ("LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON" #x0001d9) - ("LATIN SMALL LETTER U WITH DIAERESIS AND CARON" #x0001da) - ("LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE" #x0001db) - ("LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE" #x0001dc) - ("LATIN SMALL LETTER TURNED E" #x0001dd) - ("LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON" #x0001de) - ("LATIN SMALL LETTER A WITH DIAERESIS AND MACRON" #x0001df) - ("LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON" #x0001e0) - ("LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON" #x0001e1) - ("LATIN CAPITAL LETTER AE WITH MACRON" #x0001e2) - ("LATIN SMALL LETTER AE WITH MACRON" #x0001e3) - ("LATIN CAPITAL LETTER G WITH STROKE" #x0001e4) - ("LATIN SMALL LETTER G WITH STROKE" #x0001e5) - ("LATIN CAPITAL LETTER G WITH CARON" #x0001e6) - ("LATIN SMALL LETTER G WITH CARON" #x0001e7) - ("LATIN CAPITAL LETTER K WITH CARON" #x0001e8) - ("LATIN SMALL LETTER K WITH CARON" #x0001e9) - ("LATIN CAPITAL LETTER O WITH OGONEK" #x0001ea) - ("LATIN SMALL LETTER O WITH OGONEK" #x0001eb) - ("LATIN CAPITAL LETTER O WITH OGONEK AND MACRON" #x0001ec) - ("LATIN SMALL LETTER O WITH OGONEK AND MACRON" #x0001ed) - ("LATIN CAPITAL LETTER EZH WITH CARON" #x0001ee) - ("LATIN SMALL LETTER EZH WITH CARON" #x0001ef) - ("LATIN SMALL LETTER J WITH CARON" #x0001f0) - ("LATIN CAPITAL LETTER DZ" #x0001f1) - ("LATIN CAPITAL LETTER D WITH SMALL LETTER Z" #x0001f2) - ("LATIN SMALL LETTER DZ" #x0001f3) - ("LATIN CAPITAL LETTER G WITH ACUTE" #x0001f4) - ("LATIN SMALL LETTER G WITH ACUTE" #x0001f5) - ("LATIN CAPITAL LETTER HWAIR" #x0001f6) - ("LATIN CAPITAL LETTER WYNN" #x0001f7) - ("LATIN CAPITAL LETTER N WITH GRAVE" #x0001f8) - ("LATIN SMALL LETTER N WITH GRAVE" #x0001f9) - ("LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE" #x0001fa) - ("LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE" #x0001fb) - ("LATIN CAPITAL LETTER AE WITH ACUTE" #x0001fc) - ("LATIN SMALL LETTER AE WITH ACUTE" #x0001fd) - ("LATIN CAPITAL LETTER O WITH STROKE AND ACUTE" #x0001fe) - ("LATIN SMALL LETTER O WITH STROKE AND ACUTE" #x0001ff) - ("LATIN CAPITAL LETTER A WITH DOUBLE GRAVE" #x000200) - ("LATIN SMALL LETTER A WITH DOUBLE GRAVE" #x000201) - ("LATIN CAPITAL LETTER A WITH INVERTED BREVE" #x000202) - ("LATIN SMALL LETTER A WITH INVERTED BREVE" #x000203) - ("LATIN CAPITAL LETTER E WITH DOUBLE GRAVE" #x000204) - ("LATIN SMALL LETTER E WITH DOUBLE GRAVE" #x000205) - ("LATIN CAPITAL LETTER E WITH INVERTED BREVE" #x000206) - ("LATIN SMALL LETTER E WITH INVERTED BREVE" #x000207) - ("LATIN CAPITAL LETTER I WITH DOUBLE GRAVE" #x000208) - ("LATIN SMALL LETTER I WITH DOUBLE GRAVE" #x000209) - ("LATIN CAPITAL LETTER I WITH INVERTED BREVE" #x00020a) - ("LATIN SMALL LETTER I WITH INVERTED BREVE" #x00020b) - ("LATIN CAPITAL LETTER O WITH DOUBLE GRAVE" #x00020c) - ("LATIN SMALL LETTER O WITH DOUBLE GRAVE" #x00020d) - ("LATIN CAPITAL LETTER O WITH INVERTED BREVE" #x00020e) - ("LATIN SMALL LETTER O WITH INVERTED BREVE" #x00020f) - ("LATIN CAPITAL LETTER R WITH DOUBLE GRAVE" #x000210) - ("LATIN SMALL LETTER R WITH DOUBLE GRAVE" #x000211) - ("LATIN CAPITAL LETTER R WITH INVERTED BREVE" #x000212) - ("LATIN SMALL LETTER R WITH INVERTED BREVE" #x000213) - ("LATIN CAPITAL LETTER U WITH DOUBLE GRAVE" #x000214) - ("LATIN SMALL LETTER U WITH DOUBLE GRAVE" #x000215) - ("LATIN CAPITAL LETTER U WITH INVERTED BREVE" #x000216) - ("LATIN SMALL LETTER U WITH INVERTED BREVE" #x000217) - ("LATIN CAPITAL LETTER S WITH COMMA BELOW" #x000218) - ("LATIN SMALL LETTER S WITH COMMA BELOW" #x000219) - ("LATIN CAPITAL LETTER T WITH COMMA BELOW" #x00021a) - ("LATIN SMALL LETTER T WITH COMMA BELOW" #x00021b) - ("LATIN CAPITAL LETTER YOGH" #x00021c) - ("LATIN SMALL LETTER YOGH" #x00021d) - ("LATIN CAPITAL LETTER H WITH CARON" #x00021e) - ("LATIN SMALL LETTER H WITH CARON" #x00021f) - ("LATIN CAPITAL LETTER N WITH LONG RIGHT LEG" #x000220) - ("LATIN CAPITAL LETTER OU" #x000222) - ("LATIN SMALL LETTER OU" #x000223) - ("LATIN CAPITAL LETTER Z WITH HOOK" #x000224) - ("LATIN SMALL LETTER Z WITH HOOK" #x000225) - ("LATIN CAPITAL LETTER A WITH DOT ABOVE" #x000226) - ("LATIN SMALL LETTER A WITH DOT ABOVE" #x000227) - ("LATIN CAPITAL LETTER E WITH CEDILLA" #x000228) - ("LATIN SMALL LETTER E WITH CEDILLA" #x000229) - ("LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON" #x00022a) - ("LATIN SMALL LETTER O WITH DIAERESIS AND MACRON" #x00022b) - ("LATIN CAPITAL LETTER O WITH TILDE AND MACRON" #x00022c) - ("LATIN SMALL LETTER O WITH TILDE AND MACRON" #x00022d) - ("LATIN CAPITAL LETTER O WITH DOT ABOVE" #x00022e) - ("LATIN SMALL LETTER O WITH DOT ABOVE" #x00022f) - ("LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON" #x000230) - ("LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON" #x000231) - ("LATIN CAPITAL LETTER Y WITH MACRON" #x000232) - ("LATIN SMALL LETTER Y WITH MACRON" #x000233) - ("LATIN SMALL LETTER TURNED A" #x000250) - ("LATIN SMALL LETTER ALPHA" #x000251) - ("LATIN SMALL LETTER TURNED ALPHA" #x000252) - ("LATIN SMALL LETTER B WITH HOOK" #x000253) - ("LATIN SMALL LETTER OPEN O" #x000254) - ("LATIN SMALL LETTER C WITH CURL" #x000255) - ("LATIN SMALL LETTER D WITH TAIL" #x000256) - ("LATIN SMALL LETTER D WITH HOOK" #x000257) - ("LATIN SMALL LETTER REVERSED E" #x000258) - ("LATIN SMALL LETTER SCHWA" #x000259) - ("LATIN SMALL LETTER SCHWA WITH HOOK" #x00025a) - ("LATIN SMALL LETTER OPEN E" #x00025b) - ("LATIN SMALL LETTER REVERSED OPEN E" #x00025c) - ("LATIN SMALL LETTER REVERSED OPEN E WITH HOOK" #x00025d) - ("LATIN SMALL LETTER CLOSED REVERSED OPEN E" #x00025e) - ("LATIN SMALL LETTER DOTLESS J WITH STROKE" #x00025f) - ("LATIN SMALL LETTER G WITH HOOK" #x000260) - ("LATIN SMALL LETTER SCRIPT G" #x000261) - ("LATIN LETTER SMALL CAPITAL G" #x000262) - ("LATIN SMALL LETTER GAMMA" #x000263) - ("LATIN SMALL LETTER RAMS HORN" #x000264) - ("LATIN SMALL LETTER TURNED H" #x000265) - ("LATIN SMALL LETTER H WITH HOOK" #x000266) - ("LATIN SMALL LETTER HENG WITH HOOK" #x000267) - ("LATIN SMALL LETTER I WITH STROKE" #x000268) - ("LATIN SMALL LETTER IOTA" #x000269) - ("LATIN LETTER SMALL CAPITAL I" #x00026a) - ("LATIN SMALL LETTER L WITH MIDDLE TILDE" #x00026b) - ("LATIN SMALL LETTER L WITH BELT" #x00026c) - ("LATIN SMALL LETTER L WITH RETROFLEX HOOK" #x00026d) - ("LATIN SMALL LETTER LEZH" #x00026e) - ("LATIN SMALL LETTER TURNED M" #x00026f) - ("LATIN SMALL LETTER TURNED M WITH LONG LEG" #x000270) - ("LATIN SMALL LETTER M WITH HOOK" #x000271) - ("LATIN SMALL LETTER N WITH LEFT HOOK" #x000272) - ("LATIN SMALL LETTER N WITH RETROFLEX HOOK" #x000273) - ("LATIN LETTER SMALL CAPITAL N" #x000274) - ("LATIN SMALL LETTER BARRED O" #x000275) - ("LATIN LETTER SMALL CAPITAL OE" #x000276) - ("LATIN SMALL LETTER CLOSED OMEGA" #x000277) - ("LATIN SMALL LETTER PHI" #x000278) - ("LATIN SMALL LETTER TURNED R" #x000279) - ("LATIN SMALL LETTER TURNED R WITH LONG LEG" #x00027a) - ("LATIN SMALL LETTER TURNED R WITH HOOK" #x00027b) - ("LATIN SMALL LETTER R WITH LONG LEG" #x00027c) - ("LATIN SMALL LETTER R WITH TAIL" #x00027d) - ("LATIN SMALL LETTER R WITH FISHHOOK" #x00027e) - ("LATIN SMALL LETTER REVERSED R WITH FISHHOOK" #x00027f) - ("LATIN LETTER SMALL CAPITAL R" #x000280) - ("LATIN LETTER SMALL CAPITAL INVERTED R" #x000281) - ("LATIN SMALL LETTER S WITH HOOK" #x000282) - ("LATIN SMALL LETTER ESH" #x000283) - ("LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK" #x000284) - ("LATIN SMALL LETTER SQUAT REVERSED ESH" #x000285) - ("LATIN SMALL LETTER ESH WITH CURL" #x000286) - ("LATIN SMALL LETTER TURNED T" #x000287) - ("LATIN SMALL LETTER T WITH RETROFLEX HOOK" #x000288) - ("LATIN SMALL LETTER U BAR" #x000289) - ("LATIN SMALL LETTER UPSILON" #x00028a) - ("LATIN SMALL LETTER V WITH HOOK" #x00028b) - ("LATIN SMALL LETTER TURNED V" #x00028c) - ("LATIN SMALL LETTER TURNED W" #x00028d) - ("LATIN SMALL LETTER TURNED Y" #x00028e) - ("LATIN LETTER SMALL CAPITAL Y" #x00028f) - ("LATIN SMALL LETTER Z WITH RETROFLEX HOOK" #x000290) - ("LATIN SMALL LETTER Z WITH CURL" #x000291) - ("LATIN SMALL LETTER EZH" #x000292) - ("LATIN SMALL LETTER EZH WITH CURL" #x000293) - ("LATIN LETTER GLOTTAL STOP" #x000294) - ("LATIN LETTER PHARYNGEAL VOICED FRICATIVE" #x000295) - ("LATIN LETTER INVERTED GLOTTAL STOP" #x000296) - ("LATIN LETTER STRETCHED C" #x000297) - ("LATIN LETTER BILABIAL CLICK" #x000298) - ("LATIN LETTER SMALL CAPITAL B" #x000299) - ("LATIN SMALL LETTER CLOSED OPEN E" #x00029a) - ("LATIN LETTER SMALL CAPITAL G WITH HOOK" #x00029b) - ("LATIN LETTER SMALL CAPITAL H" #x00029c) - ("LATIN SMALL LETTER J WITH CROSSED-TAIL" #x00029d) - ("LATIN SMALL LETTER TURNED K" #x00029e) - ("LATIN LETTER SMALL CAPITAL L" #x00029f) - ("LATIN SMALL LETTER Q WITH HOOK" #x0002a0) - ("LATIN LETTER GLOTTAL STOP WITH STROKE" #x0002a1) - ("LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE" #x0002a2) - ("LATIN SMALL LETTER DZ DIGRAPH" #x0002a3) - ("LATIN SMALL LETTER DEZH DIGRAPH" #x0002a4) - ("LATIN SMALL LETTER DZ DIGRAPH WITH CURL" #x0002a5) - ("LATIN SMALL LETTER TS DIGRAPH" #x0002a6) - ("LATIN SMALL LETTER TESH DIGRAPH" #x0002a7) - ("LATIN SMALL LETTER TC DIGRAPH WITH CURL" #x0002a8) - ("LATIN SMALL LETTER FENG DIGRAPH" #x0002a9) - ("LATIN SMALL LETTER LS DIGRAPH" #x0002aa) - ("LATIN SMALL LETTER LZ DIGRAPH" #x0002ab) - ("LATIN LETTER BILABIAL PERCUSSIVE" #x0002ac) - ("LATIN LETTER BIDENTAL PERCUSSIVE" #x0002ad) - ("MODIFIER LETTER SMALL H" #x0002b0) - ("MODIFIER LETTER SMALL H WITH HOOK" #x0002b1) - ("MODIFIER LETTER SMALL J" #x0002b2) - ("MODIFIER LETTER SMALL R" #x0002b3) - ("MODIFIER LETTER SMALL TURNED R" #x0002b4) - ("MODIFIER LETTER SMALL TURNED R WITH HOOK" #x0002b5) - ("MODIFIER LETTER SMALL CAPITAL INVERTED R" #x0002b6) - ("MODIFIER LETTER SMALL W" #x0002b7) - ("MODIFIER LETTER SMALL Y" #x0002b8) - ("MODIFIER LETTER PRIME" #x0002b9) - ("MODIFIER LETTER DOUBLE PRIME" #x0002ba) - ("MODIFIER LETTER TURNED COMMA" #x0002bb) - ("MODIFIER LETTER APOSTROPHE" #x0002bc) - ("MODIFIER LETTER REVERSED COMMA" #x0002bd) - ("MODIFIER LETTER RIGHT HALF RING" #x0002be) - ("MODIFIER LETTER LEFT HALF RING" #x0002bf) - ("MODIFIER LETTER GLOTTAL STOP" #x0002c0) - ("MODIFIER LETTER REVERSED GLOTTAL STOP" #x0002c1) - ("MODIFIER LETTER LEFT ARROWHEAD" #x0002c2) - ("MODIFIER LETTER RIGHT ARROWHEAD" #x0002c3) - ("MODIFIER LETTER UP ARROWHEAD" #x0002c4) - ("MODIFIER LETTER DOWN ARROWHEAD" #x0002c5) - ("MODIFIER LETTER CIRCUMFLEX ACCENT" #x0002c6) - ("CARON" #x0002c7) - ("MODIFIER LETTER VERTICAL LINE" #x0002c8) - ("MODIFIER LETTER MACRON" #x0002c9) - ("MODIFIER LETTER ACUTE ACCENT" #x0002ca) - ("MODIFIER LETTER GRAVE ACCENT" #x0002cb) - ("MODIFIER LETTER LOW VERTICAL LINE" #x0002cc) - ("MODIFIER LETTER LOW MACRON" #x0002cd) - ("MODIFIER LETTER LOW GRAVE ACCENT" #x0002ce) - ("MODIFIER LETTER LOW ACUTE ACCENT" #x0002cf) - ("MODIFIER LETTER TRIANGULAR COLON" #x0002d0) - ("MODIFIER LETTER HALF TRIANGULAR COLON" #x0002d1) - ("MODIFIER LETTER CENTRED RIGHT HALF RING" #x0002d2) - ("MODIFIER LETTER CENTRED LEFT HALF RING" #x0002d3) - ("MODIFIER LETTER UP TACK" #x0002d4) - ("MODIFIER LETTER DOWN TACK" #x0002d5) - ("MODIFIER LETTER PLUS SIGN" #x0002d6) - ("MODIFIER LETTER MINUS SIGN" #x0002d7) - ("BREVE" #x0002d8) - ("DOT ABOVE" #x0002d9) - ("RING ABOVE" #x0002da) - ("OGONEK" #x0002db) - ("SMALL TILDE" #x0002dc) - ("DOUBLE ACUTE ACCENT" #x0002dd) - ("MODIFIER LETTER RHOTIC HOOK" #x0002de) - ("MODIFIER LETTER CROSS ACCENT" #x0002df) - ("MODIFIER LETTER SMALL GAMMA" #x0002e0) - ("MODIFIER LETTER SMALL L" #x0002e1) - ("MODIFIER LETTER SMALL S" #x0002e2) - ("MODIFIER LETTER SMALL X" #x0002e3) - ("MODIFIER LETTER SMALL REVERSED GLOTTAL STOP" #x0002e4) - ("MODIFIER LETTER EXTRA-HIGH TONE BAR" #x0002e5) - ("MODIFIER LETTER HIGH TONE BAR" #x0002e6) - ("MODIFIER LETTER MID TONE BAR" #x0002e7) - ("MODIFIER LETTER LOW TONE BAR" #x0002e8) - ("MODIFIER LETTER EXTRA-LOW TONE BAR" #x0002e9) - ("MODIFIER LETTER YIN DEPARTING TONE MARK" #x0002ea) - ("MODIFIER LETTER YANG DEPARTING TONE MARK" #x0002eb) - ("MODIFIER LETTER VOICING" #x0002ec) - ("MODIFIER LETTER UNASPIRATED" #x0002ed) - ("MODIFIER LETTER DOUBLE APOSTROPHE" #x0002ee) - ("COMBINING GRAVE ACCENT" #x000300) - ("COMBINING ACUTE ACCENT" #x000301) - ("COMBINING CIRCUMFLEX ACCENT" #x000302) - ("COMBINING TILDE" #x000303) - ("COMBINING MACRON" #x000304) - ("COMBINING OVERLINE" #x000305) - ("COMBINING BREVE" #x000306) - ("COMBINING DOT ABOVE" #x000307) - ("COMBINING DIAERESIS" #x000308) - ("COMBINING HOOK ABOVE" #x000309) - ("COMBINING RING ABOVE" #x00030a) - ("COMBINING DOUBLE ACUTE ACCENT" #x00030b) - ("COMBINING CARON" #x00030c) - ("COMBINING VERTICAL LINE ABOVE" #x00030d) - ("COMBINING DOUBLE VERTICAL LINE ABOVE" #x00030e) - ("COMBINING DOUBLE GRAVE ACCENT" #x00030f) - ("COMBINING CANDRABINDU" #x000310) - ("COMBINING INVERTED BREVE" #x000311) - ("COMBINING TURNED COMMA ABOVE" #x000312) - ("COMBINING COMMA ABOVE" #x000313) - ("COMBINING REVERSED COMMA ABOVE" #x000314) - ("COMBINING COMMA ABOVE RIGHT" #x000315) - ("COMBINING GRAVE ACCENT BELOW" #x000316) - ("COMBINING ACUTE ACCENT BELOW" #x000317) - ("COMBINING LEFT TACK BELOW" #x000318) - ("COMBINING RIGHT TACK BELOW" #x000319) - ("COMBINING LEFT ANGLE ABOVE" #x00031a) - ("COMBINING HORN" #x00031b) - ("COMBINING LEFT HALF RING BELOW" #x00031c) - ("COMBINING UP TACK BELOW" #x00031d) - ("COMBINING DOWN TACK BELOW" #x00031e) - ("COMBINING PLUS SIGN BELOW" #x00031f) - ("COMBINING MINUS SIGN BELOW" #x000320) - ("COMBINING PALATALIZED HOOK BELOW" #x000321) - ("COMBINING RETROFLEX HOOK BELOW" #x000322) - ("COMBINING DOT BELOW" #x000323) - ("COMBINING DIAERESIS BELOW" #x000324) - ("COMBINING RING BELOW" #x000325) - ("COMBINING COMMA BELOW" #x000326) - ("COMBINING CEDILLA" #x000327) - ("COMBINING OGONEK" #x000328) - ("COMBINING VERTICAL LINE BELOW" #x000329) - ("COMBINING BRIDGE BELOW" #x00032a) - ("COMBINING INVERTED DOUBLE ARCH BELOW" #x00032b) - ("COMBINING CARON BELOW" #x00032c) - ("COMBINING CIRCUMFLEX ACCENT BELOW" #x00032d) - ("COMBINING BREVE BELOW" #x00032e) - ("COMBINING INVERTED BREVE BELOW" #x00032f) - ("COMBINING TILDE BELOW" #x000330) - ("COMBINING MACRON BELOW" #x000331) - ("COMBINING LOW LINE" #x000332) - ("COMBINING DOUBLE LOW LINE" #x000333) - ("COMBINING TILDE OVERLAY" #x000334) - ("COMBINING SHORT STROKE OVERLAY" #x000335) - ("COMBINING LONG STROKE OVERLAY" #x000336) - ("COMBINING SHORT SOLIDUS OVERLAY" #x000337) - ("COMBINING LONG SOLIDUS OVERLAY" #x000338) - ("COMBINING RIGHT HALF RING BELOW" #x000339) - ("COMBINING INVERTED BRIDGE BELOW" #x00033a) - ("COMBINING SQUARE BELOW" #x00033b) - ("COMBINING SEAGULL BELOW" #x00033c) - ("COMBINING X ABOVE" #x00033d) - ("COMBINING VERTICAL TILDE" #x00033e) - ("COMBINING DOUBLE OVERLINE" #x00033f) - ("COMBINING GRAVE TONE MARK" #x000340) - ("COMBINING ACUTE TONE MARK" #x000341) - ("COMBINING GREEK PERISPOMENI" #x000342) - ("COMBINING GREEK KORONIS" #x000343) - ("COMBINING GREEK DIALYTIKA TONOS" #x000344) - ("COMBINING GREEK YPOGEGRAMMENI" #x000345) - ("COMBINING BRIDGE ABOVE" #x000346) - ("COMBINING EQUALS SIGN BELOW" #x000347) - ("COMBINING DOUBLE VERTICAL LINE BELOW" #x000348) - ("COMBINING LEFT ANGLE BELOW" #x000349) - ("COMBINING NOT TILDE ABOVE" #x00034a) - ("COMBINING HOMOTHETIC ABOVE" #x00034b) - ("COMBINING ALMOST EQUAL TO ABOVE" #x00034c) - ("COMBINING LEFT RIGHT ARROW BELOW" #x00034d) - ("COMBINING UPWARDS ARROW BELOW" #x00034e) - ("COMBINING GRAPHEME JOINER" #x00034f) - ("COMBINING DOUBLE TILDE" #x000360) - ("COMBINING DOUBLE INVERTED BREVE" #x000361) - ("COMBINING DOUBLE RIGHTWARDS ARROW BELOW" #x000362) - ("COMBINING LATIN SMALL LETTER A" #x000363) - ("COMBINING LATIN SMALL LETTER E" #x000364) - ("COMBINING LATIN SMALL LETTER I" #x000365) - ("COMBINING LATIN SMALL LETTER O" #x000366) - ("COMBINING LATIN SMALL LETTER U" #x000367) - ("COMBINING LATIN SMALL LETTER C" #x000368) - ("COMBINING LATIN SMALL LETTER D" #x000369) - ("COMBINING LATIN SMALL LETTER H" #x00036a) - ("COMBINING LATIN SMALL LETTER M" #x00036b) - ("COMBINING LATIN SMALL LETTER R" #x00036c) - ("COMBINING LATIN SMALL LETTER T" #x00036d) - ("COMBINING LATIN SMALL LETTER V" #x00036e) - ("COMBINING LATIN SMALL LETTER X" #x00036f) - ("GREEK NUMERAL SIGN" #x000374) - ("GREEK LOWER NUMERAL SIGN" #x000375) - ("GREEK YPOGEGRAMMENI" #x00037a) - ("GREEK QUESTION MARK" #x00037e) - ("GREEK TONOS" #x000384) - ("GREEK DIALYTIKA TONOS" #x000385) - ("GREEK CAPITAL LETTER ALPHA WITH TONOS" #x000386) - ("GREEK ANO TELEIA" #x000387) - ("GREEK CAPITAL LETTER EPSILON WITH TONOS" #x000388) - ("GREEK CAPITAL LETTER ETA WITH TONOS" #x000389) - ("GREEK CAPITAL LETTER IOTA WITH TONOS" #x00038a) - ("GREEK CAPITAL LETTER OMICRON WITH TONOS" #x00038c) - ("GREEK CAPITAL LETTER UPSILON WITH TONOS" #x00038e) - ("GREEK CAPITAL LETTER OMEGA WITH TONOS" #x00038f) - ("GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS" #x000390) - ("GREEK CAPITAL LETTER ALPHA" #x000391) - ("GREEK CAPITAL LETTER BETA" #x000392) - ("GREEK CAPITAL LETTER GAMMA" #x000393) - ("GREEK CAPITAL LETTER DELTA" #x000394) - ("GREEK CAPITAL LETTER EPSILON" #x000395) - ("GREEK CAPITAL LETTER ZETA" #x000396) - ("GREEK CAPITAL LETTER ETA" #x000397) - ("GREEK CAPITAL LETTER THETA" #x000398) - ("GREEK CAPITAL LETTER IOTA" #x000399) - ("GREEK CAPITAL LETTER KAPPA" #x00039a) - ("GREEK CAPITAL LETTER LAMDA" #x00039b) - ("GREEK CAPITAL LETTER MU" #x00039c) - ("GREEK CAPITAL LETTER NU" #x00039d) - ("GREEK CAPITAL LETTER XI" #x00039e) - ("GREEK CAPITAL LETTER OMICRON" #x00039f) - ("GREEK CAPITAL LETTER PI" #x0003a0) - ("GREEK CAPITAL LETTER RHO" #x0003a1) - ("GREEK CAPITAL LETTER SIGMA" #x0003a3) - ("GREEK CAPITAL LETTER TAU" #x0003a4) - ("GREEK CAPITAL LETTER UPSILON" #x0003a5) - ("GREEK CAPITAL LETTER PHI" #x0003a6) - ("GREEK CAPITAL LETTER CHI" #x0003a7) - ("GREEK CAPITAL LETTER PSI" #x0003a8) - ("GREEK CAPITAL LETTER OMEGA" #x0003a9) - ("GREEK CAPITAL LETTER IOTA WITH DIALYTIKA" #x0003aa) - ("GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA" #x0003ab) - ("GREEK SMALL LETTER ALPHA WITH TONOS" #x0003ac) - ("GREEK SMALL LETTER EPSILON WITH TONOS" #x0003ad) - ("GREEK SMALL LETTER ETA WITH TONOS" #x0003ae) - ("GREEK SMALL LETTER IOTA WITH TONOS" #x0003af) - ("GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS" #x0003b0) - ("GREEK SMALL LETTER ALPHA" #x0003b1) - ("GREEK SMALL LETTER BETA" #x0003b2) - ("GREEK SMALL LETTER GAMMA" #x0003b3) - ("GREEK SMALL LETTER DELTA" #x0003b4) - ("GREEK SMALL LETTER EPSILON" #x0003b5) - ("GREEK SMALL LETTER ZETA" #x0003b6) - ("GREEK SMALL LETTER ETA" #x0003b7) - ("GREEK SMALL LETTER THETA" #x0003b8) - ("GREEK SMALL LETTER IOTA" #x0003b9) - ("GREEK SMALL LETTER KAPPA" #x0003ba) - ("GREEK SMALL LETTER LAMDA" #x0003bb) - ("GREEK SMALL LETTER MU" #x0003bc) - ("GREEK SMALL LETTER NU" #x0003bd) - ("GREEK SMALL LETTER XI" #x0003be) - ("GREEK SMALL LETTER OMICRON" #x0003bf) - ("GREEK SMALL LETTER PI" #x0003c0) - ("GREEK SMALL LETTER RHO" #x0003c1) - ("GREEK SMALL LETTER FINAL SIGMA" #x0003c2) - ("GREEK SMALL LETTER SIGMA" #x0003c3) - ("GREEK SMALL LETTER TAU" #x0003c4) - ("GREEK SMALL LETTER UPSILON" #x0003c5) - ("GREEK SMALL LETTER PHI" #x0003c6) - ("GREEK SMALL LETTER CHI" #x0003c7) - ("GREEK SMALL LETTER PSI" #x0003c8) - ("GREEK SMALL LETTER OMEGA" #x0003c9) - ("GREEK SMALL LETTER IOTA WITH DIALYTIKA" #x0003ca) - ("GREEK SMALL LETTER UPSILON WITH DIALYTIKA" #x0003cb) - ("GREEK SMALL LETTER OMICRON WITH TONOS" #x0003cc) - ("GREEK SMALL LETTER UPSILON WITH TONOS" #x0003cd) - ("GREEK SMALL LETTER OMEGA WITH TONOS" #x0003ce) - ("GREEK BETA SYMBOL" #x0003d0) - ("GREEK THETA SYMBOL" #x0003d1) - ("GREEK UPSILON WITH HOOK SYMBOL" #x0003d2) - ("GREEK UPSILON WITH ACUTE AND HOOK SYMBOL" #x0003d3) - ("GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL" #x0003d4) - ("GREEK PHI SYMBOL" #x0003d5) - ("GREEK PI SYMBOL" #x0003d6) - ("GREEK KAI SYMBOL" #x0003d7) - ("GREEK LETTER ARCHAIC KOPPA" #x0003d8) - ("GREEK SMALL LETTER ARCHAIC KOPPA" #x0003d9) - ("GREEK LETTER STIGMA" #x0003da) - ("GREEK SMALL LETTER STIGMA" #x0003db) - ("GREEK LETTER DIGAMMA" #x0003dc) - ("GREEK SMALL LETTER DIGAMMA" #x0003dd) - ("GREEK LETTER KOPPA" #x0003de) - ("GREEK SMALL LETTER KOPPA" #x0003df) - ("GREEK LETTER SAMPI" #x0003e0) - ("GREEK SMALL LETTER SAMPI" #x0003e1) - ("COPTIC CAPITAL LETTER SHEI" #x0003e2) - ("COPTIC SMALL LETTER SHEI" #x0003e3) - ("COPTIC CAPITAL LETTER FEI" #x0003e4) - ("COPTIC SMALL LETTER FEI" #x0003e5) - ("COPTIC CAPITAL LETTER KHEI" #x0003e6) - ("COPTIC SMALL LETTER KHEI" #x0003e7) - ("COPTIC CAPITAL LETTER HORI" #x0003e8) - ("COPTIC SMALL LETTER HORI" #x0003e9) - ("COPTIC CAPITAL LETTER GANGIA" #x0003ea) - ("COPTIC SMALL LETTER GANGIA" #x0003eb) - ("COPTIC CAPITAL LETTER SHIMA" #x0003ec) - ("COPTIC SMALL LETTER SHIMA" #x0003ed) - ("COPTIC CAPITAL LETTER DEI" #x0003ee) - ("COPTIC SMALL LETTER DEI" #x0003ef) - ("GREEK KAPPA SYMBOL" #x0003f0) - ("GREEK RHO SYMBOL" #x0003f1) - ("GREEK LUNATE SIGMA SYMBOL" #x0003f2) - ("GREEK LETTER YOT" #x0003f3) - ("GREEK CAPITAL THETA SYMBOL" #x0003f4) - ("GREEK LUNATE EPSILON SYMBOL" #x0003f5) - ("GREEK REVERSED LUNATE EPSILON SYMBOL" #x0003f6) - ("CYRILLIC CAPITAL LETTER IE WITH GRAVE" #x000400) - ("CYRILLIC CAPITAL LETTER IO" #x000401) - ("CYRILLIC CAPITAL LETTER DJE" #x000402) - ("CYRILLIC CAPITAL LETTER GJE" #x000403) - ("CYRILLIC CAPITAL LETTER UKRAINIAN IE" #x000404) - ("CYRILLIC CAPITAL LETTER DZE" #x000405) - ("CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I" #x000406) - ("CYRILLIC CAPITAL LETTER YI" #x000407) - ("CYRILLIC CAPITAL LETTER JE" #x000408) - ("CYRILLIC CAPITAL LETTER LJE" #x000409) - ("CYRILLIC CAPITAL LETTER NJE" #x00040a) - ("CYRILLIC CAPITAL LETTER TSHE" #x00040b) - ("CYRILLIC CAPITAL LETTER KJE" #x00040c) - ("CYRILLIC CAPITAL LETTER I WITH GRAVE" #x00040d) - ("CYRILLIC CAPITAL LETTER SHORT U" #x00040e) - ("CYRILLIC CAPITAL LETTER DZHE" #x00040f) - ("CYRILLIC CAPITAL LETTER A" #x000410) - ("CYRILLIC CAPITAL LETTER BE" #x000411) - ("CYRILLIC CAPITAL LETTER VE" #x000412) - ("CYRILLIC CAPITAL LETTER GHE" #x000413) - ("CYRILLIC CAPITAL LETTER DE" #x000414) - ("CYRILLIC CAPITAL LETTER IE" #x000415) - ("CYRILLIC CAPITAL LETTER ZHE" #x000416) - ("CYRILLIC CAPITAL LETTER ZE" #x000417) - ("CYRILLIC CAPITAL LETTER I" #x000418) - ("CYRILLIC CAPITAL LETTER SHORT I" #x000419) - ("CYRILLIC CAPITAL LETTER KA" #x00041a) - ("CYRILLIC CAPITAL LETTER EL" #x00041b) - ("CYRILLIC CAPITAL LETTER EM" #x00041c) - ("CYRILLIC CAPITAL LETTER EN" #x00041d) - ("CYRILLIC CAPITAL LETTER O" #x00041e) - ("CYRILLIC CAPITAL LETTER PE" #x00041f) - ("CYRILLIC CAPITAL LETTER ER" #x000420) - ("CYRILLIC CAPITAL LETTER ES" #x000421) - ("CYRILLIC CAPITAL LETTER TE" #x000422) - ("CYRILLIC CAPITAL LETTER U" #x000423) - ("CYRILLIC CAPITAL LETTER EF" #x000424) - ("CYRILLIC CAPITAL LETTER HA" #x000425) - ("CYRILLIC CAPITAL LETTER TSE" #x000426) - ("CYRILLIC CAPITAL LETTER CHE" #x000427) - ("CYRILLIC CAPITAL LETTER SHA" #x000428) - ("CYRILLIC CAPITAL LETTER SHCHA" #x000429) - ("CYRILLIC CAPITAL LETTER HARD SIGN" #x00042a) - ("CYRILLIC CAPITAL LETTER YERU" #x00042b) - ("CYRILLIC CAPITAL LETTER SOFT SIGN" #x00042c) - ("CYRILLIC CAPITAL LETTER E" #x00042d) - ("CYRILLIC CAPITAL LETTER YU" #x00042e) - ("CYRILLIC CAPITAL LETTER YA" #x00042f) - ("CYRILLIC SMALL LETTER A" #x000430) - ("CYRILLIC SMALL LETTER BE" #x000431) - ("CYRILLIC SMALL LETTER VE" #x000432) - ("CYRILLIC SMALL LETTER GHE" #x000433) - ("CYRILLIC SMALL LETTER DE" #x000434) - ("CYRILLIC SMALL LETTER IE" #x000435) - ("CYRILLIC SMALL LETTER ZHE" #x000436) - ("CYRILLIC SMALL LETTER ZE" #x000437) - ("CYRILLIC SMALL LETTER I" #x000438) - ("CYRILLIC SMALL LETTER SHORT I" #x000439) - ("CYRILLIC SMALL LETTER KA" #x00043a) - ("CYRILLIC SMALL LETTER EL" #x00043b) - ("CYRILLIC SMALL LETTER EM" #x00043c) - ("CYRILLIC SMALL LETTER EN" #x00043d) - ("CYRILLIC SMALL LETTER O" #x00043e) - ("CYRILLIC SMALL LETTER PE" #x00043f) - ("CYRILLIC SMALL LETTER ER" #x000440) - ("CYRILLIC SMALL LETTER ES" #x000441) - ("CYRILLIC SMALL LETTER TE" #x000442) - ("CYRILLIC SMALL LETTER U" #x000443) - ("CYRILLIC SMALL LETTER EF" #x000444) - ("CYRILLIC SMALL LETTER HA" #x000445) - ("CYRILLIC SMALL LETTER TSE" #x000446) - ("CYRILLIC SMALL LETTER CHE" #x000447) - ("CYRILLIC SMALL LETTER SHA" #x000448) - ("CYRILLIC SMALL LETTER SHCHA" #x000449) - ("CYRILLIC SMALL LETTER HARD SIGN" #x00044a) - ("CYRILLIC SMALL LETTER YERU" #x00044b) - ("CYRILLIC SMALL LETTER SOFT SIGN" #x00044c) - ("CYRILLIC SMALL LETTER E" #x00044d) - ("CYRILLIC SMALL LETTER YU" #x00044e) - ("CYRILLIC SMALL LETTER YA" #x00044f) - ("CYRILLIC SMALL LETTER IE WITH GRAVE" #x000450) - ("CYRILLIC SMALL LETTER IO" #x000451) - ("CYRILLIC SMALL LETTER DJE" #x000452) - ("CYRILLIC SMALL LETTER GJE" #x000453) - ("CYRILLIC SMALL LETTER UKRAINIAN IE" #x000454) - ("CYRILLIC SMALL LETTER DZE" #x000455) - ("CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I" #x000456) - ("CYRILLIC SMALL LETTER YI" #x000457) - ("CYRILLIC SMALL LETTER JE" #x000458) - ("CYRILLIC SMALL LETTER LJE" #x000459) - ("CYRILLIC SMALL LETTER NJE" #x00045a) - ("CYRILLIC SMALL LETTER TSHE" #x00045b) - ("CYRILLIC SMALL LETTER KJE" #x00045c) - ("CYRILLIC SMALL LETTER I WITH GRAVE" #x00045d) - ("CYRILLIC SMALL LETTER SHORT U" #x00045e) - ("CYRILLIC SMALL LETTER DZHE" #x00045f) - ("CYRILLIC CAPITAL LETTER OMEGA" #x000460) - ("CYRILLIC SMALL LETTER OMEGA" #x000461) - ("CYRILLIC CAPITAL LETTER YAT" #x000462) - ("CYRILLIC SMALL LETTER YAT" #x000463) - ("CYRILLIC CAPITAL LETTER IOTIFIED E" #x000464) - ("CYRILLIC SMALL LETTER IOTIFIED E" #x000465) - ("CYRILLIC CAPITAL LETTER LITTLE YUS" #x000466) - ("CYRILLIC SMALL LETTER LITTLE YUS" #x000467) - ("CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS" #x000468) - ("CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS" #x000469) - ("CYRILLIC CAPITAL LETTER BIG YUS" #x00046a) - ("CYRILLIC SMALL LETTER BIG YUS" #x00046b) - ("CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS" #x00046c) - ("CYRILLIC SMALL LETTER IOTIFIED BIG YUS" #x00046d) - ("CYRILLIC CAPITAL LETTER KSI" #x00046e) - ("CYRILLIC SMALL LETTER KSI" #x00046f) - ("CYRILLIC CAPITAL LETTER PSI" #x000470) - ("CYRILLIC SMALL LETTER PSI" #x000471) - ("CYRILLIC CAPITAL LETTER FITA" #x000472) - ("CYRILLIC SMALL LETTER FITA" #x000473) - ("CYRILLIC CAPITAL LETTER IZHITSA" #x000474) - ("CYRILLIC SMALL LETTER IZHITSA" #x000475) - ("CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT" #x000476) - ("CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT" #x000477) - ("CYRILLIC CAPITAL LETTER UK" #x000478) - ("CYRILLIC SMALL LETTER UK" #x000479) - ("CYRILLIC CAPITAL LETTER ROUND OMEGA" #x00047a) - ("CYRILLIC SMALL LETTER ROUND OMEGA" #x00047b) - ("CYRILLIC CAPITAL LETTER OMEGA WITH TITLO" #x00047c) - ("CYRILLIC SMALL LETTER OMEGA WITH TITLO" #x00047d) - ("CYRILLIC CAPITAL LETTER OT" #x00047e) - ("CYRILLIC SMALL LETTER OT" #x00047f) - ("CYRILLIC CAPITAL LETTER KOPPA" #x000480) - ("CYRILLIC SMALL LETTER KOPPA" #x000481) - ("CYRILLIC THOUSANDS SIGN" #x000482) - ("COMBINING CYRILLIC TITLO" #x000483) - ("COMBINING CYRILLIC PALATALIZATION" #x000484) - ("COMBINING CYRILLIC DASIA PNEUMATA" #x000485) - ("COMBINING CYRILLIC PSILI PNEUMATA" #x000486) - ("COMBINING CYRILLIC HUNDRED THOUSANDS SIGN" #x000488) - ("COMBINING CYRILLIC MILLIONS SIGN" #x000489) - ("CYRILLIC CAPITAL LETTER SHORT I WITH TAIL" #x00048a) - ("CYRILLIC SMALL LETTER SHORT I WITH TAIL" #x00048b) - ("CYRILLIC CAPITAL LETTER SEMISOFT SIGN" #x00048c) - ("CYRILLIC SMALL LETTER SEMISOFT SIGN" #x00048d) - ("CYRILLIC CAPITAL LETTER ER WITH TICK" #x00048e) - ("CYRILLIC SMALL LETTER ER WITH TICK" #x00048f) - ("CYRILLIC CAPITAL LETTER GHE WITH UPTURN" #x000490) - ("CYRILLIC SMALL LETTER GHE WITH UPTURN" #x000491) - ("CYRILLIC CAPITAL LETTER GHE WITH STROKE" #x000492) - ("CYRILLIC SMALL LETTER GHE WITH STROKE" #x000493) - ("CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK" #x000494) - ("CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK" #x000495) - ("CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER" #x000496) - ("CYRILLIC SMALL LETTER ZHE WITH DESCENDER" #x000497) - ("CYRILLIC CAPITAL LETTER ZE WITH DESCENDER" #x000498) - ("CYRILLIC SMALL LETTER ZE WITH DESCENDER" #x000499) - ("CYRILLIC CAPITAL LETTER KA WITH DESCENDER" #x00049a) - ("CYRILLIC SMALL LETTER KA WITH DESCENDER" #x00049b) - ("CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE" #x00049c) - ("CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE" #x00049d) - ("CYRILLIC CAPITAL LETTER KA WITH STROKE" #x00049e) - ("CYRILLIC SMALL LETTER KA WITH STROKE" #x00049f) - ("CYRILLIC CAPITAL LETTER BASHKIR KA" #x0004a0) - ("CYRILLIC SMALL LETTER BASHKIR KA" #x0004a1) - ("CYRILLIC CAPITAL LETTER EN WITH DESCENDER" #x0004a2) - ("CYRILLIC SMALL LETTER EN WITH DESCENDER" #x0004a3) - ("CYRILLIC CAPITAL LIGATURE EN GHE" #x0004a4) - ("CYRILLIC SMALL LIGATURE EN GHE" #x0004a5) - ("CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK" #x0004a6) - ("CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK" #x0004a7) - ("CYRILLIC CAPITAL LETTER ABKHASIAN HA" #x0004a8) - ("CYRILLIC SMALL LETTER ABKHASIAN HA" #x0004a9) - ("CYRILLIC CAPITAL LETTER ES WITH DESCENDER" #x0004aa) - ("CYRILLIC SMALL LETTER ES WITH DESCENDER" #x0004ab) - ("CYRILLIC CAPITAL LETTER TE WITH DESCENDER" #x0004ac) - ("CYRILLIC SMALL LETTER TE WITH DESCENDER" #x0004ad) - ("CYRILLIC CAPITAL LETTER STRAIGHT U" #x0004ae) - ("CYRILLIC SMALL LETTER STRAIGHT U" #x0004af) - ("CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE" #x0004b0) - ("CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE" #x0004b1) - ("CYRILLIC CAPITAL LETTER HA WITH DESCENDER" #x0004b2) - ("CYRILLIC SMALL LETTER HA WITH DESCENDER" #x0004b3) - ("CYRILLIC CAPITAL LIGATURE TE TSE" #x0004b4) - ("CYRILLIC SMALL LIGATURE TE TSE" #x0004b5) - ("CYRILLIC CAPITAL LETTER CHE WITH DESCENDER" #x0004b6) - ("CYRILLIC SMALL LETTER CHE WITH DESCENDER" #x0004b7) - ("CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE" #x0004b8) - ("CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE" #x0004b9) - ("CYRILLIC CAPITAL LETTER SHHA" #x0004ba) - ("CYRILLIC SMALL LETTER SHHA" #x0004bb) - ("CYRILLIC CAPITAL LETTER ABKHASIAN CHE" #x0004bc) - ("CYRILLIC SMALL LETTER ABKHASIAN CHE" #x0004bd) - ("CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER" #x0004be) - ("CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER" #x0004bf) - ("CYRILLIC LETTER PALOCHKA" #x0004c0) - ("CYRILLIC CAPITAL LETTER ZHE WITH BREVE" #x0004c1) - ("CYRILLIC SMALL LETTER ZHE WITH BREVE" #x0004c2) - ("CYRILLIC CAPITAL LETTER KA WITH HOOK" #x0004c3) - ("CYRILLIC SMALL LETTER KA WITH HOOK" #x0004c4) - ("CYRILLIC CAPITAL LETTER EL WITH TAIL" #x0004c5) - ("CYRILLIC SMALL LETTER EL WITH TAIL" #x0004c6) - ("CYRILLIC CAPITAL LETTER EN WITH HOOK" #x0004c7) - ("CYRILLIC SMALL LETTER EN WITH HOOK" #x0004c8) - ("CYRILLIC CAPITAL LETTER EN WITH TAIL" #x0004c9) - ("CYRILLIC SMALL LETTER EN WITH TAIL" #x0004ca) - ("CYRILLIC CAPITAL LETTER KHAKASSIAN CHE" #x0004cb) - ("CYRILLIC SMALL LETTER KHAKASSIAN CHE" #x0004cc) - ("CYRILLIC CAPITAL LETTER EM WITH TAIL" #x0004cd) - ("CYRILLIC SMALL LETTER EM WITH TAIL" #x0004ce) - ("CYRILLIC CAPITAL LETTER A WITH BREVE" #x0004d0) - ("CYRILLIC SMALL LETTER A WITH BREVE" #x0004d1) - ("CYRILLIC CAPITAL LETTER A WITH DIAERESIS" #x0004d2) - ("CYRILLIC SMALL LETTER A WITH DIAERESIS" #x0004d3) - ("CYRILLIC CAPITAL LIGATURE A IE" #x0004d4) - ("CYRILLIC SMALL LIGATURE A IE" #x0004d5) - ("CYRILLIC CAPITAL LETTER IE WITH BREVE" #x0004d6) - ("CYRILLIC SMALL LETTER IE WITH BREVE" #x0004d7) - ("CYRILLIC CAPITAL LETTER SCHWA" #x0004d8) - ("CYRILLIC SMALL LETTER SCHWA" #x0004d9) - ("CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS" #x0004da) - ("CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS" #x0004db) - ("CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS" #x0004dc) - ("CYRILLIC SMALL LETTER ZHE WITH DIAERESIS" #x0004dd) - ("CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS" #x0004de) - ("CYRILLIC SMALL LETTER ZE WITH DIAERESIS" #x0004df) - ("CYRILLIC CAPITAL LETTER ABKHASIAN DZE" #x0004e0) - ("CYRILLIC SMALL LETTER ABKHASIAN DZE" #x0004e1) - ("CYRILLIC CAPITAL LETTER I WITH MACRON" #x0004e2) - ("CYRILLIC SMALL LETTER I WITH MACRON" #x0004e3) - ("CYRILLIC CAPITAL LETTER I WITH DIAERESIS" #x0004e4) - ("CYRILLIC SMALL LETTER I WITH DIAERESIS" #x0004e5) - ("CYRILLIC CAPITAL LETTER O WITH DIAERESIS" #x0004e6) - ("CYRILLIC SMALL LETTER O WITH DIAERESIS" #x0004e7) - ("CYRILLIC CAPITAL LETTER BARRED O" #x0004e8) - ("CYRILLIC SMALL LETTER BARRED O" #x0004e9) - ("CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS" #x0004ea) - ("CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS" #x0004eb) - ("CYRILLIC CAPITAL LETTER E WITH DIAERESIS" #x0004ec) - ("CYRILLIC SMALL LETTER E WITH DIAERESIS" #x0004ed) - ("CYRILLIC CAPITAL LETTER U WITH MACRON" #x0004ee) - ("CYRILLIC SMALL LETTER U WITH MACRON" #x0004ef) - ("CYRILLIC CAPITAL LETTER U WITH DIAERESIS" #x0004f0) - ("CYRILLIC SMALL LETTER U WITH DIAERESIS" #x0004f1) - ("CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE" #x0004f2) - ("CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE" #x0004f3) - ("CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS" #x0004f4) - ("CYRILLIC SMALL LETTER CHE WITH DIAERESIS" #x0004f5) - ("CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS" #x0004f8) - ("CYRILLIC SMALL LETTER YERU WITH DIAERESIS" #x0004f9) - ("EN QUAD" #x002000) - ("EM QUAD" #x002001) - ("EN SPACE" #x002002) - ("EM SPACE" #x002003) - ("THREE-PER-EM SPACE" #x002004) - ("FOUR-PER-EM SPACE" #x002005) - ("SIX-PER-EM SPACE" #x002006) - ("FIGURE SPACE" #x002007) - ("PUNCTUATION SPACE" #x002008) - ("THIN SPACE" #x002009) - ("HAIR SPACE" #x00200a) - ("ZERO WIDTH SPACE" #x00200b) - ("ZERO WIDTH NON-JOINER" #x00200c) - ("ZERO WIDTH JOINER" #x00200d) - ("LEFT-TO-RIGHT MARK" #x00200e) - ("RIGHT-TO-LEFT MARK" #x00200f) - ("HYPHEN" #x002010) - ("NON-BREAKING HYPHEN" #x002011) - ("FIGURE DASH" #x002012) - ("EN DASH" #x002013) - ("EM DASH" #x002014) - ("HORIZONTAL BAR" #x002015) - ("DOUBLE VERTICAL LINE" #x002016) - ("DOUBLE LOW LINE" #x002017) - ("LEFT SINGLE QUOTATION MARK" #x002018) - ("RIGHT SINGLE QUOTATION MARK" #x002019) - ("SINGLE LOW-9 QUOTATION MARK" #x00201a) - ("SINGLE HIGH-REVERSED-9 QUOTATION MARK" #x00201b) - ("LEFT DOUBLE QUOTATION MARK" #x00201c) - ("RIGHT DOUBLE QUOTATION MARK" #x00201d) - ("DOUBLE LOW-9 QUOTATION MARK" #x00201e) - ("DOUBLE HIGH-REVERSED-9 QUOTATION MARK" #x00201f) - ("DAGGER" #x002020) - ("DOUBLE DAGGER" #x002021) - ("BULLET" #x002022) - ("TRIANGULAR BULLET" #x002023) - ("ONE DOT LEADER" #x002024) - ("TWO DOT LEADER" #x002025) - ("HORIZONTAL ELLIPSIS" #x002026) - ("HYPHENATION POINT" #x002027) - ("LINE SEPARATOR" #x002028) - ("PARAGRAPH SEPARATOR" #x002029) - ("LEFT-TO-RIGHT EMBEDDING" #x00202a) - ("RIGHT-TO-LEFT EMBEDDING" #x00202b) - ("POP DIRECTIONAL FORMATTING" #x00202c) - ("LEFT-TO-RIGHT OVERRIDE" #x00202d) - ("RIGHT-TO-LEFT OVERRIDE" #x00202e) - ("NARROW NO-BREAK SPACE" #x00202f) - ("PER MILLE SIGN" #x002030) - ("PER TEN THOUSAND SIGN" #x002031) - ("PRIME" #x002032) - ("DOUBLE PRIME" #x002033) - ("TRIPLE PRIME" #x002034) - ("REVERSED PRIME" #x002035) - ("REVERSED DOUBLE PRIME" #x002036) - ("REVERSED TRIPLE PRIME" #x002037) - ("CARET" #x002038) - ("SINGLE LEFT-POINTING ANGLE QUOTATION MARK" #x002039) - ("SINGLE RIGHT-POINTING ANGLE QUOTATION MARK" #x00203a) - ("REFERENCE MARK" #x00203b) - ("DOUBLE EXCLAMATION MARK" #x00203c) - ("INTERROBANG" #x00203d) - ("OVERLINE" #x00203e) - ("UNDERTIE" #x00203f) - ("CHARACTER TIE" #x002040) - ("CARET INSERTION POINT" #x002041) - ("ASTERISM" #x002042) - ("HYPHEN BULLET" #x002043) - ("FRACTION SLASH" #x002044) - ("LEFT SQUARE BRACKET WITH QUILL" #x002045) - ("RIGHT SQUARE BRACKET WITH QUILL" #x002046) - ("DOUBLE QUESTION MARK" #x002047) - ("QUESTION EXCLAMATION MARK" #x002048) - ("EXCLAMATION QUESTION MARK" #x002049) - ("TIRONIAN SIGN ET" #x00204a) - ("REVERSED PILCROW SIGN" #x00204b) - ("BLACK LEFTWARDS BULLET" #x00204c) - ("BLACK RIGHTWARDS BULLET" #x00204d) - ("LOW ASTERISK" #x00204e) - ("REVERSED SEMICOLON" #x00204f) - ("CLOSE UP" #x002050) - ("TWO ASTERISKS ALIGNED VERTICALLY" #x002051) - ("COMMERCIAL MINUS SIGN" #x002052) - ("QUADRUPLE PRIME" #x002057) - ("MEDIUM MATHEMATICAL SPACE" #x00205f) - ("WORD JOINER" #x002060) - ("FUNCTION APPLICATION" #x002061) - ("INVISIBLE TIMES" #x002062) - ("INVISIBLE SEPARATOR" #x002063) - ("INHIBIT SYMMETRIC SWAPPING" #x00206a) - ("ACTIVATE SYMMETRIC SWAPPING" #x00206b) - ("INHIBIT ARABIC FORM SHAPING" #x00206c) - ("ACTIVATE ARABIC FORM SHAPING" #x00206d) - ("NATIONAL DIGIT SHAPES" #x00206e) - ("NOMINAL DIGIT SHAPES" #x00206f) - ("SUPERSCRIPT ZERO" #x002070) - ("SUPERSCRIPT LATIN SMALL LETTER I" #x002071) - ("SUPERSCRIPT FOUR" #x002074) - ("SUPERSCRIPT FIVE" #x002075) - ("SUPERSCRIPT SIX" #x002076) - ("SUPERSCRIPT SEVEN" #x002077) - ("SUPERSCRIPT EIGHT" #x002078) - ("SUPERSCRIPT NINE" #x002079) - ("SUPERSCRIPT PLUS SIGN" #x00207a) - ("SUPERSCRIPT MINUS" #x00207b) - ("SUPERSCRIPT EQUALS SIGN" #x00207c) - ("SUPERSCRIPT LEFT PARENTHESIS" #x00207d) - ("SUPERSCRIPT RIGHT PARENTHESIS" #x00207e) - ("SUPERSCRIPT LATIN SMALL LETTER N" #x00207f) - ("SUBSCRIPT ZERO" #x002080) - ("SUBSCRIPT ONE" #x002081) - ("SUBSCRIPT TWO" #x002082) - ("SUBSCRIPT THREE" #x002083) - ("SUBSCRIPT FOUR" #x002084) - ("SUBSCRIPT FIVE" #x002085) - ("SUBSCRIPT SIX" #x002086) - ("SUBSCRIPT SEVEN" #x002087) - ("SUBSCRIPT EIGHT" #x002088) - ("SUBSCRIPT NINE" #x002089) - ("SUBSCRIPT PLUS SIGN" #x00208a) - ("SUBSCRIPT MINUS" #x00208b) - ("SUBSCRIPT EQUALS SIGN" #x00208c) - ("SUBSCRIPT LEFT PARENTHESIS" #x00208d) - ("SUBSCRIPT RIGHT PARENTHESIS" #x00208e) - ("EURO-CURRENCY SIGN" #x0020a0) - ("COLON SIGN" #x0020a1) - ("CRUZEIRO SIGN" #x0020a2) - ("FRENCH FRANC SIGN" #x0020a3) - ("LIRA SIGN" #x0020a4) - ("MILL SIGN" #x0020a5) - ("NAIRA SIGN" #x0020a6) - ("PESETA SIGN" #x0020a7) - ("RUPEE SIGN" #x0020a8) - ("WON SIGN" #x0020a9) - ("NEW SHEQEL SIGN" #x0020aa) - ("DONG SIGN" #x0020ab) - ("EURO SIGN" #x0020ac) - ("KIP SIGN" #x0020ad) - ("TUGRIK SIGN" #x0020ae) - ("DRACHMA SIGN" #x0020af) - ("GERMAN PENNY SIGN" #x0020b0) - ("PESO SIGN" #x0020b1) - ("COMBINING LEFT HARPOON ABOVE" #x0020d0) - ("COMBINING RIGHT HARPOON ABOVE" #x0020d1) - ("COMBINING LONG VERTICAL LINE OVERLAY" #x0020d2) - ("COMBINING SHORT VERTICAL LINE OVERLAY" #x0020d3) - ("COMBINING ANTICLOCKWISE ARROW ABOVE" #x0020d4) - ("COMBINING CLOCKWISE ARROW ABOVE" #x0020d5) - ("COMBINING LEFT ARROW ABOVE" #x0020d6) - ("COMBINING RIGHT ARROW ABOVE" #x0020d7) - ("COMBINING RING OVERLAY" #x0020d8) - ("COMBINING CLOCKWISE RING OVERLAY" #x0020d9) - ("COMBINING ANTICLOCKWISE RING OVERLAY" #x0020da) - ("COMBINING THREE DOTS ABOVE" #x0020db) - ("COMBINING FOUR DOTS ABOVE" #x0020dc) - ("COMBINING ENCLOSING CIRCLE" #x0020dd) - ("COMBINING ENCLOSING SQUARE" #x0020de) - ("COMBINING ENCLOSING DIAMOND" #x0020df) - ("COMBINING ENCLOSING CIRCLE BACKSLASH" #x0020e0) - ("COMBINING LEFT RIGHT ARROW ABOVE" #x0020e1) - ("COMBINING ENCLOSING SCREEN" #x0020e2) - ("COMBINING ENCLOSING KEYCAP" #x0020e3) - ("COMBINING ENCLOSING UPWARD POINTING TRIANGLE" #x0020e4) - ("COMBINING REVERSE SOLIDUS OVERLAY" #x0020e5) - ("COMBINING DOUBLE VERTICAL STROKE OVERLAY" #x0020e6) - ("COMBINING ANNUITY SYMBOL" #x0020e7) - ("COMBINING TRIPLE UNDERDOT" #x0020e8) - ("COMBINING WIDE BRIDGE ABOVE" #x0020e9) - ("COMBINING LEFTWARDS ARROW OVERLAY" #x0020ea) - ("ACCOUNT OF" #x002100) - ("ADDRESSED TO THE SUBJECT" #x002101) - ("DOUBLE-STRUCK CAPITAL C" #x002102) - ("DEGREE CELSIUS" #x002103) - ("CENTRE LINE SYMBOL" #x002104) - ("CARE OF" #x002105) - ("CADA UNA" #x002106) - ("EULER CONSTANT" #x002107) - ("SCRUPLE" #x002108) - ("DEGREE FAHRENHEIT" #x002109) - ("SCRIPT SMALL G" #x00210a) - ("SCRIPT CAPITAL H" #x00210b) - ("BLACK-LETTER CAPITAL H" #x00210c) - ("DOUBLE-STRUCK CAPITAL H" #x00210d) - ("PLANCK CONSTANT" #x00210e) - ("PLANCK CONSTANT OVER TWO PI" #x00210f) - ("SCRIPT CAPITAL I" #x002110) - ("BLACK-LETTER CAPITAL I" #x002111) - ("SCRIPT CAPITAL L" #x002112) - ("SCRIPT SMALL L" #x002113) - ("L B BAR SYMBOL" #x002114) - ("DOUBLE-STRUCK CAPITAL N" #x002115) - ("NUMERO SIGN" #x002116) - ("SOUND RECORDING COPYRIGHT" #x002117) - ("SCRIPT CAPITAL P" #x002118) - ("DOUBLE-STRUCK CAPITAL P" #x002119) - ("DOUBLE-STRUCK CAPITAL Q" #x00211a) - ("SCRIPT CAPITAL R" #x00211b) - ("BLACK-LETTER CAPITAL R" #x00211c) - ("DOUBLE-STRUCK CAPITAL R" #x00211d) - ("PRESCRIPTION TAKE" #x00211e) - ("RESPONSE" #x00211f) - ("SERVICE MARK" #x002120) - ("TELEPHONE SIGN" #x002121) - ("TRADE MARK SIGN" #x002122) - ("VERSICLE" #x002123) - ("DOUBLE-STRUCK CAPITAL Z" #x002124) - ("OUNCE SIGN" #x002125) - ("OHM SIGN" #x002126) - ("INVERTED OHM SIGN" #x002127) - ("BLACK-LETTER CAPITAL Z" #x002128) - ("TURNED GREEK SMALL LETTER IOTA" #x002129) - ("KELVIN SIGN" #x00212a) - ("ANGSTROM SIGN" #x00212b) - ("SCRIPT CAPITAL B" #x00212c) - ("BLACK-LETTER CAPITAL C" #x00212d) - ("ESTIMATED SYMBOL" #x00212e) - ("SCRIPT SMALL E" #x00212f) - ("SCRIPT CAPITAL E" #x002130) - ("SCRIPT CAPITAL F" #x002131) - ("TURNED CAPITAL F" #x002132) - ("SCRIPT CAPITAL M" #x002133) - ("SCRIPT SMALL O" #x002134) - ("ALEF SYMBOL" #x002135) - ("BET SYMBOL" #x002136) - ("GIMEL SYMBOL" #x002137) - ("DALET SYMBOL" #x002138) - ("INFORMATION SOURCE" #x002139) - ("ROTATED CAPITAL Q" #x00213a) - ("DOUBLE-STRUCK SMALL GAMMA" #x00213d) - ("DOUBLE-STRUCK CAPITAL GAMMA" #x00213e) - ("DOUBLE-STRUCK CAPITAL PI" #x00213f) - ("DOUBLE-STRUCK N-ARY SUMMATION" #x002140) - ("TURNED SANS-SERIF CAPITAL G" #x002141) - ("TURNED SANS-SERIF CAPITAL L" #x002142) - ("REVERSED SANS-SERIF CAPITAL L" #x002143) - ("TURNED SANS-SERIF CAPITAL Y" #x002144) - ("DOUBLE-STRUCK ITALIC CAPITAL D" #x002145) - ("DOUBLE-STRUCK ITALIC SMALL D" #x002146) - ("DOUBLE-STRUCK ITALIC SMALL E" #x002147) - ("DOUBLE-STRUCK ITALIC SMALL I" #x002148) - ("DOUBLE-STRUCK ITALIC SMALL J" #x002149) - ("PROPERTY LINE" #x00214a) - ("TURNED AMPERSAND" #x00214b) - ("VULGAR FRACTION ONE THIRD" #x002153) - ("VULGAR FRACTION TWO THIRDS" #x002154) - ("VULGAR FRACTION ONE FIFTH" #x002155) - ("VULGAR FRACTION TWO FIFTHS" #x002156) - ("VULGAR FRACTION THREE FIFTHS" #x002157) - ("VULGAR FRACTION FOUR FIFTHS" #x002158) - ("VULGAR FRACTION ONE SIXTH" #x002159) - ("VULGAR FRACTION FIVE SIXTHS" #x00215a) - ("VULGAR FRACTION ONE EIGHTH" #x00215b) - ("VULGAR FRACTION THREE EIGHTHS" #x00215c) - ("VULGAR FRACTION FIVE EIGHTHS" #x00215d) - ("VULGAR FRACTION SEVEN EIGHTHS" #x00215e) - ("FRACTION NUMERATOR ONE" #x00215f) - ("ROMAN NUMERAL ONE" #x002160) - ("ROMAN NUMERAL TWO" #x002161) - ("ROMAN NUMERAL THREE" #x002162) - ("ROMAN NUMERAL FOUR" #x002163) - ("ROMAN NUMERAL FIVE" #x002164) - ("ROMAN NUMERAL SIX" #x002165) - ("ROMAN NUMERAL SEVEN" #x002166) - ("ROMAN NUMERAL EIGHT" #x002167) - ("ROMAN NUMERAL NINE" #x002168) - ("ROMAN NUMERAL TEN" #x002169) - ("ROMAN NUMERAL ELEVEN" #x00216a) - ("ROMAN NUMERAL TWELVE" #x00216b) - ("ROMAN NUMERAL FIFTY" #x00216c) - ("ROMAN NUMERAL ONE HUNDRED" #x00216d) - ("ROMAN NUMERAL FIVE HUNDRED" #x00216e) - ("ROMAN NUMERAL ONE THOUSAND" #x00216f) - ("SMALL ROMAN NUMERAL ONE" #x002170) - ("SMALL ROMAN NUMERAL TWO" #x002171) - ("SMALL ROMAN NUMERAL THREE" #x002172) - ("SMALL ROMAN NUMERAL FOUR" #x002173) - ("SMALL ROMAN NUMERAL FIVE" #x002174) - ("SMALL ROMAN NUMERAL SIX" #x002175) - ("SMALL ROMAN NUMERAL SEVEN" #x002176) - ("SMALL ROMAN NUMERAL EIGHT" #x002177) - ("SMALL ROMAN NUMERAL NINE" #x002178) - ("SMALL ROMAN NUMERAL TEN" #x002179) - ("SMALL ROMAN NUMERAL ELEVEN" #x00217a) - ("SMALL ROMAN NUMERAL TWELVE" #x00217b) - ("SMALL ROMAN NUMERAL FIFTY" #x00217c) - ("SMALL ROMAN NUMERAL ONE HUNDRED" #x00217d) - ("SMALL ROMAN NUMERAL FIVE HUNDRED" #x00217e) - ("SMALL ROMAN NUMERAL ONE THOUSAND" #x00217f) - ("ROMAN NUMERAL ONE THOUSAND C D" #x002180) - ("ROMAN NUMERAL FIVE THOUSAND" #x002181) - ("ROMAN NUMERAL TEN THOUSAND" #x002182) - ("ROMAN NUMERAL REVERSED ONE HUNDRED" #x002183) - ("LEFTWARDS ARROW" #x002190) - ("UPWARDS ARROW" #x002191) - ("RIGHTWARDS ARROW" #x002192) - ("DOWNWARDS ARROW" #x002193) - ("LEFT RIGHT ARROW" #x002194) - ("UP DOWN ARROW" #x002195) - ("NORTH WEST ARROW" #x002196) - ("NORTH EAST ARROW" #x002197) - ("SOUTH EAST ARROW" #x002198) - ("SOUTH WEST ARROW" #x002199) - ("LEFTWARDS ARROW WITH STROKE" #x00219a) - ("RIGHTWARDS ARROW WITH STROKE" #x00219b) - ("LEFTWARDS WAVE ARROW" #x00219c) - ("RIGHTWARDS WAVE ARROW" #x00219d) - ("LEFTWARDS TWO HEADED ARROW" #x00219e) - ("UPWARDS TWO HEADED ARROW" #x00219f) - ("RIGHTWARDS TWO HEADED ARROW" #x0021a0) - ("DOWNWARDS TWO HEADED ARROW" #x0021a1) - ("LEFTWARDS ARROW WITH TAIL" #x0021a2) - ("RIGHTWARDS ARROW WITH TAIL" #x0021a3) - ("LEFTWARDS ARROW FROM BAR" #x0021a4) - ("UPWARDS ARROW FROM BAR" #x0021a5) - ("RIGHTWARDS ARROW FROM BAR" #x0021a6) - ("DOWNWARDS ARROW FROM BAR" #x0021a7) - ("UP DOWN ARROW WITH BASE" #x0021a8) - ("LEFTWARDS ARROW WITH HOOK" #x0021a9) - ("RIGHTWARDS ARROW WITH HOOK" #x0021aa) - ("LEFTWARDS ARROW WITH LOOP" #x0021ab) - ("RIGHTWARDS ARROW WITH LOOP" #x0021ac) - ("LEFT RIGHT WAVE ARROW" #x0021ad) - ("LEFT RIGHT ARROW WITH STROKE" #x0021ae) - ("DOWNWARDS ZIGZAG ARROW" #x0021af) - ("UPWARDS ARROW WITH TIP LEFTWARDS" #x0021b0) - ("UPWARDS ARROW WITH TIP RIGHTWARDS" #x0021b1) - ("DOWNWARDS ARROW WITH TIP LEFTWARDS" #x0021b2) - ("DOWNWARDS ARROW WITH TIP RIGHTWARDS" #x0021b3) - ("RIGHTWARDS ARROW WITH CORNER DOWNWARDS" #x0021b4) - ("DOWNWARDS ARROW WITH CORNER LEFTWARDS" #x0021b5) - ("ANTICLOCKWISE TOP SEMICIRCLE ARROW" #x0021b6) - ("CLOCKWISE TOP SEMICIRCLE ARROW" #x0021b7) - ("NORTH WEST ARROW TO LONG BAR" #x0021b8) - ("LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR" #x0021b9) - ("ANTICLOCKWISE OPEN CIRCLE ARROW" #x0021ba) - ("CLOCKWISE OPEN CIRCLE ARROW" #x0021bb) - ("LEFTWARDS HARPOON WITH BARB UPWARDS" #x0021bc) - ("LEFTWARDS HARPOON WITH BARB DOWNWARDS" #x0021bd) - ("UPWARDS HARPOON WITH BARB RIGHTWARDS" #x0021be) - ("UPWARDS HARPOON WITH BARB LEFTWARDS" #x0021bf) - ("RIGHTWARDS HARPOON WITH BARB UPWARDS" #x0021c0) - ("RIGHTWARDS HARPOON WITH BARB DOWNWARDS" #x0021c1) - ("DOWNWARDS HARPOON WITH BARB RIGHTWARDS" #x0021c2) - ("DOWNWARDS HARPOON WITH BARB LEFTWARDS" #x0021c3) - ("RIGHTWARDS ARROW OVER LEFTWARDS ARROW" #x0021c4) - ("UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW" #x0021c5) - ("LEFTWARDS ARROW OVER RIGHTWARDS ARROW" #x0021c6) - ("LEFTWARDS PAIRED ARROWS" #x0021c7) - ("UPWARDS PAIRED ARROWS" #x0021c8) - ("RIGHTWARDS PAIRED ARROWS" #x0021c9) - ("DOWNWARDS PAIRED ARROWS" #x0021ca) - ("LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON" #x0021cb) - ("RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON" #x0021cc) - ("LEFTWARDS DOUBLE ARROW WITH STROKE" #x0021cd) - ("LEFT RIGHT DOUBLE ARROW WITH STROKE" #x0021ce) - ("RIGHTWARDS DOUBLE ARROW WITH STROKE" #x0021cf) - ("LEFTWARDS DOUBLE ARROW" #x0021d0) - ("UPWARDS DOUBLE ARROW" #x0021d1) - ("RIGHTWARDS DOUBLE ARROW" #x0021d2) - ("DOWNWARDS DOUBLE ARROW" #x0021d3) - ("LEFT RIGHT DOUBLE ARROW" #x0021d4) - ("UP DOWN DOUBLE ARROW" #x0021d5) - ("NORTH WEST DOUBLE ARROW" #x0021d6) - ("NORTH EAST DOUBLE ARROW" #x0021d7) - ("SOUTH EAST DOUBLE ARROW" #x0021d8) - ("SOUTH WEST DOUBLE ARROW" #x0021d9) - ("LEFTWARDS TRIPLE ARROW" #x0021da) - ("RIGHTWARDS TRIPLE ARROW" #x0021db) - ("LEFTWARDS SQUIGGLE ARROW" #x0021dc) - ("RIGHTWARDS SQUIGGLE ARROW" #x0021dd) - ("UPWARDS ARROW WITH DOUBLE STROKE" #x0021de) - ("DOWNWARDS ARROW WITH DOUBLE STROKE" #x0021df) - ("LEFTWARDS DASHED ARROW" #x0021e0) - ("UPWARDS DASHED ARROW" #x0021e1) - ("RIGHTWARDS DASHED ARROW" #x0021e2) - ("DOWNWARDS DASHED ARROW" #x0021e3) - ("LEFTWARDS ARROW TO BAR" #x0021e4) - ("RIGHTWARDS ARROW TO BAR" #x0021e5) - ("LEFTWARDS WHITE ARROW" #x0021e6) - ("UPWARDS WHITE ARROW" #x0021e7) - ("RIGHTWARDS WHITE ARROW" #x0021e8) - ("DOWNWARDS WHITE ARROW" #x0021e9) - ("UPWARDS WHITE ARROW FROM BAR" #x0021ea) - ("UPWARDS WHITE ARROW ON PEDESTAL" #x0021eb) - ("UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR" #x0021ec) - ("UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR" #x0021ed) - ("UPWARDS WHITE DOUBLE ARROW" #x0021ee) - ("UPWARDS WHITE DOUBLE ARROW ON PEDESTAL" #x0021ef) - ("RIGHTWARDS WHITE ARROW FROM WALL" #x0021f0) - ("NORTH WEST ARROW TO CORNER" #x0021f1) - ("SOUTH EAST ARROW TO CORNER" #x0021f2) - ("UP DOWN WHITE ARROW" #x0021f3) - ("RIGHT ARROW WITH SMALL CIRCLE" #x0021f4) - ("DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW" #x0021f5) - ("THREE RIGHTWARDS ARROWS" #x0021f6) - ("LEFTWARDS ARROW WITH VERTICAL STROKE" #x0021f7) - ("RIGHTWARDS ARROW WITH VERTICAL STROKE" #x0021f8) - ("LEFT RIGHT ARROW WITH VERTICAL STROKE" #x0021f9) - ("LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE" #x0021fa) - ("RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE" #x0021fb) - ("LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE" #x0021fc) - ("LEFTWARDS OPEN-HEADED ARROW" #x0021fd) - ("RIGHTWARDS OPEN-HEADED ARROW" #x0021fe) - ("LEFT RIGHT OPEN-HEADED ARROW" #x0021ff) - ("FOR ALL" #x002200) - ("COMPLEMENT" #x002201) - ("PARTIAL DIFFERENTIAL" #x002202) - ("THERE EXISTS" #x002203) - ("THERE DOES NOT EXIST" #x002204) - ("EMPTY SET" #x002205) - ("INCREMENT" #x002206) - ("NABLA" #x002207) - ("ELEMENT OF" #x002208) - ("NOT AN ELEMENT OF" #x002209) - ("SMALL ELEMENT OF" #x00220a) - ("CONTAINS AS MEMBER" #x00220b) - ("DOES NOT CONTAIN AS MEMBER" #x00220c) - ("SMALL CONTAINS AS MEMBER" #x00220d) - ("END OF PROOF" #x00220e) - ("N-ARY PRODUCT" #x00220f) - ("N-ARY COPRODUCT" #x002210) - ("N-ARY SUMMATION" #x002211) - ("MINUS SIGN" #x002212) - ("MINUS-OR-PLUS SIGN" #x002213) - ("DOT PLUS" #x002214) - ("DIVISION SLASH" #x002215) - ("SET MINUS" #x002216) - ("ASTERISK OPERATOR" #x002217) - ("RING OPERATOR" #x002218) - ("BULLET OPERATOR" #x002219) - ("SQUARE ROOT" #x00221a) - ("CUBE ROOT" #x00221b) - ("FOURTH ROOT" #x00221c) - ("PROPORTIONAL TO" #x00221d) - ("INFINITY" #x00221e) - ("RIGHT ANGLE" #x00221f) - ("ANGLE" #x002220) - ("MEASURED ANGLE" #x002221) - ("SPHERICAL ANGLE" #x002222) - ("DIVIDES" #x002223) - ("DOES NOT DIVIDE" #x002224) - ("PARALLEL TO" #x002225) - ("NOT PARALLEL TO" #x002226) - ("LOGICAL AND" #x002227) - ("LOGICAL OR" #x002228) - ("INTERSECTION" #x002229) - ("UNION" #x00222a) - ("INTEGRAL" #x00222b) - ("DOUBLE INTEGRAL" #x00222c) - ("TRIPLE INTEGRAL" #x00222d) - ("CONTOUR INTEGRAL" #x00222e) - ("SURFACE INTEGRAL" #x00222f) - ("VOLUME INTEGRAL" #x002230) - ("CLOCKWISE INTEGRAL" #x002231) - ("CLOCKWISE CONTOUR INTEGRAL" #x002232) - ("ANTICLOCKWISE CONTOUR INTEGRAL" #x002233) - ("THEREFORE" #x002234) - ("BECAUSE" #x002235) - ("RATIO" #x002236) - ("PROPORTION" #x002237) - ("DOT MINUS" #x002238) - ("EXCESS" #x002239) - ("GEOMETRIC PROPORTION" #x00223a) - ("HOMOTHETIC" #x00223b) - ("TILDE OPERATOR" #x00223c) - ("REVERSED TILDE" #x00223d) - ("INVERTED LAZY S" #x00223e) - ("SINE WAVE" #x00223f) - ("WREATH PRODUCT" #x002240) - ("NOT TILDE" #x002241) - ("MINUS TILDE" #x002242) - ("ASYMPTOTICALLY EQUAL TO" #x002243) - ("NOT ASYMPTOTICALLY EQUAL TO" #x002244) - ("APPROXIMATELY EQUAL TO" #x002245) - ("APPROXIMATELY BUT NOT ACTUALLY EQUAL TO" #x002246) - ("NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO" #x002247) - ("ALMOST EQUAL TO" #x002248) - ("NOT ALMOST EQUAL TO" #x002249) - ("ALMOST EQUAL OR EQUAL TO" #x00224a) - ("TRIPLE TILDE" #x00224b) - ("ALL EQUAL TO" #x00224c) - ("EQUIVALENT TO" #x00224d) - ("GEOMETRICALLY EQUIVALENT TO" #x00224e) - ("DIFFERENCE BETWEEN" #x00224f) - ("APPROACHES THE LIMIT" #x002250) - ("GEOMETRICALLY EQUAL TO" #x002251) - ("APPROXIMATELY EQUAL TO OR THE IMAGE OF" #x002252) - ("IMAGE OF OR APPROXIMATELY EQUAL TO" #x002253) - ("COLON EQUALS" #x002254) - ("EQUALS COLON" #x002255) - ("RING IN EQUAL TO" #x002256) - ("RING EQUAL TO" #x002257) - ("CORRESPONDS TO" #x002258) - ("ESTIMATES" #x002259) - ("EQUIANGULAR TO" #x00225a) - ("STAR EQUALS" #x00225b) - ("DELTA EQUAL TO" #x00225c) - ("EQUAL TO BY DEFINITION" #x00225d) - ("MEASURED BY" #x00225e) - ("QUESTIONED EQUAL TO" #x00225f) - ("NOT EQUAL TO" #x002260) - ("IDENTICAL TO" #x002261) - ("NOT IDENTICAL TO" #x002262) - ("STRICTLY EQUIVALENT TO" #x002263) - ("LESS-THAN OR EQUAL TO" #x002264) - ("GREATER-THAN OR EQUAL TO" #x002265) - ("LESS-THAN OVER EQUAL TO" #x002266) - ("GREATER-THAN OVER EQUAL TO" #x002267) - ("LESS-THAN BUT NOT EQUAL TO" #x002268) - ("GREATER-THAN BUT NOT EQUAL TO" #x002269) - ("MUCH LESS-THAN" #x00226a) - ("MUCH GREATER-THAN" #x00226b) - ("BETWEEN" #x00226c) - ("NOT EQUIVALENT TO" #x00226d) - ("NOT LESS-THAN" #x00226e) - ("NOT GREATER-THAN" #x00226f) - ("NEITHER LESS-THAN NOR EQUAL TO" #x002270) - ("NEITHER GREATER-THAN NOR EQUAL TO" #x002271) - ("LESS-THAN OR EQUIVALENT TO" #x002272) - ("GREATER-THAN OR EQUIVALENT TO" #x002273) - ("NEITHER LESS-THAN NOR EQUIVALENT TO" #x002274) - ("NEITHER GREATER-THAN NOR EQUIVALENT TO" #x002275) - ("LESS-THAN OR GREATER-THAN" #x002276) - ("GREATER-THAN OR LESS-THAN" #x002277) - ("NEITHER LESS-THAN NOR GREATER-THAN" #x002278) - ("NEITHER GREATER-THAN NOR LESS-THAN" #x002279) - ("PRECEDES" #x00227a) - ("SUCCEEDS" #x00227b) - ("PRECEDES OR EQUAL TO" #x00227c) - ("SUCCEEDS OR EQUAL TO" #x00227d) - ("PRECEDES OR EQUIVALENT TO" #x00227e) - ("SUCCEEDS OR EQUIVALENT TO" #x00227f) - ("DOES NOT PRECEDE" #x002280) - ("DOES NOT SUCCEED" #x002281) - ("SUBSET OF" #x002282) - ("SUPERSET OF" #x002283) - ("NOT A SUBSET OF" #x002284) - ("NOT A SUPERSET OF" #x002285) - ("SUBSET OF OR EQUAL TO" #x002286) - ("SUPERSET OF OR EQUAL TO" #x002287) - ("NEITHER A SUBSET OF NOR EQUAL TO" #x002288) - ("NEITHER A SUPERSET OF NOR EQUAL TO" #x002289) - ("SUBSET OF WITH NOT EQUAL TO" #x00228a) - ("SUPERSET OF WITH NOT EQUAL TO" #x00228b) - ("MULTISET" #x00228c) - ("MULTISET MULTIPLICATION" #x00228d) - ("MULTISET UNION" #x00228e) - ("SQUARE IMAGE OF" #x00228f) - ("SQUARE ORIGINAL OF" #x002290) - ("SQUARE IMAGE OF OR EQUAL TO" #x002291) - ("SQUARE ORIGINAL OF OR EQUAL TO" #x002292) - ("SQUARE CAP" #x002293) - ("SQUARE CUP" #x002294) - ("CIRCLED PLUS" #x002295) - ("CIRCLED MINUS" #x002296) - ("CIRCLED TIMES" #x002297) - ("CIRCLED DIVISION SLASH" #x002298) - ("CIRCLED DOT OPERATOR" #x002299) - ("CIRCLED RING OPERATOR" #x00229a) - ("CIRCLED ASTERISK OPERATOR" #x00229b) - ("CIRCLED EQUALS" #x00229c) - ("CIRCLED DASH" #x00229d) - ("SQUARED PLUS" #x00229e) - ("SQUARED MINUS" #x00229f) - ("SQUARED TIMES" #x0022a0) - ("SQUARED DOT OPERATOR" #x0022a1) - ("RIGHT TACK" #x0022a2) - ("LEFT TACK" #x0022a3) - ("DOWN TACK" #x0022a4) - ("UP TACK" #x0022a5) - ("ASSERTION" #x0022a6) - ("MODELS" #x0022a7) - ("TRUE" #x0022a8) - ("FORCES" #x0022a9) - ("TRIPLE VERTICAL BAR RIGHT TURNSTILE" #x0022aa) - ("DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE" #x0022ab) - ("DOES NOT PROVE" #x0022ac) - ("NOT TRUE" #x0022ad) - ("DOES NOT FORCE" #x0022ae) - ("NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE" #x0022af) - ("PRECEDES UNDER RELATION" #x0022b0) - ("SUCCEEDS UNDER RELATION" #x0022b1) - ("NORMAL SUBGROUP OF" #x0022b2) - ("CONTAINS AS NORMAL SUBGROUP" #x0022b3) - ("NORMAL SUBGROUP OF OR EQUAL TO" #x0022b4) - ("CONTAINS AS NORMAL SUBGROUP OR EQUAL TO" #x0022b5) - ("ORIGINAL OF" #x0022b6) - ("IMAGE OF" #x0022b7) - ("MULTIMAP" #x0022b8) - ("HERMITIAN CONJUGATE MATRIX" #x0022b9) - ("INTERCALATE" #x0022ba) - ("XOR" #x0022bb) - ("NAND" #x0022bc) - ("NOR" #x0022bd) - ("RIGHT ANGLE WITH ARC" #x0022be) - ("RIGHT TRIANGLE" #x0022bf) - ("N-ARY LOGICAL AND" #x0022c0) - ("N-ARY LOGICAL OR" #x0022c1) - ("N-ARY INTERSECTION" #x0022c2) - ("N-ARY UNION" #x0022c3) - ("DIAMOND OPERATOR" #x0022c4) - ("DOT OPERATOR" #x0022c5) - ("STAR OPERATOR" #x0022c6) - ("DIVISION TIMES" #x0022c7) - ("BOWTIE" #x0022c8) - ("LEFT NORMAL FACTOR SEMIDIRECT PRODUCT" #x0022c9) - ("RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT" #x0022ca) - ("LEFT SEMIDIRECT PRODUCT" #x0022cb) - ("RIGHT SEMIDIRECT PRODUCT" #x0022cc) - ("REVERSED TILDE EQUALS" #x0022cd) - ("CURLY LOGICAL OR" #x0022ce) - ("CURLY LOGICAL AND" #x0022cf) - ("DOUBLE SUBSET" #x0022d0) - ("DOUBLE SUPERSET" #x0022d1) - ("DOUBLE INTERSECTION" #x0022d2) - ("DOUBLE UNION" #x0022d3) - ("PITCHFORK" #x0022d4) - ("EQUAL AND PARALLEL TO" #x0022d5) - ("LESS-THAN WITH DOT" #x0022d6) - ("GREATER-THAN WITH DOT" #x0022d7) - ("VERY MUCH LESS-THAN" #x0022d8) - ("VERY MUCH GREATER-THAN" #x0022d9) - ("LESS-THAN EQUAL TO OR GREATER-THAN" #x0022da) - ("GREATER-THAN EQUAL TO OR LESS-THAN" #x0022db) - ("EQUAL TO OR LESS-THAN" #x0022dc) - ("EQUAL TO OR GREATER-THAN" #x0022dd) - ("EQUAL TO OR PRECEDES" #x0022de) - ("EQUAL TO OR SUCCEEDS" #x0022df) - ("DOES NOT PRECEDE OR EQUAL" #x0022e0) - ("DOES NOT SUCCEED OR EQUAL" #x0022e1) - ("NOT SQUARE IMAGE OF OR EQUAL TO" #x0022e2) - ("NOT SQUARE ORIGINAL OF OR EQUAL TO" #x0022e3) - ("SQUARE IMAGE OF OR NOT EQUAL TO" #x0022e4) - ("SQUARE ORIGINAL OF OR NOT EQUAL TO" #x0022e5) - ("LESS-THAN BUT NOT EQUIVALENT TO" #x0022e6) - ("GREATER-THAN BUT NOT EQUIVALENT TO" #x0022e7) - ("PRECEDES BUT NOT EQUIVALENT TO" #x0022e8) - ("SUCCEEDS BUT NOT EQUIVALENT TO" #x0022e9) - ("NOT NORMAL SUBGROUP OF" #x0022ea) - ("DOES NOT CONTAIN AS NORMAL SUBGROUP" #x0022eb) - ("NOT NORMAL SUBGROUP OF OR EQUAL TO" #x0022ec) - ("DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL" #x0022ed) - ("VERTICAL ELLIPSIS" #x0022ee) - ("MIDLINE HORIZONTAL ELLIPSIS" #x0022ef) - ("UP RIGHT DIAGONAL ELLIPSIS" #x0022f0) - ("DOWN RIGHT DIAGONAL ELLIPSIS" #x0022f1) - ("ELEMENT OF WITH LONG HORIZONTAL STROKE" #x0022f2) - ("ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE" #x0022f3) - ("SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE" #x0022f4) - ("ELEMENT OF WITH DOT ABOVE" #x0022f5) - ("ELEMENT OF WITH OVERBAR" #x0022f6) - ("SMALL ELEMENT OF WITH OVERBAR" #x0022f7) - ("ELEMENT OF WITH UNDERBAR" #x0022f8) - ("ELEMENT OF WITH TWO HORIZONTAL STROKES" #x0022f9) - ("CONTAINS WITH LONG HORIZONTAL STROKE" #x0022fa) - ("CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE" #x0022fb) - ("SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE" #x0022fc) - ("CONTAINS WITH OVERBAR" #x0022fd) - ("SMALL CONTAINS WITH OVERBAR" #x0022fe) - ("Z NOTATION BAG MEMBERSHIP" #x0022ff) - ("DIAMETER SIGN" #x002300) - ("ELECTRIC ARROW" #x002301) - ("HOUSE" #x002302) - ("UP ARROWHEAD" #x002303) - ("DOWN ARROWHEAD" #x002304) - ("PROJECTIVE" #x002305) - ("PERSPECTIVE" #x002306) - ("WAVY LINE" #x002307) - ("LEFT CEILING" #x002308) - ("RIGHT CEILING" #x002309) - ("LEFT FLOOR" #x00230a) - ("RIGHT FLOOR" #x00230b) - ("BOTTOM RIGHT CROP" #x00230c) - ("BOTTOM LEFT CROP" #x00230d) - ("TOP RIGHT CROP" #x00230e) - ("TOP LEFT CROP" #x00230f) - ("REVERSED NOT SIGN" #x002310) - ("SQUARE LOZENGE" #x002311) - ("ARC" #x002312) - ("SEGMENT" #x002313) - ("SECTOR" #x002314) - ("TELEPHONE RECORDER" #x002315) - ("POSITION INDICATOR" #x002316) - ("VIEWDATA SQUARE" #x002317) - ("PLACE OF INTEREST SIGN" #x002318) - ("TURNED NOT SIGN" #x002319) - ("WATCH" #x00231a) - ("HOURGLASS" #x00231b) - ("TOP LEFT CORNER" #x00231c) - ("TOP RIGHT CORNER" #x00231d) - ("BOTTOM LEFT CORNER" #x00231e) - ("BOTTOM RIGHT CORNER" #x00231f) - ("TOP HALF INTEGRAL" #x002320) - ("BOTTOM HALF INTEGRAL" #x002321) - ("FROWN" #x002322) - ("SMILE" #x002323) - ("UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS" #x002324) - ("OPTION KEY" #x002325) - ("ERASE TO THE RIGHT" #x002326) - ("X IN A RECTANGLE BOX" #x002327) - ("KEYBOARD" #x002328) - ("LEFT-POINTING ANGLE BRACKET" #x002329) - ("RIGHT-POINTING ANGLE BRACKET" #x00232a) - ("ERASE TO THE LEFT" #x00232b) - ("BENZENE RING" #x00232c) - ("CYLINDRICITY" #x00232d) - ("ALL AROUND-PROFILE" #x00232e) - ("SYMMETRY" #x00232f) - ("TOTAL RUNOUT" #x002330) - ("DIMENSION ORIGIN" #x002331) - ("CONICAL TAPER" #x002332) - ("SLOPE" #x002333) - ("COUNTERBORE" #x002334) - ("COUNTERSINK" #x002335) - ("APL FUNCTIONAL SYMBOL I-BEAM" #x002336) - ("APL FUNCTIONAL SYMBOL SQUISH QUAD" #x002337) - ("APL FUNCTIONAL SYMBOL QUAD EQUAL" #x002338) - ("APL FUNCTIONAL SYMBOL QUAD DIVIDE" #x002339) - ("APL FUNCTIONAL SYMBOL QUAD DIAMOND" #x00233a) - ("APL FUNCTIONAL SYMBOL QUAD JOT" #x00233b) - ("APL FUNCTIONAL SYMBOL QUAD CIRCLE" #x00233c) - ("APL FUNCTIONAL SYMBOL CIRCLE STILE" #x00233d) - ("APL FUNCTIONAL SYMBOL CIRCLE JOT" #x00233e) - ("APL FUNCTIONAL SYMBOL SLASH BAR" #x00233f) - ("APL FUNCTIONAL SYMBOL BACKSLASH BAR" #x002340) - ("APL FUNCTIONAL SYMBOL QUAD SLASH" #x002341) - ("APL FUNCTIONAL SYMBOL QUAD BACKSLASH" #x002342) - ("APL FUNCTIONAL SYMBOL QUAD LESS-THAN" #x002343) - ("APL FUNCTIONAL SYMBOL QUAD GREATER-THAN" #x002344) - ("APL FUNCTIONAL SYMBOL LEFTWARDS VANE" #x002345) - ("APL FUNCTIONAL SYMBOL RIGHTWARDS VANE" #x002346) - ("APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW" #x002347) - ("APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW" #x002348) - ("APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH" #x002349) - ("APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR" #x00234a) - ("APL FUNCTIONAL SYMBOL DELTA STILE" #x00234b) - ("APL FUNCTIONAL SYMBOL QUAD DOWN CARET" #x00234c) - ("APL FUNCTIONAL SYMBOL QUAD DELTA" #x00234d) - ("APL FUNCTIONAL SYMBOL DOWN TACK JOT" #x00234e) - ("APL FUNCTIONAL SYMBOL UPWARDS VANE" #x00234f) - ("APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW" #x002350) - ("APL FUNCTIONAL SYMBOL UP TACK OVERBAR" #x002351) - ("APL FUNCTIONAL SYMBOL DEL STILE" #x002352) - ("APL FUNCTIONAL SYMBOL QUAD UP CARET" #x002353) - ("APL FUNCTIONAL SYMBOL QUAD DEL" #x002354) - ("APL FUNCTIONAL SYMBOL UP TACK JOT" #x002355) - ("APL FUNCTIONAL SYMBOL DOWNWARDS VANE" #x002356) - ("APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW" #x002357) - ("APL FUNCTIONAL SYMBOL QUOTE UNDERBAR" #x002358) - ("APL FUNCTIONAL SYMBOL DELTA UNDERBAR" #x002359) - ("APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR" #x00235a) - ("APL FUNCTIONAL SYMBOL JOT UNDERBAR" #x00235b) - ("APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR" #x00235c) - ("APL FUNCTIONAL SYMBOL UP SHOE JOT" #x00235d) - ("APL FUNCTIONAL SYMBOL QUOTE QUAD" #x00235e) - ("APL FUNCTIONAL SYMBOL CIRCLE STAR" #x00235f) - ("APL FUNCTIONAL SYMBOL QUAD COLON" #x002360) - ("APL FUNCTIONAL SYMBOL UP TACK DIAERESIS" #x002361) - ("APL FUNCTIONAL SYMBOL DEL DIAERESIS" #x002362) - ("APL FUNCTIONAL SYMBOL STAR DIAERESIS" #x002363) - ("APL FUNCTIONAL SYMBOL JOT DIAERESIS" #x002364) - ("APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS" #x002365) - ("APL FUNCTIONAL SYMBOL DOWN SHOE STILE" #x002366) - ("APL FUNCTIONAL SYMBOL LEFT SHOE STILE" #x002367) - ("APL FUNCTIONAL SYMBOL TILDE DIAERESIS" #x002368) - ("APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS" #x002369) - ("APL FUNCTIONAL SYMBOL COMMA BAR" #x00236a) - ("APL FUNCTIONAL SYMBOL DEL TILDE" #x00236b) - ("APL FUNCTIONAL SYMBOL ZILDE" #x00236c) - ("APL FUNCTIONAL SYMBOL STILE TILDE" #x00236d) - ("APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR" #x00236e) - ("APL FUNCTIONAL SYMBOL QUAD NOT EQUAL" #x00236f) - ("APL FUNCTIONAL SYMBOL QUAD QUESTION" #x002370) - ("APL FUNCTIONAL SYMBOL DOWN CARET TILDE" #x002371) - ("APL FUNCTIONAL SYMBOL UP CARET TILDE" #x002372) - ("APL FUNCTIONAL SYMBOL IOTA" #x002373) - ("APL FUNCTIONAL SYMBOL RHO" #x002374) - ("APL FUNCTIONAL SYMBOL OMEGA" #x002375) - ("APL FUNCTIONAL SYMBOL ALPHA UNDERBAR" #x002376) - ("APL FUNCTIONAL SYMBOL EPSILON UNDERBAR" #x002377) - ("APL FUNCTIONAL SYMBOL IOTA UNDERBAR" #x002378) - ("APL FUNCTIONAL SYMBOL OMEGA UNDERBAR" #x002379) - ("APL FUNCTIONAL SYMBOL ALPHA" #x00237a) - ("NOT CHECK MARK" #x00237b) - ("RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW" #x00237c) - ("SHOULDERED OPEN BOX" #x00237d) - ("BELL SYMBOL" #x00237e) - ("VERTICAL LINE WITH MIDDLE DOT" #x00237f) - ("INSERTION SYMBOL" #x002380) - ("CONTINUOUS UNDERLINE SYMBOL" #x002381) - ("DISCONTINUOUS UNDERLINE SYMBOL" #x002382) - ("EMPHASIS SYMBOL" #x002383) - ("COMPOSITION SYMBOL" #x002384) - ("WHITE SQUARE WITH CENTRE VERTICAL LINE" #x002385) - ("ENTER SYMBOL" #x002386) - ("ALTERNATIVE KEY SYMBOL" #x002387) - ("HELM SYMBOL" #x002388) - ("CIRCLED HORIZONTAL BAR WITH NOTCH" #x002389) - ("CIRCLED TRIANGLE DOWN" #x00238a) - ("BROKEN CIRCLE WITH NORTHWEST ARROW" #x00238b) - ("UNDO SYMBOL" #x00238c) - ("MONOSTABLE SYMBOL" #x00238d) - ("HYSTERESIS SYMBOL" #x00238e) - ("OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL" #x00238f) - ("OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL" #x002390) - ("PASSIVE-PULL-DOWN-OUTPUT SYMBOL" #x002391) - ("PASSIVE-PULL-UP-OUTPUT SYMBOL" #x002392) - ("DIRECT CURRENT SYMBOL FORM TWO" #x002393) - ("SOFTWARE-FUNCTION SYMBOL" #x002394) - ("APL FUNCTIONAL SYMBOL QUAD" #x002395) - ("DECIMAL SEPARATOR KEY SYMBOL" #x002396) - ("PREVIOUS PAGE" #x002397) - ("NEXT PAGE" #x002398) - ("PRINT SCREEN SYMBOL" #x002399) - ("CLEAR SCREEN SYMBOL" #x00239a) - ("LEFT PARENTHESIS UPPER HOOK" #x00239b) - ("LEFT PARENTHESIS EXTENSION" #x00239c) - ("LEFT PARENTHESIS LOWER HOOK" #x00239d) - ("RIGHT PARENTHESIS UPPER HOOK" #x00239e) - ("RIGHT PARENTHESIS EXTENSION" #x00239f) - ("RIGHT PARENTHESIS LOWER HOOK" #x0023a0) - ("LEFT SQUARE BRACKET UPPER CORNER" #x0023a1) - ("LEFT SQUARE BRACKET EXTENSION" #x0023a2) - ("LEFT SQUARE BRACKET LOWER CORNER" #x0023a3) - ("RIGHT SQUARE BRACKET UPPER CORNER" #x0023a4) - ("RIGHT SQUARE BRACKET EXTENSION" #x0023a5) - ("RIGHT SQUARE BRACKET LOWER CORNER" #x0023a6) - ("LEFT CURLY BRACKET UPPER HOOK" #x0023a7) - ("LEFT CURLY BRACKET MIDDLE PIECE" #x0023a8) - ("LEFT CURLY BRACKET LOWER HOOK" #x0023a9) - ("CURLY BRACKET EXTENSION" #x0023aa) - ("RIGHT CURLY BRACKET UPPER HOOK" #x0023ab) - ("RIGHT CURLY BRACKET MIDDLE PIECE" #x0023ac) - ("RIGHT CURLY BRACKET LOWER HOOK" #x0023ad) - ("INTEGRAL EXTENSION" #x0023ae) - ("HORIZONTAL LINE EXTENSION" #x0023af) - ("UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION" #x0023b0) - ("UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION" #x0023b1) - ("SUMMATION TOP" #x0023b2) - ("SUMMATION BOTTOM" #x0023b3) - ("TOP SQUARE BRACKET" #x0023b4) - ("BOTTOM SQUARE BRACKET" #x0023b5) - ("BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET" #x0023b6) - ("RADICAL SYMBOL BOTTOM" #x0023b7) - ("LEFT VERTICAL BOX LINE" #x0023b8) - ("RIGHT VERTICAL BOX LINE" #x0023b9) - ("HORIZONTAL SCAN LINE-1" #x0023ba) - ("HORIZONTAL SCAN LINE-3" #x0023bb) - ("HORIZONTAL SCAN LINE-7" #x0023bc) - ("HORIZONTAL SCAN LINE-9" #x0023bd) - ("DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT" #x0023be) - ("DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT" #x0023bf) - ("DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE" #x0023c0) - ("DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE" #x0023c1) - ("DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE" #x0023c2) - ("DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE" #x0023c3) - ("DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE" #x0023c4) - ("DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE" #x0023c5) - ("DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE" #x0023c6) - ("DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE" #x0023c7) - ("DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE" #x0023c8) - ("DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL" #x0023c9) - ("DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL" #x0023ca) - ("DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT" #x0023cb) - ("DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT" #x0023cc) - ("SQUARE FOOT" #x0023cd) - ("RETURN SYMBOL" #x0023ce) - ("SYMBOL FOR NULL" #x002400) - ("SYMBOL FOR START OF HEADING" #x002401) - ("SYMBOL FOR START OF TEXT" #x002402) - ("SYMBOL FOR END OF TEXT" #x002403) - ("SYMBOL FOR END OF TRANSMISSION" #x002404) - ("SYMBOL FOR ENQUIRY" #x002405) - ("SYMBOL FOR ACKNOWLEDGE" #x002406) - ("SYMBOL FOR BELL" #x002407) - ("SYMBOL FOR BACKSPACE" #x002408) - ("SYMBOL FOR HORIZONTAL TABULATION" #x002409) - ("SYMBOL FOR LINE FEED" #x00240a) - ("SYMBOL FOR VERTICAL TABULATION" #x00240b) - ("SYMBOL FOR FORM FEED" #x00240c) - ("SYMBOL FOR CARRIAGE RETURN" #x00240d) - ("SYMBOL FOR SHIFT OUT" #x00240e) - ("SYMBOL FOR SHIFT IN" #x00240f) - ("SYMBOL FOR DATA LINK ESCAPE" #x002410) - ("SYMBOL FOR DEVICE CONTROL ONE" #x002411) - ("SYMBOL FOR DEVICE CONTROL TWO" #x002412) - ("SYMBOL FOR DEVICE CONTROL THREE" #x002413) - ("SYMBOL FOR DEVICE CONTROL FOUR" #x002414) - ("SYMBOL FOR NEGATIVE ACKNOWLEDGE" #x002415) - ("SYMBOL FOR SYNCHRONOUS IDLE" #x002416) - ("SYMBOL FOR END OF TRANSMISSION BLOCK" #x002417) - ("SYMBOL FOR CANCEL" #x002418) - ("SYMBOL FOR END OF MEDIUM" #x002419) - ("SYMBOL FOR SUBSTITUTE" #x00241a) - ("SYMBOL FOR ESCAPE" #x00241b) - ("SYMBOL FOR FILE SEPARATOR" #x00241c) - ("SYMBOL FOR GROUP SEPARATOR" #x00241d) - ("SYMBOL FOR RECORD SEPARATOR" #x00241e) - ("SYMBOL FOR UNIT SEPARATOR" #x00241f) - ("SYMBOL FOR SPACE" #x002420) - ("SYMBOL FOR DELETE" #x002421) - ("BLANK SYMBOL" #x002422) - ("OPEN BOX" #x002423) - ("SYMBOL FOR NEWLINE" #x002424) - ("SYMBOL FOR DELETE FORM TWO" #x002425) - ("SYMBOL FOR SUBSTITUTE FORM TWO" #x002426) - ("OCR HOOK" #x002440) - ("OCR CHAIR" #x002441) - ("OCR FORK" #x002442) - ("OCR INVERTED FORK" #x002443) - ("OCR BELT BUCKLE" #x002444) - ("OCR BOW TIE" #x002445) - ("OCR BRANCH BANK IDENTIFICATION" #x002446) - ("OCR AMOUNT OF CHECK" #x002447) - ("OCR DASH" #x002448) - ("OCR CUSTOMER ACCOUNT NUMBER" #x002449) - ("OCR DOUBLE BACKSLASH" #x00244a) - ("CIRCLED DIGIT ONE" #x002460) - ("CIRCLED DIGIT TWO" #x002461) - ("CIRCLED DIGIT THREE" #x002462) - ("CIRCLED DIGIT FOUR" #x002463) - ("CIRCLED DIGIT FIVE" #x002464) - ("CIRCLED DIGIT SIX" #x002465) - ("CIRCLED DIGIT SEVEN" #x002466) - ("CIRCLED DIGIT EIGHT" #x002467) - ("CIRCLED DIGIT NINE" #x002468) - ("CIRCLED NUMBER TEN" #x002469) - ("CIRCLED NUMBER ELEVEN" #x00246a) - ("CIRCLED NUMBER TWELVE" #x00246b) - ("CIRCLED NUMBER THIRTEEN" #x00246c) - ("CIRCLED NUMBER FOURTEEN" #x00246d) - ("CIRCLED NUMBER FIFTEEN" #x00246e) - ("CIRCLED NUMBER SIXTEEN" #x00246f) - ("CIRCLED NUMBER SEVENTEEN" #x002470) - ("CIRCLED NUMBER EIGHTEEN" #x002471) - ("CIRCLED NUMBER NINETEEN" #x002472) - ("CIRCLED NUMBER TWENTY" #x002473) - ("PARENTHESIZED DIGIT ONE" #x002474) - ("PARENTHESIZED DIGIT TWO" #x002475) - ("PARENTHESIZED DIGIT THREE" #x002476) - ("PARENTHESIZED DIGIT FOUR" #x002477) - ("PARENTHESIZED DIGIT FIVE" #x002478) - ("PARENTHESIZED DIGIT SIX" #x002479) - ("PARENTHESIZED DIGIT SEVEN" #x00247a) - ("PARENTHESIZED DIGIT EIGHT" #x00247b) - ("PARENTHESIZED DIGIT NINE" #x00247c) - ("PARENTHESIZED NUMBER TEN" #x00247d) - ("PARENTHESIZED NUMBER ELEVEN" #x00247e) - ("PARENTHESIZED NUMBER TWELVE" #x00247f) - ("PARENTHESIZED NUMBER THIRTEEN" #x002480) - ("PARENTHESIZED NUMBER FOURTEEN" #x002481) - ("PARENTHESIZED NUMBER FIFTEEN" #x002482) - ("PARENTHESIZED NUMBER SIXTEEN" #x002483) - ("PARENTHESIZED NUMBER SEVENTEEN" #x002484) - ("PARENTHESIZED NUMBER EIGHTEEN" #x002485) - ("PARENTHESIZED NUMBER NINETEEN" #x002486) - ("PARENTHESIZED NUMBER TWENTY" #x002487) - ("DIGIT ONE FULL STOP" #x002488) - ("DIGIT TWO FULL STOP" #x002489) - ("DIGIT THREE FULL STOP" #x00248a) - ("DIGIT FOUR FULL STOP" #x00248b) - ("DIGIT FIVE FULL STOP" #x00248c) - ("DIGIT SIX FULL STOP" #x00248d) - ("DIGIT SEVEN FULL STOP" #x00248e) - ("DIGIT EIGHT FULL STOP" #x00248f) - ("DIGIT NINE FULL STOP" #x002490) - ("NUMBER TEN FULL STOP" #x002491) - ("NUMBER ELEVEN FULL STOP" #x002492) - ("NUMBER TWELVE FULL STOP" #x002493) - ("NUMBER THIRTEEN FULL STOP" #x002494) - ("NUMBER FOURTEEN FULL STOP" #x002495) - ("NUMBER FIFTEEN FULL STOP" #x002496) - ("NUMBER SIXTEEN FULL STOP" #x002497) - ("NUMBER SEVENTEEN FULL STOP" #x002498) - ("NUMBER EIGHTEEN FULL STOP" #x002499) - ("NUMBER NINETEEN FULL STOP" #x00249a) - ("NUMBER TWENTY FULL STOP" #x00249b) - ("PARENTHESIZED LATIN SMALL LETTER A" #x00249c) - ("PARENTHESIZED LATIN SMALL LETTER B" #x00249d) - ("PARENTHESIZED LATIN SMALL LETTER C" #x00249e) - ("PARENTHESIZED LATIN SMALL LETTER D" #x00249f) - ("PARENTHESIZED LATIN SMALL LETTER E" #x0024a0) - ("PARENTHESIZED LATIN SMALL LETTER F" #x0024a1) - ("PARENTHESIZED LATIN SMALL LETTER G" #x0024a2) - ("PARENTHESIZED LATIN SMALL LETTER H" #x0024a3) - ("PARENTHESIZED LATIN SMALL LETTER I" #x0024a4) - ("PARENTHESIZED LATIN SMALL LETTER J" #x0024a5) - ("PARENTHESIZED LATIN SMALL LETTER K" #x0024a6) - ("PARENTHESIZED LATIN SMALL LETTER L" #x0024a7) - ("PARENTHESIZED LATIN SMALL LETTER M" #x0024a8) - ("PARENTHESIZED LATIN SMALL LETTER N" #x0024a9) - ("PARENTHESIZED LATIN SMALL LETTER O" #x0024aa) - ("PARENTHESIZED LATIN SMALL LETTER P" #x0024ab) - ("PARENTHESIZED LATIN SMALL LETTER Q" #x0024ac) - ("PARENTHESIZED LATIN SMALL LETTER R" #x0024ad) - ("PARENTHESIZED LATIN SMALL LETTER S" #x0024ae) - ("PARENTHESIZED LATIN SMALL LETTER T" #x0024af) - ("PARENTHESIZED LATIN SMALL LETTER U" #x0024b0) - ("PARENTHESIZED LATIN SMALL LETTER V" #x0024b1) - ("PARENTHESIZED LATIN SMALL LETTER W" #x0024b2) - ("PARENTHESIZED LATIN SMALL LETTER X" #x0024b3) - ("PARENTHESIZED LATIN SMALL LETTER Y" #x0024b4) - ("PARENTHESIZED LATIN SMALL LETTER Z" #x0024b5) - ("CIRCLED LATIN CAPITAL LETTER A" #x0024b6) - ("CIRCLED LATIN CAPITAL LETTER B" #x0024b7) - ("CIRCLED LATIN CAPITAL LETTER C" #x0024b8) - ("CIRCLED LATIN CAPITAL LETTER D" #x0024b9) - ("CIRCLED LATIN CAPITAL LETTER E" #x0024ba) - ("CIRCLED LATIN CAPITAL LETTER F" #x0024bb) - ("CIRCLED LATIN CAPITAL LETTER G" #x0024bc) - ("CIRCLED LATIN CAPITAL LETTER H" #x0024bd) - ("CIRCLED LATIN CAPITAL LETTER I" #x0024be) - ("CIRCLED LATIN CAPITAL LETTER J" #x0024bf) - ("CIRCLED LATIN CAPITAL LETTER K" #x0024c0) - ("CIRCLED LATIN CAPITAL LETTER L" #x0024c1) - ("CIRCLED LATIN CAPITAL LETTER M" #x0024c2) - ("CIRCLED LATIN CAPITAL LETTER N" #x0024c3) - ("CIRCLED LATIN CAPITAL LETTER O" #x0024c4) - ("CIRCLED LATIN CAPITAL LETTER P" #x0024c5) - ("CIRCLED LATIN CAPITAL LETTER Q" #x0024c6) - ("CIRCLED LATIN CAPITAL LETTER R" #x0024c7) - ("CIRCLED LATIN CAPITAL LETTER S" #x0024c8) - ("CIRCLED LATIN CAPITAL LETTER T" #x0024c9) - ("CIRCLED LATIN CAPITAL LETTER U" #x0024ca) - ("CIRCLED LATIN CAPITAL LETTER V" #x0024cb) - ("CIRCLED LATIN CAPITAL LETTER W" #x0024cc) - ("CIRCLED LATIN CAPITAL LETTER X" #x0024cd) - ("CIRCLED LATIN CAPITAL LETTER Y" #x0024ce) - ("CIRCLED LATIN CAPITAL LETTER Z" #x0024cf) - ("CIRCLED LATIN SMALL LETTER A" #x0024d0) - ("CIRCLED LATIN SMALL LETTER B" #x0024d1) - ("CIRCLED LATIN SMALL LETTER C" #x0024d2) - ("CIRCLED LATIN SMALL LETTER D" #x0024d3) - ("CIRCLED LATIN SMALL LETTER E" #x0024d4) - ("CIRCLED LATIN SMALL LETTER F" #x0024d5) - ("CIRCLED LATIN SMALL LETTER G" #x0024d6) - ("CIRCLED LATIN SMALL LETTER H" #x0024d7) - ("CIRCLED LATIN SMALL LETTER I" #x0024d8) - ("CIRCLED LATIN SMALL LETTER J" #x0024d9) - ("CIRCLED LATIN SMALL LETTER K" #x0024da) - ("CIRCLED LATIN SMALL LETTER L" #x0024db) - ("CIRCLED LATIN SMALL LETTER M" #x0024dc) - ("CIRCLED LATIN SMALL LETTER N" #x0024dd) - ("CIRCLED LATIN SMALL LETTER O" #x0024de) - ("CIRCLED LATIN SMALL LETTER P" #x0024df) - ("CIRCLED LATIN SMALL LETTER Q" #x0024e0) - ("CIRCLED LATIN SMALL LETTER R" #x0024e1) - ("CIRCLED LATIN SMALL LETTER S" #x0024e2) - ("CIRCLED LATIN SMALL LETTER T" #x0024e3) - ("CIRCLED LATIN SMALL LETTER U" #x0024e4) - ("CIRCLED LATIN SMALL LETTER V" #x0024e5) - ("CIRCLED LATIN SMALL LETTER W" #x0024e6) - ("CIRCLED LATIN SMALL LETTER X" #x0024e7) - ("CIRCLED LATIN SMALL LETTER Y" #x0024e8) - ("CIRCLED LATIN SMALL LETTER Z" #x0024e9) - ("CIRCLED DIGIT ZERO" #x0024ea) - ("NEGATIVE CIRCLED NUMBER ELEVEN" #x0024eb) - ("NEGATIVE CIRCLED NUMBER TWELVE" #x0024ec) - ("NEGATIVE CIRCLED NUMBER THIRTEEN" #x0024ed) - ("NEGATIVE CIRCLED NUMBER FOURTEEN" #x0024ee) - ("NEGATIVE CIRCLED NUMBER FIFTEEN" #x0024ef) - ("NEGATIVE CIRCLED NUMBER SIXTEEN" #x0024f0) - ("NEGATIVE CIRCLED NUMBER SEVENTEEN" #x0024f1) - ("NEGATIVE CIRCLED NUMBER EIGHTEEN" #x0024f2) - ("NEGATIVE CIRCLED NUMBER NINETEEN" #x0024f3) - ("NEGATIVE CIRCLED NUMBER TWENTY" #x0024f4) - ("DOUBLE CIRCLED DIGIT ONE" #x0024f5) - ("DOUBLE CIRCLED DIGIT TWO" #x0024f6) - ("DOUBLE CIRCLED DIGIT THREE" #x0024f7) - ("DOUBLE CIRCLED DIGIT FOUR" #x0024f8) - ("DOUBLE CIRCLED DIGIT FIVE" #x0024f9) - ("DOUBLE CIRCLED DIGIT SIX" #x0024fa) - ("DOUBLE CIRCLED DIGIT SEVEN" #x0024fb) - ("DOUBLE CIRCLED DIGIT EIGHT" #x0024fc) - ("DOUBLE CIRCLED DIGIT NINE" #x0024fd) - ("DOUBLE CIRCLED NUMBER TEN" #x0024fe) - ("BOX DRAWINGS LIGHT HORIZONTAL" #x002500) - ("BOX DRAWINGS HEAVY HORIZONTAL" #x002501) - ("BOX DRAWINGS LIGHT VERTICAL" #x002502) - ("BOX DRAWINGS HEAVY VERTICAL" #x002503) - ("BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL" #x002504) - ("BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL" #x002505) - ("BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL" #x002506) - ("BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL" #x002507) - ("BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL" #x002508) - ("BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL" #x002509) - ("BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL" #x00250a) - ("BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL" #x00250b) - ("BOX DRAWINGS LIGHT DOWN AND RIGHT" #x00250c) - ("BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY" #x00250d) - ("BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT" #x00250e) - ("BOX DRAWINGS HEAVY DOWN AND RIGHT" #x00250f) - ("BOX DRAWINGS LIGHT DOWN AND LEFT" #x002510) - ("BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY" #x002511) - ("BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT" #x002512) - ("BOX DRAWINGS HEAVY DOWN AND LEFT" #x002513) - ("BOX DRAWINGS LIGHT UP AND RIGHT" #x002514) - ("BOX DRAWINGS UP LIGHT AND RIGHT HEAVY" #x002515) - ("BOX DRAWINGS UP HEAVY AND RIGHT LIGHT" #x002516) - ("BOX DRAWINGS HEAVY UP AND RIGHT" #x002517) - ("BOX DRAWINGS LIGHT UP AND LEFT" #x002518) - ("BOX DRAWINGS UP LIGHT AND LEFT HEAVY" #x002519) - ("BOX DRAWINGS UP HEAVY AND LEFT LIGHT" #x00251a) - ("BOX DRAWINGS HEAVY UP AND LEFT" #x00251b) - ("BOX DRAWINGS LIGHT VERTICAL AND RIGHT" #x00251c) - ("BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY" #x00251d) - ("BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT" #x00251e) - ("BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT" #x00251f) - ("BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT" #x002520) - ("BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY" #x002521) - ("BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY" #x002522) - ("BOX DRAWINGS HEAVY VERTICAL AND RIGHT" #x002523) - ("BOX DRAWINGS LIGHT VERTICAL AND LEFT" #x002524) - ("BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY" #x002525) - ("BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT" #x002526) - ("BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT" #x002527) - ("BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT" #x002528) - ("BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY" #x002529) - ("BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY" #x00252a) - ("BOX DRAWINGS HEAVY VERTICAL AND LEFT" #x00252b) - ("BOX DRAWINGS LIGHT DOWN AND HORIZONTAL" #x00252c) - ("BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT" #x00252d) - ("BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT" #x00252e) - ("BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY" #x00252f) - ("BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT" #x002530) - ("BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY" #x002531) - ("BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY" #x002532) - ("BOX DRAWINGS HEAVY DOWN AND HORIZONTAL" #x002533) - ("BOX DRAWINGS LIGHT UP AND HORIZONTAL" #x002534) - ("BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT" #x002535) - ("BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT" #x002536) - ("BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY" #x002537) - ("BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT" #x002538) - ("BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY" #x002539) - ("BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY" #x00253a) - ("BOX DRAWINGS HEAVY UP AND HORIZONTAL" #x00253b) - ("BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL" #x00253c) - ("BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT" #x00253d) - ("BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT" #x00253e) - ("BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY" #x00253f) - ("BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT" #x002540) - ("BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT" #x002541) - ("BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT" #x002542) - ("BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT" #x002543) - ("BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT" #x002544) - ("BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT" #x002545) - ("BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT" #x002546) - ("BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY" #x002547) - ("BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY" #x002548) - ("BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY" #x002549) - ("BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY" #x00254a) - ("BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL" #x00254b) - ("BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL" #x00254c) - ("BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL" #x00254d) - ("BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL" #x00254e) - ("BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL" #x00254f) - ("BOX DRAWINGS DOUBLE HORIZONTAL" #x002550) - ("BOX DRAWINGS DOUBLE VERTICAL" #x002551) - ("BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE" #x002552) - ("BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE" #x002553) - ("BOX DRAWINGS DOUBLE DOWN AND RIGHT" #x002554) - ("BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE" #x002555) - ("BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE" #x002556) - ("BOX DRAWINGS DOUBLE DOWN AND LEFT" #x002557) - ("BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE" #x002558) - ("BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE" #x002559) - ("BOX DRAWINGS DOUBLE UP AND RIGHT" #x00255a) - ("BOX DRAWINGS UP SINGLE AND LEFT DOUBLE" #x00255b) - ("BOX DRAWINGS UP DOUBLE AND LEFT SINGLE" #x00255c) - ("BOX DRAWINGS DOUBLE UP AND LEFT" #x00255d) - ("BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE" #x00255e) - ("BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE" #x00255f) - ("BOX DRAWINGS DOUBLE VERTICAL AND RIGHT" #x002560) - ("BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE" #x002561) - ("BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE" #x002562) - ("BOX DRAWINGS DOUBLE VERTICAL AND LEFT" #x002563) - ("BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE" #x002564) - ("BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE" #x002565) - ("BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL" #x002566) - ("BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE" #x002567) - ("BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE" #x002568) - ("BOX DRAWINGS DOUBLE UP AND HORIZONTAL" #x002569) - ("BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE" #x00256a) - ("BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE" #x00256b) - ("BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL" #x00256c) - ("BOX DRAWINGS LIGHT ARC DOWN AND RIGHT" #x00256d) - ("BOX DRAWINGS LIGHT ARC DOWN AND LEFT" #x00256e) - ("BOX DRAWINGS LIGHT ARC UP AND LEFT" #x00256f) - ("BOX DRAWINGS LIGHT ARC UP AND RIGHT" #x002570) - ("BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT" #x002571) - ("BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT" #x002572) - ("BOX DRAWINGS LIGHT DIAGONAL CROSS" #x002573) - ("BOX DRAWINGS LIGHT LEFT" #x002574) - ("BOX DRAWINGS LIGHT UP" #x002575) - ("BOX DRAWINGS LIGHT RIGHT" #x002576) - ("BOX DRAWINGS LIGHT DOWN" #x002577) - ("BOX DRAWINGS HEAVY LEFT" #x002578) - ("BOX DRAWINGS HEAVY UP" #x002579) - ("BOX DRAWINGS HEAVY RIGHT" #x00257a) - ("BOX DRAWINGS HEAVY DOWN" #x00257b) - ("BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT" #x00257c) - ("BOX DRAWINGS LIGHT UP AND HEAVY DOWN" #x00257d) - ("BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT" #x00257e) - ("BOX DRAWINGS HEAVY UP AND LIGHT DOWN" #x00257f) - ("UPPER HALF BLOCK" #x002580) - ("LOWER ONE EIGHTH BLOCK" #x002581) - ("LOWER ONE QUARTER BLOCK" #x002582) - ("LOWER THREE EIGHTHS BLOCK" #x002583) - ("LOWER HALF BLOCK" #x002584) - ("LOWER FIVE EIGHTHS BLOCK" #x002585) - ("LOWER THREE QUARTERS BLOCK" #x002586) - ("LOWER SEVEN EIGHTHS BLOCK" #x002587) - ("FULL BLOCK" #x002588) - ("LEFT SEVEN EIGHTHS BLOCK" #x002589) - ("LEFT THREE QUARTERS BLOCK" #x00258a) - ("LEFT FIVE EIGHTHS BLOCK" #x00258b) - ("LEFT HALF BLOCK" #x00258c) - ("LEFT THREE EIGHTHS BLOCK" #x00258d) - ("LEFT ONE QUARTER BLOCK" #x00258e) - ("LEFT ONE EIGHTH BLOCK" #x00258f) - ("RIGHT HALF BLOCK" #x002590) - ("LIGHT SHADE" #x002591) - ("MEDIUM SHADE" #x002592) - ("DARK SHADE" #x002593) - ("UPPER ONE EIGHTH BLOCK" #x002594) - ("RIGHT ONE EIGHTH BLOCK" #x002595) - ("QUADRANT LOWER LEFT" #x002596) - ("QUADRANT LOWER RIGHT" #x002597) - ("QUADRANT UPPER LEFT" #x002598) - ("QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT" #x002599) - ("QUADRANT UPPER LEFT AND LOWER RIGHT" #x00259a) - ("QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT" #x00259b) - ("QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT" #x00259c) - ("QUADRANT UPPER RIGHT" #x00259d) - ("QUADRANT UPPER RIGHT AND LOWER LEFT" #x00259e) - ("QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT" #x00259f) - ("BLACK SQUARE" #x0025a0) - ("WHITE SQUARE" #x0025a1) - ("WHITE SQUARE WITH ROUNDED CORNERS" #x0025a2) - ("WHITE SQUARE CONTAINING BLACK SMALL SQUARE" #x0025a3) - ("SQUARE WITH HORIZONTAL FILL" #x0025a4) - ("SQUARE WITH VERTICAL FILL" #x0025a5) - ("SQUARE WITH ORTHOGONAL CROSSHATCH FILL" #x0025a6) - ("SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL" #x0025a7) - ("SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL" #x0025a8) - ("SQUARE WITH DIAGONAL CROSSHATCH FILL" #x0025a9) - ("BLACK SMALL SQUARE" #x0025aa) - ("WHITE SMALL SQUARE" #x0025ab) - ("BLACK RECTANGLE" #x0025ac) - ("WHITE RECTANGLE" #x0025ad) - ("BLACK VERTICAL RECTANGLE" #x0025ae) - ("WHITE VERTICAL RECTANGLE" #x0025af) - ("BLACK PARALLELOGRAM" #x0025b0) - ("WHITE PARALLELOGRAM" #x0025b1) - ("BLACK UP-POINTING TRIANGLE" #x0025b2) - ("WHITE UP-POINTING TRIANGLE" #x0025b3) - ("BLACK UP-POINTING SMALL TRIANGLE" #x0025b4) - ("WHITE UP-POINTING SMALL TRIANGLE" #x0025b5) - ("BLACK RIGHT-POINTING TRIANGLE" #x0025b6) - ("WHITE RIGHT-POINTING TRIANGLE" #x0025b7) - ("BLACK RIGHT-POINTING SMALL TRIANGLE" #x0025b8) - ("WHITE RIGHT-POINTING SMALL TRIANGLE" #x0025b9) - ("BLACK RIGHT-POINTING POINTER" #x0025ba) - ("WHITE RIGHT-POINTING POINTER" #x0025bb) - ("BLACK DOWN-POINTING TRIANGLE" #x0025bc) - ("WHITE DOWN-POINTING TRIANGLE" #x0025bd) - ("BLACK DOWN-POINTING SMALL TRIANGLE" #x0025be) - ("WHITE DOWN-POINTING SMALL TRIANGLE" #x0025bf) - ("BLACK LEFT-POINTING TRIANGLE" #x0025c0) - ("WHITE LEFT-POINTING TRIANGLE" #x0025c1) - ("BLACK LEFT-POINTING SMALL TRIANGLE" #x0025c2) - ("WHITE LEFT-POINTING SMALL TRIANGLE" #x0025c3) - ("BLACK LEFT-POINTING POINTER" #x0025c4) - ("WHITE LEFT-POINTING POINTER" #x0025c5) - ("BLACK DIAMOND" #x0025c6) - ("WHITE DIAMOND" #x0025c7) - ("WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND" #x0025c8) - ("FISHEYE" #x0025c9) - ("LOZENGE" #x0025ca) - ("WHITE CIRCLE" #x0025cb) - ("DOTTED CIRCLE" #x0025cc) - ("CIRCLE WITH VERTICAL FILL" #x0025cd) - ("BULLSEYE" #x0025ce) - ("BLACK CIRCLE" #x0025cf) - ("CIRCLE WITH LEFT HALF BLACK" #x0025d0) - ("CIRCLE WITH RIGHT HALF BLACK" #x0025d1) - ("CIRCLE WITH LOWER HALF BLACK" #x0025d2) - ("CIRCLE WITH UPPER HALF BLACK" #x0025d3) - ("CIRCLE WITH UPPER RIGHT QUADRANT BLACK" #x0025d4) - ("CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK" #x0025d5) - ("LEFT HALF BLACK CIRCLE" #x0025d6) - ("RIGHT HALF BLACK CIRCLE" #x0025d7) - ("INVERSE BULLET" #x0025d8) - ("INVERSE WHITE CIRCLE" #x0025d9) - ("UPPER HALF INVERSE WHITE CIRCLE" #x0025da) - ("LOWER HALF INVERSE WHITE CIRCLE" #x0025db) - ("UPPER LEFT QUADRANT CIRCULAR ARC" #x0025dc) - ("UPPER RIGHT QUADRANT CIRCULAR ARC" #x0025dd) - ("LOWER RIGHT QUADRANT CIRCULAR ARC" #x0025de) - ("LOWER LEFT QUADRANT CIRCULAR ARC" #x0025df) - ("UPPER HALF CIRCLE" #x0025e0) - ("LOWER HALF CIRCLE" #x0025e1) - ("BLACK LOWER RIGHT TRIANGLE" #x0025e2) - ("BLACK LOWER LEFT TRIANGLE" #x0025e3) - ("BLACK UPPER LEFT TRIANGLE" #x0025e4) - ("BLACK UPPER RIGHT TRIANGLE" #x0025e5) - ("WHITE BULLET" #x0025e6) - ("SQUARE WITH LEFT HALF BLACK" #x0025e7) - ("SQUARE WITH RIGHT HALF BLACK" #x0025e8) - ("SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK" #x0025e9) - ("SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK" #x0025ea) - ("WHITE SQUARE WITH VERTICAL BISECTING LINE" #x0025eb) - ("WHITE UP-POINTING TRIANGLE WITH DOT" #x0025ec) - ("UP-POINTING TRIANGLE WITH LEFT HALF BLACK" #x0025ed) - ("UP-POINTING TRIANGLE WITH RIGHT HALF BLACK" #x0025ee) - ("LARGE CIRCLE" #x0025ef) - ("WHITE SQUARE WITH UPPER LEFT QUADRANT" #x0025f0) - ("WHITE SQUARE WITH LOWER LEFT QUADRANT" #x0025f1) - ("WHITE SQUARE WITH LOWER RIGHT QUADRANT" #x0025f2) - ("WHITE SQUARE WITH UPPER RIGHT QUADRANT" #x0025f3) - ("WHITE CIRCLE WITH UPPER LEFT QUADRANT" #x0025f4) - ("WHITE CIRCLE WITH LOWER LEFT QUADRANT" #x0025f5) - ("WHITE CIRCLE WITH LOWER RIGHT QUADRANT" #x0025f6) - ("WHITE CIRCLE WITH UPPER RIGHT QUADRANT" #x0025f7) - ("UPPER LEFT TRIANGLE" #x0025f8) - ("UPPER RIGHT TRIANGLE" #x0025f9) - ("LOWER LEFT TRIANGLE" #x0025fa) - ("WHITE MEDIUM SQUARE" #x0025fb) - ("BLACK MEDIUM SQUARE" #x0025fc) - ("WHITE MEDIUM SMALL SQUARE" #x0025fd) - ("BLACK MEDIUM SMALL SQUARE" #x0025fe) - ("LOWER RIGHT TRIANGLE" #x0025ff) - ("BLACK SUN WITH RAYS" #x002600) - ("CLOUD" #x002601) - ("UMBRELLA" #x002602) - ("SNOWMAN" #x002603) - ("COMET" #x002604) - ("BLACK STAR" #x002605) - ("WHITE STAR" #x002606) - ("LIGHTNING" #x002607) - ("THUNDERSTORM" #x002608) - ("SUN" #x002609) - ("ASCENDING NODE" #x00260a) - ("DESCENDING NODE" #x00260b) - ("CONJUNCTION" #x00260c) - ("OPPOSITION" #x00260d) - ("BLACK TELEPHONE" #x00260e) - ("WHITE TELEPHONE" #x00260f) - ("BALLOT BOX" #x002610) - ("BALLOT BOX WITH CHECK" #x002611) - ("BALLOT BOX WITH X" #x002612) - ("SALTIRE" #x002613) - ("WHITE SHOGI PIECE" #x002616) - ("BLACK SHOGI PIECE" #x002617) - ("REVERSED ROTATED FLORAL HEART BULLET" #x002619) - ("BLACK LEFT POINTING INDEX" #x00261a) - ("BLACK RIGHT POINTING INDEX" #x00261b) - ("WHITE LEFT POINTING INDEX" #x00261c) - ("WHITE UP POINTING INDEX" #x00261d) - ("WHITE RIGHT POINTING INDEX" #x00261e) - ("WHITE DOWN POINTING INDEX" #x00261f) - ("SKULL AND CROSSBONES" #x002620) - ("CAUTION SIGN" #x002621) - ("RADIOACTIVE SIGN" #x002622) - ("BIOHAZARD SIGN" #x002623) - ("CADUCEUS" #x002624) - ("ANKH" #x002625) - ("ORTHODOX CROSS" #x002626) - ("CHI RHO" #x002627) - ("CROSS OF LORRAINE" #x002628) - ("CROSS OF JERUSALEM" #x002629) - ("STAR AND CRESCENT" #x00262a) - ("FARSI SYMBOL" #x00262b) - ("ADI SHAKTI" #x00262c) - ("HAMMER AND SICKLE" #x00262d) - ("PEACE SYMBOL" #x00262e) - ("YIN YANG" #x00262f) - ("TRIGRAM FOR HEAVEN" #x002630) - ("TRIGRAM FOR LAKE" #x002631) - ("TRIGRAM FOR FIRE" #x002632) - ("TRIGRAM FOR THUNDER" #x002633) - ("TRIGRAM FOR WIND" #x002634) - ("TRIGRAM FOR WATER" #x002635) - ("TRIGRAM FOR MOUNTAIN" #x002636) - ("TRIGRAM FOR EARTH" #x002637) - ("WHEEL OF DHARMA" #x002638) - ("WHITE FROWNING FACE" #x002639) - ("WHITE SMILING FACE" #x00263a) - ("BLACK SMILING FACE" #x00263b) - ("WHITE SUN WITH RAYS" #x00263c) - ("FIRST QUARTER MOON" #x00263d) - ("LAST QUARTER MOON" #x00263e) - ("MERCURY" #x00263f) - ("FEMALE SIGN" #x002640) - ("EARTH" #x002641) - ("MALE SIGN" #x002642) - ("JUPITER" #x002643) - ("SATURN" #x002644) - ("URANUS" #x002645) - ("NEPTUNE" #x002646) - ("PLUTO" #x002647) - ("ARIES" #x002648) - ("TAURUS" #x002649) - ("GEMINI" #x00264a) - ("CANCER" #x00264b) - ("LEO" #x00264c) - ("VIRGO" #x00264d) - ("LIBRA" #x00264e) - ("SCORPIUS" #x00264f) - ("SAGITTARIUS" #x002650) - ("CAPRICORN" #x002651) - ("AQUARIUS" #x002652) - ("PISCES" #x002653) - ("WHITE CHESS KING" #x002654) - ("WHITE CHESS QUEEN" #x002655) - ("WHITE CHESS ROOK" #x002656) - ("WHITE CHESS BISHOP" #x002657) - ("WHITE CHESS KNIGHT" #x002658) - ("WHITE CHESS PAWN" #x002659) - ("BLACK CHESS KING" #x00265a) - ("BLACK CHESS QUEEN" #x00265b) - ("BLACK CHESS ROOK" #x00265c) - ("BLACK CHESS BISHOP" #x00265d) - ("BLACK CHESS KNIGHT" #x00265e) - ("BLACK CHESS PAWN" #x00265f) - ("BLACK SPADE SUIT" #x002660) - ("WHITE HEART SUIT" #x002661) - ("WHITE DIAMOND SUIT" #x002662) - ("BLACK CLUB SUIT" #x002663) - ("WHITE SPADE SUIT" #x002664) - ("BLACK HEART SUIT" #x002665) - ("BLACK DIAMOND SUIT" #x002666) - ("WHITE CLUB SUIT" #x002667) - ("HOT SPRINGS" #x002668) - ("QUARTER NOTE" #x002669) - ("EIGHTH NOTE" #x00266a) - ("BEAMED EIGHTH NOTES" #x00266b) - ("BEAMED SIXTEENTH NOTES" #x00266c) - ("MUSIC FLAT SIGN" #x00266d) - ("MUSIC NATURAL SIGN" #x00266e) - ("MUSIC SHARP SIGN" #x00266f) - ("WEST SYRIAC CROSS" #x002670) - ("EAST SYRIAC CROSS" #x002671) - ("UNIVERSAL RECYCLING SYMBOL" #x002672) - ("RECYCLING SYMBOL FOR TYPE-1 PLASTICS" #x002673) - ("RECYCLING SYMBOL FOR TYPE-2 PLASTICS" #x002674) - ("RECYCLING SYMBOL FOR TYPE-3 PLASTICS" #x002675) - ("RECYCLING SYMBOL FOR TYPE-4 PLASTICS" #x002676) - ("RECYCLING SYMBOL FOR TYPE-5 PLASTICS" #x002677) - ("RECYCLING SYMBOL FOR TYPE-6 PLASTICS" #x002678) - ("RECYCLING SYMBOL FOR TYPE-7 PLASTICS" #x002679) - ("RECYCLING SYMBOL FOR GENERIC MATERIALS" #x00267a) - ("BLACK UNIVERSAL RECYCLING SYMBOL" #x00267b) - ("RECYCLED PAPER SYMBOL" #x00267c) - ("PARTIALLY-RECYCLED PAPER SYMBOL" #x00267d) - ("DIE FACE-1" #x002680) - ("DIE FACE-2" #x002681) - ("DIE FACE-3" #x002682) - ("DIE FACE-4" #x002683) - ("DIE FACE-5" #x002684) - ("DIE FACE-6" #x002685) - ("WHITE CIRCLE WITH DOT RIGHT" #x002686) - ("WHITE CIRCLE WITH TWO DOTS" #x002687) - ("BLACK CIRCLE WITH WHITE DOT RIGHT" #x002688) - ("BLACK CIRCLE WITH TWO WHITE DOTS" #x002689) - ("UPPER BLADE SCISSORS" #x002701) - ("BLACK SCISSORS" #x002702) - ("LOWER BLADE SCISSORS" #x002703) - ("WHITE SCISSORS" #x002704) - ("TELEPHONE LOCATION SIGN" #x002706) - ("TAPE DRIVE" #x002707) - ("AIRPLANE" #x002708) - ("ENVELOPE" #x002709) - ("VICTORY HAND" #x00270c) - ("WRITING HAND" #x00270d) - ("LOWER RIGHT PENCIL" #x00270e) - ("PENCIL" #x00270f) - ("UPPER RIGHT PENCIL" #x002710) - ("WHITE NIB" #x002711) - ("BLACK NIB" #x002712) - ("CHECK MARK" #x002713) - ("HEAVY CHECK MARK" #x002714) - ("MULTIPLICATION X" #x002715) - ("HEAVY MULTIPLICATION X" #x002716) - ("BALLOT X" #x002717) - ("HEAVY BALLOT X" #x002718) - ("OUTLINED GREEK CROSS" #x002719) - ("HEAVY GREEK CROSS" #x00271a) - ("OPEN CENTRE CROSS" #x00271b) - ("HEAVY OPEN CENTRE CROSS" #x00271c) - ("LATIN CROSS" #x00271d) - ("SHADOWED WHITE LATIN CROSS" #x00271e) - ("OUTLINED LATIN CROSS" #x00271f) - ("MALTESE CROSS" #x002720) - ("STAR OF DAVID" #x002721) - ("FOUR TEARDROP-SPOKED ASTERISK" #x002722) - ("FOUR BALLOON-SPOKED ASTERISK" #x002723) - ("HEAVY FOUR BALLOON-SPOKED ASTERISK" #x002724) - ("FOUR CLUB-SPOKED ASTERISK" #x002725) - ("BLACK FOUR POINTED STAR" #x002726) - ("WHITE FOUR POINTED STAR" #x002727) - ("STRESS OUTLINED WHITE STAR" #x002729) - ("CIRCLED WHITE STAR" #x00272a) - ("OPEN CENTRE BLACK STAR" #x00272b) - ("BLACK CENTRE WHITE STAR" #x00272c) - ("OUTLINED BLACK STAR" #x00272d) - ("HEAVY OUTLINED BLACK STAR" #x00272e) - ("PINWHEEL STAR" #x00272f) - ("SHADOWED WHITE STAR" #x002730) - ("HEAVY ASTERISK" #x002731) - ("OPEN CENTRE ASTERISK" #x002732) - ("EIGHT SPOKED ASTERISK" #x002733) - ("EIGHT POINTED BLACK STAR" #x002734) - ("EIGHT POINTED PINWHEEL STAR" #x002735) - ("SIX POINTED BLACK STAR" #x002736) - ("EIGHT POINTED RECTILINEAR BLACK STAR" #x002737) - ("HEAVY EIGHT POINTED RECTILINEAR BLACK STAR" #x002738) - ("TWELVE POINTED BLACK STAR" #x002739) - ("SIXTEEN POINTED ASTERISK" #x00273a) - ("TEARDROP-SPOKED ASTERISK" #x00273b) - ("OPEN CENTRE TEARDROP-SPOKED ASTERISK" #x00273c) - ("HEAVY TEARDROP-SPOKED ASTERISK" #x00273d) - ("SIX PETALLED BLACK AND WHITE FLORETTE" #x00273e) - ("BLACK FLORETTE" #x00273f) - ("WHITE FLORETTE" #x002740) - ("EIGHT PETALLED OUTLINED BLACK FLORETTE" #x002741) - ("CIRCLED OPEN CENTRE EIGHT POINTED STAR" #x002742) - ("HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK" #x002743) - ("SNOWFLAKE" #x002744) - ("TIGHT TRIFOLIATE SNOWFLAKE" #x002745) - ("HEAVY CHEVRON SNOWFLAKE" #x002746) - ("SPARKLE" #x002747) - ("HEAVY SPARKLE" #x002748) - ("BALLOON-SPOKED ASTERISK" #x002749) - ("EIGHT TEARDROP-SPOKED PROPELLER ASTERISK" #x00274a) - ("HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK" #x00274b) - ("SHADOWED WHITE CIRCLE" #x00274d) - ("LOWER RIGHT DROP-SHADOWED WHITE SQUARE" #x00274f) - ("UPPER RIGHT DROP-SHADOWED WHITE SQUARE" #x002750) - ("LOWER RIGHT SHADOWED WHITE SQUARE" #x002751) - ("UPPER RIGHT SHADOWED WHITE SQUARE" #x002752) - ("BLACK DIAMOND MINUS WHITE X" #x002756) - ("LIGHT VERTICAL BAR" #x002758) - ("MEDIUM VERTICAL BAR" #x002759) - ("HEAVY VERTICAL BAR" #x00275a) - ("HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT" #x00275b) - ("HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT" #x00275c) - ("HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT" #x00275d) - ("HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT" #x00275e) - ("CURVED STEM PARAGRAPH SIGN ORNAMENT" #x002761) - ("HEAVY EXCLAMATION MARK ORNAMENT" #x002762) - ("HEAVY HEART EXCLAMATION MARK ORNAMENT" #x002763) - ("HEAVY BLACK HEART" #x002764) - ("ROTATED HEAVY BLACK HEART BULLET" #x002765) - ("FLORAL HEART" #x002766) - ("ROTATED FLORAL HEART BULLET" #x002767) - ("MEDIUM LEFT PARENTHESIS ORNAMENT" #x002768) - ("MEDIUM RIGHT PARENTHESIS ORNAMENT" #x002769) - ("MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT" #x00276a) - ("MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT" #x00276b) - ("MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT" #x00276c) - ("MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT" #x00276d) - ("HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT" #x00276e) - ("HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT" #x00276f) - ("HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT" #x002770) - ("HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT" #x002771) - ("LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT" #x002772) - ("LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT" #x002773) - ("MEDIUM LEFT CURLY BRACKET ORNAMENT" #x002774) - ("MEDIUM RIGHT CURLY BRACKET ORNAMENT" #x002775) - ("DINGBAT NEGATIVE CIRCLED DIGIT ONE" #x002776) - ("DINGBAT NEGATIVE CIRCLED DIGIT TWO" #x002777) - ("DINGBAT NEGATIVE CIRCLED DIGIT THREE" #x002778) - ("DINGBAT NEGATIVE CIRCLED DIGIT FOUR" #x002779) - ("DINGBAT NEGATIVE CIRCLED DIGIT FIVE" #x00277a) - ("DINGBAT NEGATIVE CIRCLED DIGIT SIX" #x00277b) - ("DINGBAT NEGATIVE CIRCLED DIGIT SEVEN" #x00277c) - ("DINGBAT NEGATIVE CIRCLED DIGIT EIGHT" #x00277d) - ("DINGBAT NEGATIVE CIRCLED DIGIT NINE" #x00277e) - ("DINGBAT NEGATIVE CIRCLED NUMBER TEN" #x00277f) - ("DINGBAT CIRCLED SANS-SERIF DIGIT ONE" #x002780) - ("DINGBAT CIRCLED SANS-SERIF DIGIT TWO" #x002781) - ("DINGBAT CIRCLED SANS-SERIF DIGIT THREE" #x002782) - ("DINGBAT CIRCLED SANS-SERIF DIGIT FOUR" #x002783) - ("DINGBAT CIRCLED SANS-SERIF DIGIT FIVE" #x002784) - ("DINGBAT CIRCLED SANS-SERIF DIGIT SIX" #x002785) - ("DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN" #x002786) - ("DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT" #x002787) - ("DINGBAT CIRCLED SANS-SERIF DIGIT NINE" #x002788) - ("DINGBAT CIRCLED SANS-SERIF NUMBER TEN" #x002789) - ("DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE" #x00278a) - ("DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO" #x00278b) - ("DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE" #x00278c) - ("DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR" #x00278d) - ("DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE" #x00278e) - ("DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX" #x00278f) - ("DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN" #x002790) - ("DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT" #x002791) - ("DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE" #x002792) - ("DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN" #x002793) - ("HEAVY WIDE-HEADED RIGHTWARDS ARROW" #x002794) - ("HEAVY SOUTH EAST ARROW" #x002798) - ("HEAVY RIGHTWARDS ARROW" #x002799) - ("HEAVY NORTH EAST ARROW" #x00279a) - ("DRAFTING POINT RIGHTWARDS ARROW" #x00279b) - ("HEAVY ROUND-TIPPED RIGHTWARDS ARROW" #x00279c) - ("TRIANGLE-HEADED RIGHTWARDS ARROW" #x00279d) - ("HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW" #x00279e) - ("DASHED TRIANGLE-HEADED RIGHTWARDS ARROW" #x00279f) - ("HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW" #x0027a0) - ("BLACK RIGHTWARDS ARROW" #x0027a1) - ("THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD" #x0027a2) - ("THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD" #x0027a3) - ("BLACK RIGHTWARDS ARROWHEAD" #x0027a4) - ("HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW" #x0027a5) - ("HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW" #x0027a6) - ("SQUAT BLACK RIGHTWARDS ARROW" #x0027a7) - ("HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW" #x0027a8) - ("RIGHT-SHADED WHITE RIGHTWARDS ARROW" #x0027a9) - ("LEFT-SHADED WHITE RIGHTWARDS ARROW" #x0027aa) - ("BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW" #x0027ab) - ("FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW" #x0027ac) - ("HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW" #x0027ad) - ("HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW" #x0027ae) - ("NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW" #x0027af) - ("NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW" #x0027b1) - ("CIRCLED HEAVY WHITE RIGHTWARDS ARROW" #x0027b2) - ("WHITE-FEATHERED RIGHTWARDS ARROW" #x0027b3) - ("BLACK-FEATHERED SOUTH EAST ARROW" #x0027b4) - ("BLACK-FEATHERED RIGHTWARDS ARROW" #x0027b5) - ("BLACK-FEATHERED NORTH EAST ARROW" #x0027b6) - ("HEAVY BLACK-FEATHERED SOUTH EAST ARROW" #x0027b7) - ("HEAVY BLACK-FEATHERED RIGHTWARDS ARROW" #x0027b8) - ("HEAVY BLACK-FEATHERED NORTH EAST ARROW" #x0027b9) - ("TEARDROP-BARBED RIGHTWARDS ARROW" #x0027ba) - ("HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW" #x0027bb) - ("WEDGE-TAILED RIGHTWARDS ARROW" #x0027bc) - ("HEAVY WEDGE-TAILED RIGHTWARDS ARROW" #x0027bd) - ("OPEN-OUTLINED RIGHTWARDS ARROW" #x0027be) - ("WHITE DIAMOND WITH CENTRED DOT" #x0027d0) - ("AND WITH DOT" #x0027d1) - ("ELEMENT OF OPENING UPWARDS" #x0027d2) - ("LOWER RIGHT CORNER WITH DOT" #x0027d3) - ("UPPER LEFT CORNER WITH DOT" #x0027d4) - ("LEFT OUTER JOIN" #x0027d5) - ("RIGHT OUTER JOIN" #x0027d6) - ("FULL OUTER JOIN" #x0027d7) - ("LARGE UP TACK" #x0027d8) - ("LARGE DOWN TACK" #x0027d9) - ("LEFT AND RIGHT DOUBLE TURNSTILE" #x0027da) - ("LEFT AND RIGHT TACK" #x0027db) - ("LEFT MULTIMAP" #x0027dc) - ("LONG RIGHT TACK" #x0027dd) - ("LONG LEFT TACK" #x0027de) - ("UP TACK WITH CIRCLE ABOVE" #x0027df) - ("LOZENGE DIVIDED BY HORIZONTAL RULE" #x0027e0) - ("WHITE CONCAVE-SIDED DIAMOND" #x0027e1) - ("WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK" #x0027e2) - ("WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK" #x0027e3) - ("WHITE SQUARE WITH LEFTWARDS TICK" #x0027e4) - ("WHITE SQUARE WITH RIGHTWARDS TICK" #x0027e5) - ("MATHEMATICAL LEFT WHITE SQUARE BRACKET" #x0027e6) - ("MATHEMATICAL RIGHT WHITE SQUARE BRACKET" #x0027e7) - ("MATHEMATICAL LEFT ANGLE BRACKET" #x0027e8) - ("MATHEMATICAL RIGHT ANGLE BRACKET" #x0027e9) - ("MATHEMATICAL LEFT DOUBLE ANGLE BRACKET" #x0027ea) - ("MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET" #x0027eb) - ("UPWARDS QUADRUPLE ARROW" #x0027f0) - ("DOWNWARDS QUADRUPLE ARROW" #x0027f1) - ("ANTICLOCKWISE GAPPED CIRCLE ARROW" #x0027f2) - ("CLOCKWISE GAPPED CIRCLE ARROW" #x0027f3) - ("RIGHT ARROW WITH CIRCLED PLUS" #x0027f4) - ("LONG LEFTWARDS ARROW" #x0027f5) - ("LONG RIGHTWARDS ARROW" #x0027f6) - ("LONG LEFT RIGHT ARROW" #x0027f7) - ("LONG LEFTWARDS DOUBLE ARROW" #x0027f8) - ("LONG RIGHTWARDS DOUBLE ARROW" #x0027f9) - ("LONG LEFT RIGHT DOUBLE ARROW" #x0027fa) - ("LONG LEFTWARDS ARROW FROM BAR" #x0027fb) - ("LONG RIGHTWARDS ARROW FROM BAR" #x0027fc) - ("LONG LEFTWARDS DOUBLE ARROW FROM BAR" #x0027fd) - ("LONG RIGHTWARDS DOUBLE ARROW FROM BAR" #x0027fe) - ("LONG RIGHTWARDS SQUIGGLE ARROW" #x0027ff) - ("RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE" #x002900) - ("RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE" #x002901) - ("LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE" #x002902) - ("RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE" #x002903) - ("LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE" #x002904) - ("RIGHTWARDS TWO-HEADED ARROW FROM BAR" #x002905) - ("LEFTWARDS DOUBLE ARROW FROM BAR" #x002906) - ("RIGHTWARDS DOUBLE ARROW FROM BAR" #x002907) - ("DOWNWARDS ARROW WITH HORIZONTAL STROKE" #x002908) - ("UPWARDS ARROW WITH HORIZONTAL STROKE" #x002909) - ("UPWARDS TRIPLE ARROW" #x00290a) - ("DOWNWARDS TRIPLE ARROW" #x00290b) - ("LEFTWARDS DOUBLE DASH ARROW" #x00290c) - ("RIGHTWARDS DOUBLE DASH ARROW" #x00290d) - ("LEFTWARDS TRIPLE DASH ARROW" #x00290e) - ("RIGHTWARDS TRIPLE DASH ARROW" #x00290f) - ("RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW" #x002910) - ("RIGHTWARDS ARROW WITH DOTTED STEM" #x002911) - ("UPWARDS ARROW TO BAR" #x002912) - ("DOWNWARDS ARROW TO BAR" #x002913) - ("RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE" #x002914) - ("RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE" #x002915) - ("RIGHTWARDS TWO-HEADED ARROW WITH TAIL" #x002916) - ("RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE" #x002917) - ("RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE" #x002918) - ("LEFTWARDS ARROW-TAIL" #x002919) - ("RIGHTWARDS ARROW-TAIL" #x00291a) - ("LEFTWARDS DOUBLE ARROW-TAIL" #x00291b) - ("RIGHTWARDS DOUBLE ARROW-TAIL" #x00291c) - ("LEFTWARDS ARROW TO BLACK DIAMOND" #x00291d) - ("RIGHTWARDS ARROW TO BLACK DIAMOND" #x00291e) - ("LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND" #x00291f) - ("RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND" #x002920) - ("NORTH WEST AND SOUTH EAST ARROW" #x002921) - ("NORTH EAST AND SOUTH WEST ARROW" #x002922) - ("NORTH WEST ARROW WITH HOOK" #x002923) - ("NORTH EAST ARROW WITH HOOK" #x002924) - ("SOUTH EAST ARROW WITH HOOK" #x002925) - ("SOUTH WEST ARROW WITH HOOK" #x002926) - ("NORTH WEST ARROW AND NORTH EAST ARROW" #x002927) - ("NORTH EAST ARROW AND SOUTH EAST ARROW" #x002928) - ("SOUTH EAST ARROW AND SOUTH WEST ARROW" #x002929) - ("SOUTH WEST ARROW AND NORTH WEST ARROW" #x00292a) - ("RISING DIAGONAL CROSSING FALLING DIAGONAL" #x00292b) - ("FALLING DIAGONAL CROSSING RISING DIAGONAL" #x00292c) - ("SOUTH EAST ARROW CROSSING NORTH EAST ARROW" #x00292d) - ("NORTH EAST ARROW CROSSING SOUTH EAST ARROW" #x00292e) - ("FALLING DIAGONAL CROSSING NORTH EAST ARROW" #x00292f) - ("RISING DIAGONAL CROSSING SOUTH EAST ARROW" #x002930) - ("NORTH EAST ARROW CROSSING NORTH WEST ARROW" #x002931) - ("NORTH WEST ARROW CROSSING NORTH EAST ARROW" #x002932) - ("WAVE ARROW POINTING DIRECTLY RIGHT" #x002933) - ("ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS" #x002934) - ("ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS" #x002935) - ("ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS" #x002936) - ("ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS" #x002937) - ("RIGHT-SIDE ARC CLOCKWISE ARROW" #x002938) - ("LEFT-SIDE ARC ANTICLOCKWISE ARROW" #x002939) - ("TOP ARC ANTICLOCKWISE ARROW" #x00293a) - ("BOTTOM ARC ANTICLOCKWISE ARROW" #x00293b) - ("TOP ARC CLOCKWISE ARROW WITH MINUS" #x00293c) - ("TOP ARC ANTICLOCKWISE ARROW WITH PLUS" #x00293d) - ("LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW" #x00293e) - ("LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW" #x00293f) - ("ANTICLOCKWISE CLOSED CIRCLE ARROW" #x002940) - ("CLOCKWISE CLOSED CIRCLE ARROW" #x002941) - ("RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW" #x002942) - ("LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW" #x002943) - ("SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW" #x002944) - ("RIGHTWARDS ARROW WITH PLUS BELOW" #x002945) - ("LEFTWARDS ARROW WITH PLUS BELOW" #x002946) - ("RIGHTWARDS ARROW THROUGH X" #x002947) - ("LEFT RIGHT ARROW THROUGH SMALL CIRCLE" #x002948) - ("UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE" #x002949) - ("LEFT BARB UP RIGHT BARB DOWN HARPOON" #x00294a) - ("LEFT BARB DOWN RIGHT BARB UP HARPOON" #x00294b) - ("UP BARB RIGHT DOWN BARB LEFT HARPOON" #x00294c) - ("UP BARB LEFT DOWN BARB RIGHT HARPOON" #x00294d) - ("LEFT BARB UP RIGHT BARB UP HARPOON" #x00294e) - ("UP BARB RIGHT DOWN BARB RIGHT HARPOON" #x00294f) - ("LEFT BARB DOWN RIGHT BARB DOWN HARPOON" #x002950) - ("UP BARB LEFT DOWN BARB LEFT HARPOON" #x002951) - ("LEFTWARDS HARPOON WITH BARB UP TO BAR" #x002952) - ("RIGHTWARDS HARPOON WITH BARB UP TO BAR" #x002953) - ("UPWARDS HARPOON WITH BARB RIGHT TO BAR" #x002954) - ("DOWNWARDS HARPOON WITH BARB RIGHT TO BAR" #x002955) - ("LEFTWARDS HARPOON WITH BARB DOWN TO BAR" #x002956) - ("RIGHTWARDS HARPOON WITH BARB DOWN TO BAR" #x002957) - ("UPWARDS HARPOON WITH BARB LEFT TO BAR" #x002958) - ("DOWNWARDS HARPOON WITH BARB LEFT TO BAR" #x002959) - ("LEFTWARDS HARPOON WITH BARB UP FROM BAR" #x00295a) - ("RIGHTWARDS HARPOON WITH BARB UP FROM BAR" #x00295b) - ("UPWARDS HARPOON WITH BARB RIGHT FROM BAR" #x00295c) - ("DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR" #x00295d) - ("LEFTWARDS HARPOON WITH BARB DOWN FROM BAR" #x00295e) - ("RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR" #x00295f) - ("UPWARDS HARPOON WITH BARB LEFT FROM BAR" #x002960) - ("DOWNWARDS HARPOON WITH BARB LEFT FROM BAR" #x002961) - ("LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN" #x002962) - ("UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT" #x002963) - ("RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN" #x002964) - ("DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT" #x002965) - ("LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP" #x002966) - ("LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN" #x002967) - ("RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP" #x002968) - ("RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN" #x002969) - ("LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH" #x00296a) - ("LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH" #x00296b) - ("RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH" #x00296c) - ("RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH" #x00296d) - ("UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT" #x00296e) - ("DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT" #x00296f) - ("RIGHT DOUBLE ARROW WITH ROUNDED HEAD" #x002970) - ("EQUALS SIGN ABOVE RIGHTWARDS ARROW" #x002971) - ("TILDE OPERATOR ABOVE RIGHTWARDS ARROW" #x002972) - ("LEFTWARDS ARROW ABOVE TILDE OPERATOR" #x002973) - ("RIGHTWARDS ARROW ABOVE TILDE OPERATOR" #x002974) - ("RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO" #x002975) - ("LESS-THAN ABOVE LEFTWARDS ARROW" #x002976) - ("LEFTWARDS ARROW THROUGH LESS-THAN" #x002977) - ("GREATER-THAN ABOVE RIGHTWARDS ARROW" #x002978) - ("SUBSET ABOVE RIGHTWARDS ARROW" #x002979) - ("LEFTWARDS ARROW THROUGH SUBSET" #x00297a) - ("SUPERSET ABOVE LEFTWARDS ARROW" #x00297b) - ("LEFT FISH TAIL" #x00297c) - ("RIGHT FISH TAIL" #x00297d) - ("UP FISH TAIL" #x00297e) - ("DOWN FISH TAIL" #x00297f) - ("TRIPLE VERTICAL BAR DELIMITER" #x002980) - ("Z NOTATION SPOT" #x002981) - ("Z NOTATION TYPE COLON" #x002982) - ("LEFT WHITE CURLY BRACKET" #x002983) - ("RIGHT WHITE CURLY BRACKET" #x002984) - ("LEFT WHITE PARENTHESIS" #x002985) - ("RIGHT WHITE PARENTHESIS" #x002986) - ("Z NOTATION LEFT IMAGE BRACKET" #x002987) - ("Z NOTATION RIGHT IMAGE BRACKET" #x002988) - ("Z NOTATION LEFT BINDING BRACKET" #x002989) - ("Z NOTATION RIGHT BINDING BRACKET" #x00298a) - ("LEFT SQUARE BRACKET WITH UNDERBAR" #x00298b) - ("RIGHT SQUARE BRACKET WITH UNDERBAR" #x00298c) - ("LEFT SQUARE BRACKET WITH TICK IN TOP CORNER" #x00298d) - ("RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER" #x00298e) - ("LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER" #x00298f) - ("RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER" #x002990) - ("LEFT ANGLE BRACKET WITH DOT" #x002991) - ("RIGHT ANGLE BRACKET WITH DOT" #x002992) - ("LEFT ARC LESS-THAN BRACKET" #x002993) - ("RIGHT ARC GREATER-THAN BRACKET" #x002994) - ("DOUBLE LEFT ARC GREATER-THAN BRACKET" #x002995) - ("DOUBLE RIGHT ARC LESS-THAN BRACKET" #x002996) - ("LEFT BLACK TORTOISE SHELL BRACKET" #x002997) - ("RIGHT BLACK TORTOISE SHELL BRACKET" #x002998) - ("DOTTED FENCE" #x002999) - ("VERTICAL ZIGZAG LINE" #x00299a) - ("MEASURED ANGLE OPENING LEFT" #x00299b) - ("RIGHT ANGLE VARIANT WITH SQUARE" #x00299c) - ("MEASURED RIGHT ANGLE WITH DOT" #x00299d) - ("ANGLE WITH S INSIDE" #x00299e) - ("ACUTE ANGLE" #x00299f) - ("SPHERICAL ANGLE OPENING LEFT" #x0029a0) - ("SPHERICAL ANGLE OPENING UP" #x0029a1) - ("TURNED ANGLE" #x0029a2) - ("REVERSED ANGLE" #x0029a3) - ("ANGLE WITH UNDERBAR" #x0029a4) - ("REVERSED ANGLE WITH UNDERBAR" #x0029a5) - ("OBLIQUE ANGLE OPENING UP" #x0029a6) - ("OBLIQUE ANGLE OPENING DOWN" #x0029a7) - ("MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT" #x0029a8) - ("MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT" #x0029a9) - ("MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT" #x0029aa) - ("MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT" #x0029ab) - ("MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP" #x0029ac) - ("MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP" #x0029ad) - ("MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN" #x0029ae) - ("MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN" #x0029af) - ("REVERSED EMPTY SET" #x0029b0) - ("EMPTY SET WITH OVERBAR" #x0029b1) - ("EMPTY SET WITH SMALL CIRCLE ABOVE" #x0029b2) - ("EMPTY SET WITH RIGHT ARROW ABOVE" #x0029b3) - ("EMPTY SET WITH LEFT ARROW ABOVE" #x0029b4) - ("CIRCLE WITH HORIZONTAL BAR" #x0029b5) - ("CIRCLED VERTICAL BAR" #x0029b6) - ("CIRCLED PARALLEL" #x0029b7) - ("CIRCLED REVERSE SOLIDUS" #x0029b8) - ("CIRCLED PERPENDICULAR" #x0029b9) - ("CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR" #x0029ba) - ("CIRCLE WITH SUPERIMPOSED X" #x0029bb) - ("CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN" #x0029bc) - ("UP ARROW THROUGH CIRCLE" #x0029bd) - ("CIRCLED WHITE BULLET" #x0029be) - ("CIRCLED BULLET" #x0029bf) - ("CIRCLED LESS-THAN" #x0029c0) - ("CIRCLED GREATER-THAN" #x0029c1) - ("CIRCLE WITH SMALL CIRCLE TO THE RIGHT" #x0029c2) - ("CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT" #x0029c3) - ("SQUARED RISING DIAGONAL SLASH" #x0029c4) - ("SQUARED FALLING DIAGONAL SLASH" #x0029c5) - ("SQUARED ASTERISK" #x0029c6) - ("SQUARED SMALL CIRCLE" #x0029c7) - ("SQUARED SQUARE" #x0029c8) - ("TWO JOINED SQUARES" #x0029c9) - ("TRIANGLE WITH DOT ABOVE" #x0029ca) - ("TRIANGLE WITH UNDERBAR" #x0029cb) - ("S IN TRIANGLE" #x0029cc) - ("TRIANGLE WITH SERIFS AT BOTTOM" #x0029cd) - ("RIGHT TRIANGLE ABOVE LEFT TRIANGLE" #x0029ce) - ("LEFT TRIANGLE BESIDE VERTICAL BAR" #x0029cf) - ("VERTICAL BAR BESIDE RIGHT TRIANGLE" #x0029d0) - ("BOWTIE WITH LEFT HALF BLACK" #x0029d1) - ("BOWTIE WITH RIGHT HALF BLACK" #x0029d2) - ("BLACK BOWTIE" #x0029d3) - ("TIMES WITH LEFT HALF BLACK" #x0029d4) - ("TIMES WITH RIGHT HALF BLACK" #x0029d5) - ("WHITE HOURGLASS" #x0029d6) - ("BLACK HOURGLASS" #x0029d7) - ("LEFT WIGGLY FENCE" #x0029d8) - ("RIGHT WIGGLY FENCE" #x0029d9) - ("LEFT DOUBLE WIGGLY FENCE" #x0029da) - ("RIGHT DOUBLE WIGGLY FENCE" #x0029db) - ("INCOMPLETE INFINITY" #x0029dc) - ("TIE OVER INFINITY" #x0029dd) - ("INFINITY NEGATED WITH VERTICAL BAR" #x0029de) - ("DOUBLE-ENDED MULTIMAP" #x0029df) - ("SQUARE WITH CONTOURED OUTLINE" #x0029e0) - ("INCREASES AS" #x0029e1) - ("SHUFFLE PRODUCT" #x0029e2) - ("EQUALS SIGN AND SLANTED PARALLEL" #x0029e3) - ("EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE" #x0029e4) - ("IDENTICAL TO AND SLANTED PARALLEL" #x0029e5) - ("GLEICH STARK" #x0029e6) - ("THERMODYNAMIC" #x0029e7) - ("DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK" #x0029e8) - ("DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK" #x0029e9) - ("BLACK DIAMOND WITH DOWN ARROW" #x0029ea) - ("BLACK LOZENGE" #x0029eb) - ("WHITE CIRCLE WITH DOWN ARROW" #x0029ec) - ("BLACK CIRCLE WITH DOWN ARROW" #x0029ed) - ("ERROR-BARRED WHITE SQUARE" #x0029ee) - ("ERROR-BARRED BLACK SQUARE" #x0029ef) - ("ERROR-BARRED WHITE DIAMOND" #x0029f0) - ("ERROR-BARRED BLACK DIAMOND" #x0029f1) - ("ERROR-BARRED WHITE CIRCLE" #x0029f2) - ("ERROR-BARRED BLACK CIRCLE" #x0029f3) - ("RULE-DELAYED" #x0029f4) - ("REVERSE SOLIDUS OPERATOR" #x0029f5) - ("SOLIDUS WITH OVERBAR" #x0029f6) - ("REVERSE SOLIDUS WITH HORIZONTAL STROKE" #x0029f7) - ("BIG SOLIDUS" #x0029f8) - ("BIG REVERSE SOLIDUS" #x0029f9) - ("DOUBLE PLUS" #x0029fa) - ("TRIPLE PLUS" #x0029fb) - ("LEFT-POINTING CURVED ANGLE BRACKET" #x0029fc) - ("RIGHT-POINTING CURVED ANGLE BRACKET" #x0029fd) - ("TINY" #x0029fe) - ("MINY" #x0029ff) - ("N-ARY CIRCLED DOT OPERATOR" #x002a00) - ("N-ARY CIRCLED PLUS OPERATOR" #x002a01) - ("N-ARY CIRCLED TIMES OPERATOR" #x002a02) - ("N-ARY UNION OPERATOR WITH DOT" #x002a03) - ("N-ARY UNION OPERATOR WITH PLUS" #x002a04) - ("N-ARY SQUARE INTERSECTION OPERATOR" #x002a05) - ("N-ARY SQUARE UNION OPERATOR" #x002a06) - ("TWO LOGICAL AND OPERATOR" #x002a07) - ("TWO LOGICAL OR OPERATOR" #x002a08) - ("N-ARY TIMES OPERATOR" #x002a09) - ("MODULO TWO SUM" #x002a0a) - ("SUMMATION WITH INTEGRAL" #x002a0b) - ("QUADRUPLE INTEGRAL OPERATOR" #x002a0c) - ("FINITE PART INTEGRAL" #x002a0d) - ("INTEGRAL WITH DOUBLE STROKE" #x002a0e) - ("INTEGRAL AVERAGE WITH SLASH" #x002a0f) - ("CIRCULATION FUNCTION" #x002a10) - ("ANTICLOCKWISE INTEGRATION" #x002a11) - ("LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE" #x002a12) - ("LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE" #x002a13) - ("LINE INTEGRATION NOT INCLUDING THE POLE" #x002a14) - ("INTEGRAL AROUND A POINT OPERATOR" #x002a15) - ("QUATERNION INTEGRAL OPERATOR" #x002a16) - ("INTEGRAL WITH LEFTWARDS ARROW WITH HOOK" #x002a17) - ("INTEGRAL WITH TIMES SIGN" #x002a18) - ("INTEGRAL WITH INTERSECTION" #x002a19) - ("INTEGRAL WITH UNION" #x002a1a) - ("INTEGRAL WITH OVERBAR" #x002a1b) - ("INTEGRAL WITH UNDERBAR" #x002a1c) - ("JOIN" #x002a1d) - ("LARGE LEFT TRIANGLE OPERATOR" #x002a1e) - ("Z NOTATION SCHEMA COMPOSITION" #x002a1f) - ("Z NOTATION SCHEMA PIPING" #x002a20) - ("Z NOTATION SCHEMA PROJECTION" #x002a21) - ("PLUS SIGN WITH SMALL CIRCLE ABOVE" #x002a22) - ("PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE" #x002a23) - ("PLUS SIGN WITH TILDE ABOVE" #x002a24) - ("PLUS SIGN WITH DOT BELOW" #x002a25) - ("PLUS SIGN WITH TILDE BELOW" #x002a26) - ("PLUS SIGN WITH SUBSCRIPT TWO" #x002a27) - ("PLUS SIGN WITH BLACK TRIANGLE" #x002a28) - ("MINUS SIGN WITH COMMA ABOVE" #x002a29) - ("MINUS SIGN WITH DOT BELOW" #x002a2a) - ("MINUS SIGN WITH FALLING DOTS" #x002a2b) - ("MINUS SIGN WITH RISING DOTS" #x002a2c) - ("PLUS SIGN IN LEFT HALF CIRCLE" #x002a2d) - ("PLUS SIGN IN RIGHT HALF CIRCLE" #x002a2e) - ("VECTOR OR CROSS PRODUCT" #x002a2f) - ("MULTIPLICATION SIGN WITH DOT ABOVE" #x002a30) - ("MULTIPLICATION SIGN WITH UNDERBAR" #x002a31) - ("SEMIDIRECT PRODUCT WITH BOTTOM CLOSED" #x002a32) - ("SMASH PRODUCT" #x002a33) - ("MULTIPLICATION SIGN IN LEFT HALF CIRCLE" #x002a34) - ("MULTIPLICATION SIGN IN RIGHT HALF CIRCLE" #x002a35) - ("CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT" #x002a36) - ("MULTIPLICATION SIGN IN DOUBLE CIRCLE" #x002a37) - ("CIRCLED DIVISION SIGN" #x002a38) - ("PLUS SIGN IN TRIANGLE" #x002a39) - ("MINUS SIGN IN TRIANGLE" #x002a3a) - ("MULTIPLICATION SIGN IN TRIANGLE" #x002a3b) - ("INTERIOR PRODUCT" #x002a3c) - ("RIGHTHAND INTERIOR PRODUCT" #x002a3d) - ("Z NOTATION RELATIONAL COMPOSITION" #x002a3e) - ("AMALGAMATION OR COPRODUCT" #x002a3f) - ("INTERSECTION WITH DOT" #x002a40) - ("UNION WITH MINUS SIGN" #x002a41) - ("UNION WITH OVERBAR" #x002a42) - ("INTERSECTION WITH OVERBAR" #x002a43) - ("INTERSECTION WITH LOGICAL AND" #x002a44) - ("UNION WITH LOGICAL OR" #x002a45) - ("UNION ABOVE INTERSECTION" #x002a46) - ("INTERSECTION ABOVE UNION" #x002a47) - ("UNION ABOVE BAR ABOVE INTERSECTION" #x002a48) - ("INTERSECTION ABOVE BAR ABOVE UNION" #x002a49) - ("UNION BESIDE AND JOINED WITH UNION" #x002a4a) - ("INTERSECTION BESIDE AND JOINED WITH INTERSECTION" #x002a4b) - ("CLOSED UNION WITH SERIFS" #x002a4c) - ("CLOSED INTERSECTION WITH SERIFS" #x002a4d) - ("DOUBLE SQUARE INTERSECTION" #x002a4e) - ("DOUBLE SQUARE UNION" #x002a4f) - ("CLOSED UNION WITH SERIFS AND SMASH PRODUCT" #x002a50) - ("LOGICAL AND WITH DOT ABOVE" #x002a51) - ("LOGICAL OR WITH DOT ABOVE" #x002a52) - ("DOUBLE LOGICAL AND" #x002a53) - ("DOUBLE LOGICAL OR" #x002a54) - ("TWO INTERSECTING LOGICAL AND" #x002a55) - ("TWO INTERSECTING LOGICAL OR" #x002a56) - ("SLOPING LARGE OR" #x002a57) - ("SLOPING LARGE AND" #x002a58) - ("LOGICAL OR OVERLAPPING LOGICAL AND" #x002a59) - ("LOGICAL AND WITH MIDDLE STEM" #x002a5a) - ("LOGICAL OR WITH MIDDLE STEM" #x002a5b) - ("LOGICAL AND WITH HORIZONTAL DASH" #x002a5c) - ("LOGICAL OR WITH HORIZONTAL DASH" #x002a5d) - ("LOGICAL AND WITH DOUBLE OVERBAR" #x002a5e) - ("LOGICAL AND WITH UNDERBAR" #x002a5f) - ("LOGICAL AND WITH DOUBLE UNDERBAR" #x002a60) - ("SMALL VEE WITH UNDERBAR" #x002a61) - ("LOGICAL OR WITH DOUBLE OVERBAR" #x002a62) - ("LOGICAL OR WITH DOUBLE UNDERBAR" #x002a63) - ("Z NOTATION DOMAIN ANTIRESTRICTION" #x002a64) - ("Z NOTATION RANGE ANTIRESTRICTION" #x002a65) - ("EQUALS SIGN WITH DOT BELOW" #x002a66) - ("IDENTICAL WITH DOT ABOVE" #x002a67) - ("TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE" #x002a68) - ("TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE" #x002a69) - ("TILDE OPERATOR WITH DOT ABOVE" #x002a6a) - ("TILDE OPERATOR WITH RISING DOTS" #x002a6b) - ("SIMILAR MINUS SIMILAR" #x002a6c) - ("CONGRUENT WITH DOT ABOVE" #x002a6d) - ("EQUALS WITH ASTERISK" #x002a6e) - ("ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT" #x002a6f) - ("APPROXIMATELY EQUAL OR EQUAL TO" #x002a70) - ("EQUALS SIGN ABOVE PLUS SIGN" #x002a71) - ("PLUS SIGN ABOVE EQUALS SIGN" #x002a72) - ("EQUALS SIGN ABOVE TILDE OPERATOR" #x002a73) - ("DOUBLE COLON EQUAL" #x002a74) - ("TWO CONSECUTIVE EQUALS SIGNS" #x002a75) - ("THREE CONSECUTIVE EQUALS SIGNS" #x002a76) - ("EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW" #x002a77) - ("EQUIVALENT WITH FOUR DOTS ABOVE" #x002a78) - ("LESS-THAN WITH CIRCLE INSIDE" #x002a79) - ("GREATER-THAN WITH CIRCLE INSIDE" #x002a7a) - ("LESS-THAN WITH QUESTION MARK ABOVE" #x002a7b) - ("GREATER-THAN WITH QUESTION MARK ABOVE" #x002a7c) - ("LESS-THAN OR SLANTED EQUAL TO" #x002a7d) - ("GREATER-THAN OR SLANTED EQUAL TO" #x002a7e) - ("LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE" #x002a7f) - ("GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE" #x002a80) - ("LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE" #x002a81) - ("GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE" #x002a82) - ("LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT" #x002a83) - ("GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT" #x002a84) - ("LESS-THAN OR APPROXIMATE" #x002a85) - ("GREATER-THAN OR APPROXIMATE" #x002a86) - ("LESS-THAN AND SINGLE-LINE NOT EQUAL TO" #x002a87) - ("GREATER-THAN AND SINGLE-LINE NOT EQUAL TO" #x002a88) - ("LESS-THAN AND NOT APPROXIMATE" #x002a89) - ("GREATER-THAN AND NOT APPROXIMATE" #x002a8a) - ("LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN" #x002a8b) - ("GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN" #x002a8c) - ("LESS-THAN ABOVE SIMILAR OR EQUAL" #x002a8d) - ("GREATER-THAN ABOVE SIMILAR OR EQUAL" #x002a8e) - ("LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN" #x002a8f) - ("GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN" #x002a90) - ("LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL" #x002a91) - ("GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL" #x002a92) - ("LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL" #x002a93) - ("GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL" #x002a94) - ("SLANTED EQUAL TO OR LESS-THAN" #x002a95) - ("SLANTED EQUAL TO OR GREATER-THAN" #x002a96) - ("SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE" #x002a97) - ("SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE" #x002a98) - ("DOUBLE-LINE EQUAL TO OR LESS-THAN" #x002a99) - ("DOUBLE-LINE EQUAL TO OR GREATER-THAN" #x002a9a) - ("DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN" #x002a9b) - ("DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN" #x002a9c) - ("SIMILAR OR LESS-THAN" #x002a9d) - ("SIMILAR OR GREATER-THAN" #x002a9e) - ("SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN" #x002a9f) - ("SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN" #x002aa0) - ("DOUBLE NESTED LESS-THAN" #x002aa1) - ("DOUBLE NESTED GREATER-THAN" #x002aa2) - ("DOUBLE NESTED LESS-THAN WITH UNDERBAR" #x002aa3) - ("GREATER-THAN OVERLAPPING LESS-THAN" #x002aa4) - ("GREATER-THAN BESIDE LESS-THAN" #x002aa5) - ("LESS-THAN CLOSED BY CURVE" #x002aa6) - ("GREATER-THAN CLOSED BY CURVE" #x002aa7) - ("LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL" #x002aa8) - ("GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL" #x002aa9) - ("SMALLER THAN" #x002aaa) - ("LARGER THAN" #x002aab) - ("SMALLER THAN OR EQUAL TO" #x002aac) - ("LARGER THAN OR EQUAL TO" #x002aad) - ("EQUALS SIGN WITH BUMPY ABOVE" #x002aae) - ("PRECEDES ABOVE SINGLE-LINE EQUALS SIGN" #x002aaf) - ("SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN" #x002ab0) - ("PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO" #x002ab1) - ("SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO" #x002ab2) - ("PRECEDES ABOVE EQUALS SIGN" #x002ab3) - ("SUCCEEDS ABOVE EQUALS SIGN" #x002ab4) - ("PRECEDES ABOVE NOT EQUAL TO" #x002ab5) - ("SUCCEEDS ABOVE NOT EQUAL TO" #x002ab6) - ("PRECEDES ABOVE ALMOST EQUAL TO" #x002ab7) - ("SUCCEEDS ABOVE ALMOST EQUAL TO" #x002ab8) - ("PRECEDES ABOVE NOT ALMOST EQUAL TO" #x002ab9) - ("SUCCEEDS ABOVE NOT ALMOST EQUAL TO" #x002aba) - ("DOUBLE PRECEDES" #x002abb) - ("DOUBLE SUCCEEDS" #x002abc) - ("SUBSET WITH DOT" #x002abd) - ("SUPERSET WITH DOT" #x002abe) - ("SUBSET WITH PLUS SIGN BELOW" #x002abf) - ("SUPERSET WITH PLUS SIGN BELOW" #x002ac0) - ("SUBSET WITH MULTIPLICATION SIGN BELOW" #x002ac1) - ("SUPERSET WITH MULTIPLICATION SIGN BELOW" #x002ac2) - ("SUBSET OF OR EQUAL TO WITH DOT ABOVE" #x002ac3) - ("SUPERSET OF OR EQUAL TO WITH DOT ABOVE" #x002ac4) - ("SUBSET OF ABOVE EQUALS SIGN" #x002ac5) - ("SUPERSET OF ABOVE EQUALS SIGN" #x002ac6) - ("SUBSET OF ABOVE TILDE OPERATOR" #x002ac7) - ("SUPERSET OF ABOVE TILDE OPERATOR" #x002ac8) - ("SUBSET OF ABOVE ALMOST EQUAL TO" #x002ac9) - ("SUPERSET OF ABOVE ALMOST EQUAL TO" #x002aca) - ("SUBSET OF ABOVE NOT EQUAL TO" #x002acb) - ("SUPERSET OF ABOVE NOT EQUAL TO" #x002acc) - ("SQUARE LEFT OPEN BOX OPERATOR" #x002acd) - ("SQUARE RIGHT OPEN BOX OPERATOR" #x002ace) - ("CLOSED SUBSET" #x002acf) - ("CLOSED SUPERSET" #x002ad0) - ("CLOSED SUBSET OR EQUAL TO" #x002ad1) - ("CLOSED SUPERSET OR EQUAL TO" #x002ad2) - ("SUBSET ABOVE SUPERSET" #x002ad3) - ("SUPERSET ABOVE SUBSET" #x002ad4) - ("SUBSET ABOVE SUBSET" #x002ad5) - ("SUPERSET ABOVE SUPERSET" #x002ad6) - ("SUPERSET BESIDE SUBSET" #x002ad7) - ("SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET" #x002ad8) - ("ELEMENT OF OPENING DOWNWARDS" #x002ad9) - ("PITCHFORK WITH TEE TOP" #x002ada) - ("TRANSVERSAL INTERSECTION" #x002adb) - ("FORKING" #x002adc) - ("NONFORKING" #x002add) - ("SHORT LEFT TACK" #x002ade) - ("SHORT DOWN TACK" #x002adf) - ("SHORT UP TACK" #x002ae0) - ("PERPENDICULAR WITH S" #x002ae1) - ("VERTICAL BAR TRIPLE RIGHT TURNSTILE" #x002ae2) - ("DOUBLE VERTICAL BAR LEFT TURNSTILE" #x002ae3) - ("VERTICAL BAR DOUBLE LEFT TURNSTILE" #x002ae4) - ("DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE" #x002ae5) - ("LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL" #x002ae6) - ("SHORT DOWN TACK WITH OVERBAR" #x002ae7) - ("SHORT UP TACK WITH UNDERBAR" #x002ae8) - ("SHORT UP TACK ABOVE SHORT DOWN TACK" #x002ae9) - ("DOUBLE DOWN TACK" #x002aea) - ("DOUBLE UP TACK" #x002aeb) - ("DOUBLE STROKE NOT SIGN" #x002aec) - ("REVERSED DOUBLE STROKE NOT SIGN" #x002aed) - ("DOES NOT DIVIDE WITH REVERSED NEGATION SLASH" #x002aee) - ("VERTICAL LINE WITH CIRCLE ABOVE" #x002aef) - ("VERTICAL LINE WITH CIRCLE BELOW" #x002af0) - ("DOWN TACK WITH CIRCLE BELOW" #x002af1) - ("PARALLEL WITH HORIZONTAL STROKE" #x002af2) - ("PARALLEL WITH TILDE OPERATOR" #x002af3) - ("TRIPLE VERTICAL BAR BINARY RELATION" #x002af4) - ("TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE" #x002af5) - ("TRIPLE COLON OPERATOR" #x002af6) - ("TRIPLE NESTED LESS-THAN" #x002af7) - ("TRIPLE NESTED GREATER-THAN" #x002af8) - ("DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO" #x002af9) - ("DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO" #x002afa) - ("TRIPLE SOLIDUS BINARY RELATION" #x002afb) - ("LARGE TRIPLE VERTICAL BAR OPERATOR" #x002afc) - ("DOUBLE SOLIDUS OPERATOR" #x002afd) - ("WHITE VERTICAL BAR" #x002afe) - ("N-ARY WHITE VERTICAL BAR" #x002aff) - ("IDEOGRAPHIC SPACE" #x003000) - ("IDEOGRAPHIC COMMA" #x003001) - ("IDEOGRAPHIC FULL STOP" #x003002) - ("DITTO MARK" #x003003) - ("JAPANESE INDUSTRIAL STANDARD SYMBOL" #x003004) - ("IDEOGRAPHIC ITERATION MARK" #x003005) - ("IDEOGRAPHIC CLOSING MARK" #x003006) - ("IDEOGRAPHIC NUMBER ZERO" #x003007) - ("LEFT ANGLE BRACKET" #x003008) - ("RIGHT ANGLE BRACKET" #x003009) - ("LEFT DOUBLE ANGLE BRACKET" #x00300a) - ("RIGHT DOUBLE ANGLE BRACKET" #x00300b) - ("LEFT CORNER BRACKET" #x00300c) - ("RIGHT CORNER BRACKET" #x00300d) - ("LEFT WHITE CORNER BRACKET" #x00300e) - ("RIGHT WHITE CORNER BRACKET" #x00300f) - ("LEFT BLACK LENTICULAR BRACKET" #x003010) - ("RIGHT BLACK LENTICULAR BRACKET" #x003011) - ("POSTAL MARK" #x003012) - ("GETA MARK" #x003013) - ("LEFT TORTOISE SHELL BRACKET" #x003014) - ("RIGHT TORTOISE SHELL BRACKET" #x003015) - ("LEFT WHITE LENTICULAR BRACKET" #x003016) - ("RIGHT WHITE LENTICULAR BRACKET" #x003017) - ("LEFT WHITE TORTOISE SHELL BRACKET" #x003018) - ("RIGHT WHITE TORTOISE SHELL BRACKET" #x003019) - ("LEFT WHITE SQUARE BRACKET" #x00301a) - ("RIGHT WHITE SQUARE BRACKET" #x00301b) - ("WAVE DASH" #x00301c) - ("REVERSED DOUBLE PRIME QUOTATION MARK" #x00301d) - ("DOUBLE PRIME QUOTATION MARK" #x00301e) - ("LOW DOUBLE PRIME QUOTATION MARK" #x00301f) - ("POSTAL MARK FACE" #x003020) - ("HANGZHOU NUMERAL ONE" #x003021) - ("HANGZHOU NUMERAL TWO" #x003022) - ("HANGZHOU NUMERAL THREE" #x003023) - ("HANGZHOU NUMERAL FOUR" #x003024) - ("HANGZHOU NUMERAL FIVE" #x003025) - ("HANGZHOU NUMERAL SIX" #x003026) - ("HANGZHOU NUMERAL SEVEN" #x003027) - ("HANGZHOU NUMERAL EIGHT" #x003028) - ("HANGZHOU NUMERAL NINE" #x003029) - ("IDEOGRAPHIC LEVEL TONE MARK" #x00302a) - ("IDEOGRAPHIC RISING TONE MARK" #x00302b) - ("IDEOGRAPHIC DEPARTING TONE MARK" #x00302c) - ("IDEOGRAPHIC ENTERING TONE MARK" #x00302d) - ("HANGUL SINGLE DOT TONE MARK" #x00302e) - ("HANGUL DOUBLE DOT TONE MARK" #x00302f) - ("WAVY DASH" #x003030) - ("VERTICAL KANA REPEAT MARK" #x003031) - ("VERTICAL KANA REPEAT WITH VOICED SOUND MARK" #x003032) - ("VERTICAL KANA REPEAT MARK UPPER HALF" #x003033) - ("VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF" #x003034) - ("VERTICAL KANA REPEAT MARK LOWER HALF" #x003035) - ("CIRCLED POSTAL MARK" #x003036) - ("IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL" #x003037) - ("HANGZHOU NUMERAL TEN" #x003038) - ("HANGZHOU NUMERAL TWENTY" #x003039) - ("HANGZHOU NUMERAL THIRTY" #x00303a) - ("VERTICAL IDEOGRAPHIC ITERATION MARK" #x00303b) - ("MASU MARK" #x00303c) - ("PART ALTERNATION MARK" #x00303d) - ("IDEOGRAPHIC VARIATION INDICATOR" #x00303e) - ("IDEOGRAPHIC HALF FILL SPACE" #x00303f) - ("HIRAGANA LETTER SMALL A" #x003041) - ("HIRAGANA LETTER A" #x003042) - ("HIRAGANA LETTER SMALL I" #x003043) - ("HIRAGANA LETTER I" #x003044) - ("HIRAGANA LETTER SMALL U" #x003045) - ("HIRAGANA LETTER U" #x003046) - ("HIRAGANA LETTER SMALL E" #x003047) - ("HIRAGANA LETTER E" #x003048) - ("HIRAGANA LETTER SMALL O" #x003049) - ("HIRAGANA LETTER O" #x00304a) - ("HIRAGANA LETTER KA" #x00304b) - ("HIRAGANA LETTER GA" #x00304c) - ("HIRAGANA LETTER KI" #x00304d) - ("HIRAGANA LETTER GI" #x00304e) - ("HIRAGANA LETTER KU" #x00304f) - ("HIRAGANA LETTER GU" #x003050) - ("HIRAGANA LETTER KE" #x003051) - ("HIRAGANA LETTER GE" #x003052) - ("HIRAGANA LETTER KO" #x003053) - ("HIRAGANA LETTER GO" #x003054) - ("HIRAGANA LETTER SA" #x003055) - ("HIRAGANA LETTER ZA" #x003056) - ("HIRAGANA LETTER SI" #x003057) - ("HIRAGANA LETTER ZI" #x003058) - ("HIRAGANA LETTER SU" #x003059) - ("HIRAGANA LETTER ZU" #x00305a) - ("HIRAGANA LETTER SE" #x00305b) - ("HIRAGANA LETTER ZE" #x00305c) - ("HIRAGANA LETTER SO" #x00305d) - ("HIRAGANA LETTER ZO" #x00305e) - ("HIRAGANA LETTER TA" #x00305f) - ("HIRAGANA LETTER DA" #x003060) - ("HIRAGANA LETTER TI" #x003061) - ("HIRAGANA LETTER DI" #x003062) - ("HIRAGANA LETTER SMALL TU" #x003063) - ("HIRAGANA LETTER TU" #x003064) - ("HIRAGANA LETTER DU" #x003065) - ("HIRAGANA LETTER TE" #x003066) - ("HIRAGANA LETTER DE" #x003067) - ("HIRAGANA LETTER TO" #x003068) - ("HIRAGANA LETTER DO" #x003069) - ("HIRAGANA LETTER NA" #x00306a) - ("HIRAGANA LETTER NI" #x00306b) - ("HIRAGANA LETTER NU" #x00306c) - ("HIRAGANA LETTER NE" #x00306d) - ("HIRAGANA LETTER NO" #x00306e) - ("HIRAGANA LETTER HA" #x00306f) - ("HIRAGANA LETTER BA" #x003070) - ("HIRAGANA LETTER PA" #x003071) - ("HIRAGANA LETTER HI" #x003072) - ("HIRAGANA LETTER BI" #x003073) - ("HIRAGANA LETTER PI" #x003074) - ("HIRAGANA LETTER HU" #x003075) - ("HIRAGANA LETTER BU" #x003076) - ("HIRAGANA LETTER PU" #x003077) - ("HIRAGANA LETTER HE" #x003078) - ("HIRAGANA LETTER BE" #x003079) - ("HIRAGANA LETTER PE" #x00307a) - ("HIRAGANA LETTER HO" #x00307b) - ("HIRAGANA LETTER BO" #x00307c) - ("HIRAGANA LETTER PO" #x00307d) - ("HIRAGANA LETTER MA" #x00307e) - ("HIRAGANA LETTER MI" #x00307f) - ("HIRAGANA LETTER MU" #x003080) - ("HIRAGANA LETTER ME" #x003081) - ("HIRAGANA LETTER MO" #x003082) - ("HIRAGANA LETTER SMALL YA" #x003083) - ("HIRAGANA LETTER YA" #x003084) - ("HIRAGANA LETTER SMALL YU" #x003085) - ("HIRAGANA LETTER YU" #x003086) - ("HIRAGANA LETTER SMALL YO" #x003087) - ("HIRAGANA LETTER YO" #x003088) - ("HIRAGANA LETTER RA" #x003089) - ("HIRAGANA LETTER RI" #x00308a) - ("HIRAGANA LETTER RU" #x00308b) - ("HIRAGANA LETTER RE" #x00308c) - ("HIRAGANA LETTER RO" #x00308d) - ("HIRAGANA LETTER SMALL WA" #x00308e) - ("HIRAGANA LETTER WA" #x00308f) - ("HIRAGANA LETTER WI" #x003090) - ("HIRAGANA LETTER WE" #x003091) - ("HIRAGANA LETTER WO" #x003092) - ("HIRAGANA LETTER N" #x003093) - ("HIRAGANA LETTER VU" #x003094) - ("HIRAGANA LETTER SMALL KA" #x003095) - ("HIRAGANA LETTER SMALL KE" #x003096) - ("COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK" #x003099) - ("COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK" #x00309a) - ("KATAKANA-HIRAGANA VOICED SOUND MARK" #x00309b) - ("KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK" #x00309c) - ("HIRAGANA ITERATION MARK" #x00309d) - ("HIRAGANA VOICED ITERATION MARK" #x00309e) - ("HIRAGANA DIGRAPH YORI" #x00309f) - ("KATAKANA-HIRAGANA DOUBLE HYPHEN" #x0030a0) - ("KATAKANA LETTER SMALL A" #x0030a1) - ("KATAKANA LETTER A" #x0030a2) - ("KATAKANA LETTER SMALL I" #x0030a3) - ("KATAKANA LETTER I" #x0030a4) - ("KATAKANA LETTER SMALL U" #x0030a5) - ("KATAKANA LETTER U" #x0030a6) - ("KATAKANA LETTER SMALL E" #x0030a7) - ("KATAKANA LETTER E" #x0030a8) - ("KATAKANA LETTER SMALL O" #x0030a9) - ("KATAKANA LETTER O" #x0030aa) - ("KATAKANA LETTER KA" #x0030ab) - ("KATAKANA LETTER GA" #x0030ac) - ("KATAKANA LETTER KI" #x0030ad) - ("KATAKANA LETTER GI" #x0030ae) - ("KATAKANA LETTER KU" #x0030af) - ("KATAKANA LETTER GU" #x0030b0) - ("KATAKANA LETTER KE" #x0030b1) - ("KATAKANA LETTER GE" #x0030b2) - ("KATAKANA LETTER KO" #x0030b3) - ("KATAKANA LETTER GO" #x0030b4) - ("KATAKANA LETTER SA" #x0030b5) - ("KATAKANA LETTER ZA" #x0030b6) - ("KATAKANA LETTER SI" #x0030b7) - ("KATAKANA LETTER ZI" #x0030b8) - ("KATAKANA LETTER SU" #x0030b9) - ("KATAKANA LETTER ZU" #x0030ba) - ("KATAKANA LETTER SE" #x0030bb) - ("KATAKANA LETTER ZE" #x0030bc) - ("KATAKANA LETTER SO" #x0030bd) - ("KATAKANA LETTER ZO" #x0030be) - ("KATAKANA LETTER TA" #x0030bf) - ("KATAKANA LETTER DA" #x0030c0) - ("KATAKANA LETTER TI" #x0030c1) - ("KATAKANA LETTER DI" #x0030c2) - ("KATAKANA LETTER SMALL TU" #x0030c3) - ("KATAKANA LETTER TU" #x0030c4) - ("KATAKANA LETTER DU" #x0030c5) - ("KATAKANA LETTER TE" #x0030c6) - ("KATAKANA LETTER DE" #x0030c7) - ("KATAKANA LETTER TO" #x0030c8) - ("KATAKANA LETTER DO" #x0030c9) - ("KATAKANA LETTER NA" #x0030ca) - ("KATAKANA LETTER NI" #x0030cb) - ("KATAKANA LETTER NU" #x0030cc) - ("KATAKANA LETTER NE" #x0030cd) - ("KATAKANA LETTER NO" #x0030ce) - ("KATAKANA LETTER HA" #x0030cf) - ("KATAKANA LETTER BA" #x0030d0) - ("KATAKANA LETTER PA" #x0030d1) - ("KATAKANA LETTER HI" #x0030d2) - ("KATAKANA LETTER BI" #x0030d3) - ("KATAKANA LETTER PI" #x0030d4) - ("KATAKANA LETTER HU" #x0030d5) - ("KATAKANA LETTER BU" #x0030d6) - ("KATAKANA LETTER PU" #x0030d7) - ("KATAKANA LETTER HE" #x0030d8) - ("KATAKANA LETTER BE" #x0030d9) - ("KATAKANA LETTER PE" #x0030da) - ("KATAKANA LETTER HO" #x0030db) - ("KATAKANA LETTER BO" #x0030dc) - ("KATAKANA LETTER PO" #x0030dd) - ("KATAKANA LETTER MA" #x0030de) - ("KATAKANA LETTER MI" #x0030df) - ("KATAKANA LETTER MU" #x0030e0) - ("KATAKANA LETTER ME" #x0030e1) - ("KATAKANA LETTER MO" #x0030e2) - ("KATAKANA LETTER SMALL YA" #x0030e3) - ("KATAKANA LETTER YA" #x0030e4) - ("KATAKANA LETTER SMALL YU" #x0030e5) - ("KATAKANA LETTER YU" #x0030e6) - ("KATAKANA LETTER SMALL YO" #x0030e7) - ("KATAKANA LETTER YO" #x0030e8) - ("KATAKANA LETTER RA" #x0030e9) - ("KATAKANA LETTER RI" #x0030ea) - ("KATAKANA LETTER RU" #x0030eb) - ("KATAKANA LETTER RE" #x0030ec) - ("KATAKANA LETTER RO" #x0030ed) - ("KATAKANA LETTER SMALL WA" #x0030ee) - ("KATAKANA LETTER WA" #x0030ef) - ("KATAKANA LETTER WI" #x0030f0) - ("KATAKANA LETTER WE" #x0030f1) - ("KATAKANA LETTER WO" #x0030f2) - ("KATAKANA LETTER N" #x0030f3) - ("KATAKANA LETTER VU" #x0030f4) - ("KATAKANA LETTER SMALL KA" #x0030f5) - ("KATAKANA LETTER SMALL KE" #x0030f6) - ("KATAKANA LETTER VA" #x0030f7) - ("KATAKANA LETTER VI" #x0030f8) - ("KATAKANA LETTER VE" #x0030f9) - ("KATAKANA LETTER VO" #x0030fa) - ("KATAKANA MIDDLE DOT" #x0030fb) - ("KATAKANA-HIRAGANA PROLONGED SOUND MARK" #x0030fc) - ("KATAKANA ITERATION MARK" #x0030fd) - ("KATAKANA VOICED ITERATION MARK" #x0030fe) - ("KATAKANA DIGRAPH KOTO" #x0030ff) - ("LATIN SMALL LIGATURE FF" #x00fb00) - ("LATIN SMALL LIGATURE FI" #x00fb01) - ("LATIN SMALL LIGATURE FL" #x00fb02) - ("LATIN SMALL LIGATURE FFI" #x00fb03) - ("LATIN SMALL LIGATURE FFL" #x00fb04) - ("LATIN SMALL LIGATURE LONG S T" #x00fb05) - ("LATIN SMALL LIGATURE ST" #x00fb06) - ("ARMENIAN SMALL LIGATURE MEN NOW" #x00fb13) - ("ARMENIAN SMALL LIGATURE MEN ECH" #x00fb14) - ("ARMENIAN SMALL LIGATURE MEN INI" #x00fb15) - ("ARMENIAN SMALL LIGATURE VEW NOW" #x00fb16) - ("ARMENIAN SMALL LIGATURE MEN XEH" #x00fb17) - ("HEBREW LETTER YOD WITH HIRIQ" #x00fb1d) - ("HEBREW POINT JUDEO-SPANISH VARIKA" #x00fb1e) - ("HEBREW LIGATURE YIDDISH YOD YOD PATAH" #x00fb1f) - ("HEBREW LETTER ALTERNATIVE AYIN" #x00fb20) - ("HEBREW LETTER WIDE ALEF" #x00fb21) - ("HEBREW LETTER WIDE DALET" #x00fb22) - ("HEBREW LETTER WIDE HE" #x00fb23) - ("HEBREW LETTER WIDE KAF" #x00fb24) - ("HEBREW LETTER WIDE LAMED" #x00fb25) - ("HEBREW LETTER WIDE FINAL MEM" #x00fb26) - ("HEBREW LETTER WIDE RESH" #x00fb27) - ("HEBREW LETTER WIDE TAV" #x00fb28) - ("HEBREW LETTER ALTERNATIVE PLUS SIGN" #x00fb29) - ("HEBREW LETTER SHIN WITH SHIN DOT" #x00fb2a) - ("HEBREW LETTER SHIN WITH SIN DOT" #x00fb2b) - ("HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT" #x00fb2c) - ("HEBREW LETTER SHIN WITH DAGESH AND SIN DOT" #x00fb2d) - ("HEBREW LETTER ALEF WITH PATAH" #x00fb2e) - ("HEBREW LETTER ALEF WITH QAMATS" #x00fb2f) - ("HEBREW LETTER ALEF WITH MAPIQ" #x00fb30) - ("HEBREW LETTER BET WITH DAGESH" #x00fb31) - ("HEBREW LETTER GIMEL WITH DAGESH" #x00fb32) - ("HEBREW LETTER DALET WITH DAGESH" #x00fb33) - ("HEBREW LETTER HE WITH MAPIQ" #x00fb34) - ("HEBREW LETTER VAV WITH DAGESH" #x00fb35) - ("HEBREW LETTER ZAYIN WITH DAGESH" #x00fb36) - ("HEBREW LETTER TET WITH DAGESH" #x00fb38) - ("HEBREW LETTER YOD WITH DAGESH" #x00fb39) - ("HEBREW LETTER FINAL KAF WITH DAGESH" #x00fb3a) - ("HEBREW LETTER KAF WITH DAGESH" #x00fb3b) - ("HEBREW LETTER LAMED WITH DAGESH" #x00fb3c) - ("HEBREW LETTER MEM WITH DAGESH" #x00fb3e) - ("HEBREW LETTER NUN WITH DAGESH" #x00fb40) - ("HEBREW LETTER SAMEKH WITH DAGESH" #x00fb41) - ("HEBREW LETTER FINAL PE WITH DAGESH" #x00fb43) - ("HEBREW LETTER PE WITH DAGESH" #x00fb44) - ("HEBREW LETTER TSADI WITH DAGESH" #x00fb46) - ("HEBREW LETTER QOF WITH DAGESH" #x00fb47) - ("HEBREW LETTER RESH WITH DAGESH" #x00fb48) - ("HEBREW LETTER SHIN WITH DAGESH" #x00fb49) - ("HEBREW LETTER TAV WITH DAGESH" #x00fb4a) - ("HEBREW LETTER VAV WITH HOLAM" #x00fb4b) - ("HEBREW LETTER BET WITH RAFE" #x00fb4c) - ("HEBREW LETTER KAF WITH RAFE" #x00fb4d) - ("HEBREW LETTER PE WITH RAFE" #x00fb4e) - ("HEBREW LIGATURE ALEF LAMED" #x00fb4f) - ("ARABIC LETTER ALEF WASLA ISOLATED FORM" #x00fb50) - ("ARABIC LETTER ALEF WASLA FINAL FORM" #x00fb51) - ("ARABIC LETTER BEEH ISOLATED FORM" #x00fb52) - ("ARABIC LETTER BEEH FINAL FORM" #x00fb53) - ("ARABIC LETTER BEEH INITIAL FORM" #x00fb54) - ("ARABIC LETTER BEEH MEDIAL FORM" #x00fb55) - ("ARABIC LETTER PEH ISOLATED FORM" #x00fb56) - ("ARABIC LETTER PEH FINAL FORM" #x00fb57) - ("ARABIC LETTER PEH INITIAL FORM" #x00fb58) - ("ARABIC LETTER PEH MEDIAL FORM" #x00fb59) - ("ARABIC LETTER BEHEH ISOLATED FORM" #x00fb5a) - ("ARABIC LETTER BEHEH FINAL FORM" #x00fb5b) - ("ARABIC LETTER BEHEH INITIAL FORM" #x00fb5c) - ("ARABIC LETTER BEHEH MEDIAL FORM" #x00fb5d) - ("ARABIC LETTER TTEHEH ISOLATED FORM" #x00fb5e) - ("ARABIC LETTER TTEHEH FINAL FORM" #x00fb5f) - ("ARABIC LETTER TTEHEH INITIAL FORM" #x00fb60) - ("ARABIC LETTER TTEHEH MEDIAL FORM" #x00fb61) - ("ARABIC LETTER TEHEH ISOLATED FORM" #x00fb62) - ("ARABIC LETTER TEHEH FINAL FORM" #x00fb63) - ("ARABIC LETTER TEHEH INITIAL FORM" #x00fb64) - ("ARABIC LETTER TEHEH MEDIAL FORM" #x00fb65) - ("ARABIC LETTER TTEH ISOLATED FORM" #x00fb66) - ("ARABIC LETTER TTEH FINAL FORM" #x00fb67) - ("ARABIC LETTER TTEH INITIAL FORM" #x00fb68) - ("ARABIC LETTER TTEH MEDIAL FORM" #x00fb69) - ("ARABIC LETTER VEH ISOLATED FORM" #x00fb6a) - ("ARABIC LETTER VEH FINAL FORM" #x00fb6b) - ("ARABIC LETTER VEH INITIAL FORM" #x00fb6c) - ("ARABIC LETTER VEH MEDIAL FORM" #x00fb6d) - ("ARABIC LETTER PEHEH ISOLATED FORM" #x00fb6e) - ("ARABIC LETTER PEHEH FINAL FORM" #x00fb6f) - ("ARABIC LETTER PEHEH INITIAL FORM" #x00fb70) - ("ARABIC LETTER PEHEH MEDIAL FORM" #x00fb71) - ("ARABIC LETTER DYEH ISOLATED FORM" #x00fb72) - ("ARABIC LETTER DYEH FINAL FORM" #x00fb73) - ("ARABIC LETTER DYEH INITIAL FORM" #x00fb74) - ("ARABIC LETTER DYEH MEDIAL FORM" #x00fb75) - ("ARABIC LETTER NYEH ISOLATED FORM" #x00fb76) - ("ARABIC LETTER NYEH FINAL FORM" #x00fb77) - ("ARABIC LETTER NYEH INITIAL FORM" #x00fb78) - ("ARABIC LETTER NYEH MEDIAL FORM" #x00fb79) - ("ARABIC LETTER TCHEH ISOLATED FORM" #x00fb7a) - ("ARABIC LETTER TCHEH FINAL FORM" #x00fb7b) - ("ARABIC LETTER TCHEH INITIAL FORM" #x00fb7c) - ("ARABIC LETTER TCHEH MEDIAL FORM" #x00fb7d) - ("ARABIC LETTER TCHEHEH ISOLATED FORM" #x00fb7e) - ("ARABIC LETTER TCHEHEH FINAL FORM" #x00fb7f) - ("ARABIC LETTER TCHEHEH INITIAL FORM" #x00fb80) - ("ARABIC LETTER TCHEHEH MEDIAL FORM" #x00fb81) - ("ARABIC LETTER DDAHAL ISOLATED FORM" #x00fb82) - ("ARABIC LETTER DDAHAL FINAL FORM" #x00fb83) - ("ARABIC LETTER DAHAL ISOLATED FORM" #x00fb84) - ("ARABIC LETTER DAHAL FINAL FORM" #x00fb85) - ("ARABIC LETTER DUL ISOLATED FORM" #x00fb86) - ("ARABIC LETTER DUL FINAL FORM" #x00fb87) - ("ARABIC LETTER DDAL ISOLATED FORM" #x00fb88) - ("ARABIC LETTER DDAL FINAL FORM" #x00fb89) - ("ARABIC LETTER JEH ISOLATED FORM" #x00fb8a) - ("ARABIC LETTER JEH FINAL FORM" #x00fb8b) - ("ARABIC LETTER RREH ISOLATED FORM" #x00fb8c) - ("ARABIC LETTER RREH FINAL FORM" #x00fb8d) - ("ARABIC LETTER KEHEH ISOLATED FORM" #x00fb8e) - ("ARABIC LETTER KEHEH FINAL FORM" #x00fb8f) - ("ARABIC LETTER KEHEH INITIAL FORM" #x00fb90) - ("ARABIC LETTER KEHEH MEDIAL FORM" #x00fb91) - ("ARABIC LETTER GAF ISOLATED FORM" #x00fb92) - ("ARABIC LETTER GAF FINAL FORM" #x00fb93) - ("ARABIC LETTER GAF INITIAL FORM" #x00fb94) - ("ARABIC LETTER GAF MEDIAL FORM" #x00fb95) - ("ARABIC LETTER GUEH ISOLATED FORM" #x00fb96) - ("ARABIC LETTER GUEH FINAL FORM" #x00fb97) - ("ARABIC LETTER GUEH INITIAL FORM" #x00fb98) - ("ARABIC LETTER GUEH MEDIAL FORM" #x00fb99) - ("ARABIC LETTER NGOEH ISOLATED FORM" #x00fb9a) - ("ARABIC LETTER NGOEH FINAL FORM" #x00fb9b) - ("ARABIC LETTER NGOEH INITIAL FORM" #x00fb9c) - ("ARABIC LETTER NGOEH MEDIAL FORM" #x00fb9d) - ("ARABIC LETTER NOON GHUNNA ISOLATED FORM" #x00fb9e) - ("ARABIC LETTER NOON GHUNNA FINAL FORM" #x00fb9f) - ("ARABIC LETTER RNOON ISOLATED FORM" #x00fba0) - ("ARABIC LETTER RNOON FINAL FORM" #x00fba1) - ("ARABIC LETTER RNOON INITIAL FORM" #x00fba2) - ("ARABIC LETTER RNOON MEDIAL FORM" #x00fba3) - ("ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM" #x00fba4) - ("ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM" #x00fba5) - ("ARABIC LETTER HEH GOAL ISOLATED FORM" #x00fba6) - ("ARABIC LETTER HEH GOAL FINAL FORM" #x00fba7) - ("ARABIC LETTER HEH GOAL INITIAL FORM" #x00fba8) - ("ARABIC LETTER HEH GOAL MEDIAL FORM" #x00fba9) - ("ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM" #x00fbaa) - ("ARABIC LETTER HEH DOACHASHMEE FINAL FORM" #x00fbab) - ("ARABIC LETTER HEH DOACHASHMEE INITIAL FORM" #x00fbac) - ("ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM" #x00fbad) - ("ARABIC LETTER YEH BARREE ISOLATED FORM" #x00fbae) - ("ARABIC LETTER YEH BARREE FINAL FORM" #x00fbaf) - ("ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM" #x00fbb0) - ("ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM" #x00fbb1) - ("ARABIC LETTER NG ISOLATED FORM" #x00fbd3) - ("ARABIC LETTER NG FINAL FORM" #x00fbd4) - ("ARABIC LETTER NG INITIAL FORM" #x00fbd5) - ("ARABIC LETTER NG MEDIAL FORM" #x00fbd6) - ("ARABIC LETTER U ISOLATED FORM" #x00fbd7) - ("ARABIC LETTER U FINAL FORM" #x00fbd8) - ("ARABIC LETTER OE ISOLATED FORM" #x00fbd9) - ("ARABIC LETTER OE FINAL FORM" #x00fbda) - ("ARABIC LETTER YU ISOLATED FORM" #x00fbdb) - ("ARABIC LETTER YU FINAL FORM" #x00fbdc) - ("ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM" #x00fbdd) - ("ARABIC LETTER VE ISOLATED FORM" #x00fbde) - ("ARABIC LETTER VE FINAL FORM" #x00fbdf) - ("ARABIC LETTER KIRGHIZ OE ISOLATED FORM" #x00fbe0) - ("ARABIC LETTER KIRGHIZ OE FINAL FORM" #x00fbe1) - ("ARABIC LETTER KIRGHIZ YU ISOLATED FORM" #x00fbe2) - ("ARABIC LETTER KIRGHIZ YU FINAL FORM" #x00fbe3) - ("ARABIC LETTER E ISOLATED FORM" #x00fbe4) - ("ARABIC LETTER E FINAL FORM" #x00fbe5) - ("ARABIC LETTER E INITIAL FORM" #x00fbe6) - ("ARABIC LETTER E MEDIAL FORM" #x00fbe7) - ("ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM" #x00fbe8) - ("ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM" #x00fbe9) - ("ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM" #x00fbea) - ("ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM" #x00fbeb) - ("ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM" #x00fbec) - ("ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM" #x00fbed) - ("ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM" #x00fbee) - ("ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM" #x00fbef) - ("ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM" #x00fbf0) - ("ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM" #x00fbf1) - ("ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM" #x00fbf2) - ("ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM" #x00fbf3) - ("ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM" #x00fbf4) - ("ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM" #x00fbf5) - ("ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM" #x00fbf6) - ("ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM" #x00fbf7) - ("ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM" #x00fbf8) - ("ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM" #x00fbf9) - ("ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM" #x00fbfa) - ("ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM" #x00fbfb) - ("ARABIC LETTER FARSI YEH ISOLATED FORM" #x00fbfc) - ("ARABIC LETTER FARSI YEH FINAL FORM" #x00fbfd) - ("ARABIC LETTER FARSI YEH INITIAL FORM" #x00fbfe) - ("ARABIC LETTER FARSI YEH MEDIAL FORM" #x00fbff) - ("VARIATION SELECTOR-1" #x00fe00) - ("VARIATION SELECTOR-2" #x00fe01) - ("VARIATION SELECTOR-3" #x00fe02) - ("VARIATION SELECTOR-4" #x00fe03) - ("VARIATION SELECTOR-5" #x00fe04) - ("VARIATION SELECTOR-6" #x00fe05) - ("VARIATION SELECTOR-7" #x00fe06) - ("VARIATION SELECTOR-8" #x00fe07) - ("VARIATION SELECTOR-9" #x00fe08) - ("VARIATION SELECTOR-10" #x00fe09) - ("VARIATION SELECTOR-11" #x00fe0a) - ("VARIATION SELECTOR-12" #x00fe0b) - ("VARIATION SELECTOR-13" #x00fe0c) - ("VARIATION SELECTOR-14" #x00fe0d) - ("VARIATION SELECTOR-15" #x00fe0e) - ("VARIATION SELECTOR-16" #x00fe0f) - ("COMBINING LIGATURE LEFT HALF" #x00fe20) - ("COMBINING LIGATURE RIGHT HALF" #x00fe21) - ("COMBINING DOUBLE TILDE LEFT HALF" #x00fe22) - ("COMBINING DOUBLE TILDE RIGHT HALF" #x00fe23) - ("PRESENTATION FORM FOR VERTICAL TWO DOT LEADER" #x00fe30) - ("PRESENTATION FORM FOR VERTICAL EM DASH" #x00fe31) - ("PRESENTATION FORM FOR VERTICAL EN DASH" #x00fe32) - ("PRESENTATION FORM FOR VERTICAL LOW LINE" #x00fe33) - ("PRESENTATION FORM FOR VERTICAL WAVY LOW LINE" #x00fe34) - ("PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS" #x00fe35) - ("PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS" #x00fe36) - ("PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET" #x00fe37) - ("PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET" #x00fe38) - ("PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET" #x00fe39) - ("PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET" #x00fe3a) - ("PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET" #x00fe3b) - ("PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET" #x00fe3c) - ("PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET" #x00fe3d) - ("PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET" #x00fe3e) - ("PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET" #x00fe3f) - ("PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET" #x00fe40) - ("PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET" #x00fe41) - ("PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET" #x00fe42) - ("PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET" #x00fe43) - ("PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET" #x00fe44) - ("SESAME DOT" #x00fe45) - ("WHITE SESAME DOT" #x00fe46) - ("DASHED OVERLINE" #x00fe49) - ("CENTRELINE OVERLINE" #x00fe4a) - ("WAVY OVERLINE" #x00fe4b) - ("DOUBLE WAVY OVERLINE" #x00fe4c) - ("DASHED LOW LINE" #x00fe4d) - ("CENTRELINE LOW LINE" #x00fe4e) - ("WAVY LOW LINE" #x00fe4f) - ("SMALL COMMA" #x00fe50) - ("SMALL IDEOGRAPHIC COMMA" #x00fe51) - ("SMALL FULL STOP" #x00fe52) - ("SMALL SEMICOLON" #x00fe54) - ("SMALL COLON" #x00fe55) - ("SMALL QUESTION MARK" #x00fe56) - ("SMALL EXCLAMATION MARK" #x00fe57) - ("SMALL EM DASH" #x00fe58) - ("SMALL LEFT PARENTHESIS" #x00fe59) - ("SMALL RIGHT PARENTHESIS" #x00fe5a) - ("SMALL LEFT CURLY BRACKET" #x00fe5b) - ("SMALL RIGHT CURLY BRACKET" #x00fe5c) - ("SMALL LEFT TORTOISE SHELL BRACKET" #x00fe5d) - ("SMALL RIGHT TORTOISE SHELL BRACKET" #x00fe5e) - ("SMALL NUMBER SIGN" #x00fe5f) - ("SMALL AMPERSAND" #x00fe60) - ("SMALL ASTERISK" #x00fe61) - ("SMALL PLUS SIGN" #x00fe62) - ("SMALL HYPHEN-MINUS" #x00fe63) - ("SMALL LESS-THAN SIGN" #x00fe64) - ("SMALL GREATER-THAN SIGN" #x00fe65) - ("SMALL EQUALS SIGN" #x00fe66) - ("SMALL REVERSE SOLIDUS" #x00fe68) - ("SMALL DOLLAR SIGN" #x00fe69) - ("SMALL PERCENT SIGN" #x00fe6a) - ("SMALL COMMERCIAL AT" #x00fe6b) - ("ARABIC FATHATAN ISOLATED FORM" #x00fe70) - ("ARABIC TATWEEL WITH FATHATAN ABOVE" #x00fe71) - ("ARABIC DAMMATAN ISOLATED FORM" #x00fe72) - ("ARABIC TAIL FRAGMENT" #x00fe73) - ("ARABIC KASRATAN ISOLATED FORM" #x00fe74) - ("ARABIC FATHA ISOLATED FORM" #x00fe76) - ("ARABIC FATHA MEDIAL FORM" #x00fe77) - ("ARABIC DAMMA ISOLATED FORM" #x00fe78) - ("ARABIC DAMMA MEDIAL FORM" #x00fe79) - ("ARABIC KASRA ISOLATED FORM" #x00fe7a) - ("ARABIC KASRA MEDIAL FORM" #x00fe7b) - ("ARABIC SHADDA ISOLATED FORM" #x00fe7c) - ("ARABIC SHADDA MEDIAL FORM" #x00fe7d) - ("ARABIC SUKUN ISOLATED FORM" #x00fe7e) - ("ARABIC SUKUN MEDIAL FORM" #x00fe7f) - ("ARABIC LETTER HAMZA ISOLATED FORM" #x00fe80) - ("ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM" #x00fe81) - ("ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM" #x00fe82) - ("ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM" #x00fe83) - ("ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM" #x00fe84) - ("ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM" #x00fe85) - ("ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM" #x00fe86) - ("ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM" #x00fe87) - ("ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM" #x00fe88) - ("ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM" #x00fe89) - ("ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM" #x00fe8a) - ("ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM" #x00fe8b) - ("ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM" #x00fe8c) - ("ARABIC LETTER ALEF ISOLATED FORM" #x00fe8d) - ("ARABIC LETTER ALEF FINAL FORM" #x00fe8e) - ("ARABIC LETTER BEH ISOLATED FORM" #x00fe8f) - ("ARABIC LETTER BEH FINAL FORM" #x00fe90) - ("ARABIC LETTER BEH INITIAL FORM" #x00fe91) - ("ARABIC LETTER BEH MEDIAL FORM" #x00fe92) - ("ARABIC LETTER TEH MARBUTA ISOLATED FORM" #x00fe93) - ("ARABIC LETTER TEH MARBUTA FINAL FORM" #x00fe94) - ("ARABIC LETTER TEH ISOLATED FORM" #x00fe95) - ("ARABIC LETTER TEH FINAL FORM" #x00fe96) - ("ARABIC LETTER TEH INITIAL FORM" #x00fe97) - ("ARABIC LETTER TEH MEDIAL FORM" #x00fe98) - ("ARABIC LETTER THEH ISOLATED FORM" #x00fe99) - ("ARABIC LETTER THEH FINAL FORM" #x00fe9a) - ("ARABIC LETTER THEH INITIAL FORM" #x00fe9b) - ("ARABIC LETTER THEH MEDIAL FORM" #x00fe9c) - ("ARABIC LETTER JEEM ISOLATED FORM" #x00fe9d) - ("ARABIC LETTER JEEM FINAL FORM" #x00fe9e) - ("ARABIC LETTER JEEM INITIAL FORM" #x00fe9f) - ("ARABIC LETTER JEEM MEDIAL FORM" #x00fea0) - ("ARABIC LETTER HAH ISOLATED FORM" #x00fea1) - ("ARABIC LETTER HAH FINAL FORM" #x00fea2) - ("ARABIC LETTER HAH INITIAL FORM" #x00fea3) - ("ARABIC LETTER HAH MEDIAL FORM" #x00fea4) - ("ARABIC LETTER KHAH ISOLATED FORM" #x00fea5) - ("ARABIC LETTER KHAH FINAL FORM" #x00fea6) - ("ARABIC LETTER KHAH INITIAL FORM" #x00fea7) - ("ARABIC LETTER KHAH MEDIAL FORM" #x00fea8) - ("ARABIC LETTER DAL ISOLATED FORM" #x00fea9) - ("ARABIC LETTER DAL FINAL FORM" #x00feaa) - ("ARABIC LETTER THAL ISOLATED FORM" #x00feab) - ("ARABIC LETTER THAL FINAL FORM" #x00feac) - ("ARABIC LETTER REH ISOLATED FORM" #x00fead) - ("ARABIC LETTER REH FINAL FORM" #x00feae) - ("ARABIC LETTER ZAIN ISOLATED FORM" #x00feaf) - ("ARABIC LETTER ZAIN FINAL FORM" #x00feb0) - ("ARABIC LETTER SEEN ISOLATED FORM" #x00feb1) - ("ARABIC LETTER SEEN FINAL FORM" #x00feb2) - ("ARABIC LETTER SEEN INITIAL FORM" #x00feb3) - ("ARABIC LETTER SEEN MEDIAL FORM" #x00feb4) - ("ARABIC LETTER SHEEN ISOLATED FORM" #x00feb5) - ("ARABIC LETTER SHEEN FINAL FORM" #x00feb6) - ("ARABIC LETTER SHEEN INITIAL FORM" #x00feb7) - ("ARABIC LETTER SHEEN MEDIAL FORM" #x00feb8) - ("ARABIC LETTER SAD ISOLATED FORM" #x00feb9) - ("ARABIC LETTER SAD FINAL FORM" #x00feba) - ("ARABIC LETTER SAD INITIAL FORM" #x00febb) - ("ARABIC LETTER SAD MEDIAL FORM" #x00febc) - ("ARABIC LETTER DAD ISOLATED FORM" #x00febd) - ("ARABIC LETTER DAD FINAL FORM" #x00febe) - ("ARABIC LETTER DAD INITIAL FORM" #x00febf) - ("ARABIC LETTER DAD MEDIAL FORM" #x00fec0) - ("ARABIC LETTER TAH ISOLATED FORM" #x00fec1) - ("ARABIC LETTER TAH FINAL FORM" #x00fec2) - ("ARABIC LETTER TAH INITIAL FORM" #x00fec3) - ("ARABIC LETTER TAH MEDIAL FORM" #x00fec4) - ("ARABIC LETTER ZAH ISOLATED FORM" #x00fec5) - ("ARABIC LETTER ZAH FINAL FORM" #x00fec6) - ("ARABIC LETTER ZAH INITIAL FORM" #x00fec7) - ("ARABIC LETTER ZAH MEDIAL FORM" #x00fec8) - ("ARABIC LETTER AIN ISOLATED FORM" #x00fec9) - ("ARABIC LETTER AIN FINAL FORM" #x00feca) - ("ARABIC LETTER AIN INITIAL FORM" #x00fecb) - ("ARABIC LETTER AIN MEDIAL FORM" #x00fecc) - ("ARABIC LETTER GHAIN ISOLATED FORM" #x00fecd) - ("ARABIC LETTER GHAIN FINAL FORM" #x00fece) - ("ARABIC LETTER GHAIN INITIAL FORM" #x00fecf) - ("ARABIC LETTER GHAIN MEDIAL FORM" #x00fed0) - ("ARABIC LETTER FEH ISOLATED FORM" #x00fed1) - ("ARABIC LETTER FEH FINAL FORM" #x00fed2) - ("ARABIC LETTER FEH INITIAL FORM" #x00fed3) - ("ARABIC LETTER FEH MEDIAL FORM" #x00fed4) - ("ARABIC LETTER QAF ISOLATED FORM" #x00fed5) - ("ARABIC LETTER QAF FINAL FORM" #x00fed6) - ("ARABIC LETTER QAF INITIAL FORM" #x00fed7) - ("ARABIC LETTER QAF MEDIAL FORM" #x00fed8) - ("ARABIC LETTER KAF ISOLATED FORM" #x00fed9) - ("ARABIC LETTER KAF FINAL FORM" #x00feda) - ("ARABIC LETTER KAF INITIAL FORM" #x00fedb) - ("ARABIC LETTER KAF MEDIAL FORM" #x00fedc) - ("ARABIC LETTER LAM ISOLATED FORM" #x00fedd) - ("ARABIC LETTER LAM FINAL FORM" #x00fede) - ("ARABIC LETTER LAM INITIAL FORM" #x00fedf) - ("ARABIC LETTER LAM MEDIAL FORM" #x00fee0) - ("ARABIC LETTER MEEM ISOLATED FORM" #x00fee1) - ("ARABIC LETTER MEEM FINAL FORM" #x00fee2) - ("ARABIC LETTER MEEM INITIAL FORM" #x00fee3) - ("ARABIC LETTER MEEM MEDIAL FORM" #x00fee4) - ("ARABIC LETTER NOON ISOLATED FORM" #x00fee5) - ("ARABIC LETTER NOON FINAL FORM" #x00fee6) - ("ARABIC LETTER NOON INITIAL FORM" #x00fee7) - ("ARABIC LETTER NOON MEDIAL FORM" #x00fee8) - ("ARABIC LETTER HEH ISOLATED FORM" #x00fee9) - ("ARABIC LETTER HEH FINAL FORM" #x00feea) - ("ARABIC LETTER HEH INITIAL FORM" #x00feeb) - ("ARABIC LETTER HEH MEDIAL FORM" #x00feec) - ("ARABIC LETTER WAW ISOLATED FORM" #x00feed) - ("ARABIC LETTER WAW FINAL FORM" #x00feee) - ("ARABIC LETTER ALEF MAKSURA ISOLATED FORM" #x00feef) - ("ARABIC LETTER ALEF MAKSURA FINAL FORM" #x00fef0) - ("ARABIC LETTER YEH ISOLATED FORM" #x00fef1) - ("ARABIC LETTER YEH FINAL FORM" #x00fef2) - ("ARABIC LETTER YEH INITIAL FORM" #x00fef3) - ("ARABIC LETTER YEH MEDIAL FORM" #x00fef4) - ("ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM" #x00fef5) - ("ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM" #x00fef6) - ("ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM" #x00fef7) - ("ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM" #x00fef8) - ("ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM" #x00fef9) - ("ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM" #x00fefa) - ("ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM" #x00fefb) - ("ARABIC LIGATURE LAM WITH ALEF FINAL FORM" #x00fefc) - ("ZERO WIDTH NO-BREAK SPACE" #x00feff) - ("REPLACEMENT CHARACTER" #x00fffd) - ("MATHEMATICAL BOLD CAPITAL A" #x01d400) - ("MATHEMATICAL BOLD CAPITAL B" #x01d401) - ("MATHEMATICAL BOLD CAPITAL C" #x01d402) - ("MATHEMATICAL BOLD CAPITAL D" #x01d403) - ("MATHEMATICAL BOLD CAPITAL E" #x01d404) - ("MATHEMATICAL BOLD CAPITAL F" #x01d405) - ("MATHEMATICAL BOLD CAPITAL G" #x01d406) - ("MATHEMATICAL BOLD CAPITAL H" #x01d407) - ("MATHEMATICAL BOLD CAPITAL I" #x01d408) - ("MATHEMATICAL BOLD CAPITAL J" #x01d409) - ("MATHEMATICAL BOLD CAPITAL K" #x01d40a) - ("MATHEMATICAL BOLD CAPITAL L" #x01d40b) - ("MATHEMATICAL BOLD CAPITAL M" #x01d40c) - ("MATHEMATICAL BOLD CAPITAL N" #x01d40d) - ("MATHEMATICAL BOLD CAPITAL O" #x01d40e) - ("MATHEMATICAL BOLD CAPITAL P" #x01d40f) - ("MATHEMATICAL BOLD CAPITAL Q" #x01d410) - ("MATHEMATICAL BOLD CAPITAL R" #x01d411) - ("MATHEMATICAL BOLD CAPITAL S" #x01d412) - ("MATHEMATICAL BOLD CAPITAL T" #x01d413) - ("MATHEMATICAL BOLD CAPITAL U" #x01d414) - ("MATHEMATICAL BOLD CAPITAL V" #x01d415) - ("MATHEMATICAL BOLD CAPITAL W" #x01d416) - ("MATHEMATICAL BOLD CAPITAL X" #x01d417) - ("MATHEMATICAL BOLD CAPITAL Y" #x01d418) - ("MATHEMATICAL BOLD CAPITAL Z" #x01d419) - ("MATHEMATICAL BOLD SMALL A" #x01d41a) - ("MATHEMATICAL BOLD SMALL B" #x01d41b) - ("MATHEMATICAL BOLD SMALL C" #x01d41c) - ("MATHEMATICAL BOLD SMALL D" #x01d41d) - ("MATHEMATICAL BOLD SMALL E" #x01d41e) - ("MATHEMATICAL BOLD SMALL F" #x01d41f) - ("MATHEMATICAL BOLD SMALL G" #x01d420) - ("MATHEMATICAL BOLD SMALL H" #x01d421) - ("MATHEMATICAL BOLD SMALL I" #x01d422) - ("MATHEMATICAL BOLD SMALL J" #x01d423) - ("MATHEMATICAL BOLD SMALL K" #x01d424) - ("MATHEMATICAL BOLD SMALL L" #x01d425) - ("MATHEMATICAL BOLD SMALL M" #x01d426) - ("MATHEMATICAL BOLD SMALL N" #x01d427) - ("MATHEMATICAL BOLD SMALL O" #x01d428) - ("MATHEMATICAL BOLD SMALL P" #x01d429) - ("MATHEMATICAL BOLD SMALL Q" #x01d42a) - ("MATHEMATICAL BOLD SMALL R" #x01d42b) - ("MATHEMATICAL BOLD SMALL S" #x01d42c) - ("MATHEMATICAL BOLD SMALL T" #x01d42d) - ("MATHEMATICAL BOLD SMALL U" #x01d42e) - ("MATHEMATICAL BOLD SMALL V" #x01d42f) - ("MATHEMATICAL BOLD SMALL W" #x01d430) - ("MATHEMATICAL BOLD SMALL X" #x01d431) - ("MATHEMATICAL BOLD SMALL Y" #x01d432) - ("MATHEMATICAL BOLD SMALL Z" #x01d433) - ("MATHEMATICAL ITALIC CAPITAL A" #x01d434) - ("MATHEMATICAL ITALIC CAPITAL B" #x01d435) - ("MATHEMATICAL ITALIC CAPITAL C" #x01d436) - ("MATHEMATICAL ITALIC CAPITAL D" #x01d437) - ("MATHEMATICAL ITALIC CAPITAL E" #x01d438) - ("MATHEMATICAL ITALIC CAPITAL F" #x01d439) - ("MATHEMATICAL ITALIC CAPITAL G" #x01d43a) - ("MATHEMATICAL ITALIC CAPITAL H" #x01d43b) - ("MATHEMATICAL ITALIC CAPITAL I" #x01d43c) - ("MATHEMATICAL ITALIC CAPITAL J" #x01d43d) - ("MATHEMATICAL ITALIC CAPITAL K" #x01d43e) - ("MATHEMATICAL ITALIC CAPITAL L" #x01d43f) - ("MATHEMATICAL ITALIC CAPITAL M" #x01d440) - ("MATHEMATICAL ITALIC CAPITAL N" #x01d441) - ("MATHEMATICAL ITALIC CAPITAL O" #x01d442) - ("MATHEMATICAL ITALIC CAPITAL P" #x01d443) - ("MATHEMATICAL ITALIC CAPITAL Q" #x01d444) - ("MATHEMATICAL ITALIC CAPITAL R" #x01d445) - ("MATHEMATICAL ITALIC CAPITAL S" #x01d446) - ("MATHEMATICAL ITALIC CAPITAL T" #x01d447) - ("MATHEMATICAL ITALIC CAPITAL U" #x01d448) - ("MATHEMATICAL ITALIC CAPITAL V" #x01d449) - ("MATHEMATICAL ITALIC CAPITAL W" #x01d44a) - ("MATHEMATICAL ITALIC CAPITAL X" #x01d44b) - ("MATHEMATICAL ITALIC CAPITAL Y" #x01d44c) - ("MATHEMATICAL ITALIC CAPITAL Z" #x01d44d) - ("MATHEMATICAL ITALIC SMALL A" #x01d44e) - ("MATHEMATICAL ITALIC SMALL B" #x01d44f) - ("MATHEMATICAL ITALIC SMALL C" #x01d450) - ("MATHEMATICAL ITALIC SMALL D" #x01d451) - ("MATHEMATICAL ITALIC SMALL E" #x01d452) - ("MATHEMATICAL ITALIC SMALL F" #x01d453) - ("MATHEMATICAL ITALIC SMALL G" #x01d454) - ("MATHEMATICAL ITALIC SMALL I" #x01d456) - ("MATHEMATICAL ITALIC SMALL J" #x01d457) - ("MATHEMATICAL ITALIC SMALL K" #x01d458) - ("MATHEMATICAL ITALIC SMALL L" #x01d459) - ("MATHEMATICAL ITALIC SMALL M" #x01d45a) - ("MATHEMATICAL ITALIC SMALL N" #x01d45b) - ("MATHEMATICAL ITALIC SMALL O" #x01d45c) - ("MATHEMATICAL ITALIC SMALL P" #x01d45d) - ("MATHEMATICAL ITALIC SMALL Q" #x01d45e) - ("MATHEMATICAL ITALIC SMALL R" #x01d45f) - ("MATHEMATICAL ITALIC SMALL S" #x01d460) - ("MATHEMATICAL ITALIC SMALL T" #x01d461) - ("MATHEMATICAL ITALIC SMALL U" #x01d462) - ("MATHEMATICAL ITALIC SMALL V" #x01d463) - ("MATHEMATICAL ITALIC SMALL W" #x01d464) - ("MATHEMATICAL ITALIC SMALL X" #x01d465) - ("MATHEMATICAL ITALIC SMALL Y" #x01d466) - ("MATHEMATICAL ITALIC SMALL Z" #x01d467) - ("MATHEMATICAL BOLD ITALIC CAPITAL A" #x01d468) - ("MATHEMATICAL BOLD ITALIC CAPITAL B" #x01d469) - ("MATHEMATICAL BOLD ITALIC CAPITAL C" #x01d46a) - ("MATHEMATICAL BOLD ITALIC CAPITAL D" #x01d46b) - ("MATHEMATICAL BOLD ITALIC CAPITAL E" #x01d46c) - ("MATHEMATICAL BOLD ITALIC CAPITAL F" #x01d46d) - ("MATHEMATICAL BOLD ITALIC CAPITAL G" #x01d46e) - ("MATHEMATICAL BOLD ITALIC CAPITAL H" #x01d46f) - ("MATHEMATICAL BOLD ITALIC CAPITAL I" #x01d470) - ("MATHEMATICAL BOLD ITALIC CAPITAL J" #x01d471) - ("MATHEMATICAL BOLD ITALIC CAPITAL K" #x01d472) - ("MATHEMATICAL BOLD ITALIC CAPITAL L" #x01d473) - ("MATHEMATICAL BOLD ITALIC CAPITAL M" #x01d474) - ("MATHEMATICAL BOLD ITALIC CAPITAL N" #x01d475) - ("MATHEMATICAL BOLD ITALIC CAPITAL O" #x01d476) - ("MATHEMATICAL BOLD ITALIC CAPITAL P" #x01d477) - ("MATHEMATICAL BOLD ITALIC CAPITAL Q" #x01d478) - ("MATHEMATICAL BOLD ITALIC CAPITAL R" #x01d479) - ("MATHEMATICAL BOLD ITALIC CAPITAL S" #x01d47a) - ("MATHEMATICAL BOLD ITALIC CAPITAL T" #x01d47b) - ("MATHEMATICAL BOLD ITALIC CAPITAL U" #x01d47c) - ("MATHEMATICAL BOLD ITALIC CAPITAL V" #x01d47d) - ("MATHEMATICAL BOLD ITALIC CAPITAL W" #x01d47e) - ("MATHEMATICAL BOLD ITALIC CAPITAL X" #x01d47f) - ("MATHEMATICAL BOLD ITALIC CAPITAL Y" #x01d480) - ("MATHEMATICAL BOLD ITALIC CAPITAL Z" #x01d481) - ("MATHEMATICAL BOLD ITALIC SMALL A" #x01d482) - ("MATHEMATICAL BOLD ITALIC SMALL B" #x01d483) - ("MATHEMATICAL BOLD ITALIC SMALL C" #x01d484) - ("MATHEMATICAL BOLD ITALIC SMALL D" #x01d485) - ("MATHEMATICAL BOLD ITALIC SMALL E" #x01d486) - ("MATHEMATICAL BOLD ITALIC SMALL F" #x01d487) - ("MATHEMATICAL BOLD ITALIC SMALL G" #x01d488) - ("MATHEMATICAL BOLD ITALIC SMALL H" #x01d489) - ("MATHEMATICAL BOLD ITALIC SMALL I" #x01d48a) - ("MATHEMATICAL BOLD ITALIC SMALL J" #x01d48b) - ("MATHEMATICAL BOLD ITALIC SMALL K" #x01d48c) - ("MATHEMATICAL BOLD ITALIC SMALL L" #x01d48d) - ("MATHEMATICAL BOLD ITALIC SMALL M" #x01d48e) - ("MATHEMATICAL BOLD ITALIC SMALL N" #x01d48f) - ("MATHEMATICAL BOLD ITALIC SMALL O" #x01d490) - ("MATHEMATICAL BOLD ITALIC SMALL P" #x01d491) - ("MATHEMATICAL BOLD ITALIC SMALL Q" #x01d492) - ("MATHEMATICAL BOLD ITALIC SMALL R" #x01d493) - ("MATHEMATICAL BOLD ITALIC SMALL S" #x01d494) - ("MATHEMATICAL BOLD ITALIC SMALL T" #x01d495) - ("MATHEMATICAL BOLD ITALIC SMALL U" #x01d496) - ("MATHEMATICAL BOLD ITALIC SMALL V" #x01d497) - ("MATHEMATICAL BOLD ITALIC SMALL W" #x01d498) - ("MATHEMATICAL BOLD ITALIC SMALL X" #x01d499) - ("MATHEMATICAL BOLD ITALIC SMALL Y" #x01d49a) - ("MATHEMATICAL BOLD ITALIC SMALL Z" #x01d49b) - ("MATHEMATICAL SCRIPT CAPITAL A" #x01d49c) - ("MATHEMATICAL SCRIPT CAPITAL C" #x01d49e) - ("MATHEMATICAL SCRIPT CAPITAL D" #x01d49f) - ("MATHEMATICAL SCRIPT CAPITAL G" #x01d4a2) - ("MATHEMATICAL SCRIPT CAPITAL J" #x01d4a5) - ("MATHEMATICAL SCRIPT CAPITAL K" #x01d4a6) - ("MATHEMATICAL SCRIPT CAPITAL N" #x01d4a9) - ("MATHEMATICAL SCRIPT CAPITAL O" #x01d4aa) - ("MATHEMATICAL SCRIPT CAPITAL P" #x01d4ab) - ("MATHEMATICAL SCRIPT CAPITAL Q" #x01d4ac) - ("MATHEMATICAL SCRIPT CAPITAL S" #x01d4ae) - ("MATHEMATICAL SCRIPT CAPITAL T" #x01d4af) - ("MATHEMATICAL SCRIPT CAPITAL U" #x01d4b0) - ("MATHEMATICAL SCRIPT CAPITAL V" #x01d4b1) - ("MATHEMATICAL SCRIPT CAPITAL W" #x01d4b2) - ("MATHEMATICAL SCRIPT CAPITAL X" #x01d4b3) - ("MATHEMATICAL SCRIPT CAPITAL Y" #x01d4b4) - ("MATHEMATICAL SCRIPT CAPITAL Z" #x01d4b5) - ("MATHEMATICAL SCRIPT SMALL A" #x01d4b6) - ("MATHEMATICAL SCRIPT SMALL B" #x01d4b7) - ("MATHEMATICAL SCRIPT SMALL C" #x01d4b8) - ("MATHEMATICAL SCRIPT SMALL D" #x01d4b9) - ("MATHEMATICAL SCRIPT SMALL F" #x01d4bb) - ("MATHEMATICAL SCRIPT SMALL H" #x01d4bd) - ("MATHEMATICAL SCRIPT SMALL I" #x01d4be) - ("MATHEMATICAL SCRIPT SMALL J" #x01d4bf) - ("MATHEMATICAL SCRIPT SMALL K" #x01d4c0) - ("MATHEMATICAL SCRIPT SMALL L" #x01d4c1) - ("MATHEMATICAL SCRIPT SMALL M" #x01d4c2) - ("MATHEMATICAL SCRIPT SMALL N" #x01d4c3) - ("MATHEMATICAL SCRIPT SMALL P" #x01d4c5) - ("MATHEMATICAL SCRIPT SMALL Q" #x01d4c6) - ("MATHEMATICAL SCRIPT SMALL R" #x01d4c7) - ("MATHEMATICAL SCRIPT SMALL S" #x01d4c8) - ("MATHEMATICAL SCRIPT SMALL T" #x01d4c9) - ("MATHEMATICAL SCRIPT SMALL U" #x01d4ca) - ("MATHEMATICAL SCRIPT SMALL V" #x01d4cb) - ("MATHEMATICAL SCRIPT SMALL W" #x01d4cc) - ("MATHEMATICAL SCRIPT SMALL X" #x01d4cd) - ("MATHEMATICAL SCRIPT SMALL Y" #x01d4ce) - ("MATHEMATICAL SCRIPT SMALL Z" #x01d4cf) - ("MATHEMATICAL BOLD SCRIPT CAPITAL A" #x01d4d0) - ("MATHEMATICAL BOLD SCRIPT CAPITAL B" #x01d4d1) - ("MATHEMATICAL BOLD SCRIPT CAPITAL C" #x01d4d2) - ("MATHEMATICAL BOLD SCRIPT CAPITAL D" #x01d4d3) - ("MATHEMATICAL BOLD SCRIPT CAPITAL E" #x01d4d4) - ("MATHEMATICAL BOLD SCRIPT CAPITAL F" #x01d4d5) - ("MATHEMATICAL BOLD SCRIPT CAPITAL G" #x01d4d6) - ("MATHEMATICAL BOLD SCRIPT CAPITAL H" #x01d4d7) - ("MATHEMATICAL BOLD SCRIPT CAPITAL I" #x01d4d8) - ("MATHEMATICAL BOLD SCRIPT CAPITAL J" #x01d4d9) - ("MATHEMATICAL BOLD SCRIPT CAPITAL K" #x01d4da) - ("MATHEMATICAL BOLD SCRIPT CAPITAL L" #x01d4db) - ("MATHEMATICAL BOLD SCRIPT CAPITAL M" #x01d4dc) - ("MATHEMATICAL BOLD SCRIPT CAPITAL N" #x01d4dd) - ("MATHEMATICAL BOLD SCRIPT CAPITAL O" #x01d4de) - ("MATHEMATICAL BOLD SCRIPT CAPITAL P" #x01d4df) - ("MATHEMATICAL BOLD SCRIPT CAPITAL Q" #x01d4e0) - ("MATHEMATICAL BOLD SCRIPT CAPITAL R" #x01d4e1) - ("MATHEMATICAL BOLD SCRIPT CAPITAL S" #x01d4e2) - ("MATHEMATICAL BOLD SCRIPT CAPITAL T" #x01d4e3) - ("MATHEMATICAL BOLD SCRIPT CAPITAL U" #x01d4e4) - ("MATHEMATICAL BOLD SCRIPT CAPITAL V" #x01d4e5) - ("MATHEMATICAL BOLD SCRIPT CAPITAL W" #x01d4e6) - ("MATHEMATICAL BOLD SCRIPT CAPITAL X" #x01d4e7) - ("MATHEMATICAL BOLD SCRIPT CAPITAL Y" #x01d4e8) - ("MATHEMATICAL BOLD SCRIPT CAPITAL Z" #x01d4e9) - ("MATHEMATICAL BOLD SCRIPT SMALL A" #x01d4ea) - ("MATHEMATICAL BOLD SCRIPT SMALL B" #x01d4eb) - ("MATHEMATICAL BOLD SCRIPT SMALL C" #x01d4ec) - ("MATHEMATICAL BOLD SCRIPT SMALL D" #x01d4ed) - ("MATHEMATICAL BOLD SCRIPT SMALL E" #x01d4ee) - ("MATHEMATICAL BOLD SCRIPT SMALL F" #x01d4ef) - ("MATHEMATICAL BOLD SCRIPT SMALL G" #x01d4f0) - ("MATHEMATICAL BOLD SCRIPT SMALL H" #x01d4f1) - ("MATHEMATICAL BOLD SCRIPT SMALL I" #x01d4f2) - ("MATHEMATICAL BOLD SCRIPT SMALL J" #x01d4f3) - ("MATHEMATICAL BOLD SCRIPT SMALL K" #x01d4f4) - ("MATHEMATICAL BOLD SCRIPT SMALL L" #x01d4f5) - ("MATHEMATICAL BOLD SCRIPT SMALL M" #x01d4f6) - ("MATHEMATICAL BOLD SCRIPT SMALL N" #x01d4f7) - ("MATHEMATICAL BOLD SCRIPT SMALL O" #x01d4f8) - ("MATHEMATICAL BOLD SCRIPT SMALL P" #x01d4f9) - ("MATHEMATICAL BOLD SCRIPT SMALL Q" #x01d4fa) - ("MATHEMATICAL BOLD SCRIPT SMALL R" #x01d4fb) - ("MATHEMATICAL BOLD SCRIPT SMALL S" #x01d4fc) - ("MATHEMATICAL BOLD SCRIPT SMALL T" #x01d4fd) - ("MATHEMATICAL BOLD SCRIPT SMALL U" #x01d4fe) - ("MATHEMATICAL BOLD SCRIPT SMALL V" #x01d4ff) - ("MATHEMATICAL BOLD SCRIPT SMALL W" #x01d500) - ("MATHEMATICAL BOLD SCRIPT SMALL X" #x01d501) - ("MATHEMATICAL BOLD SCRIPT SMALL Y" #x01d502) - ("MATHEMATICAL BOLD SCRIPT SMALL Z" #x01d503) - ("MATHEMATICAL FRAKTUR CAPITAL A" #x01d504) - ("MATHEMATICAL FRAKTUR CAPITAL B" #x01d505) - ("MATHEMATICAL FRAKTUR CAPITAL D" #x01d507) - ("MATHEMATICAL FRAKTUR CAPITAL E" #x01d508) - ("MATHEMATICAL FRAKTUR CAPITAL F" #x01d509) - ("MATHEMATICAL FRAKTUR CAPITAL G" #x01d50a) - ("MATHEMATICAL FRAKTUR CAPITAL J" #x01d50d) - ("MATHEMATICAL FRAKTUR CAPITAL K" #x01d50e) - ("MATHEMATICAL FRAKTUR CAPITAL L" #x01d50f) - ("MATHEMATICAL FRAKTUR CAPITAL M" #x01d510) - ("MATHEMATICAL FRAKTUR CAPITAL N" #x01d511) - ("MATHEMATICAL FRAKTUR CAPITAL O" #x01d512) - ("MATHEMATICAL FRAKTUR CAPITAL P" #x01d513) - ("MATHEMATICAL FRAKTUR CAPITAL Q" #x01d514) - ("MATHEMATICAL FRAKTUR CAPITAL S" #x01d516) - ("MATHEMATICAL FRAKTUR CAPITAL T" #x01d517) - ("MATHEMATICAL FRAKTUR CAPITAL U" #x01d518) - ("MATHEMATICAL FRAKTUR CAPITAL V" #x01d519) - ("MATHEMATICAL FRAKTUR CAPITAL W" #x01d51a) - ("MATHEMATICAL FRAKTUR CAPITAL X" #x01d51b) - ("MATHEMATICAL FRAKTUR CAPITAL Y" #x01d51c) - ("MATHEMATICAL FRAKTUR SMALL A" #x01d51e) - ("MATHEMATICAL FRAKTUR SMALL B" #x01d51f) - ("MATHEMATICAL FRAKTUR SMALL C" #x01d520) - ("MATHEMATICAL FRAKTUR SMALL D" #x01d521) - ("MATHEMATICAL FRAKTUR SMALL E" #x01d522) - ("MATHEMATICAL FRAKTUR SMALL F" #x01d523) - ("MATHEMATICAL FRAKTUR SMALL G" #x01d524) - ("MATHEMATICAL FRAKTUR SMALL H" #x01d525) - ("MATHEMATICAL FRAKTUR SMALL I" #x01d526) - ("MATHEMATICAL FRAKTUR SMALL J" #x01d527) - ("MATHEMATICAL FRAKTUR SMALL K" #x01d528) - ("MATHEMATICAL FRAKTUR SMALL L" #x01d529) - ("MATHEMATICAL FRAKTUR SMALL M" #x01d52a) - ("MATHEMATICAL FRAKTUR SMALL N" #x01d52b) - ("MATHEMATICAL FRAKTUR SMALL O" #x01d52c) - ("MATHEMATICAL FRAKTUR SMALL P" #x01d52d) - ("MATHEMATICAL FRAKTUR SMALL Q" #x01d52e) - ("MATHEMATICAL FRAKTUR SMALL R" #x01d52f) - ("MATHEMATICAL FRAKTUR SMALL S" #x01d530) - ("MATHEMATICAL FRAKTUR SMALL T" #x01d531) - ("MATHEMATICAL FRAKTUR SMALL U" #x01d532) - ("MATHEMATICAL FRAKTUR SMALL V" #x01d533) - ("MATHEMATICAL FRAKTUR SMALL W" #x01d534) - ("MATHEMATICAL FRAKTUR SMALL X" #x01d535) - ("MATHEMATICAL FRAKTUR SMALL Y" #x01d536) - ("MATHEMATICAL FRAKTUR SMALL Z" #x01d537) - ("MATHEMATICAL DOUBLE-STRUCK CAPITAL A" #x01d538) - ("MATHEMATICAL DOUBLE-STRUCK CAPITAL B" #x01d539) - ("MATHEMATICAL DOUBLE-STRUCK CAPITAL D" #x01d53b) - ("MATHEMATICAL DOUBLE-STRUCK CAPITAL E" #x01d53c) - ("MATHEMATICAL DOUBLE-STRUCK CAPITAL F" #x01d53d) - ("MATHEMATICAL DOUBLE-STRUCK CAPITAL G" #x01d53e) - ("MATHEMATICAL DOUBLE-STRUCK CAPITAL I" #x01d540) - ("MATHEMATICAL DOUBLE-STRUCK CAPITAL J" #x01d541) - ("MATHEMATICAL DOUBLE-STRUCK CAPITAL K" #x01d542) - ("MATHEMATICAL DOUBLE-STRUCK CAPITAL L" #x01d543) - ("MATHEMATICAL DOUBLE-STRUCK CAPITAL M" #x01d544) - ("MATHEMATICAL DOUBLE-STRUCK CAPITAL O" #x01d546) - ("MATHEMATICAL DOUBLE-STRUCK CAPITAL S" #x01d54a) - ("MATHEMATICAL DOUBLE-STRUCK CAPITAL T" #x01d54b) - ("MATHEMATICAL DOUBLE-STRUCK CAPITAL U" #x01d54c) - ("MATHEMATICAL DOUBLE-STRUCK CAPITAL V" #x01d54d) - ("MATHEMATICAL DOUBLE-STRUCK CAPITAL W" #x01d54e) - ("MATHEMATICAL DOUBLE-STRUCK CAPITAL X" #x01d54f) - ("MATHEMATICAL DOUBLE-STRUCK CAPITAL Y" #x01d550) - ("MATHEMATICAL DOUBLE-STRUCK SMALL A" #x01d552) - ("MATHEMATICAL DOUBLE-STRUCK SMALL B" #x01d553) - ("MATHEMATICAL DOUBLE-STRUCK SMALL C" #x01d554) - ("MATHEMATICAL DOUBLE-STRUCK SMALL D" #x01d555) - ("MATHEMATICAL DOUBLE-STRUCK SMALL E" #x01d556) - ("MATHEMATICAL DOUBLE-STRUCK SMALL F" #x01d557) - ("MATHEMATICAL DOUBLE-STRUCK SMALL G" #x01d558) - ("MATHEMATICAL DOUBLE-STRUCK SMALL H" #x01d559) - ("MATHEMATICAL DOUBLE-STRUCK SMALL I" #x01d55a) - ("MATHEMATICAL DOUBLE-STRUCK SMALL J" #x01d55b) - ("MATHEMATICAL DOUBLE-STRUCK SMALL K" #x01d55c) - ("MATHEMATICAL DOUBLE-STRUCK SMALL L" #x01d55d) - ("MATHEMATICAL DOUBLE-STRUCK SMALL M" #x01d55e) - ("MATHEMATICAL DOUBLE-STRUCK SMALL N" #x01d55f) - ("MATHEMATICAL DOUBLE-STRUCK SMALL O" #x01d560) - ("MATHEMATICAL DOUBLE-STRUCK SMALL P" #x01d561) - ("MATHEMATICAL DOUBLE-STRUCK SMALL Q" #x01d562) - ("MATHEMATICAL DOUBLE-STRUCK SMALL R" #x01d563) - ("MATHEMATICAL DOUBLE-STRUCK SMALL S" #x01d564) - ("MATHEMATICAL DOUBLE-STRUCK SMALL T" #x01d565) - ("MATHEMATICAL DOUBLE-STRUCK SMALL U" #x01d566) - ("MATHEMATICAL DOUBLE-STRUCK SMALL V" #x01d567) - ("MATHEMATICAL DOUBLE-STRUCK SMALL W" #x01d568) - ("MATHEMATICAL DOUBLE-STRUCK SMALL X" #x01d569) - ("MATHEMATICAL DOUBLE-STRUCK SMALL Y" #x01d56a) - ("MATHEMATICAL DOUBLE-STRUCK SMALL Z" #x01d56b) - ("MATHEMATICAL BOLD FRAKTUR CAPITAL A" #x01d56c) - ("MATHEMATICAL BOLD FRAKTUR CAPITAL B" #x01d56d) - ("MATHEMATICAL BOLD FRAKTUR CAPITAL C" #x01d56e) - ("MATHEMATICAL BOLD FRAKTUR CAPITAL D" #x01d56f) - ("MATHEMATICAL BOLD FRAKTUR CAPITAL E" #x01d570) - ("MATHEMATICAL BOLD FRAKTUR CAPITAL F" #x01d571) - ("MATHEMATICAL BOLD FRAKTUR CAPITAL G" #x01d572) - ("MATHEMATICAL BOLD FRAKTUR CAPITAL H" #x01d573) - ("MATHEMATICAL BOLD FRAKTUR CAPITAL I" #x01d574) - ("MATHEMATICAL BOLD FRAKTUR CAPITAL J" #x01d575) - ("MATHEMATICAL BOLD FRAKTUR CAPITAL K" #x01d576) - ("MATHEMATICAL BOLD FRAKTUR CAPITAL L" #x01d577) - ("MATHEMATICAL BOLD FRAKTUR CAPITAL M" #x01d578) - ("MATHEMATICAL BOLD FRAKTUR CAPITAL N" #x01d579) - ("MATHEMATICAL BOLD FRAKTUR CAPITAL O" #x01d57a) - ("MATHEMATICAL BOLD FRAKTUR CAPITAL P" #x01d57b) - ("MATHEMATICAL BOLD FRAKTUR CAPITAL Q" #x01d57c) - ("MATHEMATICAL BOLD FRAKTUR CAPITAL R" #x01d57d) - ("MATHEMATICAL BOLD FRAKTUR CAPITAL S" #x01d57e) - ("MATHEMATICAL BOLD FRAKTUR CAPITAL T" #x01d57f) - ("MATHEMATICAL BOLD FRAKTUR CAPITAL U" #x01d580) - ("MATHEMATICAL BOLD FRAKTUR CAPITAL V" #x01d581) - ("MATHEMATICAL BOLD FRAKTUR CAPITAL W" #x01d582) - ("MATHEMATICAL BOLD FRAKTUR CAPITAL X" #x01d583) - ("MATHEMATICAL BOLD FRAKTUR CAPITAL Y" #x01d584) - ("MATHEMATICAL BOLD FRAKTUR CAPITAL Z" #x01d585) - ("MATHEMATICAL BOLD FRAKTUR SMALL A" #x01d586) - ("MATHEMATICAL BOLD FRAKTUR SMALL B" #x01d587) - ("MATHEMATICAL BOLD FRAKTUR SMALL C" #x01d588) - ("MATHEMATICAL BOLD FRAKTUR SMALL D" #x01d589) - ("MATHEMATICAL BOLD FRAKTUR SMALL E" #x01d58a) - ("MATHEMATICAL BOLD FRAKTUR SMALL F" #x01d58b) - ("MATHEMATICAL BOLD FRAKTUR SMALL G" #x01d58c) - ("MATHEMATICAL BOLD FRAKTUR SMALL H" #x01d58d) - ("MATHEMATICAL BOLD FRAKTUR SMALL I" #x01d58e) - ("MATHEMATICAL BOLD FRAKTUR SMALL J" #x01d58f) - ("MATHEMATICAL BOLD FRAKTUR SMALL K" #x01d590) - ("MATHEMATICAL BOLD FRAKTUR SMALL L" #x01d591) - ("MATHEMATICAL BOLD FRAKTUR SMALL M" #x01d592) - ("MATHEMATICAL BOLD FRAKTUR SMALL N" #x01d593) - ("MATHEMATICAL BOLD FRAKTUR SMALL O" #x01d594) - ("MATHEMATICAL BOLD FRAKTUR SMALL P" #x01d595) - ("MATHEMATICAL BOLD FRAKTUR SMALL Q" #x01d596) - ("MATHEMATICAL BOLD FRAKTUR SMALL R" #x01d597) - ("MATHEMATICAL BOLD FRAKTUR SMALL S" #x01d598) - ("MATHEMATICAL BOLD FRAKTUR SMALL T" #x01d599) - ("MATHEMATICAL BOLD FRAKTUR SMALL U" #x01d59a) - ("MATHEMATICAL BOLD FRAKTUR SMALL V" #x01d59b) - ("MATHEMATICAL BOLD FRAKTUR SMALL W" #x01d59c) - ("MATHEMATICAL BOLD FRAKTUR SMALL X" #x01d59d) - ("MATHEMATICAL BOLD FRAKTUR SMALL Y" #x01d59e) - ("MATHEMATICAL BOLD FRAKTUR SMALL Z" #x01d59f) - ("MATHEMATICAL SANS-SERIF CAPITAL A" #x01d5a0) - ("MATHEMATICAL SANS-SERIF CAPITAL B" #x01d5a1) - ("MATHEMATICAL SANS-SERIF CAPITAL C" #x01d5a2) - ("MATHEMATICAL SANS-SERIF CAPITAL D" #x01d5a3) - ("MATHEMATICAL SANS-SERIF CAPITAL E" #x01d5a4) - ("MATHEMATICAL SANS-SERIF CAPITAL F" #x01d5a5) - ("MATHEMATICAL SANS-SERIF CAPITAL G" #x01d5a6) - ("MATHEMATICAL SANS-SERIF CAPITAL H" #x01d5a7) - ("MATHEMATICAL SANS-SERIF CAPITAL I" #x01d5a8) - ("MATHEMATICAL SANS-SERIF CAPITAL J" #x01d5a9) - ("MATHEMATICAL SANS-SERIF CAPITAL K" #x01d5aa) - ("MATHEMATICAL SANS-SERIF CAPITAL L" #x01d5ab) - ("MATHEMATICAL SANS-SERIF CAPITAL M" #x01d5ac) - ("MATHEMATICAL SANS-SERIF CAPITAL N" #x01d5ad) - ("MATHEMATICAL SANS-SERIF CAPITAL O" #x01d5ae) - ("MATHEMATICAL SANS-SERIF CAPITAL P" #x01d5af) - ("MATHEMATICAL SANS-SERIF CAPITAL Q" #x01d5b0) - ("MATHEMATICAL SANS-SERIF CAPITAL R" #x01d5b1) - ("MATHEMATICAL SANS-SERIF CAPITAL S" #x01d5b2) - ("MATHEMATICAL SANS-SERIF CAPITAL T" #x01d5b3) - ("MATHEMATICAL SANS-SERIF CAPITAL U" #x01d5b4) - ("MATHEMATICAL SANS-SERIF CAPITAL V" #x01d5b5) - ("MATHEMATICAL SANS-SERIF CAPITAL W" #x01d5b6) - ("MATHEMATICAL SANS-SERIF CAPITAL X" #x01d5b7) - ("MATHEMATICAL SANS-SERIF CAPITAL Y" #x01d5b8) - ("MATHEMATICAL SANS-SERIF CAPITAL Z" #x01d5b9) - ("MATHEMATICAL SANS-SERIF SMALL A" #x01d5ba) - ("MATHEMATICAL SANS-SERIF SMALL B" #x01d5bb) - ("MATHEMATICAL SANS-SERIF SMALL C" #x01d5bc) - ("MATHEMATICAL SANS-SERIF SMALL D" #x01d5bd) - ("MATHEMATICAL SANS-SERIF SMALL E" #x01d5be) - ("MATHEMATICAL SANS-SERIF SMALL F" #x01d5bf) - ("MATHEMATICAL SANS-SERIF SMALL G" #x01d5c0) - ("MATHEMATICAL SANS-SERIF SMALL H" #x01d5c1) - ("MATHEMATICAL SANS-SERIF SMALL I" #x01d5c2) - ("MATHEMATICAL SANS-SERIF SMALL J" #x01d5c3) - ("MATHEMATICAL SANS-SERIF SMALL K" #x01d5c4) - ("MATHEMATICAL SANS-SERIF SMALL L" #x01d5c5) - ("MATHEMATICAL SANS-SERIF SMALL M" #x01d5c6) - ("MATHEMATICAL SANS-SERIF SMALL N" #x01d5c7) - ("MATHEMATICAL SANS-SERIF SMALL O" #x01d5c8) - ("MATHEMATICAL SANS-SERIF SMALL P" #x01d5c9) - ("MATHEMATICAL SANS-SERIF SMALL Q" #x01d5ca) - ("MATHEMATICAL SANS-SERIF SMALL R" #x01d5cb) - ("MATHEMATICAL SANS-SERIF SMALL S" #x01d5cc) - ("MATHEMATICAL SANS-SERIF SMALL T" #x01d5cd) - ("MATHEMATICAL SANS-SERIF SMALL U" #x01d5ce) - ("MATHEMATICAL SANS-SERIF SMALL V" #x01d5cf) - ("MATHEMATICAL SANS-SERIF SMALL W" #x01d5d0) - ("MATHEMATICAL SANS-SERIF SMALL X" #x01d5d1) - ("MATHEMATICAL SANS-SERIF SMALL Y" #x01d5d2) - ("MATHEMATICAL SANS-SERIF SMALL Z" #x01d5d3) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL A" #x01d5d4) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL B" #x01d5d5) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL C" #x01d5d6) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL D" #x01d5d7) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL E" #x01d5d8) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL F" #x01d5d9) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL G" #x01d5da) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL H" #x01d5db) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL I" #x01d5dc) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL J" #x01d5dd) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL K" #x01d5de) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL L" #x01d5df) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL M" #x01d5e0) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL N" #x01d5e1) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL O" #x01d5e2) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL P" #x01d5e3) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL Q" #x01d5e4) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL R" #x01d5e5) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL S" #x01d5e6) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL T" #x01d5e7) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL U" #x01d5e8) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL V" #x01d5e9) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL W" #x01d5ea) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL X" #x01d5eb) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL Y" #x01d5ec) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL Z" #x01d5ed) - ("MATHEMATICAL SANS-SERIF BOLD SMALL A" #x01d5ee) - ("MATHEMATICAL SANS-SERIF BOLD SMALL B" #x01d5ef) - ("MATHEMATICAL SANS-SERIF BOLD SMALL C" #x01d5f0) - ("MATHEMATICAL SANS-SERIF BOLD SMALL D" #x01d5f1) - ("MATHEMATICAL SANS-SERIF BOLD SMALL E" #x01d5f2) - ("MATHEMATICAL SANS-SERIF BOLD SMALL F" #x01d5f3) - ("MATHEMATICAL SANS-SERIF BOLD SMALL G" #x01d5f4) - ("MATHEMATICAL SANS-SERIF BOLD SMALL H" #x01d5f5) - ("MATHEMATICAL SANS-SERIF BOLD SMALL I" #x01d5f6) - ("MATHEMATICAL SANS-SERIF BOLD SMALL J" #x01d5f7) - ("MATHEMATICAL SANS-SERIF BOLD SMALL K" #x01d5f8) - ("MATHEMATICAL SANS-SERIF BOLD SMALL L" #x01d5f9) - ("MATHEMATICAL SANS-SERIF BOLD SMALL M" #x01d5fa) - ("MATHEMATICAL SANS-SERIF BOLD SMALL N" #x01d5fb) - ("MATHEMATICAL SANS-SERIF BOLD SMALL O" #x01d5fc) - ("MATHEMATICAL SANS-SERIF BOLD SMALL P" #x01d5fd) - ("MATHEMATICAL SANS-SERIF BOLD SMALL Q" #x01d5fe) - ("MATHEMATICAL SANS-SERIF BOLD SMALL R" #x01d5ff) - ("MATHEMATICAL SANS-SERIF BOLD SMALL S" #x01d600) - ("MATHEMATICAL SANS-SERIF BOLD SMALL T" #x01d601) - ("MATHEMATICAL SANS-SERIF BOLD SMALL U" #x01d602) - ("MATHEMATICAL SANS-SERIF BOLD SMALL V" #x01d603) - ("MATHEMATICAL SANS-SERIF BOLD SMALL W" #x01d604) - ("MATHEMATICAL SANS-SERIF BOLD SMALL X" #x01d605) - ("MATHEMATICAL SANS-SERIF BOLD SMALL Y" #x01d606) - ("MATHEMATICAL SANS-SERIF BOLD SMALL Z" #x01d607) - ("MATHEMATICAL SANS-SERIF ITALIC CAPITAL A" #x01d608) - ("MATHEMATICAL SANS-SERIF ITALIC CAPITAL B" #x01d609) - ("MATHEMATICAL SANS-SERIF ITALIC CAPITAL C" #x01d60a) - ("MATHEMATICAL SANS-SERIF ITALIC CAPITAL D" #x01d60b) - ("MATHEMATICAL SANS-SERIF ITALIC CAPITAL E" #x01d60c) - ("MATHEMATICAL SANS-SERIF ITALIC CAPITAL F" #x01d60d) - ("MATHEMATICAL SANS-SERIF ITALIC CAPITAL G" #x01d60e) - ("MATHEMATICAL SANS-SERIF ITALIC CAPITAL H" #x01d60f) - ("MATHEMATICAL SANS-SERIF ITALIC CAPITAL I" #x01d610) - ("MATHEMATICAL SANS-SERIF ITALIC CAPITAL J" #x01d611) - ("MATHEMATICAL SANS-SERIF ITALIC CAPITAL K" #x01d612) - ("MATHEMATICAL SANS-SERIF ITALIC CAPITAL L" #x01d613) - ("MATHEMATICAL SANS-SERIF ITALIC CAPITAL M" #x01d614) - ("MATHEMATICAL SANS-SERIF ITALIC CAPITAL N" #x01d615) - ("MATHEMATICAL SANS-SERIF ITALIC CAPITAL O" #x01d616) - ("MATHEMATICAL SANS-SERIF ITALIC CAPITAL P" #x01d617) - ("MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q" #x01d618) - ("MATHEMATICAL SANS-SERIF ITALIC CAPITAL R" #x01d619) - ("MATHEMATICAL SANS-SERIF ITALIC CAPITAL S" #x01d61a) - ("MATHEMATICAL SANS-SERIF ITALIC CAPITAL T" #x01d61b) - ("MATHEMATICAL SANS-SERIF ITALIC CAPITAL U" #x01d61c) - ("MATHEMATICAL SANS-SERIF ITALIC CAPITAL V" #x01d61d) - ("MATHEMATICAL SANS-SERIF ITALIC CAPITAL W" #x01d61e) - ("MATHEMATICAL SANS-SERIF ITALIC CAPITAL X" #x01d61f) - ("MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y" #x01d620) - ("MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z" #x01d621) - ("MATHEMATICAL SANS-SERIF ITALIC SMALL A" #x01d622) - ("MATHEMATICAL SANS-SERIF ITALIC SMALL B" #x01d623) - ("MATHEMATICAL SANS-SERIF ITALIC SMALL C" #x01d624) - ("MATHEMATICAL SANS-SERIF ITALIC SMALL D" #x01d625) - ("MATHEMATICAL SANS-SERIF ITALIC SMALL E" #x01d626) - ("MATHEMATICAL SANS-SERIF ITALIC SMALL F" #x01d627) - ("MATHEMATICAL SANS-SERIF ITALIC SMALL G" #x01d628) - ("MATHEMATICAL SANS-SERIF ITALIC SMALL H" #x01d629) - ("MATHEMATICAL SANS-SERIF ITALIC SMALL I" #x01d62a) - ("MATHEMATICAL SANS-SERIF ITALIC SMALL J" #x01d62b) - ("MATHEMATICAL SANS-SERIF ITALIC SMALL K" #x01d62c) - ("MATHEMATICAL SANS-SERIF ITALIC SMALL L" #x01d62d) - ("MATHEMATICAL SANS-SERIF ITALIC SMALL M" #x01d62e) - ("MATHEMATICAL SANS-SERIF ITALIC SMALL N" #x01d62f) - ("MATHEMATICAL SANS-SERIF ITALIC SMALL O" #x01d630) - ("MATHEMATICAL SANS-SERIF ITALIC SMALL P" #x01d631) - ("MATHEMATICAL SANS-SERIF ITALIC SMALL Q" #x01d632) - ("MATHEMATICAL SANS-SERIF ITALIC SMALL R" #x01d633) - ("MATHEMATICAL SANS-SERIF ITALIC SMALL S" #x01d634) - ("MATHEMATICAL SANS-SERIF ITALIC SMALL T" #x01d635) - ("MATHEMATICAL SANS-SERIF ITALIC SMALL U" #x01d636) - ("MATHEMATICAL SANS-SERIF ITALIC SMALL V" #x01d637) - ("MATHEMATICAL SANS-SERIF ITALIC SMALL W" #x01d638) - ("MATHEMATICAL SANS-SERIF ITALIC SMALL X" #x01d639) - ("MATHEMATICAL SANS-SERIF ITALIC SMALL Y" #x01d63a) - ("MATHEMATICAL SANS-SERIF ITALIC SMALL Z" #x01d63b) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A" #x01d63c) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B" #x01d63d) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C" #x01d63e) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D" #x01d63f) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E" #x01d640) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F" #x01d641) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G" #x01d642) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H" #x01d643) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I" #x01d644) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J" #x01d645) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K" #x01d646) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L" #x01d647) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M" #x01d648) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N" #x01d649) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O" #x01d64a) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P" #x01d64b) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q" #x01d64c) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R" #x01d64d) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S" #x01d64e) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T" #x01d64f) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U" #x01d650) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V" #x01d651) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W" #x01d652) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X" #x01d653) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y" #x01d654) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z" #x01d655) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A" #x01d656) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B" #x01d657) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C" #x01d658) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D" #x01d659) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E" #x01d65a) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F" #x01d65b) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G" #x01d65c) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H" #x01d65d) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I" #x01d65e) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J" #x01d65f) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K" #x01d660) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L" #x01d661) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M" #x01d662) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N" #x01d663) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O" #x01d664) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P" #x01d665) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q" #x01d666) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R" #x01d667) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S" #x01d668) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T" #x01d669) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U" #x01d66a) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V" #x01d66b) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W" #x01d66c) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X" #x01d66d) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y" #x01d66e) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z" #x01d66f) - ("MATHEMATICAL MONOSPACE CAPITAL A" #x01d670) - ("MATHEMATICAL MONOSPACE CAPITAL B" #x01d671) - ("MATHEMATICAL MONOSPACE CAPITAL C" #x01d672) - ("MATHEMATICAL MONOSPACE CAPITAL D" #x01d673) - ("MATHEMATICAL MONOSPACE CAPITAL E" #x01d674) - ("MATHEMATICAL MONOSPACE CAPITAL F" #x01d675) - ("MATHEMATICAL MONOSPACE CAPITAL G" #x01d676) - ("MATHEMATICAL MONOSPACE CAPITAL H" #x01d677) - ("MATHEMATICAL MONOSPACE CAPITAL I" #x01d678) - ("MATHEMATICAL MONOSPACE CAPITAL J" #x01d679) - ("MATHEMATICAL MONOSPACE CAPITAL K" #x01d67a) - ("MATHEMATICAL MONOSPACE CAPITAL L" #x01d67b) - ("MATHEMATICAL MONOSPACE CAPITAL M" #x01d67c) - ("MATHEMATICAL MONOSPACE CAPITAL N" #x01d67d) - ("MATHEMATICAL MONOSPACE CAPITAL O" #x01d67e) - ("MATHEMATICAL MONOSPACE CAPITAL P" #x01d67f) - ("MATHEMATICAL MONOSPACE CAPITAL Q" #x01d680) - ("MATHEMATICAL MONOSPACE CAPITAL R" #x01d681) - ("MATHEMATICAL MONOSPACE CAPITAL S" #x01d682) - ("MATHEMATICAL MONOSPACE CAPITAL T" #x01d683) - ("MATHEMATICAL MONOSPACE CAPITAL U" #x01d684) - ("MATHEMATICAL MONOSPACE CAPITAL V" #x01d685) - ("MATHEMATICAL MONOSPACE CAPITAL W" #x01d686) - ("MATHEMATICAL MONOSPACE CAPITAL X" #x01d687) - ("MATHEMATICAL MONOSPACE CAPITAL Y" #x01d688) - ("MATHEMATICAL MONOSPACE CAPITAL Z" #x01d689) - ("MATHEMATICAL MONOSPACE SMALL A" #x01d68a) - ("MATHEMATICAL MONOSPACE SMALL B" #x01d68b) - ("MATHEMATICAL MONOSPACE SMALL C" #x01d68c) - ("MATHEMATICAL MONOSPACE SMALL D" #x01d68d) - ("MATHEMATICAL MONOSPACE SMALL E" #x01d68e) - ("MATHEMATICAL MONOSPACE SMALL F" #x01d68f) - ("MATHEMATICAL MONOSPACE SMALL G" #x01d690) - ("MATHEMATICAL MONOSPACE SMALL H" #x01d691) - ("MATHEMATICAL MONOSPACE SMALL I" #x01d692) - ("MATHEMATICAL MONOSPACE SMALL J" #x01d693) - ("MATHEMATICAL MONOSPACE SMALL K" #x01d694) - ("MATHEMATICAL MONOSPACE SMALL L" #x01d695) - ("MATHEMATICAL MONOSPACE SMALL M" #x01d696) - ("MATHEMATICAL MONOSPACE SMALL N" #x01d697) - ("MATHEMATICAL MONOSPACE SMALL O" #x01d698) - ("MATHEMATICAL MONOSPACE SMALL P" #x01d699) - ("MATHEMATICAL MONOSPACE SMALL Q" #x01d69a) - ("MATHEMATICAL MONOSPACE SMALL R" #x01d69b) - ("MATHEMATICAL MONOSPACE SMALL S" #x01d69c) - ("MATHEMATICAL MONOSPACE SMALL T" #x01d69d) - ("MATHEMATICAL MONOSPACE SMALL U" #x01d69e) - ("MATHEMATICAL MONOSPACE SMALL V" #x01d69f) - ("MATHEMATICAL MONOSPACE SMALL W" #x01d6a0) - ("MATHEMATICAL MONOSPACE SMALL X" #x01d6a1) - ("MATHEMATICAL MONOSPACE SMALL Y" #x01d6a2) - ("MATHEMATICAL MONOSPACE SMALL Z" #x01d6a3) - ("MATHEMATICAL BOLD CAPITAL ALPHA" #x01d6a8) - ("MATHEMATICAL BOLD CAPITAL BETA" #x01d6a9) - ("MATHEMATICAL BOLD CAPITAL GAMMA" #x01d6aa) - ("MATHEMATICAL BOLD CAPITAL DELTA" #x01d6ab) - ("MATHEMATICAL BOLD CAPITAL EPSILON" #x01d6ac) - ("MATHEMATICAL BOLD CAPITAL ZETA" #x01d6ad) - ("MATHEMATICAL BOLD CAPITAL ETA" #x01d6ae) - ("MATHEMATICAL BOLD CAPITAL THETA" #x01d6af) - ("MATHEMATICAL BOLD CAPITAL IOTA" #x01d6b0) - ("MATHEMATICAL BOLD CAPITAL KAPPA" #x01d6b1) - ("MATHEMATICAL BOLD CAPITAL LAMDA" #x01d6b2) - ("MATHEMATICAL BOLD CAPITAL MU" #x01d6b3) - ("MATHEMATICAL BOLD CAPITAL NU" #x01d6b4) - ("MATHEMATICAL BOLD CAPITAL XI" #x01d6b5) - ("MATHEMATICAL BOLD CAPITAL OMICRON" #x01d6b6) - ("MATHEMATICAL BOLD CAPITAL PI" #x01d6b7) - ("MATHEMATICAL BOLD CAPITAL RHO" #x01d6b8) - ("MATHEMATICAL BOLD CAPITAL THETA SYMBOL" #x01d6b9) - ("MATHEMATICAL BOLD CAPITAL SIGMA" #x01d6ba) - ("MATHEMATICAL BOLD CAPITAL TAU" #x01d6bb) - ("MATHEMATICAL BOLD CAPITAL UPSILON" #x01d6bc) - ("MATHEMATICAL BOLD CAPITAL PHI" #x01d6bd) - ("MATHEMATICAL BOLD CAPITAL CHI" #x01d6be) - ("MATHEMATICAL BOLD CAPITAL PSI" #x01d6bf) - ("MATHEMATICAL BOLD CAPITAL OMEGA" #x01d6c0) - ("MATHEMATICAL BOLD NABLA" #x01d6c1) - ("MATHEMATICAL BOLD SMALL ALPHA" #x01d6c2) - ("MATHEMATICAL BOLD SMALL BETA" #x01d6c3) - ("MATHEMATICAL BOLD SMALL GAMMA" #x01d6c4) - ("MATHEMATICAL BOLD SMALL DELTA" #x01d6c5) - ("MATHEMATICAL BOLD SMALL EPSILON" #x01d6c6) - ("MATHEMATICAL BOLD SMALL ZETA" #x01d6c7) - ("MATHEMATICAL BOLD SMALL ETA" #x01d6c8) - ("MATHEMATICAL BOLD SMALL THETA" #x01d6c9) - ("MATHEMATICAL BOLD SMALL IOTA" #x01d6ca) - ("MATHEMATICAL BOLD SMALL KAPPA" #x01d6cb) - ("MATHEMATICAL BOLD SMALL LAMDA" #x01d6cc) - ("MATHEMATICAL BOLD SMALL MU" #x01d6cd) - ("MATHEMATICAL BOLD SMALL NU" #x01d6ce) - ("MATHEMATICAL BOLD SMALL XI" #x01d6cf) - ("MATHEMATICAL BOLD SMALL OMICRON" #x01d6d0) - ("MATHEMATICAL BOLD SMALL PI" #x01d6d1) - ("MATHEMATICAL BOLD SMALL RHO" #x01d6d2) - ("MATHEMATICAL BOLD SMALL FINAL SIGMA" #x01d6d3) - ("MATHEMATICAL BOLD SMALL SIGMA" #x01d6d4) - ("MATHEMATICAL BOLD SMALL TAU" #x01d6d5) - ("MATHEMATICAL BOLD SMALL UPSILON" #x01d6d6) - ("MATHEMATICAL BOLD SMALL PHI" #x01d6d7) - ("MATHEMATICAL BOLD SMALL CHI" #x01d6d8) - ("MATHEMATICAL BOLD SMALL PSI" #x01d6d9) - ("MATHEMATICAL BOLD SMALL OMEGA" #x01d6da) - ("MATHEMATICAL BOLD PARTIAL DIFFERENTIAL" #x01d6db) - ("MATHEMATICAL BOLD EPSILON SYMBOL" #x01d6dc) - ("MATHEMATICAL BOLD THETA SYMBOL" #x01d6dd) - ("MATHEMATICAL BOLD KAPPA SYMBOL" #x01d6de) - ("MATHEMATICAL BOLD PHI SYMBOL" #x01d6df) - ("MATHEMATICAL BOLD RHO SYMBOL" #x01d6e0) - ("MATHEMATICAL BOLD PI SYMBOL" #x01d6e1) - ("MATHEMATICAL ITALIC CAPITAL ALPHA" #x01d6e2) - ("MATHEMATICAL ITALIC CAPITAL BETA" #x01d6e3) - ("MATHEMATICAL ITALIC CAPITAL GAMMA" #x01d6e4) - ("MATHEMATICAL ITALIC CAPITAL DELTA" #x01d6e5) - ("MATHEMATICAL ITALIC CAPITAL EPSILON" #x01d6e6) - ("MATHEMATICAL ITALIC CAPITAL ZETA" #x01d6e7) - ("MATHEMATICAL ITALIC CAPITAL ETA" #x01d6e8) - ("MATHEMATICAL ITALIC CAPITAL THETA" #x01d6e9) - ("MATHEMATICAL ITALIC CAPITAL IOTA" #x01d6ea) - ("MATHEMATICAL ITALIC CAPITAL KAPPA" #x01d6eb) - ("MATHEMATICAL ITALIC CAPITAL LAMDA" #x01d6ec) - ("MATHEMATICAL ITALIC CAPITAL MU" #x01d6ed) - ("MATHEMATICAL ITALIC CAPITAL NU" #x01d6ee) - ("MATHEMATICAL ITALIC CAPITAL XI" #x01d6ef) - ("MATHEMATICAL ITALIC CAPITAL OMICRON" #x01d6f0) - ("MATHEMATICAL ITALIC CAPITAL PI" #x01d6f1) - ("MATHEMATICAL ITALIC CAPITAL RHO" #x01d6f2) - ("MATHEMATICAL ITALIC CAPITAL THETA SYMBOL" #x01d6f3) - ("MATHEMATICAL ITALIC CAPITAL SIGMA" #x01d6f4) - ("MATHEMATICAL ITALIC CAPITAL TAU" #x01d6f5) - ("MATHEMATICAL ITALIC CAPITAL UPSILON" #x01d6f6) - ("MATHEMATICAL ITALIC CAPITAL PHI" #x01d6f7) - ("MATHEMATICAL ITALIC CAPITAL CHI" #x01d6f8) - ("MATHEMATICAL ITALIC CAPITAL PSI" #x01d6f9) - ("MATHEMATICAL ITALIC CAPITAL OMEGA" #x01d6fa) - ("MATHEMATICAL ITALIC NABLA" #x01d6fb) - ("MATHEMATICAL ITALIC SMALL ALPHA" #x01d6fc) - ("MATHEMATICAL ITALIC SMALL BETA" #x01d6fd) - ("MATHEMATICAL ITALIC SMALL GAMMA" #x01d6fe) - ("MATHEMATICAL ITALIC SMALL DELTA" #x01d6ff) - ("MATHEMATICAL ITALIC SMALL EPSILON" #x01d700) - ("MATHEMATICAL ITALIC SMALL ZETA" #x01d701) - ("MATHEMATICAL ITALIC SMALL ETA" #x01d702) - ("MATHEMATICAL ITALIC SMALL THETA" #x01d703) - ("MATHEMATICAL ITALIC SMALL IOTA" #x01d704) - ("MATHEMATICAL ITALIC SMALL KAPPA" #x01d705) - ("MATHEMATICAL ITALIC SMALL LAMDA" #x01d706) - ("MATHEMATICAL ITALIC SMALL MU" #x01d707) - ("MATHEMATICAL ITALIC SMALL NU" #x01d708) - ("MATHEMATICAL ITALIC SMALL XI" #x01d709) - ("MATHEMATICAL ITALIC SMALL OMICRON" #x01d70a) - ("MATHEMATICAL ITALIC SMALL PI" #x01d70b) - ("MATHEMATICAL ITALIC SMALL RHO" #x01d70c) - ("MATHEMATICAL ITALIC SMALL FINAL SIGMA" #x01d70d) - ("MATHEMATICAL ITALIC SMALL SIGMA" #x01d70e) - ("MATHEMATICAL ITALIC SMALL TAU" #x01d70f) - ("MATHEMATICAL ITALIC SMALL UPSILON" #x01d710) - ("MATHEMATICAL ITALIC SMALL PHI" #x01d711) - ("MATHEMATICAL ITALIC SMALL CHI" #x01d712) - ("MATHEMATICAL ITALIC SMALL PSI" #x01d713) - ("MATHEMATICAL ITALIC SMALL OMEGA" #x01d714) - ("MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL" #x01d715) - ("MATHEMATICAL ITALIC EPSILON SYMBOL" #x01d716) - ("MATHEMATICAL ITALIC THETA SYMBOL" #x01d717) - ("MATHEMATICAL ITALIC KAPPA SYMBOL" #x01d718) - ("MATHEMATICAL ITALIC PHI SYMBOL" #x01d719) - ("MATHEMATICAL ITALIC RHO SYMBOL" #x01d71a) - ("MATHEMATICAL ITALIC PI SYMBOL" #x01d71b) - ("MATHEMATICAL BOLD ITALIC CAPITAL ALPHA" #x01d71c) - ("MATHEMATICAL BOLD ITALIC CAPITAL BETA" #x01d71d) - ("MATHEMATICAL BOLD ITALIC CAPITAL GAMMA" #x01d71e) - ("MATHEMATICAL BOLD ITALIC CAPITAL DELTA" #x01d71f) - ("MATHEMATICAL BOLD ITALIC CAPITAL EPSILON" #x01d720) - ("MATHEMATICAL BOLD ITALIC CAPITAL ZETA" #x01d721) - ("MATHEMATICAL BOLD ITALIC CAPITAL ETA" #x01d722) - ("MATHEMATICAL BOLD ITALIC CAPITAL THETA" #x01d723) - ("MATHEMATICAL BOLD ITALIC CAPITAL IOTA" #x01d724) - ("MATHEMATICAL BOLD ITALIC CAPITAL KAPPA" #x01d725) - ("MATHEMATICAL BOLD ITALIC CAPITAL LAMDA" #x01d726) - ("MATHEMATICAL BOLD ITALIC CAPITAL MU" #x01d727) - ("MATHEMATICAL BOLD ITALIC CAPITAL NU" #x01d728) - ("MATHEMATICAL BOLD ITALIC CAPITAL XI" #x01d729) - ("MATHEMATICAL BOLD ITALIC CAPITAL OMICRON" #x01d72a) - ("MATHEMATICAL BOLD ITALIC CAPITAL PI" #x01d72b) - ("MATHEMATICAL BOLD ITALIC CAPITAL RHO" #x01d72c) - ("MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL" #x01d72d) - ("MATHEMATICAL BOLD ITALIC CAPITAL SIGMA" #x01d72e) - ("MATHEMATICAL BOLD ITALIC CAPITAL TAU" #x01d72f) - ("MATHEMATICAL BOLD ITALIC CAPITAL UPSILON" #x01d730) - ("MATHEMATICAL BOLD ITALIC CAPITAL PHI" #x01d731) - ("MATHEMATICAL BOLD ITALIC CAPITAL CHI" #x01d732) - ("MATHEMATICAL BOLD ITALIC CAPITAL PSI" #x01d733) - ("MATHEMATICAL BOLD ITALIC CAPITAL OMEGA" #x01d734) - ("MATHEMATICAL BOLD ITALIC NABLA" #x01d735) - ("MATHEMATICAL BOLD ITALIC SMALL ALPHA" #x01d736) - ("MATHEMATICAL BOLD ITALIC SMALL BETA" #x01d737) - ("MATHEMATICAL BOLD ITALIC SMALL GAMMA" #x01d738) - ("MATHEMATICAL BOLD ITALIC SMALL DELTA" #x01d739) - ("MATHEMATICAL BOLD ITALIC SMALL EPSILON" #x01d73a) - ("MATHEMATICAL BOLD ITALIC SMALL ZETA" #x01d73b) - ("MATHEMATICAL BOLD ITALIC SMALL ETA" #x01d73c) - ("MATHEMATICAL BOLD ITALIC SMALL THETA" #x01d73d) - ("MATHEMATICAL BOLD ITALIC SMALL IOTA" #x01d73e) - ("MATHEMATICAL BOLD ITALIC SMALL KAPPA" #x01d73f) - ("MATHEMATICAL BOLD ITALIC SMALL LAMDA" #x01d740) - ("MATHEMATICAL BOLD ITALIC SMALL MU" #x01d741) - ("MATHEMATICAL BOLD ITALIC SMALL NU" #x01d742) - ("MATHEMATICAL BOLD ITALIC SMALL XI" #x01d743) - ("MATHEMATICAL BOLD ITALIC SMALL OMICRON" #x01d744) - ("MATHEMATICAL BOLD ITALIC SMALL PI" #x01d745) - ("MATHEMATICAL BOLD ITALIC SMALL RHO" #x01d746) - ("MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA" #x01d747) - ("MATHEMATICAL BOLD ITALIC SMALL SIGMA" #x01d748) - ("MATHEMATICAL BOLD ITALIC SMALL TAU" #x01d749) - ("MATHEMATICAL BOLD ITALIC SMALL UPSILON" #x01d74a) - ("MATHEMATICAL BOLD ITALIC SMALL PHI" #x01d74b) - ("MATHEMATICAL BOLD ITALIC SMALL CHI" #x01d74c) - ("MATHEMATICAL BOLD ITALIC SMALL PSI" #x01d74d) - ("MATHEMATICAL BOLD ITALIC SMALL OMEGA" #x01d74e) - ("MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL" #x01d74f) - ("MATHEMATICAL BOLD ITALIC EPSILON SYMBOL" #x01d750) - ("MATHEMATICAL BOLD ITALIC THETA SYMBOL" #x01d751) - ("MATHEMATICAL BOLD ITALIC KAPPA SYMBOL" #x01d752) - ("MATHEMATICAL BOLD ITALIC PHI SYMBOL" #x01d753) - ("MATHEMATICAL BOLD ITALIC RHO SYMBOL" #x01d754) - ("MATHEMATICAL BOLD ITALIC PI SYMBOL" #x01d755) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA" #x01d756) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA" #x01d757) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA" #x01d758) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA" #x01d759) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON" #x01d75a) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA" #x01d75b) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA" #x01d75c) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA" #x01d75d) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA" #x01d75e) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA" #x01d75f) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA" #x01d760) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL MU" #x01d761) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL NU" #x01d762) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL XI" #x01d763) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON" #x01d764) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL PI" #x01d765) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO" #x01d766) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL" #x01d767) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA" #x01d768) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU" #x01d769) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON" #x01d76a) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI" #x01d76b) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI" #x01d76c) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI" #x01d76d) - ("MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA" #x01d76e) - ("MATHEMATICAL SANS-SERIF BOLD NABLA" #x01d76f) - ("MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA" #x01d770) - ("MATHEMATICAL SANS-SERIF BOLD SMALL BETA" #x01d771) - ("MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA" #x01d772) - ("MATHEMATICAL SANS-SERIF BOLD SMALL DELTA" #x01d773) - ("MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON" #x01d774) - ("MATHEMATICAL SANS-SERIF BOLD SMALL ZETA" #x01d775) - ("MATHEMATICAL SANS-SERIF BOLD SMALL ETA" #x01d776) - ("MATHEMATICAL SANS-SERIF BOLD SMALL THETA" #x01d777) - ("MATHEMATICAL SANS-SERIF BOLD SMALL IOTA" #x01d778) - ("MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA" #x01d779) - ("MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA" #x01d77a) - ("MATHEMATICAL SANS-SERIF BOLD SMALL MU" #x01d77b) - ("MATHEMATICAL SANS-SERIF BOLD SMALL NU" #x01d77c) - ("MATHEMATICAL SANS-SERIF BOLD SMALL XI" #x01d77d) - ("MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON" #x01d77e) - ("MATHEMATICAL SANS-SERIF BOLD SMALL PI" #x01d77f) - ("MATHEMATICAL SANS-SERIF BOLD SMALL RHO" #x01d780) - ("MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA" #x01d781) - ("MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA" #x01d782) - ("MATHEMATICAL SANS-SERIF BOLD SMALL TAU" #x01d783) - ("MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON" #x01d784) - ("MATHEMATICAL SANS-SERIF BOLD SMALL PHI" #x01d785) - ("MATHEMATICAL SANS-SERIF BOLD SMALL CHI" #x01d786) - ("MATHEMATICAL SANS-SERIF BOLD SMALL PSI" #x01d787) - ("MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA" #x01d788) - ("MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL" #x01d789) - ("MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL" #x01d78a) - ("MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL" #x01d78b) - ("MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL" #x01d78c) - ("MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL" #x01d78d) - ("MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL" #x01d78e) - ("MATHEMATICAL SANS-SERIF BOLD PI SYMBOL" #x01d78f) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA" #x01d790) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA" #x01d791) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA" #x01d792) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA" #x01d793) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON" #x01d794) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA" #x01d795) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA" #x01d796) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA" #x01d797) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA" #x01d798) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA" #x01d799) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA" #x01d79a) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU" #x01d79b) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU" #x01d79c) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI" #x01d79d) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON" #x01d79e) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI" #x01d79f) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO" #x01d7a0) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL" #x01d7a1) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA" #x01d7a2) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU" #x01d7a3) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON" #x01d7a4) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI" #x01d7a5) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI" #x01d7a6) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI" #x01d7a7) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA" #x01d7a8) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA" #x01d7a9) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA" #x01d7aa) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA" #x01d7ab) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA" #x01d7ac) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA" #x01d7ad) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON" #x01d7ae) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA" #x01d7af) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA" #x01d7b0) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA" #x01d7b1) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA" #x01d7b2) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA" #x01d7b3) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA" #x01d7b4) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU" #x01d7b5) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU" #x01d7b6) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI" #x01d7b7) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON" #x01d7b8) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI" #x01d7b9) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO" #x01d7ba) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA" #x01d7bb) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA" #x01d7bc) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU" #x01d7bd) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON" #x01d7be) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI" #x01d7bf) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI" #x01d7c0) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI" #x01d7c1) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA" #x01d7c2) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL" #x01d7c3) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL" #x01d7c4) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL" #x01d7c5) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL" #x01d7c6) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL" #x01d7c7) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL" #x01d7c8) - ("MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL" #x01d7c9) - ("MATHEMATICAL BOLD DIGIT ZERO" #x01d7ce) - ("MATHEMATICAL BOLD DIGIT ONE" #x01d7cf) - ("MATHEMATICAL BOLD DIGIT TWO" #x01d7d0) - ("MATHEMATICAL BOLD DIGIT THREE" #x01d7d1) - ("MATHEMATICAL BOLD DIGIT FOUR" #x01d7d2) - ("MATHEMATICAL BOLD DIGIT FIVE" #x01d7d3) - ("MATHEMATICAL BOLD DIGIT SIX" #x01d7d4) - ("MATHEMATICAL BOLD DIGIT SEVEN" #x01d7d5) - ("MATHEMATICAL BOLD DIGIT EIGHT" #x01d7d6) - ("MATHEMATICAL BOLD DIGIT NINE" #x01d7d7) - ("MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO" #x01d7d8) - ("MATHEMATICAL DOUBLE-STRUCK DIGIT ONE" #x01d7d9) - ("MATHEMATICAL DOUBLE-STRUCK DIGIT TWO" #x01d7da) - ("MATHEMATICAL DOUBLE-STRUCK DIGIT THREE" #x01d7db) - ("MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR" #x01d7dc) - ("MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE" #x01d7dd) - ("MATHEMATICAL DOUBLE-STRUCK DIGIT SIX" #x01d7de) - ("MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN" #x01d7df) - ("MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT" #x01d7e0) - ("MATHEMATICAL DOUBLE-STRUCK DIGIT NINE" #x01d7e1) - ("MATHEMATICAL SANS-SERIF DIGIT ZERO" #x01d7e2) - ("MATHEMATICAL SANS-SERIF DIGIT ONE" #x01d7e3) - ("MATHEMATICAL SANS-SERIF DIGIT TWO" #x01d7e4) - ("MATHEMATICAL SANS-SERIF DIGIT THREE" #x01d7e5) - ("MATHEMATICAL SANS-SERIF DIGIT FOUR" #x01d7e6) - ("MATHEMATICAL SANS-SERIF DIGIT FIVE" #x01d7e7) - ("MATHEMATICAL SANS-SERIF DIGIT SIX" #x01d7e8) - ("MATHEMATICAL SANS-SERIF DIGIT SEVEN" #x01d7e9) - ("MATHEMATICAL SANS-SERIF DIGIT EIGHT" #x01d7ea) - ("MATHEMATICAL SANS-SERIF DIGIT NINE" #x01d7eb) - ("MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO" #x01d7ec) - ("MATHEMATICAL SANS-SERIF BOLD DIGIT ONE" #x01d7ed) - ("MATHEMATICAL SANS-SERIF BOLD DIGIT TWO" #x01d7ee) - ("MATHEMATICAL SANS-SERIF BOLD DIGIT THREE" #x01d7ef) - ("MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR" #x01d7f0) - ("MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE" #x01d7f1) - ("MATHEMATICAL SANS-SERIF BOLD DIGIT SIX" #x01d7f2) - ("MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN" #x01d7f3) - ("MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT" #x01d7f4) - ("MATHEMATICAL SANS-SERIF BOLD DIGIT NINE" #x01d7f5) - ("MATHEMATICAL MONOSPACE DIGIT ZERO" #x01d7f6) - ("MATHEMATICAL MONOSPACE DIGIT ONE" #x01d7f7) - ("MATHEMATICAL MONOSPACE DIGIT TWO" #x01d7f8) - ("MATHEMATICAL MONOSPACE DIGIT THREE" #x01d7f9) - ("MATHEMATICAL MONOSPACE DIGIT FOUR" #x01d7fa) - ("MATHEMATICAL MONOSPACE DIGIT FIVE" #x01d7fb) - ("MATHEMATICAL MONOSPACE DIGIT SIX" #x01d7fc) - ("MATHEMATICAL MONOSPACE DIGIT SEVEN" #x01d7fd) - ("MATHEMATICAL MONOSPACE DIGIT EIGHT" #x01d7fe) - ("MATHEMATICAL MONOSPACE DIGIT NINE" #x01d7ff) -)) - -;; taken from xmlunicode.el, also by Norman Walsh. -;; Modified a bit by me to use its own help-style buffer - -(defun x-symbol-list-unicode-characters () - "Insert each Unicode character into a buffer. Let's you see which characters are available for literal display in your emacs font." - (interactive) - (pop-to-buffer "*x-symbol-unicode*") - (let ((chars x-symbol-unicode-character-list) - char codept name) - (while chars - (setq char (car chars)) - (setq chars (cdr chars)) - (setq name (car char)) - (setq codept (cadr char)) - - (if (< codept #xffff) - (progn - (insert (format "#x%06x " codept)) - (ucs-insert codept) - (insert (format " %s\n" name))))))) - -(provide 'x-symbol-unichars) diff --git a/x-symbol/lisp/x-symbol-unicode-extras.el b/x-symbol/lisp/x-symbol-unicode-extras.el deleted file mode 100644 index ffb32981..00000000 --- a/x-symbol/lisp/x-symbol-unicode-extras.el +++ /dev/null @@ -1,462 +0,0 @@ -;;; x-symbol-unicode-extras.el --- more Unicode tables for X-Symbol. -;; -;; Author: David Aspinall -;; -;;; Commentary: -;; -;; Some new symbols possibly available in Unicode fonts -;; -;; TODO: need to define key short cuts, categories in a rational way -;; - -;;; Code: -(defconst x-symol-unicode-extras - '( - (left-tortoise-shell-bracket "LEFT TORTOISE SHELL BRACKET") - (right-tortoise-shell-bracket "RIGHT TORTOISE SHELL BRACKET") - (left-white-tortoise-shell-bracket "LEFT WHITE TORTOISE SHELL BRACKET") - (right-white-tortoise-shell-bracket "RIGHT WHITE TORTOISE SHELL BRACKET") - (left-double-angle-bracket "LEFT DOUBLE ANGLE BRACKET") - (right-double-angle-bracket "RIGHT DOUBLE ANGLE BRACKET") - (left-black-lenticular-bracket "LEFT BLACK LENTICULAR BRACKET") - (right-black-lenticular-bracket "RIGHT BLACK LENTICULAR BRACKET") - (less-than-above-greater-than-above-double-line-equal - "LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL") - (greater-than-above-less-than-above-double-line-equal - "GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL") - (double-nested-less-than "DOUBLE NESTED LESS-THAN") - (double-nested-greater-than "DOUBLE NESTED GREATER-THAN") - (triangular-bullet "TRIANGULAR BULLET") - (double-prime "DOUBLE PRIME") - (triple-prime "TRIPLE PRIME") - (reversed-prime "REVERSED PRIME") - (reversed-double-prime "REVERSED DOUBLE PRIME") - (reversed-triple-prime "REVERSED TRIPLE PRIME") - (reference-mark "REFERENCE MARK") - (caret-insertion-point "CARET INSERTION POINT") - (asterism "ASTERISM") - (close-up "CLOSE UP") - (two-asterisks-aligned-vertically "TWO ASTERISKS ALIGNED VERTICALLY") - (bet-symbol "BET SYMBOL") - (gimel-symbol "GIMEL SYMBOL") - (dalet-symbol "DALET SYMBOL") - (information-source "INFORMATION SOURCE") - (rotated-capital-q "ROTATED CAPITAL Q") - (double-struck-small-gamma "DOUBLE-STRUCK SMALL GAMMA") - (double-struck-capital-gamma "DOUBLE-STRUCK CAPITAL GAMMA") - (double-struck-capital-pi "DOUBLE-STRUCK CAPITAL PI") - (double-struck-n-ary-summation "DOUBLE-STRUCK N-ARY SUMMATION") - (turned-sans-serif-capital-g "TURNED SANS-SERIF CAPITAL G") - (turned-sans-serif-capital-l "TURNED SANS-SERIF CAPITAL L") - (reversed-sans-serif-capital-l "REVERSED SANS-SERIF CAPITAL L") - (turned-sans-serif-capital-y "TURNED SANS-SERIF CAPITAL Y") - (double-struck-italic-capital-d "DOUBLE-STRUCK ITALIC CAPITAL D") - (double-struck-italic-small-d "DOUBLE-STRUCK ITALIC SMALL D") - (double-struck-italic-small-e "DOUBLE-STRUCK ITALIC SMALL E") - (double-struck-italic-small-i "DOUBLE-STRUCK ITALIC SMALL I") - (double-struck-italic-small-j "DOUBLE-STRUCK ITALIC SMALL J") - (turned-ampersand "TURNED AMPERSAND") - ;; More arrows - (leftwards-arrow-with-stroke "LEFTWARDS ARROW WITH STROKE") - (rightwards-arrow-with-stroke "RIGHTWARDS ARROW WITH STROKE") - (leftwards-wave-arrow "LEFTWARDS WAVE ARROW") - (rightwards-wave-arrow "RIGHTWARDS WAVE ARROW") - (leftwards-two-headed-arrow "LEFTWARDS TWO HEADED ARROW") - (upwards-two-headed-arrow "UPWARDS TWO HEADED ARROW") - (rightwards-two-headed-arrow "RIGHTWARDS TWO HEADED ARROW") - (downwards-two-headed-arrow "DOWNWARDS TWO HEADED ARROW") - (leftwards-arrow-with-tail "LEFTWARDS ARROW WITH TAIL") - (rightwards-arrow-with-tail "RIGHTWARDS ARROW WITH TAIL") - (leftwards-arrow-from-bar "LEFTWARDS ARROW FROM BAR") ; maps from - (up-down-arrow-with-base "UP DOWN ARROW WITH BASE") - (leftwards-arrow-with-hook "LEFTWARDS ARROW WITH HOOK") - (rightwards-arrow-with-hook "RIGHTWARDS ARROW WITH HOOK") - (leftwards-arrow-with-loop "LEFTWARDS ARROW WITH LOOP") - (rightwards-arrow-with-loop "RIGHTWARDS ARROW WITH LOOP") - (left-right-wave-arrow "LEFT RIGHT WAVE ARROW") - (left-right-arrow-with-stroke "LEFT RIGHT ARROW WITH STROKE") - (downwards-zigzag-arrow "DOWNWARDS ZIGZAG ARROW") - (upwards-arrow-with-tip-leftwards "UPWARDS ARROW WITH TIP LEFTWARDS") - (upwards-arrow-with-tip-rightwards "UPWARDS ARROW WITH TIP RIGHTWARDS") - (downwards-arrow-with-tip-leftwards "DOWNWARDS ARROW WITH TIP LEFTWARDS") - (downwards-arrow-with-tip-rightwards "DOWNWARDS ARROW WITH TIP RIGHTWARDS") - (rightwards-arrow-with-corner-downwards "RIGHTWARDS ARROW WITH CORNER DOWNWARDS") - (downwards-arrow-with-corner-leftwards "DOWNWARDS ARROW WITH CORNER LEFTWARDS") - (anticlockwise-top-semicircle-arrow "ANTICLOCKWISE TOP SEMICIRCLE ARROW") - (clockwise-top-semicircle-arrow "CLOCKWISE TOP SEMICIRCLE ARROW") - (north-west-arrow-to-long-bar "NORTH WEST ARROW TO LONG BAR") - (leftwards-arrow-to-bar-over-rightwards-arrow-to-bar - "LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR") - ;; - (rightwards-arrow-over-leftwards-arrow "RIGHTWARDS ARROW OVER LEFTWARDS ARROW") - (upwards-arrow-leftwards-of-downwards-arrow "UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW") - (leftwards-arrow-over-rightwards-arrow "LEFTWARDS ARROW OVER RIGHTWARDS ARROW") - (leftwards-paired-arrows "LEFTWARDS PAIRED ARROWS") - (upwards-paired-arrows "UPWARDS PAIRED ARROWS") - (rightwards-paired-arrows "RIGHTWARDS PAIRED ARROWS") - (downwards-paired-arrows "DOWNWARDS PAIRED ARROWS") - (leftwards-double-arrow-with-stroke "LEFTWARDS DOUBLE ARROW WITH STROKE") - (left-right-double-arrow-with-stroke "LEFT RIGHT DOUBLE ARROW WITH STROKE") - (rightwards-double-arrow-with-stroke "RIGHTWARDS DOUBLE ARROW WITH STROKE") - (north-west-double-arrow "NORTH WEST DOUBLE ARROW") - (north-east-double-arrow "NORTH EAST DOUBLE ARROW") - (south-east-double-arrow "SOUTH EAST DOUBLE ARROW") - (south-west-double-arrow "SOUTH WEST DOUBLE ARROW") - (leftwards-triple-arrow "LEFTWARDS TRIPLE ARROW") - (rightwards-triple-arrow "RIGHTWARDS TRIPLE ARROW") - (upwards-arrow-with-double-stroke "UPWARDS ARROW WITH DOUBLE STROKE") - (downwards-arrow-with-double-stroke "DOWNWARDS ARROW WITH DOUBLE STROKE") - (leftwards-dashed-arrow "LEFTWARDS DASHED ARROW") - (upwards-dashed-arrow "UPWARDS DASHED ARROW") - (rightwards-dashed-arrow "RIGHTWARDS DASHED ARROW") - (downwards-dashed-arrow "DOWNWARDS DASHED ARROW") - (leftwards-arrow-to-bar "LEFTWARDS ARROW TO BAR") - (rightwards-arrow-to-bar "RIGHTWARDS ARROW TO BAR") - (leftwards-white-arrow "LEFTWARDS WHITE ARROW") - (upwards-white-arrow "UPWARDS WHITE ARROW") - (rightwards-white-arrow "RIGHTWARDS WHITE ARROW") - (downwards-white-arrow "DOWNWARDS WHITE ARROW") - (upwards-white-arrow-on-pedestal "UPWARDS WHITE ARROW ON PEDESTAL") - (upwards-white-arrow-on-pedestal-with-horizontal-bar - "UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR") - (upwards-white-arrow-on-pedestal-with-vertical-bar - "UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR") - (upwards-white-double-arrow "UPWARDS WHITE DOUBLE ARROW") - (upwards-white-double-arrow-on-pedestal "UPWARDS WHITE DOUBLE ARROW ON PEDESTAL") - (rightwards-white-arrow-from-wall "RIGHTWARDS WHITE ARROW FROM WALL") - (north-west-arrow-to-corner "NORTH WEST ARROW TO CORNER") - (south-east-arrow-to-corner "SOUTH EAST ARROW TO CORNER") - (up-down-white-arrow "UP DOWN WHITE ARROW") - ;;; - ;; More logical ops - (there-does-not-exist "THERE DOES NOT EXIST") - (small-element-of "SMALL ELEMENT OF") - (contains-as-member "CONTAINS AS MEMBER") - (does-not-contain-as-member "DOES NOT CONTAIN AS MEMBER") - (small-contains-as-member "SMALL CONTAINS AS MEMBER") - (end-of-proof "END OF PROOF") - (measured-angle "MEASURED ANGLE") - (spherical-angle "SPHERICAL ANGLE") - (parallel-to "PARALLEL TO") - (not-parallel-to "NOT PARALLEL TO") - (double-integral "DOUBLE INTEGRAL") - (triple-integral "TRIPLE INTEGRAL") - (surface-integral "SURFACE INTEGRAL") - (volume-integral "VOLUME INTEGRAL") - (clockwise-integral "CLOCKWISE INTEGRAL") - (clockwise-contour-integral "CLOCKWISE CONTOUR INTEGRAL") - (anticlockwise-contour-integral "ANTICLOCKWISE CONTOUR INTEGRAL") - (therefore "THEREFORE") - (because "BECAUSE") - (ratio "RATIO") - (proportion "PROPORTION") - (geometric-proportion "GEOMETRIC PROPORTION") - (excess "EXCESS") - ;; More equivalences - (not-tilde "NOT TILDE") - (minus-tilde "MINUS TILDE") - (not-asymptotically-equal-to "NOT ASYMPTOTICALLY EQUAL TO") - (approximately-but-not-actually-equal-to "APPROXIMATELY BUT NOT ACTUALLY EQUAL TO") - (neither-approximately-nor-actually-equal-to - "NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO") - (almost-equal-to "ALMOST EQUAL TO") - (not-almost-equal-to "NOT ALMOST EQUAL TO") - (almost-equal-or-equal-to "ALMOST EQUAL OR EQUAL TO") - (triple-tilde "TRIPLE TILDE") - (all-equal-to "ALL EQUAL TO") - (equivalent-to "EQUIVALENT TO") - (geometrically-equivalent-to "GEOMETRICALLY EQUIVALENT TO") - (difference-between "DIFFERENCE BETWEEN") - (approaches-the-limit "APPROACHES THE LIMIT") - (geometrically-equal-to "GEOMETRICALLY EQUAL TO") - (approximately-equal-to-or-the-image-of "APPROXIMATELY EQUAL TO OR THE IMAGE OF") - (image-of-or-approximately-equal-to "IMAGE OF OR APPROXIMATELY EQUAL TO") - (colon-equals "COLON EQUALS") - (equals-colon "EQUALS COLON") - (ring-in-equal-to "RING IN EQUAL TO") - (ring-equal-to "RING EQUAL TO") - (corresponds-to "CORRESPONDS TO") - (estimates "ESTIMATES") - (equiangular-to "EQUIANGULAR TO") - (star-equals "STAR EQUALS") - (delta-equal-to "DELTA EQUAL TO") - (equal-to-by-definition "EQUAL TO BY DEFINITION") - (measured-by "MEASURED BY") - (questioned-equal-to "QUESTIONED EQUAL TO") - (not-equal-to "NOT EQUAL TO") - ;; More comparisons - (less-than-but-not-equal-to "LESS-THAN BUT NOT EQUAL TO") - (greater-than-but-not-equal-to "GREATER-THAN BUT NOT EQUAL TO") - (much-less-than "MUCH LESS-THAN") - (much-greater-than "MUCH GREATER-THAN") - (between "BETWEEN") - (not-equivalent-to "NOT EQUIVALENT TO") - (not-less-than "NOT LESS-THAN") - (not-greater-than "NOT GREATER-THAN") - (neither-less-than-nor-equal-to "NEITHER LESS-THAN NOR EQUAL TO") - (neither-greater-than-nor-equal-to "NEITHER GREATER-THAN NOR EQUAL TO") - (neither-less-than-nor-equivalent-to "NEITHER LESS-THAN NOR EQUIVALENT TO") - (neither-greater-than-nor-equivalent-to "NEITHER GREATER-THAN NOR EQUIVALENT TO") - (less-than-or-greater-than "LESS-THAN OR GREATER-THAN") - (greater-than-or-less-than "GREATER-THAN OR LESS-THAN") - (neither-less-than-nor-greater-than "NEITHER LESS-THAN NOR GREATER-THAN") - (neither-greater-than-nor-less-than "NEITHER GREATER-THAN NOR LESS-THAN") - (does-not-precede "DOES NOT PRECEDE") - (does-not-succeed "DOES NOT SUCCEED") - (not-a-subset-of "NOT A SUBSET OF") - (not-a-superset-of "NOT A SUPERSET OF") - (neither-a-subset-of-nor-equal-to "NEITHER A SUBSET OF NOR EQUAL TO") - (neither-a-superset-of-nor-equal-to "NEITHER A SUPERSET OF NOR EQUAL TO") - (subset-of-with-not-equal-to "SUBSET OF WITH NOT EQUAL TO") - (superset-of-with-not-equal-to "SUPERSET OF WITH NOT EQUAL TO") - ;; More ops - (squared-plus "SQUARED PLUS") - (squared-minus "SQUARED MINUS") - (squared-times "SQUARED TIMES") - (squared-dot-operator "SQUARED DOT OPERATOR") - ;; More rels - (forces "FORCES") - (triple-vertical-bar-right-turnstile "TRIPLE VERTICAL BAR RIGHT TURNSTILE") - (double-vertical-bar-double-right-turnstile "DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE") - (does-not-prove "DOES NOT PROVE") - (not-true "NOT TRUE") - (does-not-force "DOES NOT FORCE") - (negated-double-vertical-bar-double-right-turnstile - "NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE") - (precedes-under-relation "PRECEDES UNDER RELATION") - (succeeds-under-relation "SUCCEEDS UNDER RELATION") - (original-of "ORIGINAL OF") - (image-of "IMAGE OF") - (xor "XOR") - (nand "NAND") - (nor "NOR") - (division-times "DIVISION TIMES") - (curly-logical-or "CURLY LOGICAL OR") - (curly-logical-and "CURLY LOGICAL AND") - (double-subset "DOUBLE SUBSET") - (double-superset "DOUBLE SUPERSET") - (double-intersection "DOUBLE INTERSECTION") - (double-union "DOUBLE UNION") - (pitchfork "PITCHFORK") - (equal-and-parallel-to "EQUAL AND PARALLEL TO") - (less-than-with-dot "LESS-THAN WITH DOT") - (greater-than-with-dot "GREATER-THAN WITH DOT") - (very-much-less-than "VERY MUCH LESS-THAN") - (very-much-greater-than "VERY MUCH GREATER-THAN") - (less-than-equal-to-or-greater-than "LESS-THAN EQUAL TO OR GREATER-THAN") - (greater-than-equal-to-or-less-than "GREATER-THAN EQUAL TO OR LESS-THAN") - (equal-to-or-less-than "EQUAL TO OR LESS-THAN") - (equal-to-or-greater-than "EQUAL TO OR GREATER-THAN") - (equal-to-or-precedes "EQUAL TO OR PRECEDES") - (equal-to-or-succeeds "EQUAL TO OR SUCCEEDS") - (does-not-precede-or-equal "DOES NOT PRECEDE OR EQUAL") - (does-not-succeed-or-equal "DOES NOT SUCCEED OR EQUAL") - (equal-to-or-greater-than "EQUAL TO OR GREATER-THAN") - (equal-to-or-precedes "EQUAL TO OR PRECEDES") - (equal-to-or-succeeds "EQUAL TO OR SUCCEEDS") - (does-not-precede-or-equal "DOES NOT PRECEDE OR EQUAL") - (does-not-succeed-or-equal "DOES NOT SUCCEED OR EQUAL") - (not-square-image-of-or-equal-to "NOT SQUARE IMAGE OF OR EQUAL TO") - (not-square-original-of-or-equal-to "NOT SQUARE ORIGINAL OF OR EQUAL TO") - (square-image-of-or-not-equal-to "SQUARE IMAGE OF OR NOT EQUAL TO") - (square-original-of-or-not-equal-to "SQUARE ORIGINAL OF OR NOT EQUAL TO") - (less-than-but-not-equivalent-to "LESS-THAN BUT NOT EQUIVALENT TO") - (greater-than-but-not-equivalent-to "GREATER-THAN BUT NOT EQUIVALENT TO") - (precedes-but-not-equivalent-to "PRECEDES BUT NOT EQUIVALENT TO") - (succeeds-but-not-equivalent-to "SUCCEEDS BUT NOT EQUIVALENT TO") - (not-normal-subgroup-of "NOT NORMAL SUBGROUP OF") - (does-not-contain-as-normal-subgroup "DOES NOT CONTAIN AS NORMAL SUBGROUP") - (not-normal-subgroup-of-or-equal-to "NOT NORMAL SUBGROUP OF OR EQUAL TO") - (does-not-contain-as-normal-subgroup-or-equal - "DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL") - ;; misc syms - (watch "WATCH") - (hourglass "HOURGLASS") - (option-key "OPTION KEY") - (erase-to-the-right "ERASE TO THE RIGHT") - (erase-to-the-left "ERASE TO THE LEFT") - (broken-circle-with-northwest-arrow "BROKEN CIRCLE WITH NORTHWEST ARROW") - (helm-symbol "HELM SYMBOL") - ;; dingbats - (cloud "CLOUD") - (umbrella "UMBRELLA") - (snowman "SNOWMAN") - (comet "COMET") - (black-star "BLACK STAR") - (white-star "WHITE STAR") - (lightning "LIGHTNING") - (thunderstorm "THUNDERSTORM") - (ascending-node "ASCENDING NODE") - (descending-node "DESCENDING NODE") - (conjunction "CONJUNCTION") - (opposition "OPPOSITION") - (left-half-black-circle "LEFT HALF BLACK CIRCLE") - (right-half-black-circle "RIGHT HALF BLACK CIRCLE") - (square-with-left-half-black "SQUARE WITH LEFT HALF BLACK") - (square-with-right-half-black "SQUARE WITH RIGHT HALF BLACK") - (square-with-upper-left-diagonal-half-black "SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK") - (square-with-lower-right-diagonal-half-black "SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK") - (up-pointing-triangle-with-left-half-black "UP-POINTING TRIANGLE WITH LEFT HALF BLACK") - (up-pointing-triangle-with-right-half-black "UP-POINTING TRIANGLE WITH RIGHT HALF BLACK") - (black-sun-with-rays "BLACK SUN WITH RAYS") - (white-shogi-piece "WHITE SHOGI PIECE") - (black-shogi-piece "BLACK SHOGI PIECE") - (white-left-pointing-index "WHITE LEFT POINTING INDEX") - (white-up-pointing-index "WHITE UP POINTING INDEX") - (white-right-pointing-index "WHITE RIGHT POINTING INDEX") - (white-down-pointing-index "WHITE DOWN POINTING INDEX") - (skull-and-crossbones "SKULL AND CROSSBONES") - (caution-sign "CAUTION SIGN") - (radioactive-sign "RADIOACTIVE SIGN") - (biohazard-sign "BIOHAZARD SIGN") - (caduceus "CADUCEUS") - (ankh "ANKH") - (orthodox-cross "ORTHODOX CROSS") - (chi-rho "CHI RHO") - (cross-of-lorraine "CROSS OF LORRAINE") - (cross-of-jerusalem "CROSS OF JERUSALEM") - (star-and-crescent "STAR AND CRESCENT") - (farsi-symbol "FARSI SYMBOL") - (adi-shakti "ADI SHAKTI") - (hammer-and-sickle "HAMMER AND SICKLE") - (peace-symbol "PEACE SYMBOL") - (yin-yang "YIN YANG") - (wheel-of-dharma "WHEEL OF DHARMA") - (white-frowning-face "WHITE FROWNING FACE") - (white-smiling-face "WHITE SMILING FACE") - (black-smiling-face "BLACK SMILING FACE") - (white-sun-with-rays "WHITE SUN WITH RAYS") - (first-quarter-moon "FIRST QUARTER MOON") - (last-quarter-moon "LAST QUARTER MOON") - (mercury "MERCURY") - (female-sign "FEMALE SIGN") - (earth "EARTH") - (male-sign "MALE SIGN") - (jupiter "JUPITER") - (saturn "SATURN") - (uranus "URANUS") - (neptune "NEPTUNE") - (pluto "PLUTO") - (aries "ARIES") - (taurus "TAURUS") - (gemini "GEMINI") - (cancer "CANCER") - (leo "LEO") - (virgo "VIRGO") - (libra "LIBRA") - (scorpius "SCORPIUS") - (sagittarius "SAGITTARIUS") - (capricorn "CAPRICORN") - (aquarius "AQUARIUS") - (pisces "PISCES") - ;; theorem provers like to play chess - (white-chess-king "WHITE CHESS KING") - (white-chess-queen "WHITE CHESS QUEEN") - (white-chess-rook "WHITE CHESS ROOK") - (white-chess-bishop "WHITE CHESS BISHOP") - (white-chess-knight "WHITE CHESS KNIGHT") - (white-chess-pawn "WHITE CHESS PAWN") - (black-chess-king "BLACK CHESS KING") - (black-chess-queen "BLACK CHESS QUEEN") - (black-chess-rook "BLACK CHESS ROOK") - (black-chess-bishop "BLACK CHESS BISHOP") - (black-chess-knight "BLACK CHESS KNIGHT") - (black-chess-pawn "BLACK CHESS PAWN") - ;; or cards - (black-spade-suit "BLACK SPADE SUIT") - (white-heart-suit "WHITE HEART SUIT") - (white-diamond-suit "WHITE DIAMOND SUIT") - (black-club-suit "BLACK CLUB SUIT") - (white-spade-suit "WHITE SPADE SUIT") - (black-heart-suit "BLACK HEART SUIT") - (black-diamond-suit "BLACK DIAMOND SUIT") - (white-club-suit "WHITE CLUB SUIT") - (hot-springs "HOT SPRINGS") - ;; or music? - (quarter-note "QUARTER NOTE") - (eighth-note "EIGHTH NOTE") - (beamed-eighth-notes "BEAMED EIGHTH NOTES") - (beamed-sixteenth-notes "BEAMED SIXTEENTH NOTES") - (universal-recycling-symbol "UNIVERSAL RECYCLING SYMBOL") - (west-syriac-cross "WEST SYRIAC CROSS") - (east-syriac-cross "EAST SYRIAC CROSS") - (upper-blade-scissors "UPPER BLADE SCISSORS") - (black-scissors "BLACK SCISSORS") - (check-mark "CHECK MARK") - (heavy-check-mark "HEAVY CHECK MARK") - (multiplication-x "MULTIPLICATION X") - (heavy-multiplication-x "HEAVY MULTIPLICATION X") - (ballot-x "BALLOT X") - (heavy-ballot-x "HEAVY BALLOT X") - (outlined-greek-cross "OUTLINED GREEK CROSS") - (heavy-greek-cross "HEAVY GREEK CROSS") - (open-centre-cross "OPEN CENTRE CROSS") - (heavy-open-centre-cross "HEAVY OPEN CENTRE CROSS") - (latin-cross "LATIN CROSS") - (shadowed-white-latin-cross "SHADOWED WHITE LATIN CROSS") - (outlined-latin-cross "OUTLINED LATIN CROSS") - (maltese-cross "MALTESE CROSS") - (star-of-david "STAR OF DAVID") - (four-teardrop-spoked-asterisk "FOUR TEARDROP-SPOKED ASTERISK") - (four-balloon-spoked-asterisk "FOUR BALLOON-SPOKED ASTERISK") - (heavy-four-balloon-spoked-asterisk "HEAVY FOUR BALLOON-SPOKED ASTERISK") - (four-club-spoked-asterisk "FOUR CLUB-SPOKED ASTERISK") - (black-four-pointed-star "BLACK FOUR POINTED STAR") - (white-four-pointed-star "WHITE FOUR POINTED STAR") - (stress-outlined-white-star "STRESS OUTLINED WHITE STAR") - (circled-white-star "CIRCLED WHITE STAR") - (open-centre-black-star "OPEN CENTRE BLACK STAR") - (black-centre-white-star "BLACK CENTRE WHITE STAR") - (outlined-black-star "OUTLINED BLACK STAR") - (medium-left-pointing-angle-bracket-ornament - "MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT") - (medium-right-pointing-angle-bracket-ornament - "MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT") - (heavy-left-pointing-angle-quotation-mark-ornament - "HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT") - (heavy-right-pointing-angle-quotation-mark-ornament - "HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT") - (heavy-left-pointing-angle-bracket-ornament - "HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT") - (heavy-right-pointing-angle-bracket-ornament - "HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT") - (light-left-tortoise-shell-bracket-ornament - "LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT") - (light-right-tortoise-shell-bracket-ornament - "LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT") - (medium-left-curly-bracket-ornament "MEDIUM LEFT CURLY BRACKET ORNAMENT") - (medium-right-curly-bracket-ornament "MEDIUM RIGHT CURLY BRACKET ORNAMENT") - (heavy-wide-headed-rightwards-arrow "HEAVY WIDE-HEADED RIGHTWARDS ARROW") - (heavy-south-east-arrow "HEAVY SOUTH EAST ARROW") - (heavy-rightwards-arrow "HEAVY RIGHTWARDS ARROW") - (heavy-north-east-arrow "HEAVY NORTH EAST ARROW") - (drafting-point-rightwards-arrow "DRAFTING POINT RIGHTWARDS ARROW") - (heavy-round-tipped-rightwards-arrow "HEAVY ROUND-TIPPED RIGHTWARDS ARROW") - (triangle-headed-rightwards-arrow "TRIANGLE-HEADED RIGHTWARDS ARROW") - (heavy-triangle-headed-rightwards-arrow "HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW") - (dashed-triangle-headed-rightwards-arrow "DASHED TRIANGLE-HEADED RIGHTWARDS ARROW") - (heavy-dashed-triangle-headed-rightwards-arrow - "HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW") - (black-rightwards-arrow "BLACK RIGHTWARDS ARROW") - (three-d-top-lighted-rightwards-arrowhead "THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD") - (three-d-bottom-lighted-rightwards-arrowhead - "THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD") - (leftwards-harpoon-with-barb-up-above-leftwards-harpoon-with-barb-down - "LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN") - (upwards-harpoon-with-barb-left-beside-upwards-harpoon-with-barb-right - "UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT") - (rightwards-harpoon-with-barb-up-above-rightwards-harpoon-with-barb-down - "RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN") - (downwards-harpoon-with-barb-left-beside-downwards-harpoon-with-barb-right - "DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT") - (left-triangle-beside-vertical-bar "LEFT TRIANGLE BESIDE VERTICAL BAR") - (vertical-bar-beside-right-triangle "VERTICAL BAR BESIDE RIGHT TRIANGLE") - (double-plus "DOUBLE PLUS") - (triple-plus "TRIPLE PLUS") - (short-up-tack-with-underbar "SHORT UP TACK WITH UNDERBAR") - )) - - -(provide 'x-symbol-unicode-extras) - -;;; x-symbol-unicode-extras.el ends here diff --git a/x-symbol/lisp/x-symbol-unicode.el b/x-symbol/lisp/x-symbol-unicode.el deleted file mode 100644 index f0f313a3..00000000 --- a/x-symbol/lisp/x-symbol-unicode.el +++ /dev/null @@ -1,310 +0,0 @@ -;;; x-symbol-unicode.el --- provide some Unicode tables for X-Symbol. -;; -;; Copyright (C) 2007 LFCS Edinburgh / David Aspinall -;; Author: David Aspinall <David.Aspinall@ed.ac.uk> -;; License: GPL (GNU GENERAL PUBLIC LICENSE) -;; -;;; Commentary: -;; -;; X-Symbol is really a bit of a dinosaur and will be replaced by -;; something else sooner or later. My own attempt is "Unicode -;; Symbols" in PG/lib. In the meantime it's handy to try supporting -;; Unicode character sets using the same interface as the existing -;; X-Symbol. -;; - -(require 'x-symbol-unichars) ;; Unicode names & positions - -;;; Code: -(defconst x-symbol-xsym-unicode-map ;; X-symbol names -> Unicode names - ;; [ FIXME: please complete/extend! ] - '((visiblespace "SYMBOL FOR SPACE") - (Gamma "GREEK CAPITAL LETTER GAMMA") - (Delta "GREEK CAPITAL LETTER DELTA") - (Theta "GREEK CAPITAL LETTER THETA") - (Lambda "GREEK CAPITAL LETTER LAMDA") - (Pi "GREEK CAPITAL LETTER PI") - (Sigma "GREEK CAPITAL LETTER SIGMA") - (Phi "GREEK CAPITAL LETTER PHI") - (Psi "GREEK CAPITAL LETTER PSI") - (Omega "GREEK CAPITAL LETTER OMEGA") - (alpha "GREEK SMALL LETTER ALPHA") - (beta "GREEK SMALL LETTER BETA") - (gamma "GREEK SMALL LETTER GAMMA") - (delta "GREEK SMALL LETTER DELTA") - (epsilon1 "GREEK SMALL LETTER EPSILON") - (zeta "GREEK SMALL LETTER ZETA") - (eta "GREEK SMALL LETTER ETA") - (theta "GREEK SMALL LETTER THETA") - (kappa1 "GREEK SMALL LETTER KAPPA") - (lambda "GREEK SMALL LETTER LAMDA") - (mu "GREEK SMALL LETTER MU") - (nu "GREEK SMALL LETTER NU") - (xi "GREEK SMALL LETTER XI") - (pi "GREEK SMALL LETTER PI") - (rho1 "GREEK SMALL LETTER RHO") - (sigma "GREEK SMALL LETTER SIGMA") - (tau "GREEK SMALL LETTER TAU") - (phi1 "GREEK SMALL LETTER PHI") - (chi "GREEK SMALL LETTER CHI") - (psi "GREEK SMALL LETTER PSI") - (omega "GREEK SMALL LETTER OMEGA") - (notsign "NOT SIGN") - (logicaland "LOGICAL AND") - (logicalor "LOGICAL OR") - (universal1 "FOR ALL") - (existential1 "THERE EXISTS") - (epsilon "GREEK SMALL LETTER EPSILON") - (biglogicaland "N-ARY LOGICAL AND") - (ceilingleft "LEFT CEILING") - (ceilingright "RIGHT CEILING") - (floorleft "LEFT FLOOR") - (floorright "RIGHT FLOOR") - (bardash "RIGHT TACK") - (bardashdbl "TRUE") - (semanticsleft "LEFT WHITE SQUARE BRACKET") - (semanticsright "RIGHT WHITE SQUARE BRACKET") - (periodcentered "MIDDLE DOT") - (element "ELEMENT OF") - (reflexsubset "SUBSET OF OR EQUAL TO") - (intersection "INTERSECTION") - (union "UNION") - (bigintersection "N-ARY INTERSECTION") - (bigunion "N-ARY UNION") - (sqintersection "SQUARE CAP") - (squnion "SQUARE CUP") - (bigsqintersection "N-ARY SQUARE INTERSECTION OPERATOR") - (bigsqunion "N-ARY SQUARE UNION OPERATOR") - (perpendicular "UP TACK") - (dotequal "IDENTICAL WITH DOT ABOVE") - (wrong "WREATH PRODUCT") - (equivalence "IDENTICAL TO") - (notequal "NOT EQUAL TO") - (propersqsubset "SQUARE IMAGE OF") - (reflexsqsubset "SQUARE IMAGE OF OR EQUAL TO") - (properprec "PRECEDES") - (reflexprec "PRECEDES OR EQUAL TO") - (propersucc "SUCCEEDS") - (approxequal "APPROXIMATELY EQUAL TO") - (similar "TILDE OPERATOR") ;; FIXME: check - (simequal "ASYMPTOTICALLY EQUAL TO") - (lessequal "LESS-THAN OR EQUAL TO") - (coloncolon "\\<Colon>") - (arrowleft "LEFTWARDS ARROW") - (endash "EN DASH") - (arrowright "RIGHTWARDS ARROW") - (arrowdblleft "LEFTWARDS DOUBLE ARROW") -; (nil "\\<Midarrow>") - (arrowdblright "RIGHTWARDS DOUBLE ARROW") - (frown "FROWN") - (mapsto "RIGHTWARDS ARROW FROM BAR") - (leadsto "RIGHTWARDS SQUIGGLE ARROW") - (arrowup "UPWARDS ARROW") - (arrowdown "DOWNWARDS ARROW") - (notelement "NOT AN ELEMENT OF") - (multiply "MULTIPLICATION SIGN") - (circleplus "CIRCLED PLUS") - (circleminus "CIRCLED MINUS") - (circlemultiply "CIRCLED TIMES") - (circleslash "CIRCLED DIVISION SLASH") - (propersubset "SUBSET OF") - (infinity "INFINITY") - (box "OPEN BOX") - (lozenge1 "DIAMOND OPERATOR") - (circ "RING OPERATOR") - (bullet "BULLET") - (bardbl "DOUBLE VERTICAL LINE") - (radical "RADICAL SYMBOL BOTTOM") - (copyright "COPYRIGHT SIGN") - (Xi "GREEK CAPITAL LETTER XI") - (Upsilon1 "GREEK CAPITAL LETTER UPSILON") - (iota "GREEK SMALL LETTER IOTA") - (upsilon "GREEK SMALL LETTER UPSILON") - (plusminus "PLUS-MINUS SIGN") - (division "DIVISION SIGN") - (longarrowright "LONG RIGHTWARDS ARROW") - (longarrowleft "HEAVY TRIANGLE-HEADED LEFTWARDS ARROW") - (longarrowboth "LONG LEFT RIGHT ARROW") - (longarrowdblright "LONG RIGHTWARDS DOUBLE ARROW") - (longarrowdblleft "LONG LEFTWARDS DOUBLE ARROW") - (longarrowdblboth "LONG LEFT RIGHT DOUBLE ARROW") - (brokenbar "BROKEN BAR") - (hyphen "HYPHEN") - (macron "MACRON>") - (exclamdown "INVERTED EXCLAMATION MARK") - (questiondown "INVERTED QUESTION MARK") - (guillemotleft "LEFT-POINTING DOUBLE ANGLE QUOTATION MARK") - (guillemotright "RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK") - (degree "DEGREE SIGN") - (onesuperior "SUPERSCRIPT ONE") - (onequarter "VULGAR FRACTION ONE QUARTER") - (twosuperior "SUPERSCRIPT TWO") - (onehalf "VULGAR FRACTION ONE HALF") - (threesuperior "SUPERSCRIPT THREE") - (threequarters "VULGAR FRACTION THREE QUARTERS") - (paragraph "PILCROW SIGN") - (registered "REGISTERED SIGN") - (ordfeminine "FEMALE SIGN") - (masculine "MALE SIGN") - (section "SECTION SIGN") - (sterling "POUND SIGN") - (yen "YEN SIGN") - (cent "CENT SIGN") - (currency "CURRENCY SIGN") - (braceleft2 "LEFT CURLY BRACKET") - (braceright2 "RIGHT CURLY BRACKET") - (top "DOWN TACK") - (congruent "IDENTICAL TO") - (club "BLACK CLUB SUIT") - (diamond "BLACK DIAMOND SUIT") - (heart "BLACK HEART SUIT") - (spade "BLACK SPADE SUIT") - (arrowboth "LEFT RIGHT ARROW") - (greaterequal "GREATER-THAN OR EQUAL TO") - (proportional "PROPORTIONAL TO") - (partialdiff "PARTIAL DIFFERENTIAL") - (ellipsis "HORIZONTAL ELLIPSIS") - (aleph "ALEF SYMBOL") - (Ifraktur "BLACK-LETTER CAPITAL I") - (Rfraktur "BLACK-LETTER CAPITAL R") - (weierstrass "SCRIPT CAPITAL P") ;; ?? - (emptyset "EMPTY SET") - (angle "ANGLE") - (gradient "NABLA") - (product "N-ARY PRODUCT") - (arrowdblboth "LEFT RIGHT DOUBLE ARROW") - (arrowdblup "UPWARDS DOUBLE ARROW") ;; not on my mac - (arrowdbldown "DOWNWARDS DOUBLE ARROW") ;; not on my mac - (angleleft "LEFT ANGLE BRACKET") - (angleright "RIGHT ANGLE BRACKET") - (summation "N-ARY SUMMATION") - (integral "INTEGRAL") - (circleintegral "CONTOUR INTEGRAL") - (dagger "DAGGER") - (sharp "MUSIC SHARP SIGN") - (star "STAR OPERATOR") - (smltriangleright "WHITE RIGHT-POINTING SMALL TRIANGLE") - (triangleleft "NORMAL SUBGROUP OF") - (triangle "RIGHT TRIANGLE") ;; ??? - (triangleright "CONTAINS AS NORMAL SUBGROUP") - (trianglelefteq "NORMAL SUBGROUP OF OR EQUAL TO") - (trianglerighteq "CONTAINS AS NORMAL SUBGROUP OR EQUAL TO") - (smltriangleleft "WHITE LEFT-POINTING SMALL TRIANGLE") - (natural "MUSIC NATURAL SIGN") - (flat "MUSIC FLAT SIGN") - (amalg "\\<amalg>") - (Mho "INVERTED OHM SIGN") - (arrowupdown "UP DOWN ARROW") - (longmapsto "LONG RIGHTWARDS SQUIGGLE ARROW") ;; not on my mac - (arrowdblupdown "UP DOWN DOUBLE ARROW") - (hookleftarrow "LEFTWARDS HARPOON WITH BARB UPWARDS") - (hookrightarrow "RIGHTWARDS HARPOON WITH BARB UPWARDS") - (arrownortheast "NORTH EAST ARROW") - (arrowsoutheast "SOUTH EAST ARROW") - (arrownorthwest "NORTH WEST ARROW") - (arrowsouthwest "SOUTH WEST ARROW") - (rightleftharpoons "RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON") - (leftharpoondown "DOWNWARDS HARPOON WITH BARB LEFTWARDS") - (rightharpoondown "DOWNWARDS HARPOON WITH BARB RIGHTWARDS") - (leftharpoonup "UPWARDS HARPOON WITH BARB LEFTWARDS") - (rightharpoonup "UPWARDS HARPOON WITH BARB RIGHTWARDS") - (asym "ASYMPTOTICALLY EQUAL TO") ;; FIXME: check - (minusplus "MINUS-OR-PLUS SIGN") - (bowtie "BOWTIE") - (centraldots "MIDLINE HORIZONTAL ELLIPSIS") - (circledot "CIRCLED DOT OPERATOR") - (propersuperset "SUPERSET OF") - (reflexsuperset "SUPERSET OF OR EQUAL TO") - (propersqsuperset "SQUARE ORIGINAL OF") - (reflexsqsuperset "SQUARE ORIGINAL OF OR EQUAL TO") - (lessless "MUCH LESS-THAN") - (greatergreater "MUCH GREATER-THAN") - (unionplus "MULTISET") - (backslash3 "SET MINUS") - (smile "SMILE") - (reflexsucc "EQUAL TO OR SUCCEEDS") - (dashbar "LEFT TACK") - (biglogicalor "N-ARY LOGICAL OR") - (bigunionplus "MULTISET UNION") - (daggerdbl "DOUBLE DAGGER") - (bigbowtie "\\<Join>") - (booleans "SCRIPT CAPITAL B") ;; no double-struck capital b ! - (complexnums "DOUBLE-STRUCK CAPITAL C") - (natnums "DOUBLE-STRUCK CAPITAL N") - (rationalnums "DOUBLE-STRUCK CAPITAL Q") - (realnums "DOUBLE-STRUCK CAPITAL R") - (integers "DOUBLE-STRUCK CAPITAL Z") - (lesssim "LESS-THAN OR EQUIVALENT TO") - (greatersim "GREATER-THAN OR EQUIVALENT TO") - (lessapprox "PRECEDES OR EQUIVALENT TO") ;; FIXME check these four! - (greaterapprox "SUCCEEDS OR EQUIVALENT TO") - (definedas "EQUAL TO BY DEFINITION") ;; FIXME: should be triangleeq - (cataleft "LEFT WHITE PARENTHESIS") - (cataright "RIGHT WHITE PARENTHESIS") - (bigcircledot "CIRCLED DOT OPERATOR") - (bigcirclemultiply "CIRCLED TIMES") - (bigcircleplus "CIRCLED PLUS") - (coproduct "N-ARY COPRODUCT") - (cedilla "CEDILLA") - (diaeresis "COMBINING DIAERESIS") - (acute "ACUTE ACCENT") - (hungarumlaut "DOUBLE ACUTE ACCENT") - (lozenge "LOZENGE") - (smllozenge "DIAMOND OPERATOR") - (dotlessi "TURNED GREEK SMALL LETTER IOTA") ;; ?? - (euro "EURO SIGN") - (zero1 "SUBSCRIPT ZERO") ;; FIXME: are these supposed to be subs? - (one1 "SUBSCRIPT ONE") - (two1 "SUBSCRIPT TWO") - (three1 "SUBSCRIPT THREE") - (four1 "SUBSCRIPT FOUR") - (five1 "SUBSCRIPT FIVE") - (six1 "SUBSCRIPT SIX") - (seven1 "SUBSCRIPT SEVEN") - (eight1 "SUBSCRIPT EIGHT") - (nine1 "SUBSCRIPT NINE"))) - -(defconst x-symbol-old-tables - ;; combine tables from old style fonts - (append - x-symbol-latin1-table - x-symbol-latin2-table - x-symbol-latin3-table - x-symbol-latin5-table - x-symbol-latin9-table - x-symbol-xsymb0-table - x-symbol-xsymb1-table)) - - -;; Now build a unicode table by grabbing key sequences/shorthands from -;; old tables. Could easily add extras here, but leave out for now -;; for backward compatibility. - -(defconst x-symbol-unicode-table - ;; Oh dear, need to split this between tables - (apply 'append - (mapcar (lambda (xsymuni) - (let ((unicode (assoc-string (cadr xsymuni) - x-symbol-unicode-character-list)) - (tableinfo (assoc (car xsymuni) - x-symbol-old-tables))) - (if (and unicode tableinfo ;; need both bits - (< (cadr unicode) #x3400)) - (list (cons (car xsymuni) - (cons (cadr unicode) - (nthcdr 2 tableinfo))))))) - x-symbol-xsym-unicode-map))) - - -(defconst x-symbol-unicode-cset - '((("mule-unicode-0100-33ff" . mule-unicode-0100-33ff) ?\227 #x33ff) - (mule-unicode-0100-24ff) . - (mule-unicode-2500-33ff)) - "Cset with for unicode, see `x-symbol-init-cset'.") - - - - -(provide 'x-symbol-unicode) - -;;; x-symbol-unicode.el ends here diff --git a/x-symbol/lisp/x-symbol-vars.el b/x-symbol/lisp/x-symbol-vars.el deleted file mode 100644 index c4c59b5b..00000000 --- a/x-symbol/lisp/x-symbol-vars.el +++ /dev/null @@ -1,2107 +0,0 @@ -;;; x-symbol-vars.el --- customizable variables for package x-symbol - -;; Copyright (C) 1995-1999, 2001-2003 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: 4.5.X -;; 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 all customizable variables, except token language -;; specific ones. It avoids loading the main file when browsing the customize -;; menus. - -;;; Code: - -(provide 'x-symbol-vars) -(require 'x-symbol-hooks) -(eval-when-compile (require 'cl)) - -(defconst x-symbol-version "4.5.1 [Proof General]" - "Current development version of package X-Symbol. -Check <http://x-symbol.sourceforge.net/> for the newest.") - - -;;;=========================================================================== -;;; Custom groups -;;;=========================================================================== - -(defgroup x-symbol nil - "Semi WYSIWYG for LaTeX, HTML, etc using additional fonts." - :group 'wp - :link '(info-link "(x-symbol)") - :link '(url-link "http://x-symbol.sourceforge.net/") - :prefix "x-symbol-") - -(defgroup x-symbol-mode nil - "Controlling whether and how to turn on X-Symbol mode." - :group 'x-symbol - :prefix "x-symbol-") - -(defgroup x-symbol-input-init nil - "Initialization of input methods supported by X-Symbol." - :group 'x-symbol - :prefix "x-symbol-") - -(defgroup x-symbol-input-control nil - "Control if input methods supported by X-Symbol." - :group 'x-symbol - :prefix "x-symbol-") - -(defgroup x-symbol-info-general nil - "General customization of X-Symbol info in echo area." - :group 'x-symbol - :prefix "x-symbol-") - -(defgroup x-symbol-info-strings nil - "Customization of X-Symbol info strings in echo area." - :group 'x-symbol - :prefix "x-symbol-") - -(defgroup x-symbol-miscellaneous nil - "Miscellaneous customization for X-Symbol." - :group 'x-symbol - :prefix "x-symbol-") - -(defgroup x-symbol-image-general nil - "General customization of images in X-Symbol buffers." - :group 'x-symbol - :prefix "x-symbol-") ; not "x-symbol-image-" ! - -(defgroup x-symbol-image-language nil - "Language dependent customization of images in X-Symbol buffers." - :group 'x-symbol - :prefix "x-symbol-") ; not "x-symbol-image-" ! - -;;; language specific groups ================================================= -;; they should not be defined in the x-symbol-LANG.el because this would -;; require the custom commands to load all languages when customizing the top -;; group `x-symbol'. - -(defgroup x-symbol-tex nil - "X-Symbol token language \"TeX macro\"." - :group 'x-symbol - :group 'tex - :prefix "x-symbol-tex-") - -(defgroup x-symbol-sgml nil - "X-Symbol token language \"SGML entity\"." - :group 'x-symbol - :group 'sgml - :prefix "x-symbol-sgml-") - -(defgroup x-symbol-bib nil - "X-Symbol token language \"BibTeX macro\"." - :group 'x-symbol - :group 'tex - :prefix "x-symbol-bib-") - -(defgroup x-symbol-texi nil - "X-Symbol token language \"TeXinfo command\"." - :group 'x-symbol - :group 'tex - :group 'docs - :prefix "x-symbol-texi-") - - -;;;=========================================================================== -;;; Custom widgets -;;;=========================================================================== - -;; Shouldn't this be a generally useful widget type? -(define-widget 'x-symbol-key 'sexp - "A key or mouse stroke." - :tag "Key/Mouse stroke") - -(define-widget 'x-symbol-auto-style 'list - "Auto-mode setup." - ;; Also allows=matches (t) as (t nil nil nil nil nil). In older XEmacsen, - ;; this was not possible and we had to use an "option-group-inline chain". - ;; Drop support for all XEmacsen where this is still necessary: - ;; * (group foo bar ...) - ;; * (group foo (option (group :inline t :extra-offset -4 bar (...)))) - :args '((sexp :tag "Turn on if (eval'd)") - (sexp :tag "Coding (eval'd)") - (sexp :tag "Save 8bits (eval'd)") - (sexp :tag "Unique decoding (eval'd)") - (sexp :tag "Super/subscripts (eval'd)") - (sexp :tag "Show images (eval'd)"))) - - -;;;=========================================================================== -;;; Custom widgets, general -;;;=========================================================================== - -;; Shouldn't this be generally a useful widget type? -(define-widget 'x-symbol-command 'function - "A lisp command." - :prompt-match 'commandp - :tag "Command") - -(define-widget 'x-symbol-charsym 'symbol - "X-Symbol charsym." - :tag "X-Symbol charsym") - -(define-widget 'x-symbol-group 'symbol - "X-Symbol charsym group." - :tag "Charsym group") - -(define-widget 'x-symbol-coding 'choice - "X-Symbol 8bit character coding." - :tag "8bit coding" - :args '((const iso-8859-1) - (const iso-8859-2) - (const iso-8859-3) - (const iso-8859-9) - (const iso-8859-15))) - -(define-widget 'x-symbol-function-or-regexp 'choice - "Function or regexp, see `x-symbol-call-function-or-regexp'." - :args '((const :tag "None" nil) regexp function)) - -(define-widget 'x-symbol-fancy-spec 'repeat - "X-Symbol specification for fancy strings, without string." - :args '((group :value (0 -1 x-symbol-info-face) - (option (group :inline t :extra-offset -4 - :value (0 -1) - (integer :tag "From") - (option (integer :tag "To" :value -1)))) - (repeat :tag "Faces" :inline t (face :tag "Face"))))) - -(define-widget 'x-symbol-fancy 'cons - "X-Symbol specification for fancy strings, with string." - :args '(string (x-symbol-fancy-spec :tag "Face specifications"))) - - -;;;=========================================================================== -;;; Custom simple, special -;;;=========================================================================== - -(define-widget 'x-symbol-auto-coding 'repeat - "X-Symbol automatic coding control." - :args '((cons :format "%v" - regexp - (choice x-symbol-coding - (cons :tag "Depending on" - (integer :tag "Match") - (repeat (cons :format "%v" - (string :tag "Key") - x-symbol-coding))))))) - -(define-widget 'x-symbol-headers 'repeat - "Headers for grid and menu." - :args '((cons :format "%v" - (string :tag "Header") - (repeat x-symbol-group)))) - -(define-widget 'x-symbol-class-info 'repeat - "Definitions for X-Symbol token language classes." - :args '((cons :format "%v" - (symbol :tag "Token class" :value VALID) - (choice (const :tag "No info" nil) - (x-symbol-fancy :tag "Info"))))) - -(define-widget 'x-symbol-class-faces 'repeat - "Definitions for X-Symbol token language classes." - :args '((list :format "%v" - (symbol :tag "Token class") - (face :tag "Face in grid" :value default) - (x-symbol-fancy-spec :inline t - :tag "Faces for tokens in info")))) - -(define-widget 'x-symbol-image-keywords 'cons - "Format of image keywords" - :args '((regexp :tag "Regexp matching all image files") - (repeat - (list :format "%v" - :value ("IMAGE \"\\([A-Za-z0-9]\\)\"" 1) - regexp - (option (function :match (lambda (widget arg) - (and arg (symbolp arg))) - :value x-symbol-image-default-file-name)) - (repeat :inline t :tag "Arguments" sexp))))) - - -;;;=========================================================================== -;;; custom set function -;;;=========================================================================== - -(defconst x-symbol-cache-variables '(x-symbol-fancy-value-cache - x-symbol-charsym-info-cache - x-symbol-charsym-info-cache - x-symbol-language-info-caches - x-symbol-coding-info-cache - x-symbol-keys-info-cache) - "Internal. Cache variables.") - -;; TODO: not used anymore (would prevent files to be compilable w/o X-Symbol -(defun x-symbol-set-cache-variable (var value) - "Set VAR's value to VALUE. -Custom set function of variables for fancy strings." - (set var value) - (dolist (cache x-symbol-cache-variables) - (and (boundp cache) (set cache nil)))) - - -;;;=========================================================================== -;;; Language Accesses -;;;=========================================================================== - -(defconst x-symbol-LANG-name "Token Language" - "Language access: standard name of the token language. -For each token language LANG, `x-symbol-LANG-name' is a string with the -standard name of the token language LANG. See -`x-symbol-register-language'.") - -(defconst x-symbol-LANG-modes '(major-mode-1 major-mode-2) - "Language access: major modes typically using the token language. -For each token language LANG, `x-symbol-LANG-modes' is a list of major -modes of buffers which will typically use X-Symbol with token language -LANG. See `x-symbol-register-language' and `x-symbol-mode'.") - -(defconst x-symbol-LANG-auto-style '(t nil nil nil nil nil) - "Language access: values for X-Symbol's buffer-local variables. -For each token language LANG, `x-symbol-LANG-auto-style' determines how -to set X-Symbol specific buffer-local variables if these variables do -not already have a buffer-local value. - -A value of such a language access looks like - (MODE-ON CODING 8BITS UNIQUE SUBSCRIPTS IMAGE) - -If `x-symbol-mode' is not already buffer-local, MODE-ON determines -whether to turn the mode on with `turn-on-x-symbol-conditionally'. -CODING, 8BITS, UNIQUE, SUBSCRIPTS and IMAGE are used to set -`x-symbol-coding', `x-symbol-8bits', `x-symbol-unique', -`x-symbol-subscripts' and `x-symbol-image' if these values are not -already buffer-local. - -During evaluation, a non-nil `buffer-file-name' is sans backup versions -or strings, and without suffixes in `x-symbol-auto-mode-suffixes', and -`x-symbol-mode' is bound to the `eval'ed MODE-ON. Then, the above -mentioned variables are set to the `eval'ed CODING, 8BITS, UNIQUE, -SUBSCRIPTS and IMAGE in that order, if the variables is not already -buffer-local. If CODING evaluates to nil, `x-symbol-coding' is set -according to `x-symbol-auto-8bit-search-limit', if CODING evaluates to -`null', `x-symbol-coding' is set to nil. - -Users might prefer to customize `x-symbol-auto-style-alist' instead.") - -;; :value (nil nil nil nil nil nil))) -;;(define-widget 'x-symbol-auto-style 'checklist -;; "Auto-mode setup." -;; :args '((group -;; :inline t :extra-offset -4 -;; (sexp :tag "Turn on if (eval'd)") -;; (option -;; (group -;; :inline t :extra-offset -4 -;; (sexp :tag "Coding (eval'd)") -;; (option -;; (group -;; :inline t :extra-offset -4 -;; (sexp :tag "Save 8bit (eval'd)") -;; (option -;; (group -;; :inline t :extra-offset -4 -;; (sexp :tag "Unique decoding (eval'd)") -;; (option -;; (group -;; :inline t :extra-offset -4 -;; (sexp :tag "Super/subscripts (eval'd)") -;; (option -;; (group -;; :inline t :extra-offset -4 -;; (sexp :tag "Show images (eval'd)")))))))))))))) - -(defcustom x-symbol-LANG-modeline-name "lang" - "Language access: modeline name of the token language. -For each token language LANG, `x-symbol-LANG-modeline-name' is a -string with the name of the token language LANG in the modeline." - :group 'x-symbol-miscellaneous - :type 'string) - -(defconst x-symbol-LANG-required-fonts nil - "Language access: features providing required fonts. -For each token language LANG, `x-symbol-LANG-required-fonts' is a list -of features which are required for the tokens of language LANG.") - -(defconst x-symbol-LANG-token-grammar - '(x-symbol-make-grammar :decode-regexp "&[#0-9A-Za-z]+;") - "Language access: grammar of token language. -For each token language LANG, `x-symbol-LANG-token-grammar' describes -the grammar of the language LANG. The value looks like - (x-symbol-make-grammar - :token-list TOKEN-LIST - :after-init AFTER-INIT - :case-function CASE-FUNCTION - :encode-spec ENCODE-SPEC - :decode-regexp DECODE-REGEXP - :decode-spec DECODE-SPEC - :input-regexp INPUT-REGEXP - :input-spec INPUT-SPEC) - -Optional TOKEN-LIST, if non-nil, is a function which converts TOKEN-SPEC -in `x-symbol-LANG-table' into a list with elements \(TOKEN . SHAPE). -With value nil, TOKEN-SPEC is must have the form \(TOKEN...) and each -SHAPE is defined as nil. - -Optional AFTER-INIT, if non-nil, is a function which is called at the -end of the initialization of token language LANG, right before creating -the language dependent grid and menu. - -Optional CASE-FUNCTION is non-nil if the token language is case -insensitive. In that case it is a function which normalizes tokens in -the buffer. Typically values are nil, `downcase' and `upcase'. - -Optional ENCODE-SPEC is used during encoding and is either a function -FUNC or a cons \(BEFORE . AFTER). FUNC is called with three arguments, -the arguments ENCODE-TABLE, FCHAR-TABLE and FCHAR-FB-TABLE of -`x-symbol-encode-lisp'. See below for BEFORE and AFTER. - -Required DECODE-REGEXP is a regexp matching tokens during decoding. - -Optional DECODE-SPEC is used during decoding and is either a function -FUNC or a cons \(BEFORE . AFTER). FUNC is called with three arguments, -DECODE-REGEXP and the arguments DECODE-OBARRAY and UNIQUE of -`x-symbol-decode-lisp'. See below for BEFORE and AFTER. - -Optional INPUT-REGEXP is a regexp or a list of regexps matching tokens -for input method Token, see `x-symbol-token-input'. If it is not -provided, it is similar to the regexp DECODE-REGEXP, but only matches at -the end of the buffer or restriction. - -Argument INPUT-SPEC is used for input method Token and is either a -function FUNC or a cons \(BEFORE . AFTER). FUNC is called with three -arguments, DECODE-REGEXP and the arguments DECODE-OBARRAY and -COMMAND-CHAR of `x-symbol-match-token-before'. See below for BEFORE and -AFTER. Each REGEXP in AFTER matches the string containing COMMAND-CHAR, -usually nil or `last-command-char'. If INPUT-SPEC is not provided, it -is set to DECODE-SPEC if this is equal to ENCODE-SPEC and not a -function. - -BEFORE and AFTER define bad contexts of the position before and after -characters and tokens. BEFORE is either a character CHAR or a CONTEXT, -AFTER is a CONTEXT. During encoding, having a bad context means -inserting an additional space at the position. During decoding and -input method token, having a bad context means no conversion. - -CHAR defines a context which consists of an odd number of characters -CHAR before the position. CONTEXT is a list with elements of the form -\(SHAPE . REGEXP). If the token or token for the current character has -the shape SHAPE, REGEXP matches the bad context. In BEFORE, each REGEXP -matches the character before the position. In AFTER, each REGEXP -matches the buffer contents directly following the position, except in -INPUT-SPEC.") - -(defconst x-symbol-LANG-generated-data nil - "Language access: generated data for token language. -For each token language LANG, `x-symbol-LANG-generated-data' is used to -store various generated data for a token language, like the conversion -tables.") - -(defconst x-symbol-LANG-table '((adiaeresis () "ä")) - "Language access: table defining tokens for the characters. -For each token language LANG, `x-symbol-LANG-table' is a list with -elements defining the tokens for the characters with its token classes -etc. Each element in TABLE looks like - - \(CHARSYM CLASSES . TOKEN-SPEC) or nil. - -CHARSYM is the charsym of the character which represents the tokens -defined via TOKEN-SPEC, see also TOKEN-LIST in language access -`x-symbol-LANG-token-grammar'. CLASSES are the token classes of the -character.") - -(defconst x-symbol-LANG-header-groups-alist nil - "Language access: header/submenu specification for characters. -For each token language LANG, `x-symbol-LANG-header-groups-alist', if -non-nil, is used instead `x-symbol-header-groups-alist' to specify the -structure of language specific grid and menu.") - -(defconst x-symbol-LANG-class-alist - '((VALID "Language Token" (x-symbol-info-face)) - (INVALID "no Language Token" (x-symbol-emph-info-face))) - "Language access: token classes displayed by info in echo area. -For each token language LANG, `x-symbol-LANG-class-alist' is a list of -token class specifications used for the info in the echo area, see -`x-symbol-character-info'. Each element looks like - - \(CLASS . SPEC) - -where CLASS is a valid token class, see `x-symbol-init-language' and -SPEC is used according to `x-symbol-fancy-string'. You should define -entries for the CLASSes `VALID' and `INVALID'.") - -(defconst x-symbol-LANG-class-face-alist nil - "Language access: color scheme in language specific grid and info. -For each token language LANG, `x-symbol-LANG-class-face-alist' is used -for the color scheme in the language dependent grid and token info. -Each element looks like - - \(CLASS FACE . FACE-SPECS) - -where CLASS is a valid token class, FACE is used for the character in -the grid, and FACE-SPECS is used according to `x-symbol-fancy-string'.") - -(defconst x-symbol-LANG-electric-ignore nil - "Language access: specification restricting input method ELECTRIC. -For each token language LANG, `x-symbol-LANG-electric-ignore' is used -additionaly to `x-symbol-electric-ignore' to match contexts/charsyms to -be ignored by input method ELECTRIC. - -The value is nil, a regexp matching contexts not to be replaced, or a -function valled with arguments CONTEXT and CHARSYM, which should return -non-nil if the context should not be replaced by the character for -CHARSYM.") - -(defconst x-symbol-LANG-extra-menu-items nil - "Language access: extra menu items in language specific menu. -For each token language LANG, `x-symbol-LANG-extra-menu-items' defines -extra menu items to be used in the language specific menu. Its value is -a list of elements in the form \(SUBMENU ITEM...) where SUBMENU is -either \"Conversion\" or \"Other Commands\", the ITEMs are additional -menu items at the end of the corresponding submenu.") - -(defconst x-symbol-LANG-subscript-matcher nil - "Language access: function matching super-/subscripts. -For each token language LANG, `x-symbol-LANG-subscript-matcher', if -non-nil, is a matcher function for font-lock. It should return nil for -no match, `x-symbol-sup-face'/`x-symbol-sub-face' for a super-/subscript -match. The `match-date' should have three regexp groups: group 1 for -the open command, group 2 for the contents, and group 3 for the close -command.") - -(defconst x-symbol-LANG-image-keywords nil - "Language access: keywords for image insertion commands. -For each token language LANG, `x-symbol-LANG-image-keywords' is a list - - \(IMAGE-REGEXP KEYWORD...). - -IMAGE-REGEXP should match all images files and is used to initialize the -buffer local memory cache, see `x-symbol-image-init-memory-cache'. - -Each KEYWORD looks like (REGEXP [FUNCTION] ARG...). Image insertion -commands matched by REGEXP are highlighted. FUNCTION, which defaults to -`x-symbol-image-default-file-name', is called with ARGs to get the file -name of the corresponding image file. If FUNCTION returns nil, the -command is not highlighted. See `x-symbol-image-parse-buffer'.") - -(defconst x-symbol-LANG-master-directory nil - "Language access: specification of the master directory for images. -For each token language LANG, `x-symbol-LANG-master-directory', if -non-nil, is a function which returns the directory of the master file, -see `x-symbol-image-parse-buffer'.") - -(defconst x-symbol-LANG-image-searchpath nil - "Language access: search path for implicitly relative image file names. -For each token language LANG, `x-symbol-LANG-image-searchpath' is a list -of directories which are checked if the image file name is implicitly -relative. Relative directories are relative to the directory returned -by the language access `x-symbol-LANG-master-directory'. See -`x-symbol-image-use-remote'.") - -(defconst x-symbol-LANG-image-cached-dirs nil - "Language access: directory parts of images stored in the memory cache. -For each token language LANG, `x-symbol-LANG-image-cached-dirs' is a -list of directory parts of image file names stored in the memory cache. -See `x-symbol-image-use-remote'.") - - -;;;=========================================================================== -;;; Identity -;;;=========================================================================== - -(defvar x-symbol-package-url "http://x-symbol.sourceforge.net/index.html" - "URL used by \\[x-symbol-package-web]. -If you have a local copy, you might want to change the value. The -default is \"http://x-symbol.sourceforge.net/index.html\".") - -(defconst x-symbol-maintainer-address "wedler@users.sourceforge.net" - "E-mail address of maintainer, used by \\[x-symbol-package-bug].") - -(defvar x-symbol-installer-address nil - "E-mail address of person who has installed package X-Symbol system-wide. -Used for normal reports by \\[x-symbol-package-bug]. If nil, normal -reports are sent to `x-symbol-maintainer-address'.") - - -;;;=========================================================================== -;;; General Options (appear in the menu) -;;;=========================================================================== - -(defcustom x-symbol-token-input t - "*If non-nil, enable input method TOKEN. -With input method TOKEN, and if the characters before point represent a -token, an insertion command after a completed token forces Emacs to -replace the token before point by the corresponding character. Use -\"\\[universal-argument] 0 space\" to just replace the token. Use -\\[undo] or \\[unexpand-abbrev] to undo the replacement. - -A command is considered to be a insertion command if it is a self-insert -command or has a non-nil symbol property `x-symbol-input'." - :group 'x-symbol-input-control - :type 'boolean) - -(x-symbol-define-user-options 'x-symbol-token-input '(t)) - -(defcustom x-symbol-electric-input t - "*If non-nil, enable input method ELECTRIC. -With this features, some contexts of input method CONTEXTS are -automatically replaced with the corresponding character, i.e., you do -not have to invoke \\[x-symbol-modify-key]. Use \\[undo] or -\\[unexpand-abbrev] to undo the replacement. - -Because an unwanted replacement of a context with a character can be -quite annoying, the following conditions must be fulfilled: - - * The context must have been defined as an electric context for the - character, see `x-symbol-init-cset'. - * The character must be valid, i.e., represent a token of the current - token language, see `x-symbol-valid-charsym-function'. - * All characters of the context have been typed without any other - command in between, e.g., with language \"TeX macro\", \"- >\" inserts - \\to, \"- \\[backward-char] \\[forward-char] >\" simply inserts \"->\". - * No prefix argument has been used for any character in the context. - * The electric context must not be a suffix of a longer valid context - for another character. E.g., \"''o\" is not changed to \"'\"+`oacute' - because \"''o\" is the context for `ohungarumlaut'. - * Contexts matched by a global or a token language dependent regexp are - not replaced. Functions can also be used to prevent a context to be - replaced by a character. E.g., with language \"TeX macro\", only - replace \"->\" by \\to if we are in TeX's math mode (using texmathp). - See `x-symbol-context-ignore' and `x-symbol-electric-ignore'." - :group 'x-symbol-input-control - :type 'boolean) - -(x-symbol-define-user-options 'x-symbol-electric-input '(t)) - -(defcustom x-symbol-local-menu t - "*If non-nil, provide a token language specific menu. -In a language specific menu, only insertion commands for valid -characters appear. The entries are mentioned and sorted according to -the token." - :group 'x-symbol-input-control - :type 'boolean) - -(x-symbol-define-user-options 'x-symbol-local-menu '(t)) - -(defcustom x-symbol-local-grid t - "*If non-nil, provide a token language specific grid. -See `x-symbol-grid'. In a language specific grid, only valid characters -appear. They may be also colored according to some language specific -token class coloring scheme. E.g., with language \"TeX macro\", purple -character can only be used in TeX's math mode, blue character can only -be used in TeX's text mode, see `x-symbol-charsym-face'." - :group 'x-symbol-input-control - :type 'boolean) - -(x-symbol-define-user-options 'x-symbol-local-grid '(t)) - -(defcustom x-symbol-temp-grid nil - "*If non-nil, the X-Symbol grid buffer only appears temporarily. -If a temporary grid is still visible, the first insertion of an X-Symbol -characters restores the window configuration current before the -invocation of `x-symbol-grid'." - :group 'x-symbol-input-control - :type 'boolean) - -(x-symbol-define-user-options 'x-symbol-temp-grid '(t)) - -(defcustom x-symbol-temp-help t - "*If non-nil, the key completion buffer only appears temporarily. -If the temporary key completions buffer is still visible, the first -insertion of an X-Symbol characters restores the window configuration -current before the invocation of `x-symbol-help'." - :group 'x-symbol-input-control - :type 'boolean) - -(x-symbol-define-user-options 'x-symbol-temp-help '(t)) - -(defvar x-symbol-use-refbuffer-once 'get-buffer-window - ;; TODO: customize (probably) - ;; `pop-up-frames'=t seems to be broken in XEmacs and I don't like - ;; multi-frames anyway, so I cannot say how it is supposed to work whether - ;; this really works - "*Use reference buffer just once when selecting a X-Symbol character. -For both the GRID and the Help buffer. TODO: more... A function means, -just once if function returns non-nil. Function is called with the -reference buffer and called from within the list buffer. - -E.g. `get-buffer-window' means: just once only if reference and list -buffer is on same frame.") -;;; :group 'x-symbol-input-control -;;; :type 'boolean) ; no, nil or function or sexp=t - -;;;(x-symbol-define-user-options 'x-symbol-use-reference-buffer-once '(t)) - -(defcustom x-symbol-reveal-invisible t - "*If non-nil, reveal invisible characters at point. -Usually, with a non-nil `x-symbol-subscripts', some parts of the text -might be invisible. With this feature and if point is in such an area, -all the text in the area is revealed and displayed with -`x-symbol-revealed-face'. With value t, also reveal if point is -directly after such an area. See function `x-symbol-reveal-invisible'." - :group 'x-symbol-info-general - :group 'x-symbol-miscellaneous - :type '(radio (const :tag "No" nil) - (const :tag "Characters Around Point" t) - (sexp :tag "Character After Point" :format "%t" :value after))) - -(x-symbol-define-user-options 'x-symbol-reveal-invisible - '(after - (nil . "No") - (after . "Character After Point") - (t . "Characters Around Point"))) - -(defcustom x-symbol-character-info t - "*If non-nil, display info for characters at point in echo area. -The info for the character after point includes the character itself, -the token of the current language, eventually colored according to some -coloring scheme, the token specific classes, the codings in which the -characters is considered to be a 8bit character and the key bindings. -With value t and no info for the character after point, show info for -character before point instead. See also `x-symbol-context-info'." - :group 'x-symbol-info-general - :type '(radio (const :tag "None" nil) - (const :tag "Characters Around Point" t) - (sexp :tag "Character After Point" :format "%t" :value after))) - -(x-symbol-define-user-options 'x-symbol-character-info - '(after - (nil . "None") - (after . "Character After Point") - (t . "Characters Around Point"))) - -(defcustom x-symbol-context-info t - "*If non-nil, display info for context before point in echo area. -If enabled and no info for characters at point, display the info for -the character to which \\[x-symbol-modify-key] would replace the context -before point. See also `x-symbol-character-info'." - :group 'x-symbol-info-general - :type 'boolean) - -(x-symbol-define-user-options 'x-symbol-context-info '(t)) - - -;;;=========================================================================== -;;; Texts, Modeline appearance -;;;=========================================================================== - -(defcustom x-symbol-charsym-modeline-name "none" - "Modeline name of the pseudo language x-symbol charsym. -See language access `x-symbol-LANG-modeline-name'." - :group 'x-symbol-miscellaneous - :type 'string) - -(defcustom x-symbol-coding-name-alist - '((iso-8859-1 . "Latin-1") - (iso-8859-2 . "Latin-2") - (iso-8859-3 . "Latin-3") - (iso-8859-9 . "Latin-5") - (iso-8859-15 . "Latin-9")) - "*Alist of codings with their names presented to the user. -The elements look like (CODING . NAME) where CODING is a valid value for -`x-symbol-coding' and NAME is the NAME used in the menu." - :group 'x-symbol-miscellaneous - :type '(repeat (cons :format "%v" x-symbol-coding string))) - -;;;(defface x-symbol-modeline-warning-face -;;; `((((class color) (background light)) -;;; (:foreground "red4"))) -;;; "*TODO" -;;; :group 'x-symbol-mode) - -;;(defcustom x-symbol-coding-modeline-warning-format "%s-err" -;; "*Format used to display coding which is not supported. -;;See `x-symbol-coding-modeline-text'." -;; ;; using text properties with faces for the modeline string doesn't work on -;; ;; XEmacs-21.4.5... -;; :group 'x-symbol-mode -;; :type 'string) - -(defcustom x-symbol-coding-modeline-alist - '((iso-8859-1 . "-l1") - (iso-8859-2 . "-l2") - (iso-8859-3 . "-l3") - (iso-8859-9 . "-l5") - (iso-8859-15 . "-l9") - (info . "-i") - (error . "-err")) - ;; TODO: describe none, info, error - "*Alist of codings with their names in the modeline. -The elements look like (CODING . NAME) where CODING is a valid value for -`x-symbol-coding' and NAME is used by `x-symbol-coding-modeline-text'." - :group 'x-symbol-mode - :type '(repeat (cons :format "%v" x-symbol-coding string))) - -(defcustom x-symbol-modeline-state-list - '(" XS:" - (x-symbol-language . x-symbol-language-modeline-text) - (x-symbol-8bits "8") - (x-symbol-unique "*") - (x-symbol-coding . x-symbol-coding-modeline-text) - "/" - (x-symbol-subscripts "s") - (x-symbol-image "i")) - "*Alist used by `x-symbol-update-modeline' to construct the modeline. -This function constructs `x-symbol-modeline-string' by concatenating the -result from the elements in this list. Each element looks like - SEPARATOR or - (VARIABLE NON-NIL . NIL) or - (VARIABLE . FUNCTION) - -SEPARATOR is a string and is used directly, only use the first from two -consecutive SEPARATORs. If VARIABLE is non-nil, use NON-NIL, otherwise -NIL, both NON-NIL and NIL should be strings or nil. FUNCTION is called -with the value of VARIABLE as argument and should return a string or -nil. Two SEPARATORs where all the elements in between return nil, are -considered to be consecutive." - :group 'x-symbol-mode - :type '(repeat (choice (string :tag "Separator") - (cons :tag "Depending on variable" - variable - (cons :format "%v" - (choice :tag "Non-nil" - (const :tag "Nothing" nil) string) - (choice :tag "Nil" - (const :tag "Nothing" nil) - string))) - (cons :tag "Calling function" - (sexp :tag "With argument") - function)))) - -;; Emacs only? -(defcustom x-symbol-set-coding-system-if-undecided t ; TODO: nil? - "*If non-nil, set coding system if undecided when turning on X-Symbol. -If this variable is non-nil, `x-symbol-default-coding' is non-nil, and -`buffer-file-coding-system' specifies an undecided coding system, set -`buffer-file-coding-system' according to `x-symbol-default-coding'." - :group 'x-symbol-mode - :type 'boolean) - - -;;;=========================================================================== -;;; Minor mode control -;;;=========================================================================== - -(defcustom x-symbol-auto-coding-search-limit 10000 - "*Limits searching for coding strings in the file. -Used in variable `x-symbol-auto-mode-alist' when finding an appropriate -value for `x-symbol-coding'." - :group 'x-symbol-mode - :type '(choice (const :tag "No limit" nil) (integer :tag "Limit"))) - - -;;;=========================================================================== -;;; Misc -;;;=========================================================================== - -(defcustom x-symbol-charsym-ascii-alist nil - "Alist of charsyms and their Ascii representation. -Each element looks like (CHARSYM . ASCII) where CHARSYM is a x-symbol -charsym and ASCII is a string. Used by `x-symbol-translate-to-ascii'. - -E.g., if you prefer the German way to Asciify accented characters, use - (setq x-symbol-charsym-ascii-alist - '((adiaeresis . \"ae\") (Adiaeresis . \"Ae\") - (odiaeresis . \"oe\") (Odiaeresis . \"Oe\") - (udiaeresis . \"ue\") (Udiaeresis . \"Ue\")))" - :group 'x-symbol-miscellaneous - :type '(repeat (cons :format "%v" x-symbol-charsym string))) - -(defcustom x-symbol-charsym-ascii-groups - '(digit1 - letter slash cedilla ogonek dotaccent ring tilde breve - circumflex caron diaeresis hungarumlaut acute grave) - "Charsym groups with default ascii representations. -Charsyms with a group in this list use their subgroup string as the last -possibility as the ascii representation. See `x-symbol-init-cset' for -details. Used by `x-symbol-translate-to-ascii'." - :group 'x-symbol-miscellaneous - :type '(repeat x-symbol-group)) - -(defcustom x-symbol-valid-charsym-function 'x-symbol-default-valid-charsym - "Function which should return non-nil if a charsym is valid. -Function is called with the charsym and optional language." - :group 'x-symbol-input-control - :type 'function) - -(defvar x-symbol-user-table nil - "List of character definitions: groups, aspects, input. -Used to shadow default elements with key CHARSYM in the default tables. -The elements have the following form, as explained in -`x-symbol-init-cset', DUMMY is not used: - (CHARSYM DUMMY GROUPING ASPECTS SCORE INPUT PREFIXES) - -E.g., if you prefer charsym `epsilon1' over `epsilon', you might want to -copy the table element from `x-symbol-xsymb1-table' and change its score: -use the following element in this table: - (epsilon1 t (greek1 \"e\" nil \"epsilon\") nil -3000)") - -(defvar x-symbol-mule-change-default-face nil - "If non-nil, change font of default face for existing charsets. -The default face is never changed for the charset registry corresponding -to `x-symbol-default-coding'. It is always set for new charsets. -Otherwise, this value determines whether it is changed.") - - -;;;=========================================================================== -;;; Commands in X-Symbol map -;;;=========================================================================== - -(defcustom x-symbol-map-default-keys-alist - '((help x-symbol-help) - ((control ?h) x-symbol-help) - (button1) - (button2) - (button3) - (down-mouse-1 ignore) - (down-mouse-2 ignore) - (down-mouse-3 ignore) - (mouse-1) - (mouse-2) - (mouse-3) - ((meta home) beginning-of-buffer-other-window t) - ((meta end) end-of-buffer-other-window t) - ((meta prior) scroll-other-window-down t) - ((meta next) scroll-other-window t)) - "Alist used by `x-symbol-map-default-binding'. -Each element looks like (KEY COMMAND TEMPORARYP). - -If the last event in the undefined X-Symbol key sequence matches KEY, -see `events-to-keys', COMMAND is executed. If COMMAND is nil, execute -command which has binding KEY without prefix of the X-Symbol key -sequence. IF TEMPORARYP is non-nil, use key prefix and the prefix -argument for the following command." - :group 'x-symbol-input-control - :type '(repeat (group x-symbol-key - (choice (const :tag "Usual command" nil) - x-symbol-command) - (boolean :tag "Temporary")))) - -(defcustom x-symbol-map-default-bindings - '(("\C-i" x-symbol-read-token-direct) - ("\C-m" x-symbol-read-token) - (nil x-symbol-grid) - ([(left)] x-symbol-modify-key) - ([(right)] x-symbol-modify-key) - ([(up)] x-symbol-rotate-key) - ([(down)] x-symbol-rotate-key)) - "TODO. nil = (vector x-symbol-compose-key)" - :group 'x-symbol-input-control - :type '(repeat (group (sexp :tag "Key sequence" nil) - x-symbol-command))) - -(defvar x-symbol-after-init-input-hook nil - "Hook run after the initialization of all input methods. -See `x-symbol-init-input'. If you want define key bindings starting -with \\[x-symbol-map], do it here. It is a bad idea to use this for -additional self insert commands, use \"character descriptions\" in -`x-symbol-user-table' instead.") - - -;;;=========================================================================== -;;; Menu (option part) -;;;=========================================================================== - -;; As long as custom does not offer a widget for menu entries...no defcustom -;; WARNING: XEmacs-20.4 :suffix STRING -(defvar x-symbol-menu - '("X-Symbol" :filter x-symbol-menu-filter - ("Conversion in %s" :filter x-symbol-extra-filter - ["Conversion" nil x-symbol-region-text] ; pseudo entry - ["Encode Characters" x-symbol-encode - :active (and x-symbol-language (not buffer-read-only))] - ["Encode & Recode" x-symbol-encode-recode - :active (and x-symbol-coding x-symbol-language (not buffer-read-only) - (not (eq x-symbol-coding x-symbol-default-coding)) - (eq (x-symbol-buffer-coding) x-symbol-default-coding) - (assq x-symbol-coding x-symbol-fchar-tables))] - ["Decode Tokens" x-symbol-decode - :active (and x-symbol-language (not buffer-read-only))] - ["Recode & Decode" x-symbol-decode-recode - :active (and x-symbol-coding x-symbol-language (not buffer-read-only) - (not (eq x-symbol-coding x-symbol-default-coding)) - (eq (x-symbol-buffer-coding) x-symbol-default-coding) - (assq x-symbol-coding x-symbol-fchar-tables))] - ["Replace Char Aliases" x-symbol-unalias - :active (not buffer-read-only)]) - ;; - ("Other Commands" :filter x-symbol-extra-filter - ["Other Commands" nil nil] ; pseudo entry - ["Copy Encoded" x-symbol-copy-region-encoded - ;;(x-symbol-copy-region-encoded (region-beginning) (region-end)) - :active (and x-symbol-language (region-active-p))] - ["Paste Decoded" x-symbol-yank-decoded - :active (and x-symbol-mode (not buffer-read-only))] - "---" - ["GRID Of Characters" x-symbol-grid t] - ["READ Token Character" x-symbol-read-token (not buffer-read-only)] - "---" - ["Modify CONTEXT" x-symbol-modify-key (not buffer-read-only)] - ["Rotate CONTEXT" x-symbol-rotate-key (not buffer-read-only)] - "---" - ["Info Page" x-symbol-package-info t] - ["Web Page" x-symbol-package-web t] - ["Send Bug/Problem Report" x-symbol-package-bug t]) - ;; - ("Buffer/File Options" :filter x-symbol-options-filter - ["X-Symbol Mode" x-symbol-mode t] - "---" - ["Token Language:" x-symbol-language t] - ["8bit Char Encoding:" x-symbol-coding t] - ["Store 8bit In File" x-symbol-8bits t] - ["Unique Decoding" x-symbol-unique t] - "---" - ["Super-/Subscripts" x-symbol-subscripts - (x-symbol-subscripts-available-p)] - ["Show Images" x-symbol-image (x-symbol-image-available-p)]) - ;; - ("General Options" :filter x-symbol-options-filter - ["Input Method TOKEN" x-symbol-token-input t] - ["Input Method ELECTRIC" x-symbol-electric-input t] - "---" - ["Language Specific GRID" x-symbol-local-grid t] - ["Language Specific MENU" x-symbol-local-menu t] - "---" - ["Temporary GRID" x-symbol-temp-grid t] - ["Temporary Key Completions" x-symbol-temp-help t] - "---" - ["Reveal Invisible" x-symbol-reveal-invisible t] - ["Display Character Info" x-symbol-character-info t] - ["Display Context Info" x-symbol-context-info t] - "---" - ["Browse Customization" (customize-browse 'x-symbol) t]) - "---") - "First entries of the x-symbol menu, language specific or not. -The next items are submenus with commands to insert x-symbol characters. -See also `x-symbol-header-groups-alist'.") - - -;;;=========================================================================== -;;; Menu (insert commands part), Grid -;;;=========================================================================== - -(defcustom x-symbol-menu-max-items 30 - "*Maximum number of entries in submenus of the x-symbol menu. -If the number of character input commands in a submenu exceed this -value, use more than one submenu for the same header. These submenus -have nearly the same length. See also `x-symbol-header-groups-alist'." - :group 'x-symbol-input-init - :type 'integer) - -(defcustom x-symbol-header-groups-alist - '(("Operator" bigop operator) - ("Relation" relation) - ("Arrow" arrow) - ("Shaped" triangle shape) - ("Punctuation" white line dots punctuation quote parenthesis) - ("Symbol" symbol currency) - ("Math Letter" mathletter setsymbol) - ("Greek Letter" greek greek1) - ("Misc. Letter" letter slash) - ("Cedilla, Ogonek" cedilla ogonek) - ("Dotaccent, Ring" dotaccent ring) - ("Tilde, Breve" tilde breve) - ("Circumflex, Caron" circumflex caron) - ("Diaeresis, Umlaut" diaeresis hungarumlaut) - ("Acute, Grave" acute grave)) - "Alist to determine the header/submenu for characters. -Each element looks like (HEADER GROUP...) where HEADER is a string and -GROUP is the group of a character as explained in `x-symbol-init-cset'. -This alist is used for `x-symbol-grid' and the `x-symbol-menu'. -Token languages might define their own alist. - -For each token language LANG, `x-symbol-LANG-header-groups-alist', if -non-nil, contains the specification for the language specific grid and -menu." -;; TODO: mention: before init - :group 'x-symbol-input-init - :type 'x-symbol-headers) - -(defcustom x-symbol-completions-buffer "*X-Symbol Key Completions*" - "Buffer name for key completions buffer. -Used by `x-symbol-help', i.e., when pressing Help during a x-symbol -key sequence." - :group 'x-symbol-input-init - :type 'string) - -(defcustom x-symbol-grid-buffer-format "*X-Symbol Grid (%s)*" - "Buffer name format for grid buffers. -Used with substitution `x-symbol-charsym-name'/%s when invoked from a -buffer without a valid token language or if `x-symbol-local-grid' has -value nil. Otherwise, used with substitution NAME/%s where NAME is the -name of `x-symbol-language'." - :group 'x-symbol-input-init - :type 'string) - -(defcustom x-symbol-grid-reuse t - "If non-nil, \\[x-symbol-grid] reuses old grid buffers. -If non-nil, avoid unnecessary computations. You should probably set -this to nil, if you use side-by-side buffers with different width." - :group 'x-symbol-input-control - :type 'boolean) - -(defcustom x-symbol-grid-header-echo - '("button2 scrolls up/down, button3 pops up X-Symbol menu (all non-highlighted parts)" - (8 24 x-symbol-info-face) (33 54 x-symbol-info-face) - (56 x-symbol-info-face)) - "Text used for the echo are if mouse if over a heading. -See `x-symbol-fancy-value' for the value type." - :group 'x-symbol-input-init - :group 'x-symbol-info-strings - :set 'x-symbol-set-cache-variable - :type 'x-symbol-fancy) - -(defcustom x-symbol-grid-ignore-charsyms '(nobreakspace) - "Charsyms not being displayed in the grid, see `x-symbol-grid'." - :group 'x-symbol-input-control - :type '(repeat x-symbol-charsym)) -;; problems with var-space fonts - -(defcustom x-symbol-grid-tab-width 4 ; TODO Emacs better? 3 too small - "Tab width in the grid between characters, see `x-symbol-grid'. -The widest character should not be wider than the tab width if the -default face has font of `x-symbol-heading-face'." - :group 'x-symbol-input-init - :type 'number) - -(defface x-symbol-heading-face - `((((class color) (background light)) - (:foreground "green4" - :bold t :family "Helvetica" - ,@(if (featurep 'xemacs) '(:size "12pt")) - :underline t))) ; underline must be last... - ;;(:foreground "green4" :underline t))) - "Face used for headers in the grid buffers. -The defined font is used as default font and influences the correct -value of `x-symbol-grid-tab-width'." - :group 'x-symbol-input-init) - -(defvar x-symbol-heading-strut-glyph - (make-glyph (eval-when-compile - `(((x) . [xbm :data (6 20 ,(make-string 20 0))]) - ((mswindows) . [xbm :data (6 20 ,(make-string 20 0))]) - ((tty) . [string :data " "])))) - "Glyph at the end of headers in grid buffers, see `x-symbol-grid'. -Allows to have a larger interline spacing when the line starts with a -header.") - - -;;;=========================================================================== -;;; Other input methods -;;;=========================================================================== - -(defvar x-symbol-key-init-ignore nil - "Regexp matching contexts not being used by input method QUAIL.") -;; TODO: just regexp, more text - -(defvar x-symbol-quail-init-ignore " " - "Regexp matching contexts not being used by input method QUAIL.") -;; TODO: just regexp, more text - -(defvar x-symbol-context-init-ignore " " - "Regexp matching contexts not being used by input method CONTEXT. -As opposed to `x-symbol-context-ignore', this is already used during -initialization. It also allows the input method CONTEXT to consider the -next shorter context.") -;; just regexp - -(defcustom x-symbol-context-ignore nil - "Regexp matching contexts not to be replaced by input method CONTEXT. -You may also use a function instead of a regexp, see -`x-symbol-call-function-or-regexp'." - :group 'x-symbol-input-control - :type 'x-symbol-function-or-regexp) -;; TODO: mention that fn is called with CONTEXT CHARSYM - -(defcustom x-symbol-electric-ignore "[ \t]\\|'[ls]" - "Regexp matching contexts not to be replaced by input method ELECTRIC. -A language dependent regexp is also checked before a context is -replaced, see `x-symbol-electric-input' for details. You may also use a -function instead of a regexp, see `x-symbol-call-function-or-regexp'. - -For each token language LANG, `x-symbol-LANG-electric-ignore', if -non-nil, defines the language dependent version." - :group 'x-symbol-input-control - :type 'x-symbol-function-or-regexp) - -(defcustom x-symbol-rotate-suffix-char ?\# - "Additional suffix character usually used to simulate Greekifying. -\\[x-symbol-modify-key] modifies the longest context before point -whereas \\[x-symbol-rotate-key] appends this character to the context to -determine the correct target character for the context. The value is -typically a suffix being defined in `x-symbol-group-input-alist'." - :group 'x-symbol-input-control - :type 'character) - -(defcustom x-symbol-rotate-prefix-alist - '((8 . north) - (7 . north-west) - (4 . west) - (1 . south-west) - (2 . south) - (28 . vertical) - (82 . vertical) - (3 . south-east) - (6 . east) - (64 . horizontal) - (46 . horizontal) - (9 . north-east) - (5 . nil)) - "Alist used if `x-symbol-rotate-key' is called with a prefix arg. -Each element looks like (NUMBER . DIRECTION) where NUMBER is the numeric -value of the prefix argument and DIRECTION is a valid direction in -`x-symbol-rotate-aspects-alist'." - :group 'x-symbol-input-control - :type '(repeat (cons :format "%v" - (integer :tag "Numeric Prefix Arg") - (symbol :tag "Direction")))) - -(defvar x-symbol-list-mode-hook nil - "Hook run at the end of `x-symbol-list-mode'.") - -;;; Before init-input: ====================================================== - -(defvar x-symbol-key-min-length 2 - "Minimum number of key strokes in a x-symbol key sequence. -If the key context is shorter than this value, use \"1\" as an -additional key suffix. See `x-symbol-init-input' for details.") - -(defvar x-symbol-quail-suffix-string ";" - "TODO") - -(defvar x-symbol-define-input-method-quail (featurep 'mule)) - - -;;;=========================================================================== -;;; Invisible and Info (part 1) -;;;=========================================================================== - -(defcustom x-symbol-idle-delay 0.5 - "*Time in seconds of idle time before showing info in the echo area. -Also used as idle time before revealing invisible characters. See -`x-symbol-character-info', `x-symbol-context-info' and -`x-symbol-reveal-invisible'. See also `x-symbol-start-itimer-once'." - :group 'x-symbol-miscellaneous - :type 'number) - -(defface x-symbol-revealed-face - '((((class color) (background light)) - (:background "pink"))) - "Face used when revealing invisible characters. -Used instead `x-symbol-invisible-face'. See `x-symbol-reveal-invisible'." - :group 'x-symbol-info-general - :group 'x-symbol-miscellaneous) - -(defcustom x-symbol-context-info-ignore 'x-symbol-default-context-info-ignore - "Regexp matching contexts not used to display a context info for. -See `x-symbol-context-info'. You may also use a function instead of a -regexp, see `x-symbol-call-function-or-regexp'." -;; TODO: mention that fn is called with CONTEXT CHARSYM - :group 'x-symbol-info-general - :type 'x-symbol-function-or-regexp) - -(defcustom x-symbol-context-info-threshold 2 - "Minimum length of contexts to display a context info for. -Used by `x-symbol-default-context-info-ignore'." - :group 'x-symbol-info-general - :type 'integer) - -(defcustom x-symbol-context-info-ignore-regexp "\\`[A-Za-z]+\\'" - "Regexp matching contexts not to display a context info for. -Used by `x-symbol-default-context-info-ignore'." - :group 'x-symbol-info-general - :type 'regexp) - -(defcustom x-symbol-context-info-ignore-groups - '(letter - slash cedilla ogonek dotaccent ring tilde breve - circumflex caron diaeresis hungarumlaut acute grave) - "Groups of characters not to display a context info for. -Used by `x-symbol-default-context-info-ignore'." - :group 'x-symbol-info-general - :type '(repeat x-symbol-group)) - - -;;;=========================================================================== -;;; Character Info -;;;=========================================================================== - -(defface x-symbol-info-face - (eval-when-compile - `((((class color) (background light)) - (:foreground "green4" :family "Helvetica" - ;; :size necessary with XEmacs, I get huge fonts otherwise, - ;; at least if x-symbol is enabled from a buffer with a - ;; nonstandard default font... - ,@(if (featurep 'xemacs) '(:size "12pt")))))) - "Face normally used for the info in the echo area." - :group 'x-symbol-info-strings) - -(defface x-symbol-emph-info-face - (eval-when-compile - `((((class color) (background light)) - (:foreground "red4" :family "Helvetica" - ,@(if (featurep 'xemacs) '(:size "12pt")))))) - "Face used for the emphasized info in the echo area." - :group 'x-symbol-info-strings) - -(defcustom x-symbol-info-intro-after - '("AFTER: " (0 -2 x-symbol-info-face)) - "Intro spec of info for the character after point. -See `x-symbol-character-info'. See `x-symbol-fancy-value' for the value -type." - :group 'x-symbol-info-strings - :set 'x-symbol-set-cache-variable - :type 'x-symbol-fancy) - -(defcustom x-symbol-info-intro-before - '("BEFORE: " (0 -2 x-symbol-info-face)) - "Intro spec of info for character before point. -See `x-symbol-character-info'. See `x-symbol-fancy-value' for the value -type." - :group 'x-symbol-info-strings - :set 'x-symbol-set-cache-variable - :type 'x-symbol-fancy) - -(defcustom x-symbol-info-intro-highlight - '("button2 inserts: " (-10 -2 x-symbol-info-face)) - "Intro spec of the info character in grid under mouse. -See `x-symbol-fancy-value' for the value type, STRING is passed to -`substitute-command-keys'." - :group 'x-symbol-info-strings - :set 'x-symbol-set-cache-variable - :type 'x-symbol-fancy) - -(defcustom x-symbol-info-intro-list - '("\\[x-symbol-list-selected] inserts: " (-10 -2 x-symbol-info-face)) - "Intro spec of the info character in grid under point. -Used by \\[x-symbol-list-info]. See `x-symbol-fancy-value' for the -value type, STRING is passed to `substitute-command-keys'." - :group 'x-symbol-info-strings - :set 'x-symbol-set-cache-variable - :type 'x-symbol-fancy) - -(defcustom x-symbol-info-intro-yank - '("\\[yank] inserts: " (-10 -2 x-symbol-info-face)) - "Intro spec of info for the character inserted in read-only buffer. -See `x-symbol-insert-command'. See `x-symbol-fancy-value' for the value -type, STRING is passed to `substitute-command-keys'." - :group 'x-symbol-info-strings - :set 'x-symbol-set-cache-variable - :type 'x-symbol-fancy) - -(defcustom x-symbol-info-alias-after - '("\\[forward-char] \\[x-symbol-modify-key] replaces char alias with: " - (-27 -2 x-symbol-emph-info-face)) - "Intro spec of short info for character alias after point. -See `x-symbol-character-info'. See `x-symbol-fancy-value' for the value -type, STRING is passed to `substitute-command-keys'." - :group 'x-symbol-info-strings - :set 'x-symbol-set-cache-variable - :type 'x-symbol-fancy) - -(defcustom x-symbol-info-alias-before - '("\\[x-symbol-modify-key] replaces char alias with: " - (-27 -2 x-symbol-emph-info-face)) - "Intro spec of short info for character alias before point. -See `x-symbol-character-info'. See `x-symbol-fancy-value' for the value -type, STRING is passed to `substitute-command-keys'." - :group 'x-symbol-info-strings - :set 'x-symbol-set-cache-variable - :type 'x-symbol-fancy) - -(defcustom x-symbol-info-context-pre - '("\\[x-symbol-modify-key] replaces " (-9 -1 x-symbol-info-face)) - "Spec of text before context in info for context before point. -See `x-symbol-context-info'. See `x-symbol-fancy-value' for the value -type, STRING is passed to `substitute-command-keys'." - :group 'x-symbol-info-strings - :set 'x-symbol-set-cache-variable - :type 'x-symbol-fancy) - -(defcustom x-symbol-info-context-post - '(" with: " (1 -2 x-symbol-info-face)) - "Spec of text after context in info for context before point. -See `x-symbol-context-info'. See `x-symbol-fancy-value' for the value -type." - :group 'x-symbol-info-strings - :set 'x-symbol-set-cache-variable - :type 'x-symbol-fancy) - -(defcustom x-symbol-info-token-pre '(" = " (x-symbol-info-face)) - "Spec of text between character and token in info. -See `x-symbol-fancy-value' for the value type." - :group 'x-symbol-info-strings - :set 'x-symbol-set-cache-variable - :type 'x-symbol-fancy) - -(defcustom x-symbol-info-token-charsym - '("<%s>" (0 1 x-symbol-info-face) (-1 x-symbol-info-face)) - "Spec with format for x-symbol charsym in info. -See `x-symbol-fancy-string' for the value type, the format with -substitution CHARSYM/%s is the STRING." - :group 'x-symbol-info-strings - :set 'x-symbol-set-cache-variable - :type 'x-symbol-fancy) - -(defcustom x-symbol-info-classes-pre '(" (" (1 x-symbol-info-face)) - "Spec of text before token classes in info. -See `x-symbol-fancy-associations' for details." - :group 'x-symbol-info-strings - :set 'x-symbol-set-cache-variable - :type 'x-symbol-fancy) - -(defcustom x-symbol-info-classes-sep '(", " (x-symbol-info-face)) - "Spec of text between token classes in info. -See `x-symbol-fancy-associations' for details." - :group 'x-symbol-info-strings - :set 'x-symbol-set-cache-variable - :type 'x-symbol-fancy) - -(defcustom x-symbol-info-classes-post '(")" (x-symbol-info-face)) - "Spec of text before after token classes in info. -See `x-symbol-fancy-associations' for details." - :group 'x-symbol-info-strings - :set 'x-symbol-set-cache-variable - :type 'x-symbol-fancy) - -(defcustom x-symbol-info-classes-charsym '("charsym" (x-symbol-info-face)) - "Spec of token class string for x-symbol charsyms in info. -See `x-symbol-fancy-value' for the value type." - :group 'x-symbol-info-strings - :set 'x-symbol-set-cache-variable - :type 'x-symbol-fancy) - -(defcustom x-symbol-info-coding-pre '("." (x-symbol-info-face)) - "Spec of text before codings in info. -See `x-symbol-fancy-associations' for details." - :group 'x-symbol-info-strings - :set 'x-symbol-set-cache-variable - :type 'x-symbol-fancy) - -(defcustom x-symbol-info-coding-sep '("." (x-symbol-info-face)) - "Spec of text between codings in info. -See `x-symbol-fancy-associations' for details." - :group 'x-symbol-info-strings - :set 'x-symbol-set-cache-variable - :type 'x-symbol-fancy) - -(defcustom x-symbol-info-coding-post '("") - "Spec of text after codings in info. -See `x-symbol-fancy-associations' for details." - :group 'x-symbol-info-strings - :set 'x-symbol-set-cache-variable - :type 'x-symbol-fancy) - -(defcustom x-symbol-info-coding-alist - '((iso-8859-1 "l1" (x-symbol-info-face)) - (iso-8859-2 "l2" (x-symbol-info-face)) - (iso-8859-3 "l3" (x-symbol-info-face)) - (iso-8859-9 "l5" (x-symbol-info-face)) - (iso-8859-15 "l9" (x-symbol-info-face))) - "Specs for coding info. -Each element looks like (CODING . SPEC). Characters which are defined -to be 8bit characters with CODING, are displayed with SPEC in the info. -See `x-symbol-fancy-associations' for details." - :group 'x-symbol-info-strings - :type '(repeat (group x-symbol-coding - string - (x-symbol-fancy-spec :inline t - :tag "Face specifications")))) - -(defcustom x-symbol-info-keys-keymaps 'x-symbol-default-info-keys-keymaps - "Function returning the root keymaps for the key info. -If non-nil, called with the current charsym as argument, the result is -the second argument to `where-is-internal'. See also -`x-symbol-info-keys-pre'." - :group 'x-symbol-info-strings - :type '(choice (const :tag "Current maps" nil) function)) - -(defcustom x-symbol-info-keys-pre - '(" \\[x-symbol-map] +: " (-4 -1 x-symbol-info-face)) - "Spec of text before key bindings in info. -See `x-symbol-fancy-associations' for details, STRING is passed to -`substitute-command-keys'. See also `x-symbol-info-keys-keymaps'." - :group 'x-symbol-info-strings - :set 'x-symbol-set-cache-variable - :type 'x-symbol-fancy) - -(defcustom x-symbol-info-keys-sep '(" , " (0 -1 x-symbol-info-face)) - "Spec of text between key bindings in info. -See `x-symbol-fancy-associations' for details." - :group 'x-symbol-info-strings - :set 'x-symbol-set-cache-variable - :type 'x-symbol-fancy) - -(defcustom x-symbol-info-keys-post '("") - "Spec of text after key bindings in info. -See `x-symbol-fancy-associations' for details." - :group 'x-symbol-info-strings - :set 'x-symbol-set-cache-variable - :type 'x-symbol-fancy) - -(defconst x-symbol-fancy-cache-size 25 - "Internal. Number of variables whose fancy values are cached.") - -(defvar x-symbol-cache-size 100 - "*Size of caches for fancy strings. -See `x-symbol-ensure-hashtable' and `x-symbol-puthash'.") - - -;;;=========================================================================== -;;; Init: aspects, default input -;;;=========================================================================== - -(defvar x-symbol-modify-aspects-alist - '((shift (nil . 0) (up . 300) (down . 600)) - (shape (nil . 0) (round . 1000) (square . 2000) (curly . 3000)) - (size (nil . 0) (big . 5000) (sml . 9000))) - "Alist of modify aspects with their values and scores. -Each element looks like (ASPECT (VALUE . SCORE)...) where ASPECT is a -modify aspect. It is a good idea to have a value nil with score 0 in -the alist of all aspects. - -The aspect value must be equal to one VALUE, the modify score is -incremented by the corresponding SCORE. A higher modify score makes a -character likely to appear late in the modify-to chain. See -`x-symbol-init-cset' and `x-symbol-init-input'.") - -(defvar x-symbol-rotate-aspects-alist - '((direction (north . -5000) (north-west . -4500) (west . -4000) - (south-west . -3500) (south . -3000) (vertical . -2500) - (south-east . -2000) (east . -1500) - (horizontal . -1000) (north-east . -500) (nil . 0))) - "Alist of rotate aspects with their values and scores. -Each element looks like (ASPECT (VALUE . SCORE)...) where ASPECT is a -rotate aspect. It is a good idea to have a value nil with score 0 in -the alist of all aspects. Aspect `direction' is also used by -`x-symbol-rotate-prefix-alist'. - -The aspect value must be equal to one VALUE, the rotate score is -incremented by the corresponding SCORE. A higher rotate score makes a -character likely to appear late in the rotate-to chain. See -`x-symbol-init-cset' and `x-symbol-init-input'.") - -(defvar x-symbol-group-input-alist - '((bigop 0) - (operator -120) - (relation -120) - (arrow 0) - (triangle 0) - (shape 0) - (white 1500) - (line 0) - (dots 0) - (punctuation 0) - (quote 0) - (parenthesis 0) - (symbol 0) - (currency 0) - (digit1 0 "%sd") - (mathletter 500 "%s") - (setsymbol 120 "%s") - (greek1 1500 "%s#" "#%s") - (greek 0 "%s#" "#%s") - (letter 0 "%s") - (slash 120 "%s/" "/%s") - (ogonek 250 "%s," ",%s") - (cedilla 120 "%s," ",%s") - (dotaccent 250 "%s." ".%s") - (ring 250 "%s*" "*%s") - (breve 250 "%sv" "v%s") - (caron 120 "%sv" "v%s") - (circumflex 120 "%s^" "^%s") - (tilde 120 t "%s~" "~%s") - (hungarumlaut 250 "''%s") - (diaeresis 120 "%s:" t ":%s" "%s\"" "\"%s") - (grave 120 t "%s`" "`%s") - (acute 120 "%s'" t "'%s")) - "Alist of character groups with their scores and default input formats. -Each element looks like (GROUP GROUP-SCORE . INPUT). If the group of a -charsym is equal to GROUP, its score is incremented by GROUP-SCORE, see -`x-symbol-init-cset'. - -INPUT = nil | (FORMAT . INPUT) | (t FORMAT . INPUT). It is used if the -charsym has no input definitions, but a SUBGROUP which might have been -processed using `x-symbol-subgroup-string-alist'. In that case, the -FORMATs with substitutions SUBGROUP/%s are the CONTEXTs as described in -`x-symbol-init-cset'.") - - -;;;=========================================================================== -;;; Init: char syntax -;;;=========================================================================== - -(defvar x-symbol-group-syntax-alist - '((bigop "_") - (operator "_") - (relation "_") - (arrow "_") - (triangle "_") - (shape "_") - (white " ") - (line ".") - (dots ".") - (punctuation ".") - (quote "." (open . "(%s") (close . ")%s")) - (parenthesis "." (open . "(%s") (close . ")%s")) - (symbol "_") - (currency "_") - (digit1 "_") - (mathletter "w") - (setsymbol "w") - (greek "w") - (greek1 "w") - (letter "w") - (slash "w") - (cedilla "w") - (ogonek "w") - (dotaccent "w") - (ring "w") - (tilde "w") - (breve "w") - (circumflex "w") - (caron "w") - (diaeresis "w") - (hungarumlaut "w") - (acute "w") - (grave "w")) - "Alist of groups with their syntax designators used in XEmacs/Mule. -Each element looks like (GROUP SYNTAX (RAW-SUBGROUP . FORMAT)...). A -charsym with group GROUP has normally the syntax designator SYNTAX. If -its raw subgroup, i.e., a symbol, is equal to a RAW-SUBGROUP and the -OPPOSITE of the charsym is defined in the same or previous csets, FORMAT -with substitution CSTRING/%s is used as the syntax designator where -CSTRING is the cstring of OPPOSITE. See `x-symbol-init-cset' and -`x-symbol-subgroup-string-alist'.") - -(defvar x-symbol-subgroup-string-alist - '((accent . " ") - (open . "(") - (close . ")")) - "Alist of subgroup symbols with their string representation. -Each element looks like (RAW . STRING) where RAW is a symbol used in the -SUBGROUP position of entries in cset tables, see `x-symbol-init-cset' -and STRING is its string representation.") - - -;;;=========================================================================== -;;; Fonts -;;;=========================================================================== - -(defvar x-symbol-latin-force-use - (equal window-system 'mac) ;; da: very approximate - "If non-nil, define latin characters even when fonts are missing. -If nil, it is a bad idea to decode a file when its `x-symbol-coding' -corresponds to a missing font, i.e., 8bit characters are assumed to have -encoding `x-symbol-default-coding' in this case. If nil, tokens are not -decoded if they require the missing font. Values other than nil are -safe, but latin characters without correct fonts will look strange.") - -(defvar x-symbol-font-sizes - (let ((env-fontsize (getenv "XSYMBOL_FONTSIZE"))) - (if (equal env-fontsize "14") '(("" 14 12)) - (if (equal env-fontsize "18") '(("" 18 14)) - (if (equal env-fontsize "24") '(("" 24 18)) - '(("\\`-etl-" 16 14) ("" 14 12))))))) - -;; (defvar x-symbol-font-sizes '(("\\`-etl-" 16 14) ("" 14 12))) -;; '(14 ("\\`-etl-.+_su[bp]-" . 14) ("\\`-etl-" . 16) ("_su[bp]-" . 12))) - -(defvar x-symbol-font-lock-with-extra-props - (and (boundp 'x-symbol-emacs-has-font-lock-with-props) - x-symbol-emacs-has-font-lock-with-props)) - -(defvar x-symbol-latin1-fonts - '("-adobe-helvetica%s-medium-r-normal-*-%d-*-*-*-*-*-iso8859-1") - "Fonts with registry/encoding \"iso8859-1\". -See `x-symbol-latin1-cset' and `x-symbol-init-cset'.") - -(defvar x-symbol-latin2-fonts - '("-adobe-helvetica%s-medium-r-normal-*-%d-*-*-*-*-*-iso8859-2" - "-etl-fixed%s-medium-r-normal--%d-%d0-72-72-c-*-iso8859-2") - "Fonts with registry/encoding \"iso8859-2\". -See `x-symbol-latin2-cset' and `x-symbol-init-cset'.") - -(defvar x-symbol-latin3-fonts - '("-adobe-helvetica%s-medium-r-normal-*-%d-*-*-*-*-*-iso8859-3" - "-etl-fixed%s-medium-r-normal--%d-%d0-72-72-c-*-iso8859-3") - "Fonts with registry/encoding \"iso8859-3\". -See `x-symbol-latin3-cset' and `x-symbol-init-cset'.") - -(defvar x-symbol-latin5-fonts - '("-etl-fixed%s-medium-r-normal--%d-%d0-72-72-c-*-iso8859-9") - "Fonts with registry/encoding \"iso8859-9\". -See `x-symbol-latin5-cset' and `x-symbol-init-cset'.") - -;; for some reason, the font foundry and family name have been renamed, it is -;; the normal helvetica font... -(defvar x-symbol-latin9-fonts - '("-vh-herilane%s-medium-r-normal-*-%d-*-*-*-*-*-iso8859-15") - "Fonts with registry/encoding \"iso8859-15\". -See `x-symbol-latin9-cset' and `x-symbol-init-cset'.") - -(defvar x-symbol-xsymb0-fonts - '("-xsymb-xsymb0%s-medium-r-normal--%d-*-75-75-p-*-adobe-fontspecific" - "-adobe-symbol%s-medium-r-normal-*-*-%d0-*-*-*-*-adobe-fontspecific") - "Fonts with registry/encoding \"adobe-fontspecific\". -See `x-symbol-xsymb0-cset' and `x-symbol-init-cset'.") - -(defvar x-symbol-xsymb1-fonts - '("-xsymb-xsymb1%s-medium-r-normal--%d-*-75-75-p-*-xsymb-xsymb1" - "-apple-isaxsym-medium-r-normal--%d-%d0-75-75-p-*-xsymb-xsymb1") - "Fonts with registry/encoding \"xsymb-xsymb1\". -See `x-symbol-xsymb1-cset' and `x-symbol-init-cset'.") - - -;;;=========================================================================== -;;; X-Symbol Image: general -;;;=========================================================================== - -(defcustom x-symbol-image-max-width 120 - "*Maximum width of glyphs." - :group 'x-symbol-image-general - :type 'integer) - -(defcustom x-symbol-image-max-height 80 - "*Maximum height of glyphs." - :group 'x-symbol-image-general - :type 'integer) - -(defcustom x-symbol-image-update-cache 'old - "*If non-nil, automatically update the image cache file. -With value nil, only create an image cache file if it does not exist. -With value t, always produce a new cache file. With any other value, -only produce a cache file if it does not exist or is older than the -corresponding image file. This variable has no influence if a glyph -having used the image cache file in question is stored in the buffer -local memory cache, see `x-symbol-image-memory-cache'. - -See `x-symbol-image-cache-directories' for the file name of the -cached image. See also `x-symbol-image-special-glyphs'." - :group 'x-symbol-image-general - :type '(radio (const :tag "No" nil) - (const :tag "Always" t) - (sexp :tag "Old" :format "%t" :value old))) - -(defcustom x-symbol-image-use-remote nil - "*If nil, only show glyphs which can be stored in the memory cache. -The memory cache stores glyphs for file names without directory part or -a directory part in the language access -`x-symbol-LANG-image-cached-dirs', e.g., it should contain \"images\", -if \"images/mail.png\" should be stored in the memory cache. - -If this variable is nil, use `x-symbol-image-remote-glyph' for image -files not in the memory cache. If it is non-nil, try to find the image -file during editing, ignoring the searchpath, for speed, though. -Editing lines with image files not in the memory cache will be slow, -since file accesses are necessary for every command. - -When searching for the images file, all file names, including -directories in a search path, are relative to the return value of the -function in language access `x-symbol-LANG-master-directory', value nil -means function `default-directory'. - -Implicitly relative file names, i.e., those which are neither absolute -nor are matched by `x-symbol-image-explicitly-relative-regexp', are -searched in the directories of language access -`x-symbol-LANG-image-searchpath'." - :group 'x-symbol-image-general - :type 'boolean) - -(defcustom x-symbol-image-current-marker " *" - "*Marker to indicate the directory of the image file. -Marker used in `x-symbol-image-menu' to indicate directories in the -image search path containing the image file. The first marked directory -is used by button2 over an image insertion command." - :group 'x-symbol-image-general - :type 'string) - -(defcustom x-symbol-image-scale-method "\\.[0-9][0-9]\\'" - "*Regexp matching the scale factor in the image file name. -If non-nil and this regexp matches the image file name without its final -extension, only the part up to the beginning of the match is used to -determine the name of the image cache file and the design file if it -differs from the image file, see `x-symbol-image-editor-alist'. - -Example: with the default values, for the image and image design file -\"file.70.jpeg\", the image cache file is \"file.png\", for the image -file \"file.70.eps\", the image cache file is \"file.png\", the image -design file is \"file.fig\"." - :group 'x-symbol-image-general - :type '(choice (const :tag "No scale method" nil) regexp)) - -(defcustom x-symbol-image-explicitly-relative-regexp "\\`\\.\\.?/" - "Regexp matching files considered to be explicitly relative." - :group 'x-symbol-image-general - :type 'regexp) - -(defcustom x-symbol-image-searchpath-follow-symlink nil - "*Non-nil, if recursive searching for dirs should follow symbolic links. -Directories in the image search path ending with \"//\" are recursively -inserted. With value nil, do not include subdirectories which are -symbolic links. Directories which are directly specified in the image -searchpath are always included." - :group 'x-symbol-image-general - :type 'boolean) - - -;;;=========================================================================== -;;; Configuration: Image file cache -;;;=========================================================================== - -;; Influenced by `fast-lock-cache-directories' but different semantics! -(defcustom x-symbol-image-cache-directories - `((,(concat "\\`" (regexp-quote (file-truename "~/"))) . "~/.images/") - ("." . t)) - "List of directories for image cache files. -Each element should be of the form: - (REGEXP) or - (REGEXP . t) or - (REGEXP . NEWDIR) or - (REGEXP FUNCTION ARG...) - -Used by `x-symbol-image-cache-name' to determine the directory where to -store the image cache files. The elements in this list are processed -until REGEXP matches the directory part INDIR of the fully expanded -image file name, see `file-truename'. - -With the first form, no image cache file will be produced and -`x-symbol-image-junk-glyph' represents the image file. With the second -form, the image cache file is just produced temporary and is stored in -`x-symbol-image-temp-name'+SUFFIX. If the glyph for the image file is -not stored in `x-symbol-image-memory-cache', the second form is an alias -for the first form. - -With the third form, the match by REGEXP in INDIR is replaced with -NEWDIR, see `replace-match'. With the fourth from, FUNCTION is called -with INDIR and arguments ARGs. In both cases, the result is expanded -with INDIR to get the directory for the image cache file. - -Example: if we have the value - ((\"\\\\`/home/user/junk/\") - (\"\\\\`/home/user/tmp/.*\" . \".images/\") - (\"\\\\`/home/user/\" . \"~/.images/\") - (\".\" . t) -and the following image files, we get: - /home/user/junk/stupid.eps is not cached, a recycle sign is shown - /home/user/tmp/tmp1/image.eps is cached in /home/user/tmp/tmp1/.images/ - /home/user/d1/d2/image.eps is cached in /home/user/.images/d1/d2/ - /usr/local/image.eps is temporary cached in file /tmp/xsi-a006JH.SUFFIX" - :group 'x-symbol-image-general - :type '(repeat (cons :format "%v" - :value (".") - regexp - (choice - (const :tag "Junk" nil) - (const :tag "Temporary" t) - (string :tag "Replace match with") - (cons :tag "Call" - function - (repeat :tag "With arguments" sexp)))))) - -(defvar x-symbol-image-temp-name - (and (featurep 'xemacs) ; temp image files don't work in Emacs - (if (fboundp 'make-temp-file) - (make-temp-file "xsi-") ; Emacs - (expand-file-name (make-temp-name "xsi-") (temp-directory)))) - "Name without suffix of the temporary image cache file. -This should be a unique, at best generated with `make-temp-name'. See -`x-symbol-image-cache-directories' for details.") - -(defcustom x-symbol-image-convert-mono-regexp - (and x-symbol-image-temp-name (regexp-quote x-symbol-image-temp-name)) - "Regexp matching image cache file names not using a colormap. -Used by `x-symbol-image-start-convert-colormap' to determine monochrome -image cache files. This regexp should match temporary image cache files -since \"convert\" is slow when using a colormap." - :group 'x-symbol-image-general - :type '(choice (const :tag "None" nil) regexp)) - - -;;;=========================================================================== -;;; Configuration: highlighting image insertion commands, editor -;;;=========================================================================== - -(defcustom x-symbol-image-help-echo - '("button2 runs: %S , button3 pops up menu" - (8 13 x-symbol-info-face) (-23 -21 x-symbol-info-face) - (-12 x-symbol-info-face)) - "Format string for info when the mouse is over image insertion commands. -Used with substitution COMMAND/%S, where COMMAND describes the -invocation of the image editor, see `x-symbol-image-editor-alist'." - :group 'x-symbol-image-general - :group 'x-symbol-info-strings - :set 'x-symbol-set-cache-variable - :type 'x-symbol-fancy) - -(defcustom x-symbol-image-editor-alist - '(("\\.\\(eps\\|ps\\(tex\\)?\\)\\'" "xfig %s &" ".fig") - ("." "display %s &")) - "Alist of image editors used by `x-symbol-image-editor'. -Each element looks like (REGEXP . EDITOR-SPEC) where EDITOR-SPEC looks -like (SHELL-COMMAND-FORMAT [EXT]) or (FUNCTION ARG...). - -If REGEXP matches the image file, EDITOR-SPEC is used. With the first -form, a shell command SHELL-COMMAND-FORMAT with substitution FILE/%s is -invoked where the image design file FILE is the image file, if used -without optional EXT or EXT with value nil, or the result of -`x-symbol-image-file-name' otherwise, called with arguments image file -name and EXT. - -With the second form, calling (FUNCTION FILE nil ARG...) should return a -string describing the editor, used by function -`x-symbol-image-help-echo' and the title of `x-symbol-image-menu'. -Calling (FUNCTION FILE BUFFER ARG...) should invoke the image editor. -FILE is the image file, BUFFER is the buffer in which the image is -used." - :group 'x-symbol-image-general - :type '(repeat - (cons :format "%v" - :value ("." "display %s &") - regexp - (choice (list :tag "Shell command" - string - (choice (const :tag "Unchanged filename" nil) - (string :tag "Abstract extension"))) - (cons :tag "Call" - function - (repeat :tag "With arguments" sexp)))))) - -(defvar x-symbol-image-menu - '("Run %S in" - "--:shadowDoubleEtchedIn" - ["Rescan buffer" (x-symbol-image-parse-buffer 'OTHER) - :active (x-symbol-event-in-current-buffer)] - ["Update file cache" (x-symbol-image-parse-buffer t) - :active (x-symbol-event-in-current-buffer)]) - "Definition for the popup menu over image insertion commands. -It has the form (HEADER LAST-ITEM...). The menu title is TITLE with -substitution COMMAND/%S, where COMMAND describes the invocation of the -image editor, see `x-symbol-image-editor-alist'. The next menu items -are the directories in the image search path, see -`x-symbol-image-use-remote'. If a image file is found in a -directory, it is marked with `x-symbol-image-current-marker'.") - - -;;;=========================================================================== -;;; Configuration: special-purpose images/glyphs and conversion program -;;;=========================================================================== - -;; `defcustom' with set function -(defvar x-symbol-image-data-directory x-symbol-data-directory - "Configuration variable. Directory of special purpose images. -See `x-symbol-image-special-glyphs'.") - -(defvar x-symbol-image-special-glyphs - '(("RIP.xbm" . xbm) ("hourglass.xbm" . xbm) ("drawing.xbm" . xbm) - ("termlock.xbm" . xbm) ("escherknot.xbm" . xbm) ("recycle.xbm" . xbm)) - ;;'(("splat.xbm" . xbm) ("abacus.xbm" . xbm) ("scroll2.xbm" . xbm) - ;; ("stopsign.xbm" . xbm) ("filing.xbm" . xbm)) - "Special images used for recognized image insertion commands. -The value looks like (BROKEN CREATE DESIGN LOCKED REMOTE JUNK). Each -element looks like (FILE . IMAGE-FORMAT) where FILE is a file name, -expanded with `x-symbol-image-data-directory' and IMAGE-FORMAT is a -image format compiled into your XEmacs. - -They are used to initialize variables containing images/glyphs: - * BROKEN for `x-symbol-image-broken-image', - * CREATE for `x-symbol-image-create-image', - * DESIGN for `x-symbol-image-design-glyph', - * LOCKED for `x-symbol-image-locked-glyph', - * REMOTE for `x-symbol-image-remote-glyph' and - * JUNK for `x-symbol-image-junk-glyph'. - -Special images are used in the following situations: REMOTE represents -images in a file, if the file is remote or if the image name prohibits -the use of the memory cache as specified by `x-symbol-image-use-remote'. -JUNK is used if `x-symbol-image-converter' is nil, if no image should be -created as specified by `x-symbol-image-cache-directories' or if the -image cache file cannot be written. - -LOCKED represents existent image files which cannot be read or -non-existent image files which cannot be created. DESIGN represents -non-existent image files which could be created. CREATE is used during -the creation of the image cache file, an old image cache is used instead -if it exists. BROKEN is used if the creation of the image cache file -failed.") - -(defcustom x-symbol-image-convert-file-alist - '(("\\.pstex\\'" . "ps:")) - "Alist to determine a prefix for the INFILE passed to \"convert\". -Each element looks like (REGEXP . PREFIX). If REGEXP matches INFILE, -INFILE is prefixed by PREFIX for the invocation of \"convert\". If no -REGEXP matches, no prefix is used. See `x-symbol-image-convert-file'." - :group 'x-symbol-image-general - :type '(repeat (cons :format "%v" - regexp (string :tag "Prefix")))) - -(defcustom x-symbol-image-convert-program - (if (eq system-type 'windows-nt) "C:\\ImageMagick\\convert" "convert") - "*Name of the program used in `x-symbol-image-converter'." - :group 'x-symbol-image-general - :type 'string) - -(defcustom x-symbol-image-converter-required nil - "*Whether or not images are required. For Proof General, defaults to nil." - :group 'x-symbol-image-general - :type 'boolean) - -(defcustom x-symbol-image-converter - (when (and (console-type) - x-symbol-image-converter-required) - (save-excursion - (set-buffer (get-buffer-create " *x-symbol-image command*")) - (erase-buffer) - (call-process shell-file-name nil t nil shell-command-switch - (concat x-symbol-image-convert-program " -list Format")) - (call-process shell-file-name nil t nil shell-command-switch - (concat x-symbol-image-convert-program " -h")) - (let (iformat) - (cond ((when (featurep 'png) - (goto-char (point-min)) - (re-search-forward "^[ \t]*[pP][nN][gG]" nil t)) - (setq iformat 'png)) - ((when (featurep 'gif) - (goto-char (point-min)) - (re-search-forward "^[ \t]*[gG][iI][fF]" nil t)) - (setq iformat 'gif)) - (t - (setq iformat (cond ((featurep 'png) 'png) - ((featurep 'gif) 'gif))) - (unless iformat - (warn "x-symbol-image: your Emacs neither supports png nor gif")) - (goto-char (point-min)) - (if (re-search-forward "ImageMagick" nil t) - (if iformat (warn "x-symbol-image: \"convert\" doesn't list recognized formats, I'll try %S" iformat)) - (warn "x-symbol-image: no valid image converter (ImageMagick convert binary required for images)") - (setq iformat nil)))) - (kill-buffer (current-buffer)) - (when iformat - (list* iformat - (cdr (assq iformat '((png . ".png") (gif . ".gif")))) - (if (and (boundp 'system-type) (eq system-type 'windows-nt)) - 'x-symbol-image-start-convert-mswindows - (let ((colors (if (featurep 'xemacs) - (or (device-color-cells) 2) - (if (display-color-p) 256 2)))) - (cond ((< colors 32) 'x-symbol-image-start-convert-mono) - ((> colors 767) - 'x-symbol-image-start-convert-truecolor) - (x-symbol-image-convert-colormap - 'x-symbol-image-start-convert-colormap) - (t 'x-symbol-image-start-convert-color))))))))) - "Converter to produce the image cache file from the image file. -This definition has the form (IMAGE-FORMAT EXTENSION . COMMAND). -IMAGE-FORMAT is a image format compiled into your XEmacs. EXTENSION is -the extension used for image cache file names. - -COMMAND, called with arguments INFILE and OUTFILE should start and -return the process which creates the image cache file OUTFILE from the -image file INFILE. COMMAND should also use `x-symbol-image-max-width' -and `x-symbol-image-max-height'. Value nil means, use -`x-symbol-image-junk-glyph' instead creating a glyph from IMAGE. - -Predefined COMMANDS start \"convert\" from ImageMagick with different -options according to the number of colors in your device: -`x-symbol-image-start-convert-truecolor', -`x-symbol-image-start-convert-color' and -`x-symbol-image-start-convert-mono'." - :group 'x-symbol-image-general - :type '(choice - (const :tag "No image converter" nil) - (cons :tag "Converter" - (symbol :tag "Image format") - (cons :format "%v" - (string :tag "File extension") - (choice - :tag "Convert function" - (function-item :tag "To monochrome" - x-symbol-image-start-convert-mono) - (function-item :tag "To color, restricted" - x-symbol-image-start-convert-color) - (function-item :tag "To color, colormap" - x-symbol-image-start-convert-colormap) - (function-item :tag "To color, unrestricted" - x-symbol-image-start-convert-truecolor) - (function :tag "Other function")))))) - - -;;;=========================================================================== -;;; Package Integration -;;;=========================================================================== - -(put 'x-symbol-insert-command 'x-symbol-input t) -(put 'newline 'x-symbol-input t) -(put 'newline-and-indent 'x-symbol-input t) -(put 'reindent-then-newline-and-indent 'x-symbol-input t) -(put 'tex-insert-quote 'x-symbol-input t) -(put 'TeX-insert-quote 'x-symbol-input t) -(put 'TeX-insert-punctuation 'x-symbol-input t) -(put 'TeX-insert-dollar 'x-symbol-input t) -(put 'sgml-close-angle 'x-symbol-input t) -(put 'sgml-slash 'x-symbol-input t) -(put 'completion-separator-self-insert-command 'x-symbol-input t) -(put 'completion-separator-self-insert-autofilling 'x-symbol-input t) - -(put 'forward-char 'x-symbol-point-function '1+) -(put 'backward-char 'x-symbol-point-function '1-) -(put 'forward-char-command 'x-symbol-point-function '1+) -(put 'backward-char-command 'x-symbol-point-function '1-) - - -;;;=========================================================================== -;;; For `set-variable' -;;;=========================================================================== - -;;;###autoload -(defun x-symbol-variable-interactive (var) - "Provide interactive specification for `set-variable'. -VAR's options has been defined with `x-symbol-define-user-options'." - (let* ((options (if (functionp (get var 'x-symbol-options)) - (funcall (get var 'x-symbol-options)) - (get var 'x-symbol-options))) - (alist (mapcar (lambda (x) (cons (symbol-name (car x)) (car x))) - (or (cdr options) (list '(nil) options)))) - (val (completing-read (format "Set `%s' to symbol (default %s): " - var (symbol-value var)) - alist nil t))) - (list (if (equal val "") - (symbol-value var) - (cdr (assoc val alist)))))) - -;;;=========================================================================== -;;; DA's crude unicode hack -;;;=========================================================================== - -(defcustom x-symbol-use-unicode nil - "*Non-nil to use default font as unicode font." - :group 'x-symbol-miscellaneous - :type 'boolean) - - - -;;; Local IspellPersDict: .ispell_xsymb -;;; x-symbol-vars.el ends here diff --git a/x-symbol/lisp/x-symbol-xmacs.el b/x-symbol/lisp/x-symbol-xmacs.el deleted file mode 100644 index 88a21be9..00000000 --- a/x-symbol/lisp/x-symbol-xmacs.el +++ /dev/null @@ -1,183 +0,0 @@ -;;; x-symbol-xmacs.el --- make package x-symbol work with XEmacs - -;; Copyright (C) 1998-1999, 2001-2003 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: 4.5 -;; 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]). - -;;; Code: - -;;; Release dates: XEmacs-21.1.2 = 14 May 1999, XEmacs-21.1.9 = 13 Feb 2000. - -(provide 'x-symbol-xmacs) -;; the following line can be included AFTER (require 'x-symbol-{mule/nomule}) has been deleted from x-symbol-hooks -;;(eval-when-compile (require 'x-symbol)) ; x-symbol also requires this file - -(cond ((not (and (fboundp 'emacs-version>=) (emacs-version>= 20 4))) - ;; Yes, it probably works with XEmacs-20.2, too, but I do not want to - ;; care about its bug in `string-match': - (error "Package X-Symbol requires XEmacs-21.1.9+")) - ((or (emacs-version>= 21 2) (not x-symbol-warn-of-old-emacs))) - ((< emacs-major-version 21) - (warn "X-Symbol: minor problem in GRID, upgrade to XEmacs-21.1.9+")) - ((or (zerop emacs-minor-version) - ;; 3rd arg for `emacs-version>=' introduced in XEmacs-21.2.15 - (not (and (boundp 'emacs-patch-level) - (>= emacs-patch-level 9)))) - ;; XEmacs-21.1.8 + X-Symbol + abbrev-mode + input method TOKEN => core - (setq-default x-symbol-token-input nil) - (warn "X-Symbol: XEmacs might core, upgrade to XEmacs-21.1.9+"))) - -(when (eq (console-type) 'mswindows) - (unless (emacs-version>= 21 4) - (warn "X-Symbol: might not work correctly, upgrade to XEmacs-21.4+")) - (unless (and (boundp 'x-symbol-default-coding) - (or (null x-symbol-default-coding) - (eq x-symbol-default-coding 'iso-8859-1))) - ;; no idea about XEmacs/NT in a Japanese environment... - (warn "X-Symbol: only limited support with XEmacs-21.4+ on Windows") - (setq x-symbol-default-coding 'iso-8859-1)) - (unless (and (boundp 'x-symbol-latin-force-use) - (eq x-symbol-latin-force-use 'mswindows-user)) - ;; Hm, this isn't a really great situation that all font settings are - ;; useless for MS-Windows... - (setq x-symbol-latin1-fonts - '(("Microsoft Sans Serif:Regular:11::Western" - "Courier New:Regular:11::Western"))) - ;; Latin2 != CP1250, see EMACS/lisp/international/codepage.el - (setq x-symbol-latin2-fonts nil) - ;; '(("Microsoft Sans Serif:Regular:11::Central European" - ;; "Courier New:Regular:11::Central European"))) - ;; Latina-3 from <http://www.esperanto.se/html/latina.html> does not work, - ;; I have no time to download and test various others... - (setq x-symbol-latin3-fonts nil) - (setq x-symbol-latin5-fonts - '(("Microsoft Sans Serif:Regular:11::Turkish" - "Courier New:Regular:11::Turkish"))) - (setq x-symbol-latin9-fonts nil) - (setq x-symbol-xsymb0-fonts - '(("Symbol:Regular:11::Symbol"))) - (setq x-symbol-xsymb1-fonts nil) - (make-face 'x-symbol-heading-face) - (set-face-font 'x-symbol-heading-face - "Microsoft Sans Serif:Bold:10::Western") - (set-face-foreground 'x-symbol-heading-face "green4") - (set-face-underline-p 'x-symbol-heading-face t) - (make-face 'x-symbol-info-face) - (set-face-font 'x-symbol-info-face - "Microsoft Sans Serif:Regular:10::Western") - (set-face-foreground 'x-symbol-info-face "green4") - (make-face 'x-symbol-emph-info-face) - (set-face-font 'x-symbol-emph-info-face - "Microsoft Sans Serif:Regular:10::Western") - (set-face-foreground 'x-symbol-emph-info-face "red4"))) - - -;;;=========================================================================== -;;; Fixing non X-Symbol induced annoyances -;;;=========================================================================== - -(defun x-symbol-paren-reset-mode () - (make-local-variable 'paren-mode) - (setq paren-mode nil)) -(add-hook 'list-mode-hook 'x-symbol-paren-reset-mode) - - -;;;=========================================================================== -;;; Autoloads -;;;=========================================================================== - -(autoload 'browse-url "browse-url" nil t) - - -;;;=========================================================================== -;;; Bug workarounds -;;;=========================================================================== - -;; Workaround for XEmacs bug (since XEmacs-20) with char syntax `inherit': the -;; following should be executed before(!) the AucTeX's syntax table is created. -(unless (or (featurep 'mule) (emacs-version>= 21 4)) ; OK in XEmacs-21.4.5 - (modify-syntax-entry ?\237 "\\" (standard-syntax-table)) - (modify-syntax-entry ?\236 "\\" (standard-syntax-table)) - (modify-syntax-entry ?\235 "\\" (standard-syntax-table)) - (modify-syntax-entry ?\234 "\\" (standard-syntax-table)) - (modify-syntax-entry ?\233 "\\" (standard-syntax-table)) - (modify-syntax-entry ?\232 "\\" (standard-syntax-table)) - ;; Add appropriately if more csets (fonts) are added. - ) - - -;;;=========================================================================== -;;; X-Symbol functions that depend on the Emacs flavor -;;;=========================================================================== - -(defvar x-symbol-xmacs-default-face-fonts nil) - -(defalias 'x-symbol-directory-files 'directory-files) - -(defun x-symbol-event-in-current-buffer () - (or (null current-mouse-event) - (eq (event-buffer current-mouse-event) (current-buffer)))) - -(defun x-symbol-create-image (file type) - (make-image-instance (vector (or type 'autodetect) ; autodetect is not clever - :file file) - nil nil t)) - -(defalias 'x-symbol-make-glyph 'make-glyph) - -(defalias 'x-symbol-set-glyph-image 'set-glyph-image) - -(defun x-symbol-set-face-font (face font charsets default) - "Set font to use for text using FACE and CHARSETS." - (if default - (progn - (push (cons face font) x-symbol-xmacs-default-face-fonts) - (set-face-property face 'font font)) - (set-face-property face 'font font nil '(mule-fonts) 'prepend) - (let ((dfont (assq face x-symbol-xmacs-default-face-fonts))) - (if dfont (set-face-property face 'font (cdr dfont)))))) - -(defun x-symbol-event-matches-key-specifier-p (event specifier) - "Return non-nil if EVENT matches key or mouse SPECIFIER. -This is like `event-matches-key-specifier-p', except that it also works -for mouse events." - (if (mouse-event-p event) - (equal (aref (events-to-keys (vector event)) 0) specifier) - (condition-case nil - (event-matches-key-specifier-p event specifier) - (error nil)))) - -(defun x-symbol-window-width (&optional window) - "Return the number of display columns in WINDOW (corrected version)." - (or window (setq window (selected-window))) - (/ (- (window-pixel-width window) - (window-left-margin-pixel-width window) ; ?? - (window-right-margin-pixel-width window) ; ?? - (specifier-instance scrollbar-width window)) - (font-instance-width (face-font-instance 'default window)))) - -;;; Local IspellPersDict: .ispell_xsymb -;;; x-symbol-xmacs.el ends here |