Merged in the nomcom app from ejimenez@yaco.es and esanchez@yaco.es, and accompanying dbtemplate app and the (standard) docutils module. Added some tweaks to get all tests to pass and migrations to run.

- Legacy-Id: 5948
This commit is contained in:
Henrik Levkowetz 2013-08-06 10:09:29 +00:00
commit 6baea429aa
266 changed files with 52297 additions and 26 deletions

View file

@ -63,11 +63,13 @@ def trace(fn): # renamed from 'report' by henrik 16 Jun 2011
["%s = %s" % (a, fix(repr(b))) for a,b in kwargs.items()]
))
sys.stderr.write("%s* %s [#%s]\n" % (indent, fc, call))
if debug:
sys.stderr.write("%s* %s [#%s]\n" % (indent, fc, call))
_report_indent[0] += increment
ret = fn(*params,**kwargs)
_report_indent[0] -= increment
sys.stderr.write("%s %s [#%s] ==> %s\n" % (indent, fc, call, repr(ret)))
if debug:
sys.stderr.write("%s %s [#%s] ==> %s\n" % (indent, fc, call, repr(ret)))
return ret
wrap.callcount = 0
@ -113,7 +115,7 @@ def show(name):
frame = inspect.stack()[1][0]
value = eval(name, frame.f_globals, frame.f_locals)
indent = ' ' * (_report_indent[0])
sys.stderr.write("%s%s: %s\n" % (indent, name, value))
sys.stderr.write("%s%s: '%s'\n" % (indent, name, value))
def log(name):
if debug:
@ -132,6 +134,25 @@ def pprint(name):
for line in lines:
sys.stderr.write("%s %s\n"%(indent, line))
def dir(name):
if debug:
name = "dir(%s)" % name
frame = inspect.stack()[1][0]
value = eval(name, frame.f_globals, frame.f_locals)
indent = ' ' * (_report_indent[0])
sys.stderr.write("%s%s:\n" % (indent, name))
lines = pformat(value).split('\n')
for line in lines:
sys.stderr.write("%s %s\n"%(indent, line))
def type(name):
if debug:
name = "type(%s)" % name
frame = inspect.stack()[1][0]
value = eval(name, frame.f_globals, frame.f_locals)
indent = ' ' * (_report_indent[0])
sys.stderr.write("%s%s: %s\n" % (indent, name, value))
def say(s):
if debug:
indent = ' ' * (_report_indent[0])

214
docutils/__init__.py Normal file
View file

@ -0,0 +1,214 @@
# $Id: __init__.py 7446 2012-06-17 20:47:10Z grubert $
# Author: David Goodger <goodger@python.org>
# Copyright: This module has been placed in the public domain.
"""
This is the Docutils (Python Documentation Utilities) package.
Package Structure
=================
Modules:
- __init__.py: Contains component base classes, exception classes, and
Docutils version information.
- core.py: Contains the ``Publisher`` class and ``publish_*()`` convenience
functions.
- frontend.py: Runtime settings (command-line interface, configuration files)
processing, for Docutils front-ends.
- io.py: Provides a uniform API for low-level input and output.
- nodes.py: Docutils document tree (doctree) node class library.
- statemachine.py: A finite state machine specialized for
regular-expression-based text filters.
- urischemes.py: Contains a complete mapping of known URI addressing
scheme names to descriptions.
Subpackages:
- languages: Language-specific mappings of terms.
- parsers: Syntax-specific input parser modules or packages.
- readers: Context-specific input handlers which understand the data
source and manage a parser.
- transforms: Modules used by readers and writers to modify DPS
doctrees.
- utils: Contains the ``Reporter`` system warning class and miscellaneous
utilities used by readers, writers, and transforms.
- writers: Format-specific output translators.
"""
__docformat__ = 'reStructuredText'
__version__ = '0.9.1'
"""``major.minor.micro`` version number. The micro number is bumped for API
changes, for new functionality, and for interim project releases. The minor
number is bumped whenever there is a significant project release. The major
number will be bumped when the project is feature-complete, and perhaps if
there is a major change in the design."""
__version_details__ = 'release'
"""Extra version details (e.g. 'snapshot 2005-05-29, r3410', 'repository',
'release'), modified automatically & manually."""
import sys
class ApplicationError(StandardError):
# Workaround:
# In Python < 2.6, unicode(<exception instance>) calls `str` on the
# arg and therefore, e.g., unicode(StandardError(u'\u234')) fails
# with UnicodeDecodeError.
if sys.version_info < (2,6):
def __unicode__(self):
return u', '.join(self.args)
class DataError(ApplicationError): pass
class SettingsSpec:
"""
Runtime setting specification base class.
SettingsSpec subclass objects used by `docutils.frontend.OptionParser`.
"""
settings_spec = ()
"""Runtime settings specification. Override in subclasses.
Defines runtime settings and associated command-line options, as used by
`docutils.frontend.OptionParser`. This is a tuple of:
- Option group title (string or `None` which implies no group, just a list
of single options).
- Description (string or `None`).
- A sequence of option tuples. Each consists of:
- Help text (string)
- List of option strings (e.g. ``['-Q', '--quux']``).
- Dictionary of keyword arguments sent to the OptionParser/OptionGroup
``add_option`` method.
Runtime setting names are derived implicitly from long option names
('--a-setting' becomes ``settings.a_setting``) or explicitly from the
'dest' keyword argument.
Most settings will also have a 'validator' keyword & function. The
validator function validates setting values (from configuration files
and command-line option arguments) and converts them to appropriate
types. For example, the ``docutils.frontend.validate_boolean``
function, **required by all boolean settings**, converts true values
('1', 'on', 'yes', and 'true') to 1 and false values ('0', 'off',
'no', 'false', and '') to 0. Validators need only be set once per
setting. See the `docutils.frontend.validate_*` functions.
See the optparse docs for more details.
- More triples of group title, description, options, as many times as
needed. Thus, `settings_spec` tuples can be simply concatenated.
"""
settings_defaults = None
"""A dictionary of defaults for settings not in `settings_spec` (internal
settings, intended to be inaccessible by command-line and config file).
Override in subclasses."""
settings_default_overrides = None
"""A dictionary of auxiliary defaults, to override defaults for settings
defined in other components. Override in subclasses."""
relative_path_settings = ()
"""Settings containing filesystem paths. Override in subclasses.
Settings listed here are to be interpreted relative to the current working
directory."""
config_section = None
"""The name of the config file section specific to this component
(lowercase, no brackets). Override in subclasses."""
config_section_dependencies = None
"""A list of names of config file sections that are to be applied before
`config_section`, in order (from general to specific). In other words,
the settings in `config_section` are to be overlaid on top of the settings
from these sections. The "general" section is assumed implicitly.
Override in subclasses."""
class TransformSpec:
"""
Runtime transform specification base class.
TransformSpec subclass objects used by `docutils.transforms.Transformer`.
"""
def get_transforms(self):
"""Transforms required by this class. Override in subclasses."""
if self.default_transforms != ():
import warnings
warnings.warn('default_transforms attribute deprecated.\n'
'Use get_transforms() method instead.',
DeprecationWarning)
return list(self.default_transforms)
return []
# Deprecated; for compatibility.
default_transforms = ()
unknown_reference_resolvers = ()
"""List of functions to try to resolve unknown references. Unknown
references have a 'refname' attribute which doesn't correspond to any
target in the document. Called when the transforms in
`docutils.tranforms.references` are unable to find a correct target. The
list should contain functions which will try to resolve unknown
references, with the following signature::
def reference_resolver(node):
'''Returns boolean: true if resolved, false if not.'''
If the function is able to resolve the reference, it should also remove
the 'refname' attribute and mark the node as resolved::
del node['refname']
node.resolved = 1
Each function must have a "priority" attribute which will affect the order
the unknown_reference_resolvers are run::
reference_resolver.priority = 100
Override in subclasses."""
class Component(SettingsSpec, TransformSpec):
"""Base class for Docutils components."""
component_type = None
"""Name of the component type ('reader', 'parser', 'writer'). Override in
subclasses."""
supported = ()
"""Names for this component. Override in subclasses."""
def supports(self, format):
"""
Is `format` supported by this component?
To be used by transforms to ask the dependent component if it supports
a certain input context or output format.
"""
return format in self.supported

37
docutils/_compat.py Normal file
View file

@ -0,0 +1,37 @@
# $Id: _compat.py 7316 2012-01-19 11:31:58Z milde $
# Author: Georg Brandl <georg@python.org>
# Copyright: This module has been placed in the public domain.
"""
Python 2/3 compatibility definitions.
This module currently provides the following helper symbols:
* bytes (name of byte string type; str in 2.x, bytes in 3.x)
* b (function converting a string literal to an ASCII byte string;
can be also used to convert a Unicode string into a byte string)
* u_prefix (unicode repr prefix: 'u' in 2.x, '' in 3.x)
(Required in docutils/test/test_publisher.py)
* BytesIO (a StringIO class that works with bytestrings)
"""
import sys
if sys.version_info < (3,0):
b = bytes = str
u_prefix = 'u'
from StringIO import StringIO as BytesIO
else:
import builtins
bytes = builtins.bytes
u_prefix = ''
def b(s):
if isinstance(s, str):
return s.encode('latin1')
elif isinstance(s, bytes):
return s
else:
raise TypeError("Invalid argument %r for b()" % (s,))
# using this hack since 2to3 "fixes" the relative import
# when using ``from io import BytesIO``
BytesIO = __import__('io').BytesIO

View file

@ -0,0 +1,133 @@
#!/usr/bin/env python
# -*- coding: utf8 -*-
# string_template_compat.py: string.Template for Python <= 2.4
# =====================================================
# This is just an excerpt of the standard string module to provide backwards
# compatibility.
import re as _re
class _multimap:
"""Helper class for combining multiple mappings.
Used by .{safe_,}substitute() to combine the mapping and keyword
arguments.
"""
def __init__(self, primary, secondary):
self._primary = primary
self._secondary = secondary
def __getitem__(self, key):
try:
return self._primary[key]
except KeyError:
return self._secondary[key]
class _TemplateMetaclass(type):
pattern = r"""
%(delim)s(?:
(?P<escaped>%(delim)s) | # Escape sequence of two delimiters
(?P<named>%(id)s) | # delimiter and a Python identifier
{(?P<braced>%(id)s)} | # delimiter and a braced identifier
(?P<invalid>) # Other ill-formed delimiter exprs
)
"""
def __init__(cls, name, bases, dct):
super(_TemplateMetaclass, cls).__init__(name, bases, dct)
if 'pattern' in dct:
pattern = cls.pattern
else:
pattern = _TemplateMetaclass.pattern % {
'delim' : _re.escape(cls.delimiter),
'id' : cls.idpattern,
}
cls.pattern = _re.compile(pattern, _re.IGNORECASE | _re.VERBOSE)
class Template:
"""A string class for supporting $-substitutions."""
__metaclass__ = _TemplateMetaclass
delimiter = '$'
idpattern = r'[_a-z][_a-z0-9]*'
def __init__(self, template):
self.template = template
# Search for $$, $identifier, ${identifier}, and any bare $'s
def _invalid(self, mo):
i = mo.start('invalid')
lines = self.template[:i].splitlines(True)
if not lines:
colno = 1
lineno = 1
else:
colno = i - len(''.join(lines[:-1]))
lineno = len(lines)
raise ValueError('Invalid placeholder in string: line %d, col %d' %
(lineno, colno))
def substitute(self, *args, **kws):
if len(args) > 1:
raise TypeError('Too many positional arguments')
if not args:
mapping = kws
elif kws:
mapping = _multimap(kws, args[0])
else:
mapping = args[0]
# Helper function for .sub()
def convert(mo):
# Check the most common path first.
named = mo.group('named') or mo.group('braced')
if named is not None:
val = mapping[named]
# We use this idiom instead of str() because the latter will
# fail if val is a Unicode containing non-ASCII characters.
return '%s' % (val,)
if mo.group('escaped') is not None:
return self.delimiter
if mo.group('invalid') is not None:
self._invalid(mo)
raise ValueError('Unrecognized named group in pattern',
self.pattern)
return self.pattern.sub(convert, self.template)
def safe_substitute(self, *args, **kws):
if len(args) > 1:
raise TypeError('Too many positional arguments')
if not args:
mapping = kws
elif kws:
mapping = _multimap(kws, args[0])
else:
mapping = args[0]
# Helper function for .sub()
def convert(mo):
named = mo.group('named')
if named is not None:
try:
# We use this idiom instead of str() because the latter
# will fail if val is a Unicode containing non-ASCII
return '%s' % (mapping[named],)
except KeyError:
return self.delimiter + named
braced = mo.group('braced')
if braced is not None:
try:
return '%s' % (mapping[braced],)
except KeyError:
return self.delimiter + '{' + braced + '}'
if mo.group('escaped') is not None:
return self.delimiter
if mo.group('invalid') is not None:
return self.delimiter
raise ValueError('Unrecognized named group in pattern',
self.pattern)
return self.pattern.sub(convert, self.template)

667
docutils/core.py Normal file
View file

@ -0,0 +1,667 @@
# $Id: core.py 7384 2012-03-19 22:59:09Z milde $
# Author: David Goodger <goodger@python.org>
# Copyright: This module has been placed in the public domain.
"""
Calling the ``publish_*`` convenience functions (or instantiating a
`Publisher` object) with component names will result in default
behavior. For custom behavior (setting component options), create
custom component objects first, and pass *them* to
``publish_*``/`Publisher`. See `The Docutils Publisher`_.
.. _The Docutils Publisher: http://docutils.sf.net/docs/api/publisher.html
"""
__docformat__ = 'reStructuredText'
import sys
import pprint
from docutils import __version__, __version_details__, SettingsSpec
from docutils import frontend, io, utils, readers, writers
from docutils.frontend import OptionParser
from docutils.transforms import Transformer
from docutils.error_reporting import ErrorOutput, ErrorString
import docutils.readers.doctree
class Publisher:
"""
A facade encapsulating the high-level logic of a Docutils system.
"""
def __init__(self, reader=None, parser=None, writer=None,
source=None, source_class=io.FileInput,
destination=None, destination_class=io.FileOutput,
settings=None):
"""
Initial setup. If any of `reader`, `parser`, or `writer` are not
specified, the corresponding ``set_...`` method should be called with
a component name (`set_reader` sets the parser as well).
"""
self.document = None
"""The document tree (`docutils.nodes` objects)."""
self.reader = reader
"""A `docutils.readers.Reader` instance."""
self.parser = parser
"""A `docutils.parsers.Parser` instance."""
self.writer = writer
"""A `docutils.writers.Writer` instance."""
for component in 'reader', 'parser', 'writer':
assert not isinstance(getattr(self, component), str), (
'passed string "%s" as "%s" parameter; pass an instance, '
'or use the "%s_name" parameter instead (in '
'docutils.core.publish_* convenience functions).'
% (getattr(self, component), component, component))
self.source = source
"""The source of input data, a `docutils.io.Input` instance."""
self.source_class = source_class
"""The class for dynamically created source objects."""
self.destination = destination
"""The destination for docutils output, a `docutils.io.Output`
instance."""
self.destination_class = destination_class
"""The class for dynamically created destination objects."""
self.settings = settings
"""An object containing Docutils settings as instance attributes.
Set by `self.process_command_line()` or `self.get_settings()`."""
self._stderr = ErrorOutput()
def set_reader(self, reader_name, parser, parser_name):
"""Set `self.reader` by name."""
reader_class = readers.get_reader_class(reader_name)
self.reader = reader_class(parser, parser_name)
self.parser = self.reader.parser
def set_writer(self, writer_name):
"""Set `self.writer` by name."""
writer_class = writers.get_writer_class(writer_name)
self.writer = writer_class()
def set_components(self, reader_name, parser_name, writer_name):
if self.reader is None:
self.set_reader(reader_name, self.parser, parser_name)
if self.parser is None:
if self.reader.parser is None:
self.reader.set_parser(parser_name)
self.parser = self.reader.parser
if self.writer is None:
self.set_writer(writer_name)
def setup_option_parser(self, usage=None, description=None,
settings_spec=None, config_section=None,
**defaults):
if config_section:
if not settings_spec:
settings_spec = SettingsSpec()
settings_spec.config_section = config_section
parts = config_section.split()
if len(parts) > 1 and parts[-1] == 'application':
settings_spec.config_section_dependencies = ['applications']
#@@@ Add self.source & self.destination to components in future?
option_parser = OptionParser(
components=(self.parser, self.reader, self.writer, settings_spec),
defaults=defaults, read_config_files=True,
usage=usage, description=description)
return option_parser
def get_settings(self, usage=None, description=None,
settings_spec=None, config_section=None, **defaults):
"""
Set and return default settings (overrides in `defaults` dict).
Set components first (`self.set_reader` & `self.set_writer`).
Explicitly setting `self.settings` disables command line option
processing from `self.publish()`.
"""
option_parser = self.setup_option_parser(
usage, description, settings_spec, config_section, **defaults)
self.settings = option_parser.get_default_values()
return self.settings
def process_programmatic_settings(self, settings_spec,
settings_overrides,
config_section):
if self.settings is None:
defaults = (settings_overrides or {}).copy()
# Propagate exceptions by default when used programmatically:
defaults.setdefault('traceback', True)
self.get_settings(settings_spec=settings_spec,
config_section=config_section,
**defaults)
def process_command_line(self, argv=None, usage=None, description=None,
settings_spec=None, config_section=None,
**defaults):
"""
Pass an empty list to `argv` to avoid reading `sys.argv` (the
default).
Set components first (`self.set_reader` & `self.set_writer`).
"""
option_parser = self.setup_option_parser(
usage, description, settings_spec, config_section, **defaults)
if argv is None:
argv = sys.argv[1:]
# converting to Unicode (Python 3 does this automatically):
if sys.version_info < (3,0):
# TODO: make this failsafe and reversible?
argv_encoding = (frontend.locale_encoding or 'ascii')
argv = [a.decode(argv_encoding) for a in argv]
self.settings = option_parser.parse_args(argv)
def set_io(self, source_path=None, destination_path=None):
if self.source is None:
self.set_source(source_path=source_path)
if self.destination is None:
self.set_destination(destination_path=destination_path)
def set_source(self, source=None, source_path=None):
if source_path is None:
source_path = self.settings._source
else:
self.settings._source = source_path
# Raise IOError instead of system exit with `tracback == True`
# TODO: change io.FileInput's default behaviour and remove this hack
try:
self.source = self.source_class(
source=source, source_path=source_path,
encoding=self.settings.input_encoding,
handle_io_errors=False)
except TypeError:
self.source = self.source_class(
source=source, source_path=source_path,
encoding=self.settings.input_encoding)
def set_destination(self, destination=None, destination_path=None):
if destination_path is None:
destination_path = self.settings._destination
else:
self.settings._destination = destination_path
self.destination = self.destination_class(
destination=destination, destination_path=destination_path,
encoding=self.settings.output_encoding,
error_handler=self.settings.output_encoding_error_handler)
# Raise IOError instead of system exit with `tracback == True`
# TODO: change io.FileInput's default behaviour and remove this hack
self.destination.handle_io_errors=False
def apply_transforms(self):
self.document.transformer.populate_from_components(
(self.source, self.reader, self.reader.parser, self.writer,
self.destination))
self.document.transformer.apply_transforms()
def publish(self, argv=None, usage=None, description=None,
settings_spec=None, settings_overrides=None,
config_section=None, enable_exit_status=False):
"""
Process command line options and arguments (if `self.settings` not
already set), run `self.reader` and then `self.writer`. Return
`self.writer`'s output.
"""
exit = None
try:
if self.settings is None:
self.process_command_line(
argv, usage, description, settings_spec, config_section,
**(settings_overrides or {}))
self.set_io()
self.document = self.reader.read(self.source, self.parser,
self.settings)
self.apply_transforms()
output = self.writer.write(self.document, self.destination)
self.writer.assemble_parts()
except SystemExit, error:
exit = 1
exit_status = error.code
except Exception, error:
if not self.settings: # exception too early to report nicely
raise
if self.settings.traceback: # Propagate exceptions?
self.debugging_dumps()
raise
self.report_Exception(error)
exit = True
exit_status = 1
self.debugging_dumps()
if (enable_exit_status and self.document
and (self.document.reporter.max_level
>= self.settings.exit_status_level)):
sys.exit(self.document.reporter.max_level + 10)
elif exit:
sys.exit(exit_status)
return output
def debugging_dumps(self):
if not self.document:
return
if self.settings.dump_settings:
print >>self._stderr, '\n::: Runtime settings:'
print >>self._stderr, pprint.pformat(self.settings.__dict__)
if self.settings.dump_internals:
print >>self._stderr, '\n::: Document internals:'
print >>self._stderr, pprint.pformat(self.document.__dict__)
if self.settings.dump_transforms:
print >>self._stderr, '\n::: Transforms applied:'
print >>self._stderr, (' (priority, transform class, '
'pending node details, keyword args)')
print >>self._stderr, pprint.pformat(
[(priority, '%s.%s' % (xclass.__module__, xclass.__name__),
pending and pending.details, kwargs)
for priority, xclass, pending, kwargs
in self.document.transformer.applied])
if self.settings.dump_pseudo_xml:
print >>self._stderr, '\n::: Pseudo-XML:'
print >>self._stderr, self.document.pformat().encode(
'raw_unicode_escape')
def report_Exception(self, error):
if isinstance(error, utils.SystemMessage):
self.report_SystemMessage(error)
elif isinstance(error, UnicodeEncodeError):
self.report_UnicodeError(error)
elif isinstance(error, io.InputError):
self._stderr.write(u'Unable to open source file for reading:\n'
u' %s\n' % ErrorString(error))
elif isinstance(error, io.OutputError):
self._stderr.write(
u'Unable to open destination file for writing:\n'
u' %s\n' % ErrorString(error))
else:
print >>self._stderr, u'%s' % ErrorString(error)
print >>self._stderr, ("""\
Exiting due to error. Use "--traceback" to diagnose.
Please report errors to <docutils-users@lists.sf.net>.
Include "--traceback" output, Docutils version (%s [%s]),
Python version (%s), your OS type & version, and the
command line used.""" % (__version__, __version_details__,
sys.version.split()[0]))
def report_SystemMessage(self, error):
print >>self._stderr, ('Exiting due to level-%s (%s) system message.'
% (error.level,
utils.Reporter.levels[error.level]))
def report_UnicodeError(self, error):
data = error.object[error.start:error.end]
self._stderr.write(
'%s\n'
'\n'
'The specified output encoding (%s) cannot\n'
'handle all of the output.\n'
'Try setting "--output-encoding-error-handler" to\n'
'\n'
'* "xmlcharrefreplace" (for HTML & XML output);\n'
' the output will contain "%s" and should be usable.\n'
'* "backslashreplace" (for other output formats);\n'
' look for "%s" in the output.\n'
'* "replace"; look for "?" in the output.\n'
'\n'
'"--output-encoding-error-handler" is currently set to "%s".\n'
'\n'
'Exiting due to error. Use "--traceback" to diagnose.\n'
'If the advice above doesn\'t eliminate the error,\n'
'please report it to <docutils-users@lists.sf.net>.\n'
'Include "--traceback" output, Docutils version (%s),\n'
'Python version (%s), your OS type & version, and the\n'
'command line used.\n'
% (ErrorString(error),
self.settings.output_encoding,
data.encode('ascii', 'xmlcharrefreplace'),
data.encode('ascii', 'backslashreplace'),
self.settings.output_encoding_error_handler,
__version__, sys.version.split()[0]))
default_usage = '%prog [options] [<source> [<destination>]]'
default_description = ('Reads from <source> (default is stdin) and writes to '
'<destination> (default is stdout). See '
'<http://docutils.sf.net/docs/user/config.html> for '
'the full reference.')
def publish_cmdline(reader=None, reader_name='standalone',
parser=None, parser_name='restructuredtext',
writer=None, writer_name='pseudoxml',
settings=None, settings_spec=None,
settings_overrides=None, config_section=None,
enable_exit_status=True, argv=None,
usage=default_usage, description=default_description):
"""
Set up & run a `Publisher` for command-line-based file I/O (input and
output file paths taken automatically from the command line). Return the
encoded string output also.
Parameters: see `publish_programmatically` for the remainder.
- `argv`: Command-line argument list to use instead of ``sys.argv[1:]``.
- `usage`: Usage string, output if there's a problem parsing the command
line.
- `description`: Program description, output for the "--help" option
(along with command-line option descriptions).
"""
pub = Publisher(reader, parser, writer, settings=settings)
pub.set_components(reader_name, parser_name, writer_name)
output = pub.publish(
argv, usage, description, settings_spec, settings_overrides,
config_section=config_section, enable_exit_status=enable_exit_status)
return output
def publish_file(source=None, source_path=None,
destination=None, destination_path=None,
reader=None, reader_name='standalone',
parser=None, parser_name='restructuredtext',
writer=None, writer_name='pseudoxml',
settings=None, settings_spec=None, settings_overrides=None,
config_section=None, enable_exit_status=False):
"""
Set up & run a `Publisher` for programmatic use with file-like I/O.
Return the encoded string output also.
Parameters: see `publish_programmatically`.
"""
output, pub = publish_programmatically(
source_class=io.FileInput, source=source, source_path=source_path,
destination_class=io.FileOutput,
destination=destination, destination_path=destination_path,
reader=reader, reader_name=reader_name,
parser=parser, parser_name=parser_name,
writer=writer, writer_name=writer_name,
settings=settings, settings_spec=settings_spec,
settings_overrides=settings_overrides,
config_section=config_section,
enable_exit_status=enable_exit_status)
return output
def publish_string(source, source_path=None, destination_path=None,
reader=None, reader_name='standalone',
parser=None, parser_name='restructuredtext',
writer=None, writer_name='pseudoxml',
settings=None, settings_spec=None,
settings_overrides=None, config_section=None,
enable_exit_status=False):
"""
Set up & run a `Publisher` for programmatic use with string I/O. Return
the encoded string or Unicode string output.
For encoded string output, be sure to set the 'output_encoding' setting to
the desired encoding. Set it to 'unicode' for unencoded Unicode string
output. Here's one way::
publish_string(..., settings_overrides={'output_encoding': 'unicode'})
Similarly for Unicode string input (`source`)::
publish_string(..., settings_overrides={'input_encoding': 'unicode'})
Parameters: see `publish_programmatically`.
"""
output, pub = publish_programmatically(
source_class=io.StringInput, source=source, source_path=source_path,
destination_class=io.StringOutput,
destination=None, destination_path=destination_path,
reader=reader, reader_name=reader_name,
parser=parser, parser_name=parser_name,
writer=writer, writer_name=writer_name,
settings=settings, settings_spec=settings_spec,
settings_overrides=settings_overrides,
config_section=config_section,
enable_exit_status=enable_exit_status)
return output
def publish_parts(source, source_path=None, source_class=io.StringInput,
destination_path=None,
reader=None, reader_name='standalone',
parser=None, parser_name='restructuredtext',
writer=None, writer_name='pseudoxml',
settings=None, settings_spec=None,
settings_overrides=None, config_section=None,
enable_exit_status=False):
"""
Set up & run a `Publisher`, and return a dictionary of document parts.
Dictionary keys are the names of parts, and values are Unicode strings;
encoding is up to the client. For programmatic use with string I/O.
For encoded string input, be sure to set the 'input_encoding' setting to
the desired encoding. Set it to 'unicode' for unencoded Unicode string
input. Here's how::
publish_parts(..., settings_overrides={'input_encoding': 'unicode'})
Parameters: see `publish_programmatically`.
"""
output, pub = publish_programmatically(
source=source, source_path=source_path, source_class=source_class,
destination_class=io.StringOutput,
destination=None, destination_path=destination_path,
reader=reader, reader_name=reader_name,
parser=parser, parser_name=parser_name,
writer=writer, writer_name=writer_name,
settings=settings, settings_spec=settings_spec,
settings_overrides=settings_overrides,
config_section=config_section,
enable_exit_status=enable_exit_status)
return pub.writer.parts
def publish_doctree(source, source_path=None,
source_class=io.StringInput,
reader=None, reader_name='standalone',
parser=None, parser_name='restructuredtext',
settings=None, settings_spec=None,
settings_overrides=None, config_section=None,
enable_exit_status=False):
"""
Set up & run a `Publisher` for programmatic use with string I/O.
Return the document tree.
For encoded string input, be sure to set the 'input_encoding' setting to
the desired encoding. Set it to 'unicode' for unencoded Unicode string
input. Here's one way::
publish_doctree(..., settings_overrides={'input_encoding': 'unicode'})
Parameters: see `publish_programmatically`.
"""
pub = Publisher(reader=reader, parser=parser, writer=None,
settings=settings,
source_class=source_class,
destination_class=io.NullOutput)
pub.set_components(reader_name, parser_name, 'null')
pub.process_programmatic_settings(
settings_spec, settings_overrides, config_section)
pub.set_source(source, source_path)
pub.set_destination(None, None)
output = pub.publish(enable_exit_status=enable_exit_status)
return pub.document
def publish_from_doctree(document, destination_path=None,
writer=None, writer_name='pseudoxml',
settings=None, settings_spec=None,
settings_overrides=None, config_section=None,
enable_exit_status=False):
"""
Set up & run a `Publisher` to render from an existing document
tree data structure, for programmatic use with string I/O. Return
the encoded string output.
Note that document.settings is overridden; if you want to use the settings
of the original `document`, pass settings=document.settings.
Also, new document.transformer and document.reporter objects are
generated.
For encoded string output, be sure to set the 'output_encoding' setting to
the desired encoding. Set it to 'unicode' for unencoded Unicode string
output. Here's one way::
publish_from_doctree(
..., settings_overrides={'output_encoding': 'unicode'})
Parameters: `document` is a `docutils.nodes.document` object, an existing
document tree.
Other parameters: see `publish_programmatically`.
"""
reader = docutils.readers.doctree.Reader(parser_name='null')
pub = Publisher(reader, None, writer,
source=io.DocTreeInput(document),
destination_class=io.StringOutput, settings=settings)
if not writer and writer_name:
pub.set_writer(writer_name)
pub.process_programmatic_settings(
settings_spec, settings_overrides, config_section)
pub.set_destination(None, destination_path)
return pub.publish(enable_exit_status=enable_exit_status)
def publish_cmdline_to_binary(reader=None, reader_name='standalone',
parser=None, parser_name='restructuredtext',
writer=None, writer_name='pseudoxml',
settings=None, settings_spec=None,
settings_overrides=None, config_section=None,
enable_exit_status=True, argv=None,
usage=default_usage, description=default_description,
destination=None, destination_class=io.BinaryFileOutput
):
"""
Set up & run a `Publisher` for command-line-based file I/O (input and
output file paths taken automatically from the command line). Return the
encoded string output also.
This is just like publish_cmdline, except that it uses
io.BinaryFileOutput instead of io.FileOutput.
Parameters: see `publish_programmatically` for the remainder.
- `argv`: Command-line argument list to use instead of ``sys.argv[1:]``.
- `usage`: Usage string, output if there's a problem parsing the command
line.
- `description`: Program description, output for the "--help" option
(along with command-line option descriptions).
"""
pub = Publisher(reader, parser, writer, settings=settings,
destination_class=destination_class)
pub.set_components(reader_name, parser_name, writer_name)
output = pub.publish(
argv, usage, description, settings_spec, settings_overrides,
config_section=config_section, enable_exit_status=enable_exit_status)
return output
def publish_programmatically(source_class, source, source_path,
destination_class, destination, destination_path,
reader, reader_name,
parser, parser_name,
writer, writer_name,
settings, settings_spec,
settings_overrides, config_section,
enable_exit_status):
"""
Set up & run a `Publisher` for custom programmatic use. Return the
encoded string output and the Publisher object.
Applications should not need to call this function directly. If it does
seem to be necessary to call this function directly, please write to the
Docutils-develop mailing list
<http://docutils.sf.net/docs/user/mailing-lists.html#docutils-develop>.
Parameters:
* `source_class` **required**: The class for dynamically created source
objects. Typically `io.FileInput` or `io.StringInput`.
* `source`: Type depends on `source_class`:
- If `source_class` is `io.FileInput`: Either a file-like object
(must have 'read' and 'close' methods), or ``None``
(`source_path` is opened). If neither `source` nor
`source_path` are supplied, `sys.stdin` is used.
- If `source_class` is `io.StringInput` **required**: The input
string, either an encoded 8-bit string (set the
'input_encoding' setting to the correct encoding) or a Unicode
string (set the 'input_encoding' setting to 'unicode').
* `source_path`: Type depends on `source_class`:
- `io.FileInput`: Path to the input file, opened if no `source`
supplied.
- `io.StringInput`: Optional. Path to the file or object that produced
`source`. Only used for diagnostic output.
* `destination_class` **required**: The class for dynamically created
destination objects. Typically `io.FileOutput` or `io.StringOutput`.
* `destination`: Type depends on `destination_class`:
- `io.FileOutput`: Either a file-like object (must have 'write' and
'close' methods), or ``None`` (`destination_path` is opened). If
neither `destination` nor `destination_path` are supplied,
`sys.stdout` is used.
- `io.StringOutput`: Not used; pass ``None``.
* `destination_path`: Type depends on `destination_class`:
- `io.FileOutput`: Path to the output file. Opened if no `destination`
supplied.
- `io.StringOutput`: Path to the file or object which will receive the
output; optional. Used for determining relative paths (stylesheets,
source links, etc.).
* `reader`: A `docutils.readers.Reader` object.
* `reader_name`: Name or alias of the Reader class to be instantiated if
no `reader` supplied.
* `parser`: A `docutils.parsers.Parser` object.
* `parser_name`: Name or alias of the Parser class to be instantiated if
no `parser` supplied.
* `writer`: A `docutils.writers.Writer` object.
* `writer_name`: Name or alias of the Writer class to be instantiated if
no `writer` supplied.
* `settings`: A runtime settings (`docutils.frontend.Values`) object, for
dotted-attribute access to runtime settings. It's the end result of the
`SettingsSpec`, config file, and option processing. If `settings` is
passed, it's assumed to be complete and no further setting/config/option
processing is done.
* `settings_spec`: A `docutils.SettingsSpec` subclass or object. Provides
extra application-specific settings definitions independently of
components. In other words, the application becomes a component, and
its settings data is processed along with that of the other components.
Used only if no `settings` specified.
* `settings_overrides`: A dictionary containing application-specific
settings defaults that override the defaults of other components.
Used only if no `settings` specified.
* `config_section`: A string, the name of the configuration file section
for this application. Overrides the ``config_section`` attribute
defined by `settings_spec`. Used only if no `settings` specified.
* `enable_exit_status`: Boolean; enable exit status at end of processing?
"""
pub = Publisher(reader, parser, writer, settings=settings,
source_class=source_class,
destination_class=destination_class)
pub.set_components(reader_name, parser_name, writer_name)
pub.process_programmatic_settings(
settings_spec, settings_overrides, config_section)
pub.set_source(source, source_path)
pub.set_destination(destination, destination_path)
output = pub.publish(enable_exit_status=enable_exit_status)
return output, pub

5
docutils/docutils.conf Normal file
View file

@ -0,0 +1,5 @@
# This configuration file is to prevent tools/buildhtml.py from
# processing text files in and below this directory.
[buildhtml application]
prune: .

207
docutils/error_reporting.py Normal file
View file

@ -0,0 +1,207 @@
#!/usr/bin/env python
# -*- coding: utf8 -*-
# :Id: $Id: error_reporting.py 7423 2012-05-03 11:01:54Z milde $
# :Copyright: © 2011 Günter Milde.
# :License: Released under the terms of the `2-Clause BSD license`_, in short:
#
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved.
# This file is offered as-is, without any warranty.
#
# .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause
"""
Error reporting should be safe from encoding/decoding errors.
However, implicit conversions of strings and exceptions like
>>> u'%s world: %s' % ('H\xe4llo', Exception(u'H\xe4llo')
fail in some Python versions:
* In Python <= 2.6, ``unicode(<exception instance>)`` uses
`__str__` and fails with non-ASCII chars in`unicode` arguments.
(work around http://bugs.python.org/issue2517):
* In Python 2, unicode(<exception instance>) fails, with non-ASCII
chars in arguments. (Use case: in some locales, the errstr
argument of IOError contains non-ASCII chars.)
* In Python 2, str(<exception instance>) fails, with non-ASCII chars
in `unicode` arguments.
The `SafeString`, `ErrorString` and `ErrorOutput` classes handle
common exceptions.
"""
import sys, codecs
# Guess the locale's encoding.
# If no valid guess can be made, locale_encoding is set to `None`:
try:
import locale # module missing in Jython
except ImportError:
locale_encoding = None
else:
locale_encoding = locale.getlocale()[1] or locale.getdefaultlocale()[1]
# locale.getpreferredencoding([do_setlocale=True|False])
# has side-effects | might return a wrong guess.
# (cf. Update 1 in http://stackoverflow.com/questions/4082645/using-python-2-xs-locale-module-to-format-numbers-and-currency)
try:
codecs.lookup(locale_encoding or '') # None -> ''
except LookupError:
locale_encoding = None
class SafeString(object):
"""
A wrapper providing robust conversion to `str` and `unicode`.
"""
def __init__(self, data, encoding=None, encoding_errors='backslashreplace',
decoding_errors='replace'):
self.data = data
self.encoding = (encoding or getattr(data, 'encoding', None) or
locale_encoding or 'ascii')
self.encoding_errors = encoding_errors
self.decoding_errors = decoding_errors
def __str__(self):
try:
return str(self.data)
except UnicodeEncodeError, err:
if isinstance(self.data, Exception):
args = [str(SafeString(arg, self.encoding,
self.encoding_errors))
for arg in self.data.args]
return ', '.join(args)
if isinstance(self.data, unicode):
return self.data.encode(self.encoding, self.encoding_errors)
raise
def __unicode__(self):
"""
Return unicode representation of `self.data`.
Try ``unicode(self.data)``, catch `UnicodeError` and
* if `self.data` is an Exception instance, work around
http://bugs.python.org/issue2517 with an emulation of
Exception.__unicode__,
* else decode with `self.encoding` and `self.decoding_errors`.
"""
try:
u = unicode(self.data)
if isinstance(self.data, EnvironmentError):
u = u.replace(": u'", ": '") # normalize filename quoting
return u
except UnicodeError, error: # catch ..Encode.. and ..Decode.. errors
if isinstance(self.data, EnvironmentError):
return u"[Errno %s] %s: '%s'" % (self.data.errno,
SafeString(self.data.strerror, self.encoding,
self.decoding_errors),
SafeString(self.data.filename, self.encoding,
self.decoding_errors))
if isinstance(self.data, Exception):
args = [unicode(SafeString(arg, self.encoding,
decoding_errors=self.decoding_errors))
for arg in self.data.args]
return u', '.join(args)
if isinstance(error, UnicodeDecodeError):
return unicode(self.data, self.encoding, self.decoding_errors)
raise
class ErrorString(SafeString):
"""
Safely report exception type and message.
"""
def __str__(self):
return '%s: %s' % (self.data.__class__.__name__,
super(ErrorString, self).__str__())
def __unicode__(self):
return u'%s: %s' % (self.data.__class__.__name__,
super(ErrorString, self).__unicode__())
class ErrorOutput(object):
"""
Wrapper class for file-like error streams with
failsave de- and encoding of `str`, `bytes`, `unicode` and
`Exception` instances.
"""
def __init__(self, stream=None, encoding=None,
encoding_errors='backslashreplace',
decoding_errors='replace'):
"""
:Parameters:
- `stream`: a file-like object,
a string (path to a file),
`None` (write to `sys.stderr`, default), or
evaluating to `False` (write() requests are ignored).
- `encoding`: `stream` text encoding. Guessed if None.
- `encoding_errors`: how to treat encoding errors.
"""
if stream is None:
stream = sys.stderr
elif not(stream):
stream = False
# if `stream` is a file name, open it
elif isinstance(stream, str):
stream = open(stream, 'w')
elif isinstance(stream, unicode):
stream = open(stream.encode(sys.getfilesystemencoding()), 'w')
self.stream = stream
"""Where warning output is sent."""
self.encoding = (encoding or getattr(stream, 'encoding', None) or
locale_encoding or 'ascii')
"""The output character encoding."""
self.encoding_errors = encoding_errors
"""Encoding error handler."""
self.decoding_errors = decoding_errors
"""Decoding error handler."""
def write(self, data):
"""
Write `data` to self.stream. Ignore, if self.stream is False.
`data` can be a `string`, `unicode`, or `Exception` instance.
"""
if self.stream is False:
return
if isinstance(data, Exception):
data = unicode(SafeString(data, self.encoding,
self.encoding_errors, self.decoding_errors))
try:
self.stream.write(data)
except UnicodeEncodeError:
self.stream.write(data.encode(self.encoding, self.encoding_errors))
except TypeError: # in Python 3, stderr expects unicode
if self.stream in (sys.stderr, sys.stdout):
self.stream.buffer.write(data) # write bytes to raw stream
else:
self.stream.write(unicode(data, self.encoding,
self.decoding_errors))
def close(self):
"""
Close the error-output stream.
Ignored if the stream is` sys.stderr` or `sys.stdout` or has no
close() method.
"""
if self.stream in (sys.stdout, sys.stderr):
return
try:
self.stream.close()
except AttributeError:
pass

97
docutils/examples.py Normal file
View file

@ -0,0 +1,97 @@
# $Id: examples.py 7320 2012-01-19 22:33:02Z milde $
# Author: David Goodger <goodger@python.org>
# Copyright: This module has been placed in the public domain.
"""
This module contains practical examples of Docutils client code.
Importing this module from client code is not recommended; its contents are
subject to change in future Docutils releases. Instead, it is recommended
that you copy and paste the parts you need into your own code, modifying as
necessary.
"""
from docutils import core, io
def html_parts(input_string, source_path=None, destination_path=None,
input_encoding='unicode', doctitle=True,
initial_header_level=1):
"""
Given an input string, returns a dictionary of HTML document parts.
Dictionary keys are the names of parts, and values are Unicode strings;
encoding is up to the client.
Parameters:
- `input_string`: A multi-line text string; required.
- `source_path`: Path to the source file or object. Optional, but useful
for diagnostic output (system messages).
- `destination_path`: Path to the file or object which will receive the
output; optional. Used for determining relative paths (stylesheets,
source links, etc.).
- `input_encoding`: The encoding of `input_string`. If it is an encoded
8-bit string, provide the correct encoding. If it is a Unicode string,
use "unicode", the default.
- `doctitle`: Disable the promotion of a lone top-level section title to
document title (and subsequent section title to document subtitle
promotion); enabled by default.
- `initial_header_level`: The initial level for header elements (e.g. 1
for "<h1>").
"""
overrides = {'input_encoding': input_encoding,
'doctitle_xform': doctitle,
'initial_header_level': initial_header_level}
parts = core.publish_parts(
source=input_string, source_path=source_path,
destination_path=destination_path,
writer_name='html', settings_overrides=overrides)
return parts
def html_body(input_string, source_path=None, destination_path=None,
input_encoding='unicode', output_encoding='unicode',
doctitle=True, initial_header_level=1):
"""
Given an input string, returns an HTML fragment as a string.
The return value is the contents of the <body> element.
Parameters (see `html_parts()` for the remainder):
- `output_encoding`: The desired encoding of the output. If a Unicode
string is desired, use the default value of "unicode" .
"""
parts = html_parts(
input_string=input_string, source_path=source_path,
destination_path=destination_path,
input_encoding=input_encoding, doctitle=doctitle,
initial_header_level=initial_header_level)
fragment = parts['html_body']
if output_encoding != 'unicode':
fragment = fragment.encode(output_encoding)
return fragment
def internals(input_string, source_path=None, destination_path=None,
input_encoding='unicode', settings_overrides=None):
"""
Return the document tree and publisher, for exploring Docutils internals.
Parameters: see `html_parts()`.
"""
if settings_overrides:
overrides = settings_overrides.copy()
else:
overrides = {}
overrides['input_encoding'] = input_encoding
output, pub = core.publish_programmatically(
source_class=io.StringInput, source=input_string,
source_path=source_path,
destination_class=io.NullOutput, destination=None,
destination_path=destination_path,
reader=None, reader_name='standalone',
parser=None, parser_name='restructuredtext',
writer=None, writer_name='null',
settings=None, settings_spec=None, settings_overrides=overrides,
config_section=None, enable_exit_status=None)
return pub.writer.document, pub

788
docutils/frontend.py Normal file
View file

@ -0,0 +1,788 @@
# $Id: frontend.py 7339 2012-02-03 12:23:27Z milde $
# Author: David Goodger <goodger@python.org>
# Copyright: This module has been placed in the public domain.
"""
Command-line and common processing for Docutils front-end tools.
Exports the following classes:
* `OptionParser`: Standard Docutils command-line processing.
* `Option`: Customized version of `optparse.Option`; validation support.
* `Values`: Runtime settings; objects are simple structs
(``object.attribute``). Supports cumulative list settings (attributes).
* `ConfigParser`: Standard Docutils config file processing.
Also exports the following functions:
* Option callbacks: `store_multiple`, `read_config_file`.
* Setting validators: `validate_encoding`,
`validate_encoding_error_handler`,
`validate_encoding_and_error_handler`, `validate_boolean`,
`validate_threshold`, `validate_colon_separated_string_list`,
`validate_dependency_file`.
* `make_paths_absolute`.
* SettingSpec manipulation: `filter_settings_spec`.
"""
__docformat__ = 'reStructuredText'
import os
import os.path
import sys
import warnings
import ConfigParser as CP
import codecs
import optparse
from optparse import SUPPRESS_HELP
import docutils
import docutils.utils
import docutils.nodes
from docutils.error_reporting import locale_encoding, ErrorOutput, ErrorString
def store_multiple(option, opt, value, parser, *args, **kwargs):
"""
Store multiple values in `parser.values`. (Option callback.)
Store `None` for each attribute named in `args`, and store the value for
each key (attribute name) in `kwargs`.
"""
for attribute in args:
setattr(parser.values, attribute, None)
for key, value in kwargs.items():
setattr(parser.values, key, value)
def read_config_file(option, opt, value, parser):
"""
Read a configuration file during option processing. (Option callback.)
"""
try:
new_settings = parser.get_config_file_settings(value)
except ValueError, error:
parser.error(error)
parser.values.update(new_settings, parser)
def validate_encoding(setting, value, option_parser,
config_parser=None, config_section=None):
try:
codecs.lookup(value)
except LookupError:
raise (LookupError('setting "%s": unknown encoding: "%s"'
% (setting, value)),
None, sys.exc_info()[2])
return value
def validate_encoding_error_handler(setting, value, option_parser,
config_parser=None, config_section=None):
try:
codecs.lookup_error(value)
except LookupError:
raise (LookupError(
'unknown encoding error handler: "%s" (choices: '
'"strict", "ignore", "replace", "backslashreplace", '
'"xmlcharrefreplace", and possibly others; see documentation for '
'the Python ``codecs`` module)' % value),
None, sys.exc_info()[2])
return value
def validate_encoding_and_error_handler(
setting, value, option_parser, config_parser=None, config_section=None):
"""
Side-effect: if an error handler is included in the value, it is inserted
into the appropriate place as if it was a separate setting/option.
"""
if ':' in value:
encoding, handler = value.split(':')
validate_encoding_error_handler(
setting + '_error_handler', handler, option_parser,
config_parser, config_section)
if config_parser:
config_parser.set(config_section, setting + '_error_handler',
handler)
else:
setattr(option_parser.values, setting + '_error_handler', handler)
else:
encoding = value
validate_encoding(setting, encoding, option_parser,
config_parser, config_section)
return encoding
def validate_boolean(setting, value, option_parser,
config_parser=None, config_section=None):
if isinstance(value, unicode):
try:
return option_parser.booleans[value.strip().lower()]
except KeyError:
raise (LookupError('unknown boolean value: "%s"' % value),
None, sys.exc_info()[2])
return value
def validate_nonnegative_int(setting, value, option_parser,
config_parser=None, config_section=None):
value = int(value)
if value < 0:
raise ValueError('negative value; must be positive or zero')
return value
def validate_threshold(setting, value, option_parser,
config_parser=None, config_section=None):
try:
return int(value)
except ValueError:
try:
return option_parser.thresholds[value.lower()]
except (KeyError, AttributeError):
raise (LookupError('unknown threshold: %r.' % value),
None, sys.exc_info[2])
def validate_colon_separated_string_list(
setting, value, option_parser, config_parser=None, config_section=None):
if isinstance(value, unicode):
value = value.split(':')
else:
last = value.pop()
value.extend(last.split(':'))
return value
def validate_url_trailing_slash(
setting, value, option_parser, config_parser=None, config_section=None):
if not value:
return './'
elif value.endswith('/'):
return value
else:
return value + '/'
def validate_dependency_file(setting, value, option_parser,
config_parser=None, config_section=None):
try:
return docutils.utils.DependencyList(value)
except IOError:
return docutils.utils.DependencyList(None)
def validate_strip_class(setting, value, option_parser,
config_parser=None, config_section=None):
# convert to list:
if isinstance(value, unicode):
value = [value]
class_values = filter(None, [v.strip() for v in value.pop().split(',')])
# validate:
for class_value in class_values:
normalized = docutils.nodes.make_id(class_value)
if class_value != normalized:
raise ValueError('invalid class value %r (perhaps %r?)'
% (class_value, normalized))
value.extend(class_values)
return value
def make_paths_absolute(pathdict, keys, base_path=None):
"""
Interpret filesystem path settings relative to the `base_path` given.
Paths are values in `pathdict` whose keys are in `keys`. Get `keys` from
`OptionParser.relative_path_settings`.
"""
if base_path is None:
base_path = os.getcwdu() # type(base_path) == unicode
# to allow combining non-ASCII cwd with unicode values in `pathdict`
for key in keys:
if key in pathdict:
value = pathdict[key]
if isinstance(value, list):
value = [make_one_path_absolute(base_path, path)
for path in value]
elif value:
value = make_one_path_absolute(base_path, value)
pathdict[key] = value
def make_one_path_absolute(base_path, path):
return os.path.abspath(os.path.join(base_path, path))
def filter_settings_spec(settings_spec, *exclude, **replace):
"""Return a copy of `settings_spec` excluding/replacing some settings.
`settings_spec` is a tuple of configuration settings with a structure
described for docutils.SettingsSpec.settings_spec.
Optional positional arguments are names of to-be-excluded settings.
Keyword arguments are option specification replacements.
(See the html4strict writer for an example.)
"""
settings = list(settings_spec)
# every third item is a sequence of option tuples
for i in range(2, len(settings), 3):
newopts = []
for opt_spec in settings[i]:
# opt_spec is ("<help>", [<option strings>], {<keyword args>})
opt_name = [opt_string[2:].replace('-', '_')
for opt_string in opt_spec[1]
if opt_string.startswith('--')
][0]
if opt_name in exclude:
continue
if opt_name in replace.keys():
newopts.append(replace[opt_name])
else:
newopts.append(opt_spec)
settings[i] = tuple(newopts)
return tuple(settings)
class Values(optparse.Values):
"""
Updates list attributes by extension rather than by replacement.
Works in conjunction with the `OptionParser.lists` instance attribute.
"""
def __init__(self, *args, **kwargs):
optparse.Values.__init__(self, *args, **kwargs)
if (not hasattr(self, 'record_dependencies')
or self.record_dependencies is None):
# Set up dependency list, in case it is needed.
self.record_dependencies = docutils.utils.DependencyList()
def update(self, other_dict, option_parser):
if isinstance(other_dict, Values):
other_dict = other_dict.__dict__
other_dict = other_dict.copy()
for setting in option_parser.lists.keys():
if (hasattr(self, setting) and setting in other_dict):
value = getattr(self, setting)
if value:
value += other_dict[setting]
del other_dict[setting]
self._update_loose(other_dict)
def copy(self):
"""Return a shallow copy of `self`."""
return self.__class__(defaults=self.__dict__)
class Option(optparse.Option):
ATTRS = optparse.Option.ATTRS + ['validator', 'overrides']
def process(self, opt, value, values, parser):
"""
Call the validator function on applicable settings and
evaluate the 'overrides' option.
Extends `optparse.Option.process`.
"""
result = optparse.Option.process(self, opt, value, values, parser)
setting = self.dest
if setting:
if self.validator:
value = getattr(values, setting)
try:
new_value = self.validator(setting, value, parser)
except Exception, error:
raise (optparse.OptionValueError(
'Error in option "%s":\n %s'
% (opt, ErrorString(error))),
None, sys.exc_info()[2])
setattr(values, setting, new_value)
if self.overrides:
setattr(values, self.overrides, None)
return result
class OptionParser(optparse.OptionParser, docutils.SettingsSpec):
"""
Parser for command-line and library use. The `settings_spec`
specification here and in other Docutils components are merged to build
the set of command-line options and runtime settings for this process.
Common settings (defined below) and component-specific settings must not
conflict. Short options are reserved for common settings, and components
are restrict to using long options.
"""
standard_config_files = [
'/etc/docutils.conf', # system-wide
'./docutils.conf', # project-specific
'~/.docutils'] # user-specific
"""Docutils configuration files, using ConfigParser syntax. Filenames
will be tilde-expanded later. Later files override earlier ones."""
threshold_choices = 'info 1 warning 2 error 3 severe 4 none 5'.split()
"""Possible inputs for for --report and --halt threshold values."""
thresholds = {'info': 1, 'warning': 2, 'error': 3, 'severe': 4, 'none': 5}
"""Lookup table for --report and --halt threshold values."""
booleans={'1': 1, 'on': 1, 'yes': 1, 'true': 1,
'0': 0, 'off': 0, 'no': 0, 'false': 0, '': 0}
"""Lookup table for boolean configuration file settings."""
default_error_encoding = getattr(sys.stderr, 'encoding',
None) or locale_encoding or 'ascii'
default_error_encoding_error_handler = 'backslashreplace'
settings_spec = (
'General Docutils Options',
None,
(('Specify the document title as metadata.',
['--title'], {}),
('Include a "Generated by Docutils" credit and link.',
['--generator', '-g'], {'action': 'store_true',
'validator': validate_boolean}),
('Do not include a generator credit.',
['--no-generator'], {'action': 'store_false', 'dest': 'generator'}),
('Include the date at the end of the document (UTC).',
['--date', '-d'], {'action': 'store_const', 'const': '%Y-%m-%d',
'dest': 'datestamp'}),
('Include the time & date (UTC).',
['--time', '-t'], {'action': 'store_const',
'const': '%Y-%m-%d %H:%M UTC',
'dest': 'datestamp'}),
('Do not include a datestamp of any kind.',
['--no-datestamp'], {'action': 'store_const', 'const': None,
'dest': 'datestamp'}),
('Include a "View document source" link.',
['--source-link', '-s'], {'action': 'store_true',
'validator': validate_boolean}),
('Use <URL> for a source link; implies --source-link.',
['--source-url'], {'metavar': '<URL>'}),
('Do not include a "View document source" link.',
['--no-source-link'],
{'action': 'callback', 'callback': store_multiple,
'callback_args': ('source_link', 'source_url')}),
('Link from section headers to TOC entries. (default)',
['--toc-entry-backlinks'],
{'dest': 'toc_backlinks', 'action': 'store_const', 'const': 'entry',
'default': 'entry'}),
('Link from section headers to the top of the TOC.',
['--toc-top-backlinks'],
{'dest': 'toc_backlinks', 'action': 'store_const', 'const': 'top'}),
('Disable backlinks to the table of contents.',
['--no-toc-backlinks'],
{'dest': 'toc_backlinks', 'action': 'store_false'}),
('Link from footnotes/citations to references. (default)',
['--footnote-backlinks'],
{'action': 'store_true', 'default': 1,
'validator': validate_boolean}),
('Disable backlinks from footnotes and citations.',
['--no-footnote-backlinks'],
{'dest': 'footnote_backlinks', 'action': 'store_false'}),
('Enable section numbering by Docutils. (default)',
['--section-numbering'],
{'action': 'store_true', 'dest': 'sectnum_xform',
'default': 1, 'validator': validate_boolean}),
('Disable section numbering by Docutils.',
['--no-section-numbering'],
{'action': 'store_false', 'dest': 'sectnum_xform'}),
('Remove comment elements from the document tree.',
['--strip-comments'],
{'action': 'store_true', 'validator': validate_boolean}),
('Leave comment elements in the document tree. (default)',
['--leave-comments'],
{'action': 'store_false', 'dest': 'strip_comments'}),
('Remove all elements with classes="<class>" from the document tree. '
'Warning: potentially dangerous; use with caution. '
'(Multiple-use option.)',
['--strip-elements-with-class'],
{'action': 'append', 'dest': 'strip_elements_with_classes',
'metavar': '<class>', 'validator': validate_strip_class}),
('Remove all classes="<class>" attributes from elements in the '
'document tree. Warning: potentially dangerous; use with caution. '
'(Multiple-use option.)',
['--strip-class'],
{'action': 'append', 'dest': 'strip_classes',
'metavar': '<class>', 'validator': validate_strip_class}),
('Report system messages at or higher than <level>: "info" or "1", '
'"warning"/"2" (default), "error"/"3", "severe"/"4", "none"/"5"',
['--report', '-r'], {'choices': threshold_choices, 'default': 2,
'dest': 'report_level', 'metavar': '<level>',
'validator': validate_threshold}),
('Report all system messages. (Same as "--report=1".)',
['--verbose', '-v'], {'action': 'store_const', 'const': 1,
'dest': 'report_level'}),
('Report no system messages. (Same as "--report=5".)',
['--quiet', '-q'], {'action': 'store_const', 'const': 5,
'dest': 'report_level'}),
('Halt execution at system messages at or above <level>. '
'Levels as in --report. Default: 4 (severe).',
['--halt'], {'choices': threshold_choices, 'dest': 'halt_level',
'default': 4, 'metavar': '<level>',
'validator': validate_threshold}),
('Halt at the slightest problem. Same as "--halt=info".',
['--strict'], {'action': 'store_const', 'const': 1,
'dest': 'halt_level'}),
('Enable a non-zero exit status for non-halting system messages at '
'or above <level>. Default: 5 (disabled).',
['--exit-status'], {'choices': threshold_choices,
'dest': 'exit_status_level',
'default': 5, 'metavar': '<level>',
'validator': validate_threshold}),
('Enable debug-level system messages and diagnostics.',
['--debug'], {'action': 'store_true', 'validator': validate_boolean}),
('Disable debug output. (default)',
['--no-debug'], {'action': 'store_false', 'dest': 'debug'}),
('Send the output of system messages to <file>.',
['--warnings'], {'dest': 'warning_stream', 'metavar': '<file>'}),
('Enable Python tracebacks when Docutils is halted.',
['--traceback'], {'action': 'store_true', 'default': None,
'validator': validate_boolean}),
('Disable Python tracebacks. (default)',
['--no-traceback'], {'dest': 'traceback', 'action': 'store_false'}),
('Specify the encoding and optionally the '
'error handler of input text. Default: <locale-dependent>:strict.',
['--input-encoding', '-i'],
{'metavar': '<name[:handler]>',
'validator': validate_encoding_and_error_handler}),
('Specify the error handler for undecodable characters. '
'Choices: "strict" (default), "ignore", and "replace".',
['--input-encoding-error-handler'],
{'default': 'strict', 'validator': validate_encoding_error_handler}),
('Specify the text encoding and optionally the error handler for '
'output. Default: UTF-8:strict.',
['--output-encoding', '-o'],
{'metavar': '<name[:handler]>', 'default': 'utf-8',
'validator': validate_encoding_and_error_handler}),
('Specify error handler for unencodable output characters; '
'"strict" (default), "ignore", "replace", '
'"xmlcharrefreplace", "backslashreplace".',
['--output-encoding-error-handler'],
{'default': 'strict', 'validator': validate_encoding_error_handler}),
('Specify text encoding and error handler for error output. '
'Default: %s:%s.'
% (default_error_encoding, default_error_encoding_error_handler),
['--error-encoding', '-e'],
{'metavar': '<name[:handler]>', 'default': default_error_encoding,
'validator': validate_encoding_and_error_handler}),
('Specify the error handler for unencodable characters in '
'error output. Default: %s.'
% default_error_encoding_error_handler,
['--error-encoding-error-handler'],
{'default': default_error_encoding_error_handler,
'validator': validate_encoding_error_handler}),
('Specify the language (as BCP 47 language tag). Default: en.',
['--language', '-l'], {'dest': 'language_code', 'default': 'en',
'metavar': '<name>'}),
('Write output file dependencies to <file>.',
['--record-dependencies'],
{'metavar': '<file>', 'validator': validate_dependency_file,
'default': None}), # default set in Values class
('Read configuration settings from <file>, if it exists.',
['--config'], {'metavar': '<file>', 'type': 'string',
'action': 'callback', 'callback': read_config_file}),
("Show this program's version number and exit.",
['--version', '-V'], {'action': 'version'}),
('Show this help message and exit.',
['--help', '-h'], {'action': 'help'}),
# Typically not useful for non-programmatical use:
(SUPPRESS_HELP, ['--id-prefix'], {'default': ''}),
(SUPPRESS_HELP, ['--auto-id-prefix'], {'default': 'id'}),
# Hidden options, for development use only:
(SUPPRESS_HELP, ['--dump-settings'], {'action': 'store_true'}),
(SUPPRESS_HELP, ['--dump-internals'], {'action': 'store_true'}),
(SUPPRESS_HELP, ['--dump-transforms'], {'action': 'store_true'}),
(SUPPRESS_HELP, ['--dump-pseudo-xml'], {'action': 'store_true'}),
(SUPPRESS_HELP, ['--expose-internal-attribute'],
{'action': 'append', 'dest': 'expose_internals',
'validator': validate_colon_separated_string_list}),
(SUPPRESS_HELP, ['--strict-visitor'], {'action': 'store_true'}),
))
"""Runtime settings and command-line options common to all Docutils front
ends. Setting specs specific to individual Docutils components are also
used (see `populate_from_components()`)."""
settings_defaults = {'_disable_config': None,
'_source': None,
'_destination': None,
'_config_files': None}
"""Defaults for settings that don't have command-line option equivalents."""
relative_path_settings = ('warning_stream',)
config_section = 'general'
version_template = ('%%prog (Docutils %s [%s], Python %s, on %s)'
% (docutils.__version__, docutils.__version_details__,
sys.version.split()[0], sys.platform))
"""Default version message."""
def __init__(self, components=(), defaults=None, read_config_files=None,
*args, **kwargs):
"""
`components` is a list of Docutils components each containing a
``.settings_spec`` attribute. `defaults` is a mapping of setting
default overrides.
"""
self.lists = {}
"""Set of list-type settings."""
self.config_files = []
"""List of paths of applied configuration files."""
optparse.OptionParser.__init__(
self, option_class=Option, add_help_option=None,
formatter=optparse.TitledHelpFormatter(width=78),
*args, **kwargs)
if not self.version:
self.version = self.version_template
# Make an instance copy (it will be modified):
self.relative_path_settings = list(self.relative_path_settings)
self.components = (self,) + tuple(components)
self.populate_from_components(self.components)
self.set_defaults_from_dict(defaults or {})
if read_config_files and not self.defaults['_disable_config']:
try:
config_settings = self.get_standard_config_settings()
except ValueError, error:
self.error(error)
self.set_defaults_from_dict(config_settings.__dict__)
def populate_from_components(self, components):
"""
For each component, first populate from the `SettingsSpec.settings_spec`
structure, then from the `SettingsSpec.settings_defaults` dictionary.
After all components have been processed, check for and populate from
each component's `SettingsSpec.settings_default_overrides` dictionary.
"""
for component in components:
if component is None:
continue
settings_spec = component.settings_spec
self.relative_path_settings.extend(
component.relative_path_settings)
for i in range(0, len(settings_spec), 3):
title, description, option_spec = settings_spec[i:i+3]
if title:
group = optparse.OptionGroup(self, title, description)
self.add_option_group(group)
else:
group = self # single options
for (help_text, option_strings, kwargs) in option_spec:
option = group.add_option(help=help_text, *option_strings,
**kwargs)
if kwargs.get('action') == 'append':
self.lists[option.dest] = 1
if component.settings_defaults:
self.defaults.update(component.settings_defaults)
for component in components:
if component and component.settings_default_overrides:
self.defaults.update(component.settings_default_overrides)
def get_standard_config_files(self):
"""Return list of config files, from environment or standard."""
try:
config_files = os.environ['DOCUTILSCONFIG'].split(os.pathsep)
except KeyError:
config_files = self.standard_config_files
# If 'HOME' is not set, expandvars() requires the 'pwd' module which is
# not available under certain environments, for example, within
# mod_python. The publisher ends up in here, and we need to publish
# from within mod_python. Therefore we need to avoid expanding when we
# are in those environments.
expand = os.path.expanduser
if 'HOME' not in os.environ:
try:
import pwd
except ImportError:
expand = lambda x: x
return [expand(f) for f in config_files if f.strip()]
def get_standard_config_settings(self):
settings = Values()
for filename in self.get_standard_config_files():
settings.update(self.get_config_file_settings(filename), self)
return settings
def get_config_file_settings(self, config_file):
"""Returns a dictionary containing appropriate config file settings."""
parser = ConfigParser()
parser.read(config_file, self)
self.config_files.extend(parser._files)
base_path = os.path.dirname(config_file)
applied = {}
settings = Values()
for component in self.components:
if not component:
continue
for section in (tuple(component.config_section_dependencies or ())
+ (component.config_section,)):
if section in applied:
continue
applied[section] = 1
settings.update(parser.get_section(section), self)
make_paths_absolute(
settings.__dict__, self.relative_path_settings, base_path)
return settings.__dict__
def check_values(self, values, args):
"""Store positional arguments as runtime settings."""
values._source, values._destination = self.check_args(args)
make_paths_absolute(values.__dict__, self.relative_path_settings)
values._config_files = self.config_files
return values
def check_args(self, args):
source = destination = None
if args:
source = args.pop(0)
if source == '-': # means stdin
source = None
if args:
destination = args.pop(0)
if destination == '-': # means stdout
destination = None
if args:
self.error('Maximum 2 arguments allowed.')
if source and source == destination:
self.error('Do not specify the same file for both source and '
'destination. It will clobber the source file.')
return source, destination
def set_defaults_from_dict(self, defaults):
self.defaults.update(defaults)
def get_default_values(self):
"""Needed to get custom `Values` instances."""
defaults = Values(self.defaults)
defaults._config_files = self.config_files
return defaults
def get_option_by_dest(self, dest):
"""
Get an option by its dest.
If you're supplying a dest which is shared by several options,
it is undefined which option of those is returned.
A KeyError is raised if there is no option with the supplied
dest.
"""
for group in self.option_groups + [self]:
for option in group.option_list:
if option.dest == dest:
return option
raise KeyError('No option with dest == %r.' % dest)
class ConfigParser(CP.RawConfigParser):
old_settings = {
'pep_stylesheet': ('pep_html writer', 'stylesheet'),
'pep_stylesheet_path': ('pep_html writer', 'stylesheet_path'),
'pep_template': ('pep_html writer', 'template')}
"""{old setting: (new section, new setting)} mapping, used by
`handle_old_config`, to convert settings from the old [options] section."""
old_warning = """
The "[option]" section is deprecated. Support for old-format configuration
files may be removed in a future Docutils release. Please revise your
configuration files. See <http://docutils.sf.net/docs/user/config.html>,
section "Old-Format Configuration Files".
"""
not_utf8_error = """\
Unable to read configuration file "%s": content not encoded as UTF-8.
Skipping "%s" configuration file.
"""
def __init__(self, *args, **kwargs):
CP.RawConfigParser.__init__(self, *args, **kwargs)
self._files = []
"""List of paths of configuration files read."""
self._stderr = ErrorOutput()
"""Wrapper around sys.stderr catching en-/decoding errors"""
def read(self, filenames, option_parser):
if type(filenames) in (str, unicode):
filenames = [filenames]
for filename in filenames:
try:
# Config files must be UTF-8-encoded:
fp = codecs.open(filename, 'r', 'utf-8')
except IOError:
continue
try:
if sys.version_info < (3,2):
CP.RawConfigParser.readfp(self, fp, filename)
else:
CP.RawConfigParser.read_file(self, fp, filename)
except UnicodeDecodeError:
self._stderr.write(self.not_utf8_error % (filename, filename))
fp.close()
continue
fp.close()
self._files.append(filename)
if self.has_section('options'):
self.handle_old_config(filename)
self.validate_settings(filename, option_parser)
def handle_old_config(self, filename):
warnings.warn_explicit(self.old_warning, ConfigDeprecationWarning,
filename, 0)
options = self.get_section('options')
if not self.has_section('general'):
self.add_section('general')
for key, value in options.items():
if key in self.old_settings:
section, setting = self.old_settings[key]
if not self.has_section(section):
self.add_section(section)
else:
section = 'general'
setting = key
if not self.has_option(section, setting):
self.set(section, setting, value)
self.remove_section('options')
def validate_settings(self, filename, option_parser):
"""
Call the validator function and implement overrides on all applicable
settings.
"""
for section in self.sections():
for setting in self.options(section):
try:
option = option_parser.get_option_by_dest(setting)
except KeyError:
continue
if option.validator:
value = self.get(section, setting)
try:
new_value = option.validator(
setting, value, option_parser,
config_parser=self, config_section=section)
except Exception, error:
raise (ValueError(
'Error in config file "%s", section "[%s]":\n'
' %s\n'
' %s = %s'
% (filename, section, ErrorString(error),
setting, value)), None, sys.exc_info()[2])
self.set(section, setting, new_value)
if option.overrides:
self.set(section, option.overrides, None)
def optionxform(self, optionstr):
"""
Transform '-' to '_' so the cmdline form of option names can be used.
"""
return optionstr.lower().replace('-', '_')
def get_section(self, section):
"""
Return a given section as a dictionary (empty if the section
doesn't exist).
"""
section_dict = {}
if self.has_section(section):
for option in self.options(section):
section_dict[option] = self.get(section, option)
return section_dict
class ConfigDeprecationWarning(DeprecationWarning):
"""Warning for deprecated configuration file features."""

497
docutils/io.py Normal file
View file

@ -0,0 +1,497 @@
# $Id: io.py 7440 2012-06-13 14:14:12Z milde $
# Author: David Goodger <goodger@python.org>
# Copyright: This module has been placed in the public domain.
"""
I/O classes provide a uniform API for low-level input and output. Subclasses
will exist for a variety of input/output mechanisms.
"""
__docformat__ = 'reStructuredText'
import sys
import os
import re
import codecs
from docutils import TransformSpec
from docutils._compat import b
from docutils.error_reporting import locale_encoding, ErrorString, ErrorOutput
class InputError(IOError): pass
class OutputError(IOError): pass
def check_encoding(stream, encoding):
"""Test, whether the encoding of `stream` matches `encoding`.
Returns
:None: if `encoding` or `stream.encoding` are not a valid encoding
argument (e.g. ``None``) or `stream.encoding is missing.
:True: if the encoding argument resolves to the same value as `encoding`,
:False: if the encodings differ.
"""
try:
return codecs.lookup(stream.encoding) == codecs.lookup(encoding)
except (LookupError, AttributeError, TypeError):
return None
class Input(TransformSpec):
"""
Abstract base class for input wrappers.
"""
component_type = 'input'
default_source_path = None
def __init__(self, source=None, source_path=None, encoding=None,
error_handler='strict'):
self.encoding = encoding
"""Text encoding for the input source."""
self.error_handler = error_handler
"""Text decoding error handler."""
self.source = source
"""The source of input data."""
self.source_path = source_path
"""A text reference to the source."""
if not source_path:
self.source_path = self.default_source_path
self.successful_encoding = None
"""The encoding that successfully decoded the source data."""
def __repr__(self):
return '%s: source=%r, source_path=%r' % (self.__class__, self.source,
self.source_path)
def read(self):
raise NotImplementedError
def decode(self, data):
"""
Decode a string, `data`, heuristically.
Raise UnicodeError if unsuccessful.
The client application should call ``locale.setlocale`` at the
beginning of processing::
locale.setlocale(locale.LC_ALL, '')
"""
if self.encoding and self.encoding.lower() == 'unicode':
assert isinstance(data, unicode), (
'input encoding is "unicode" '
'but input is not a unicode object')
if isinstance(data, unicode):
# Accept unicode even if self.encoding != 'unicode'.
return data
if self.encoding:
# We believe the user/application when the encoding is
# explicitly given.
encodings = [self.encoding]
else:
data_encoding = self.determine_encoding_from_data(data)
if data_encoding:
# If the data declares its encoding (explicitly or via a BOM),
# we believe it.
encodings = [data_encoding]
else:
# Apply heuristics only if no encoding is explicitly given and
# no BOM found. Start with UTF-8, because that only matches
# data that *IS* UTF-8:
encodings = ['utf-8', 'latin-1']
if locale_encoding:
encodings.insert(1, locale_encoding)
for enc in encodings:
try:
decoded = unicode(data, enc, self.error_handler)
self.successful_encoding = enc
# Return decoded, removing BOMs.
return decoded.replace(u'\ufeff', u'')
except (UnicodeError, LookupError), err:
error = err # in Python 3, the <exception instance> is
# local to the except clause
raise UnicodeError(
'Unable to decode input data. Tried the following encodings: '
'%s.\n(%s)' % (', '.join([repr(enc) for enc in encodings]),
ErrorString(error)))
coding_slug = re.compile(b("coding[:=]\s*([-\w.]+)"))
"""Encoding declaration pattern."""
byte_order_marks = ((codecs.BOM_UTF8, 'utf-8'), # 'utf-8-sig' new in v2.5
(codecs.BOM_UTF16_BE, 'utf-16-be'),
(codecs.BOM_UTF16_LE, 'utf-16-le'),)
"""Sequence of (start_bytes, encoding) tuples for encoding detection.
The first bytes of input data are checked against the start_bytes strings.
A match indicates the given encoding."""
def determine_encoding_from_data(self, data):
"""
Try to determine the encoding of `data` by looking *in* `data`.
Check for a byte order mark (BOM) or an encoding declaration.
"""
# check for a byte order mark:
for start_bytes, encoding in self.byte_order_marks:
if data.startswith(start_bytes):
return encoding
# check for an encoding declaration pattern in first 2 lines of file:
for line in data.splitlines()[:2]:
match = self.coding_slug.search(line)
if match:
return match.group(1).decode('ascii')
return None
class Output(TransformSpec):
"""
Abstract base class for output wrappers.
"""
component_type = 'output'
default_destination_path = None
def __init__(self, destination=None, destination_path=None,
encoding=None, error_handler='strict'):
self.encoding = encoding
"""Text encoding for the output destination."""
self.error_handler = error_handler or 'strict'
"""Text encoding error handler."""
self.destination = destination
"""The destination for output data."""
self.destination_path = destination_path
"""A text reference to the destination."""
if not destination_path:
self.destination_path = self.default_destination_path
def __repr__(self):
return ('%s: destination=%r, destination_path=%r'
% (self.__class__, self.destination, self.destination_path))
def write(self, data):
"""`data` is a Unicode string, to be encoded by `self.encode`."""
raise NotImplementedError
def encode(self, data):
if self.encoding and self.encoding.lower() == 'unicode':
assert isinstance(data, unicode), (
'the encoding given is "unicode" but the output is not '
'a Unicode string')
return data
if not isinstance(data, unicode):
# Non-unicode (e.g. binary) output.
return data
else:
return data.encode(self.encoding, self.error_handler)
class FileInput(Input):
"""
Input for single, simple file-like objects.
"""
def __init__(self, source=None, source_path=None,
encoding=None, error_handler='strict',
autoclose=True, handle_io_errors=True, mode='rU'):
"""
:Parameters:
- `source`: either a file-like object (which is read directly), or
`None` (which implies `sys.stdin` if no `source_path` given).
- `source_path`: a path to a file, which is opened and then read.
- `encoding`: the expected text encoding of the input file.
- `error_handler`: the encoding error handler to use.
- `autoclose`: close automatically after read (except when
`sys.stdin` is the source).
- `handle_io_errors`: summarize I/O errors here, and exit?
- `mode`: how the file is to be opened (see standard function
`open`). The default 'rU' provides universal newline support
for text files.
"""
Input.__init__(self, source, source_path, encoding, error_handler)
self.autoclose = autoclose
self.handle_io_errors = handle_io_errors
self._stderr = ErrorOutput()
if source is None:
if source_path:
# Specify encoding in Python 3
if sys.version_info >= (3,0):
kwargs = {'encoding': self.encoding,
'errors': self.error_handler}
else:
kwargs = {}
try:
self.source = open(source_path, mode, **kwargs)
except IOError, error:
if handle_io_errors:
print >>self._stderr, ErrorString(error)
print >>self._stderr, (
u'Unable to open source file for reading ("%s").'
u'Exiting.' % source_path)
sys.exit(1)
raise InputError(error.errno, error.strerror, source_path)
else:
self.source = sys.stdin
elif (sys.version_info >= (3,0) and
check_encoding(self.source, self.encoding) is False):
# TODO: re-open, warn or raise error?
raise UnicodeError('Encoding clash: encoding given is "%s" '
'but source is opened with encoding "%s".' %
(self.encoding, self.source.encoding))
if not source_path:
try:
self.source_path = self.source.name
except AttributeError:
pass
def read(self):
"""
Read and decode a single file and return the data (Unicode string).
"""
try: # In Python < 2.5, try...except has to be nested in try...finally.
try:
if self.source is sys.stdin and sys.version_info >= (3,0):
# read as binary data to circumvent auto-decoding
data = self.source.buffer.read()
# normalize newlines
data = b('\n').join(data.splitlines()) + b('\n')
else:
data = self.source.read()
except (UnicodeError, LookupError), err: # (in Py3k read() decodes)
if not self.encoding and self.source_path:
# re-read in binary mode and decode with heuristics
b_source = open(self.source_path, 'rb')
data = b_source.read()
b_source.close()
# normalize newlines
data = b('\n').join(data.splitlines()) + b('\n')
else:
raise
finally:
if self.autoclose:
self.close()
return self.decode(data)
def readlines(self):
"""
Return lines of a single file as list of Unicode strings.
"""
return self.read().splitlines(True)
def close(self):
if self.source is not sys.stdin:
self.source.close()
class FileOutput(Output):
"""
Output for single, simple file-like objects.
"""
mode = 'w'
"""The mode argument for `open()`."""
# 'wb' for binary (e.g. OpenOffice) files.
# (Do not use binary mode ('wb') for text files, as this prevents the
# conversion of newlines to the system specific default.)
def __init__(self, destination=None, destination_path=None,
encoding=None, error_handler='strict', autoclose=True,
handle_io_errors=True, mode=None):
"""
:Parameters:
- `destination`: either a file-like object (which is written
directly) or `None` (which implies `sys.stdout` if no
`destination_path` given).
- `destination_path`: a path to a file, which is opened and then
written.
- `encoding`: the text encoding of the output file.
- `error_handler`: the encoding error handler to use.
- `autoclose`: close automatically after write (except when
`sys.stdout` or `sys.stderr` is the destination).
- `handle_io_errors`: summarize I/O errors here, and exit?
- `mode`: how the file is to be opened (see standard function
`open`). The default is 'w', providing universal newline
support for text files.
"""
Output.__init__(self, destination, destination_path,
encoding, error_handler)
self.opened = True
self.autoclose = autoclose
self.handle_io_errors = handle_io_errors
if mode is not None:
self.mode = mode
self._stderr = ErrorOutput()
if destination is None:
if destination_path:
self.opened = False
else:
self.destination = sys.stdout
elif (# destination is file-type object -> check mode:
mode and hasattr(self.destination, 'mode')
and mode != self.destination.mode):
print >>self._stderr, ('Destination mode "%s" '
'differs from specified mode "%s"' %
(self.destination.mode, mode))
if not destination_path:
try:
self.destination_path = self.destination.name
except AttributeError:
pass
# Special cases under Python 3: different encoding or binary output
if sys.version_info >= (3,0):
if ('b' in self.mode
and self.destination in (sys.stdout, sys.stderr)
):
self.destination = self.destination.buffer
if check_encoding(self.destination, self.encoding) is False:
if self.destination in (sys.stdout, sys.stderr):
self.destination = self.destination.buffer
else: # TODO: try the `write to .buffer` scheme instead?
raise ValueError('Encoding of %s (%s) differs \n'
' from specified encoding (%s)' %
(self.destination_path or 'destination',
destination.encoding, encoding))
def open(self):
# Specify encoding in Python 3.
if sys.version_info >= (3,0):
kwargs = {'encoding': self.encoding,
'errors': self.error_handler}
else:
kwargs = {}
try:
self.destination = open(self.destination_path, self.mode, **kwargs)
except IOError, error:
if self.handle_io_errors:
print >>self._stderr, ErrorString(error)
print >>self._stderr, (u'Unable to open destination file'
u" for writing ('%s'). Exiting." % self.destination_path)
sys.exit(1)
raise OutputError(error.errno, error.strerror,
self.destination_path)
self.opened = True
def write(self, data):
"""Encode `data`, write it to a single file, and return it.
With Python 3 or binary output mode, `data` is returned unchanged,
except when specified encoding and output encoding differ.
"""
if not self.opened:
self.open()
try: # In Python < 2.5, try...except has to be nested in try...finally.
try:
if 'b' not in self.mode and (sys.version_info < (3,0) or
check_encoding(self.destination, self.encoding) is False):
data = self.encode(data)
if sys.version_info >= (3,0) and os.linesep != '\n':
# writing as binary data -> fix endings
data = data.replace('\n', os.linesep)
self.destination.write(data)
except (UnicodeError, LookupError), err:
raise UnicodeError(
'Unable to encode output data. output-encoding is: '
'%s.\n(%s)' % (self.encoding, ErrorString(err)))
finally:
if self.autoclose:
self.close()
return data
def close(self):
if self.destination not in (sys.stdout, sys.stderr):
self.destination.close()
self.opened = False
class BinaryFileOutput(FileOutput):
"""
A version of docutils.io.FileOutput which writes to a binary file.
"""
# Used by core.publish_cmdline_to_binary() which in turn is used by
# rst2odt (OpenOffice writer)
mode = 'wb'
class StringInput(Input):
"""
Direct string input.
"""
default_source_path = '<string>'
def read(self):
"""Decode and return the source string."""
return self.decode(self.source)
class StringOutput(Output):
"""
Direct string output.
"""
default_destination_path = '<string>'
def write(self, data):
"""Encode `data`, store it in `self.destination`, and return it."""
self.destination = self.encode(data)
return self.destination
class NullInput(Input):
"""
Degenerate input: read nothing.
"""
default_source_path = 'null input'
def read(self):
"""Return a null string."""
return u''
class NullOutput(Output):
"""
Degenerate output: write nothing.
"""
default_destination_path = 'null output'
def write(self, data):
"""Do nothing ([don't even] send data to the bit bucket)."""
pass
class DocTreeInput(Input):
"""
Adapter for document tree input.
The document tree must be passed in the ``source`` parameter.
"""
default_source_path = 'doctree input'
def read(self):
"""Return the document tree."""
return self.source

View file

@ -0,0 +1,40 @@
# $Id: __init__.py 7126 2011-09-16 19:24:51Z milde $
# Author: David Goodger <goodger@python.org>
# Copyright: This module has been placed in the public domain.
# Internationalization details are documented in
# <http://docutils.sf.net/docs/howto/i18n.html>.
"""
This package contains modules for language-dependent features of Docutils.
"""
__docformat__ = 'reStructuredText'
from docutils.utils import normalize_language_tag
_languages = {}
def get_language(language_code, reporter=None):
"""Return module with language localizations.
`language_code` is a "BCP 47" language tag.
If there is no matching module, warn and fall back to English.
"""
# TODO: use a dummy module returning emtpy strings?, configurable?
for tag in normalize_language_tag(language_code):
if tag in _languages:
return _languages[tag]
try:
module = __import__(tag, globals(), locals())
except ImportError:
continue
_languages[tag] = module
return module
if reporter is not None:
reporter.warning(
'language "%s" not supported: ' % language_code +
'Docutils-generated text will be in English.')
module = __import__('en', globals(), locals())
_languages[tag] = module # warn only one time!
return module

58
docutils/languages/af.py Normal file
View file

@ -0,0 +1,58 @@
# $Id: af.py 4564 2006-05-21 20:44:42Z wiemann $
# Author: Jannie Hofmeyr <jhsh@sun.ac.za>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
Afrikaans-language mappings for language-dependent features of Docutils.
"""
__docformat__ = 'reStructuredText'
labels = {
'author': 'Auteur',
'authors': 'Auteurs',
'organization': 'Organisasie',
'address': 'Adres',
'contact': 'Kontak',
'version': 'Weergawe',
'revision': 'Revisie',
'status': 'Status',
'date': 'Datum',
'copyright': 'Kopiereg',
'dedication': 'Opdrag',
'abstract': 'Opsomming',
'attention': 'Aandag!',
'caution': 'Wees versigtig!',
'danger': '!GEVAAR!',
'error': 'Fout',
'hint': 'Wenk',
'important': 'Belangrik',
'note': 'Nota',
'tip': 'Tip', # hint and tip both have the same translation: wenk
'warning': 'Waarskuwing',
'contents': 'Inhoud'}
"""Mapping of node class name to label text."""
bibliographic_fields = {
'auteur': 'author',
'auteurs': 'authors',
'organisasie': 'organization',
'adres': 'address',
'kontak': 'contact',
'weergawe': 'version',
'revisie': 'revision',
'status': 'status',
'datum': 'date',
'kopiereg': 'copyright',
'opdrag': 'dedication',
'opsomming': 'abstract'}
"""Afrikaans (lowcased) to canonical name mapping for bibliographic fields."""
author_separators = [';', ',']
"""List of separator strings for the 'Authors' bibliographic field. Tried in
order."""

60
docutils/languages/ca.py Normal file
View file

@ -0,0 +1,60 @@
# $Id: ca.py 4564 2006-05-21 20:44:42Z wiemann $
# Author: Ivan Vilata i Balaguer <ivan@selidor.net>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
Catalan-language mappings for language-dependent features of Docutils.
"""
__docformat__ = 'reStructuredText'
labels = {
# fixed: language-dependent
'author': u'Autor',
'authors': u'Autors',
'organization': u'Organitzaci\u00F3',
'address': u'Adre\u00E7a',
'contact': u'Contacte',
'version': u'Versi\u00F3',
'revision': u'Revisi\u00F3',
'status': u'Estat',
'date': u'Data',
'copyright': u'Copyright',
'dedication': u'Dedicat\u00F2ria',
'abstract': u'Resum',
'attention': u'Atenci\u00F3!',
'caution': u'Compte!',
'danger': u'PERILL!',
'error': u'Error',
'hint': u'Suggeriment',
'important': u'Important',
'note': u'Nota',
'tip': u'Consell',
'warning': u'Av\u00EDs',
'contents': u'Contingut'}
"""Mapping of node class name to label text."""
bibliographic_fields = {
# language-dependent: fixed
u'autor': 'author',
u'autors': 'authors',
u'organitzaci\u00F3': 'organization',
u'adre\u00E7a': 'address',
u'contacte': 'contact',
u'versi\u00F3': 'version',
u'revisi\u00F3': 'revision',
u'estat': 'status',
u'data': 'date',
u'copyright': 'copyright',
u'dedicat\u00F2ria': 'dedication',
u'resum': 'abstract'}
"""Catalan (lowcased) to canonical name mapping for bibliographic fields."""
author_separators = [';', ',']
"""List of separator strings for the 'Authors' bibliographic field. Tried in
order."""

60
docutils/languages/cs.py Normal file
View file

@ -0,0 +1,60 @@
# $Id: cs.py 4564 2006-05-21 20:44:42Z wiemann $
# Author: Marek Blaha <mb@dat.cz>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
Czech-language mappings for language-dependent features of Docutils.
"""
__docformat__ = 'reStructuredText'
labels = {
# fixed: language-dependent
'author': u'Autor',
'authors': u'Auto\u0159i',
'organization': u'Organizace',
'address': u'Adresa',
'contact': u'Kontakt',
'version': u'Verze',
'revision': u'Revize',
'status': u'Stav',
'date': u'Datum',
'copyright': u'Copyright',
'dedication': u'V\u011Bnov\u00E1n\u00ED',
'abstract': u'Abstrakt',
'attention': u'Pozor!',
'caution': u'Opatrn\u011B!',
'danger': u'!NEBEZPE\u010C\u00CD!',
'error': u'Chyba',
'hint': u'Rada',
'important': u'D\u016Fle\u017Eit\u00E9',
'note': u'Pozn\u00E1mka',
'tip': u'Tip',
'warning': u'Varov\u00E1n\u00ED',
'contents': u'Obsah'}
"""Mapping of node class name to label text."""
bibliographic_fields = {
# language-dependent: fixed
u'autor': 'author',
u'auto\u0159i': 'authors',
u'organizace': 'organization',
u'adresa': 'address',
u'kontakt': 'contact',
u'verze': 'version',
u'revize': 'revision',
u'stav': 'status',
u'datum': 'date',
u'copyright': 'copyright',
u'v\u011Bnov\u00E1n\u00ED': 'dedication',
u'abstrakt': 'abstract'}
"""Czech (lowcased) to canonical name mapping for bibliographic fields."""
author_separators = [';', ',']
"""List of separator strings for the 'Authors' bibliographic field. Tried in
order."""

58
docutils/languages/de.py Normal file
View file

@ -0,0 +1,58 @@
# $Id: de.py 4564 2006-05-21 20:44:42Z wiemann $
# Author: Gunnar Schwant <g.schwant@gmx.de>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
German language mappings for language-dependent features of Docutils.
"""
__docformat__ = 'reStructuredText'
labels = {
'author': 'Autor',
'authors': 'Autoren',
'organization': 'Organisation',
'address': 'Adresse',
'contact': 'Kontakt',
'version': 'Version',
'revision': 'Revision',
'status': 'Status',
'date': 'Datum',
'dedication': 'Widmung',
'copyright': 'Copyright',
'abstract': 'Zusammenfassung',
'attention': 'Achtung!',
'caution': 'Vorsicht!',
'danger': '!GEFAHR!',
'error': 'Fehler',
'hint': 'Hinweis',
'important': 'Wichtig',
'note': 'Bemerkung',
'tip': 'Tipp',
'warning': 'Warnung',
'contents': 'Inhalt'}
"""Mapping of node class name to label text."""
bibliographic_fields = {
'autor': 'author',
'autoren': 'authors',
'organisation': 'organization',
'adresse': 'address',
'kontakt': 'contact',
'version': 'version',
'revision': 'revision',
'status': 'status',
'datum': 'date',
'copyright': 'copyright',
'widmung': 'dedication',
'zusammenfassung': 'abstract'}
"""German (lowcased) to canonical name mapping for bibliographic fields."""
author_separators = [';', ',']
"""List of separator strings for the 'Authors' bibliographic field. Tried in
order."""

60
docutils/languages/en.py Normal file
View file

@ -0,0 +1,60 @@
# $Id: en.py 4564 2006-05-21 20:44:42Z wiemann $
# Author: David Goodger <goodger@python.org>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
English-language mappings for language-dependent features of Docutils.
"""
__docformat__ = 'reStructuredText'
labels = {
# fixed: language-dependent
'author': 'Author',
'authors': 'Authors',
'organization': 'Organization',
'address': 'Address',
'contact': 'Contact',
'version': 'Version',
'revision': 'Revision',
'status': 'Status',
'date': 'Date',
'copyright': 'Copyright',
'dedication': 'Dedication',
'abstract': 'Abstract',
'attention': 'Attention!',
'caution': 'Caution!',
'danger': '!DANGER!',
'error': 'Error',
'hint': 'Hint',
'important': 'Important',
'note': 'Note',
'tip': 'Tip',
'warning': 'Warning',
'contents': 'Contents'}
"""Mapping of node class name to label text."""
bibliographic_fields = {
# language-dependent: fixed
'author': 'author',
'authors': 'authors',
'organization': 'organization',
'address': 'address',
'contact': 'contact',
'version': 'version',
'revision': 'revision',
'status': 'status',
'date': 'date',
'copyright': 'copyright',
'dedication': 'dedication',
'abstract': 'abstract'}
"""English (lowcased) to canonical name mapping for bibliographic fields."""
author_separators = [';', ',']
"""List of separator strings for the 'Authors' bibliographic field. Tried in
order."""

61
docutils/languages/eo.py Normal file
View file

@ -0,0 +1,61 @@
# $Id: eo.py 4564 2006-05-21 20:44:42Z wiemann $
# Author: Marcelo Huerta San Martin <richieadler@users.sourceforge.net>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
Esperanto-language mappings for language-dependent features of Docutils.
"""
__docformat__ = 'reStructuredText'
labels = {
# fixed: language-dependent
'author': u'A\u016dtoro',
'authors': u'A\u016dtoroj',
'organization': u'Organizo',
'address': u'Adreso',
'contact': u'Kontakto',
'version': u'Versio',
'revision': u'Revido',
'status': u'Stato',
'date': u'Dato',
# 'copyright': u'Kopirajto',
'copyright': u'A\u016dtorrajto',
'dedication': u'Dedi\u0109o',
'abstract': u'Resumo',
'attention': u'Atentu!',
'caution': u'Zorgu!',
'danger': u'DAN\u011cERO!',
'error': u'Eraro',
'hint': u'Spuro',
'important': u'Grava',
'note': u'Noto',
'tip': u'Helpeto',
'warning': u'Averto',
'contents': u'Enhavo'}
"""Mapping of node class name to label text."""
bibliographic_fields = {
# language-dependent: fixed
'a\u016dtoro': 'author',
'a\u016dtoroj': 'authors',
'organizo': 'organization',
'adreso': 'address',
'kontakto': 'contact',
'versio': 'version',
'revido': 'revision',
'stato': 'status',
'dato': 'date',
'a\u016dtorrajto': 'copyright',
'dedi\u0109o': 'dedication',
'resumo': 'abstract'}
"""Esperanto (lowcased) to canonical name mapping for bibliographic fields."""
author_separators = [';', ',']
"""List of separator strings for the 'Authors' bibliographic field. Tried in
order."""

59
docutils/languages/es.py Normal file
View file

@ -0,0 +1,59 @@
# -*- coding: utf-8 -*-
# $Id: es.py 4572 2006-05-25 20:48:37Z richieadler $
# Author: Marcelo Huerta San Martín <richieadler@users.sourceforge.net>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
Spanish-language mappings for language-dependent features of Docutils.
"""
__docformat__ = 'reStructuredText'
labels = {
'author': u'Autor',
'authors': u'Autores',
'organization': u'Organizaci\u00f3n',
'address': u'Direcci\u00f3n',
'contact': u'Contacto',
'version': u'Versi\u00f3n',
'revision': u'Revisi\u00f3n',
'status': u'Estado',
'date': u'Fecha',
'copyright': u'Copyright',
'dedication': u'Dedicatoria',
'abstract': u'Resumen',
'attention': u'\u00a1Atenci\u00f3n!',
'caution': u'\u00a1Precauci\u00f3n!',
'danger': u'\u00a1PELIGRO!',
'error': u'Error',
'hint': u'Sugerencia',
'important': u'Importante',
'note': u'Nota',
'tip': u'Consejo',
'warning': u'Advertencia',
'contents': u'Contenido'}
"""Mapping of node class name to label text."""
bibliographic_fields = {
u'autor': 'author',
u'autores': 'authors',
u'organizaci\u00f3n': 'organization',
u'direcci\u00f3n': 'address',
u'contacto': 'contact',
u'versi\u00f3n': 'version',
u'revisi\u00f3n': 'revision',
u'estado': 'status',
u'fecha': 'date',
u'copyright': 'copyright',
u'dedicatoria': 'dedication',
u'resumen': 'abstract'}
"""Spanish (lowcased) to canonical name mapping for bibliographic fields."""
author_separators = [';', ',']
"""List of separator strings for the 'Authors' bibliographic field. Tried in
order."""

60
docutils/languages/fi.py Normal file
View file

@ -0,0 +1,60 @@
# $Id: fi.py 4564 2006-05-21 20:44:42Z wiemann $
# Author: Asko Soukka <asko.soukka@iki.fi>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
Finnish-language mappings for language-dependent features of Docutils.
"""
__docformat__ = 'reStructuredText'
labels = {
# fixed: language-dependent
u'author': u'Tekij\u00e4',
u'authors': u'Tekij\u00e4t',
u'organization': u'Yhteis\u00f6',
u'address': u'Osoite',
u'contact': u'Yhteystiedot',
u'version': u'Versio',
u'revision': u'Vedos',
u'status': u'Tila',
u'date': u'P\u00e4iv\u00e4ys',
u'copyright': u'Tekij\u00e4noikeudet',
u'dedication': u'Omistuskirjoitus',
u'abstract': u'Tiivistelm\u00e4',
u'attention': u'Huomio!',
u'caution': u'Varo!',
u'danger': u'!VAARA!',
u'error': u'Virhe',
u'hint': u'Vihje',
u'important': u'T\u00e4rke\u00e4\u00e4',
u'note': u'Huomautus',
u'tip': u'Neuvo',
u'warning': u'Varoitus',
u'contents': u'Sis\u00e4llys'}
"""Mapping of node class name to label text."""
bibliographic_fields = {
# language-dependent: fixed
u'tekij\u00e4': u'author',
u'tekij\u00e4t': u'authors',
u'yhteis\u00f6': u'organization',
u'osoite': u'address',
u'yhteystiedot': u'contact',
u'versio': u'version',
u'vedos': u'revision',
u'tila': u'status',
u'p\u00e4iv\u00e4ys': u'date',
u'tekij\u00e4noikeudet': u'copyright',
u'omistuskirjoitus': u'dedication',
u'tiivistelm\u00e4': u'abstract'}
"""Finnish (lowcased) to canonical name mapping for bibliographic fields."""
author_separators = [';', ',']
"""List of separator strings for the 'Authors' bibliographic field. Tried in
order."""

58
docutils/languages/fr.py Normal file
View file

@ -0,0 +1,58 @@
# $Id: fr.py 4564 2006-05-21 20:44:42Z wiemann $
# Author: Stefane Fermigier <sf@fermigier.com>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
French-language mappings for language-dependent features of Docutils.
"""
__docformat__ = 'reStructuredText'
labels = {
u'author': u'Auteur',
u'authors': u'Auteurs',
u'organization': u'Organisation',
u'address': u'Adresse',
u'contact': u'Contact',
u'version': u'Version',
u'revision': u'R\u00e9vision',
u'status': u'Statut',
u'date': u'Date',
u'copyright': u'Copyright',
u'dedication': u'D\u00e9dicace',
u'abstract': u'R\u00e9sum\u00e9',
u'attention': u'Attention!',
u'caution': u'Avertissement!',
u'danger': u'!DANGER!',
u'error': u'Erreur',
u'hint': u'Indication',
u'important': u'Important',
u'note': u'Note',
u'tip': u'Astuce',
u'warning': u'Avis',
u'contents': u'Sommaire'}
"""Mapping of node class name to label text."""
bibliographic_fields = {
u'auteur': u'author',
u'auteurs': u'authors',
u'organisation': u'organization',
u'adresse': u'address',
u'contact': u'contact',
u'version': u'version',
u'r\u00e9vision': u'revision',
u'statut': u'status',
u'date': u'date',
u'copyright': u'copyright',
u'd\u00e9dicace': u'dedication',
u'r\u00e9sum\u00e9': u'abstract'}
"""French (lowcased) to canonical name mapping for bibliographic fields."""
author_separators = [';', ',']
"""List of separator strings for the 'Authors' bibliographic field. Tried in
order."""

63
docutils/languages/gl.py Normal file
View file

@ -0,0 +1,63 @@
# -*- coding: utf-8 -*-
# Author: David Goodger
# Contact: goodger@users.sourceforge.net
# Revision: $Revision: 2224 $
# Date: $Date: 2004-06-05 21:40:46 +0200 (Sat, 05 Jun 2004) $
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
Galician-language mappings for language-dependent features of Docutils.
"""
__docformat__ = 'reStructuredText'
labels = {
# fixed: language-dependent
'author': u'Autor',
'authors': u'Autores',
'organization': u'Organizaci\u00f3n',
'address': u'Enderezo',
'contact': u'Contacto',
'version': u'Versi\u00f3n',
'revision': u'Revisi\u00f3n',
'status': u'Estado',
'date': u'Data',
'copyright': u'Dereitos de copia',
'dedication': u'Dedicatoria',
'abstract': u'Abstract',
'attention': u'Atenci\u00f3n!',
'caution': u'Advertencia!',
'danger': u'PERIGO!',
'error': u'Erro',
'hint': u'Consello',
'important': u'Importante',
'note': u'Nota',
'tip': u'Suxesti\u00f3n',
'warning': u'Aviso',
'contents': u'Contido'}
"""Mapping of node class name to label text."""
bibliographic_fields = {
# language-dependent: fixed
u'autor': 'author',
u'autores': 'authors',
u'organizaci\u00f3n': 'organization',
u'enderezo': 'address',
u'contacto': 'contact',
u'versi\u00f3n': 'version',
u'revisi\u00f3n': 'revision',
u'estado': 'status',
u'data': 'date',
u'dereitos de copia': 'copyright',
u'dedicatoria': 'dedication',
u'abstract': 'abstract'}
"""Galician (lowcased) to canonical name mapping for bibliographic fields."""
author_separators = [';', ',']
"""List of separator strings for the 'Authors' bibliographic field. Tried in
order."""

60
docutils/languages/he.py Normal file
View file

@ -0,0 +1,60 @@
# Author: Meir Kriheli
# Id: $Id: he.py 4837 2006-12-26 09:59:41Z sfcben $
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
Hebrew-language mappings for language-dependent features of Docutils.
"""
__docformat__ = 'reStructuredText'
labels = {
# fixed: language-dependent
'author': u'\u05de\u05d7\u05d1\u05e8',
'authors': u'\u05de\u05d7\u05d1\u05e8\u05d9',
'organization': u'\u05d0\u05e8\u05d2\u05d5\u05df',
'address': u'\u05db\u05ea\u05d5\u05d1\u05ea',
'contact': u'\u05d0\u05d9\u05e9 \u05e7\u05e9\u05e8',
'version': u'\u05d2\u05e8\u05e1\u05d4',
'revision': u'\u05de\u05d4\u05d3\u05d5\u05e8\u05d4',
'status': u'\u05e1\u05d8\u05d8\u05d5\u05e1',
'date': u'\u05ea\u05d0\u05e8\u05d9\u05da',
'copyright': u'\u05d6\u05db\u05d5\u05d9\u05d5\u05ea \u05e9\u05de\u05d5\u05e8\u05d5\u05ea',
'dedication': u'\u05d4\u05e7\u05d3\u05e9\u05d4',
'abstract': u'\u05ea\u05e7\u05e6\u05d9\u05e8',
'attention': u'\u05ea\u05e9\u05d5\u05de\u05ea \u05dc\u05d1',
'caution': u'\u05d6\u05d4\u05d9\u05e8\u05d5\u05ea',
'danger': u'\u05e1\u05db\u05e0\u05d4',
'error': u'\u05e9\u05d2\u05d9\u05d0\u05d4' ,
'hint': u'\u05e8\u05de\u05d6',
'important': u'\u05d7\u05e9\u05d5\u05d1',
'note': u'\u05d4\u05e2\u05e8\u05d4',
'tip': u'\u05d8\u05d9\u05e4',
'warning': u'\u05d0\u05d6\u05d4\u05e8\u05d4',
'contents': u'\u05ea\u05d5\u05db\u05df'}
"""Mapping of node class name to label text."""
bibliographic_fields = {
# language-dependent: fixed
u'\u05de\u05d7\u05d1\u05e8': 'author',
u'\u05de\u05d7\u05d1\u05e8\u05d9': 'authors',
u'\u05d0\u05e8\u05d2\u05d5\u05df': 'organization',
u'\u05db\u05ea\u05d5\u05d1\u05ea': 'address',
u'\u05d0\u05d9\u05e9 \u05e7\u05e9\u05e8': 'contact',
u'\u05d2\u05e8\u05e1\u05d4': 'version',
u'\u05de\u05d4\u05d3\u05d5\u05e8\u05d4': 'revision',
u'\u05e1\u05d8\u05d8\u05d5\u05e1': 'status',
u'\u05ea\u05d0\u05e8\u05d9\u05da': 'date',
u'\u05d6\u05db\u05d5\u05d9\u05d5\u05ea \u05e9\u05de\u05d5\u05e8\u05d5\u05ea': 'copyright',
u'\u05d4\u05e7\u05d3\u05e9\u05d4': 'dedication',
u'\u05ea\u05e7\u05e6\u05d9\u05e8': 'abstract'}
"""Hebrew to canonical name mapping for bibliographic fields."""
author_separators = [';', ',']
"""List of separator strings for the 'Authors' bibliographic field. Tried in
order."""

58
docutils/languages/it.py Normal file
View file

@ -0,0 +1,58 @@
# $Id: it.py 4564 2006-05-21 20:44:42Z wiemann $
# Author: Nicola Larosa <docutils@tekNico.net>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
Italian-language mappings for language-dependent features of Docutils.
"""
__docformat__ = 'reStructuredText'
labels = {
'author': 'Autore',
'authors': 'Autori',
'organization': 'Organizzazione',
'address': 'Indirizzo',
'contact': 'Contatti',
'version': 'Versione',
'revision': 'Revisione',
'status': 'Status',
'date': 'Data',
'copyright': 'Copyright',
'dedication': 'Dedica',
'abstract': 'Riassunto',
'attention': 'Attenzione!',
'caution': 'Cautela!',
'danger': '!PERICOLO!',
'error': 'Errore',
'hint': 'Suggerimento',
'important': 'Importante',
'note': 'Nota',
'tip': 'Consiglio',
'warning': 'Avvertenza',
'contents': 'Indice'}
"""Mapping of node class name to label text."""
bibliographic_fields = {
'autore': 'author',
'autori': 'authors',
'organizzazione': 'organization',
'indirizzo': 'address',
'contatto': 'contact',
'versione': 'version',
'revisione': 'revision',
'status': 'status',
'data': 'date',
'copyright': 'copyright',
'dedica': 'dedication',
'riassunto': 'abstract'}
"""Italian (lowcased) to canonical name mapping for bibliographic fields."""
author_separators = [';', ',']
"""List of separator strings for the 'Authors' bibliographic field. Tried in
order."""

61
docutils/languages/ja.py Normal file
View file

@ -0,0 +1,61 @@
# -*- coding: utf-8 -*-
# $Id: ja.py 4564 2006-05-21 20:44:42Z wiemann $
# Author: Hisashi Morita <hisashim@kt.rim.or.jp>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
Japanese-language mappings for language-dependent features of Docutils.
"""
__docformat__ = 'reStructuredText'
labels = {
# fixed: language-dependent
'author': u'著者',
'authors': u'著者',
'organization': u'組織',
'address': u'住所',
'contact': u'連絡先',
'version': u'バージョン',
'revision': u'リビジョン',
'status': u'ステータス',
'date': u'日付',
'copyright': u'著作権',
'dedication': u'献辞',
'abstract': u'概要',
'attention': u'注目!',
'caution': u'注意!',
'danger': u'!危険!',
'error': u'エラー',
'hint': u'ヒント',
'important': u'重要',
'note': u'備考',
'tip': u'通報',
'warning': u'警告',
'contents': u'目次'}
"""Mapping of node class name to label text."""
bibliographic_fields = {
# language-dependent: fixed
u'著者': 'author',
u' n/a': 'authors',
u'組織': 'organization',
u'住所': 'address',
u'連絡先': 'contact',
u'バージョン': 'version',
u'リビジョン': 'revision',
u'ステータス': 'status',
u'日付': 'date',
u'著作権': 'copyright',
u'献辞': 'dedication',
u'概要': 'abstract'}
"""Japanese (lowcased) to canonical name mapping for bibliographic fields."""
author_separators = [';', ',']
"""List of separator strings for the 'Authors' bibliographic field. Tried in
order."""

122
docutils/languages/lt.py Normal file
View file

@ -0,0 +1,122 @@
# -*- coding: utf8 -*-
# $Id: lt.py 6459 2010-10-29 22:07:34Z milde $
# Author: Dalius Dobravolskas <dalius.do...@gmail.com>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
English-language mappings for language-dependent features of Docutils.
"""
__docformat__ = 'reStructuredText'
labels = {
# fixed: language-dependent
'author': 'Autorius',
'authors': 'Autoriai',
'organization': 'Organizacija',
'address': 'Adresas',
'contact': 'Kontaktas',
'version': 'Versija',
'revision': 'Revizija',
'status': u'Būsena',
'date': 'Data',
'copyright': u'Autoriaus teisės',
'dedication': 'Dedikacija',
'abstract': 'Santrauka',
'attention': u'Dėmesio!',
'caution': 'Atsargiai!',
'danger': '!PAVOJINGA!',
'error': 'Klaida',
'hint': u'Užuomina',
'important': 'Svarbu',
'note': 'Pastaba',
'tip': 'Patarimas',
'warning': u'Įspėjimas',
'contents': 'Turinys'}
"""Mapping of node class name to label text."""
bibliographic_fields = {
# language-dependent: fixed
'autorius': 'author',
'autoriai': 'authors',
'organizacija': 'organization',
'adresas': 'address',
'kontaktas': 'contact',
'versija': 'version',
'revizija': 'revision',
'būsena': 'status',
'data': 'date',
'autoriaus teisės': 'copyright',
'dedikacija': 'dedication',
'santrauka': 'abstract'}
"""English (lowcased) to canonical name mapping for bibliographic fields."""
author_separators = [';', ',']
"""List of separator strings for the 'Authors' bibliographic field. Tried in
order."""
# -*- coding: utf8 -*-
# $Id: lt.py 6459 2010-10-29 22:07:34Z milde $
# Author: David Goodger <goodger@python.org>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
English-language mappings for language-dependent features of Docutils.
"""
__docformat__ = 'reStructuredText'
labels = {
# fixed: language-dependent
'author': 'Autorius',
'authors': 'Autoriai',
'organization': 'Organizacija',
'address': 'Adresas',
'contact': 'Kontaktas',
'version': 'Versija',
'revision': 'Revizija',
'status': u'Būsena',
'date': 'Data',
'copyright': u'Autoriaus teisės',
'dedication': 'Dedikacija',
'abstract': 'Santrauka',
'attention': u'Dėmesio!',
'caution': 'Atsargiai!',
'danger': '!PAVOJINGA!',
'error': 'Klaida',
'hint': u'Užuomina',
'important': 'Svarbu',
'note': 'Pastaba',
'tip': 'Patarimas',
'warning': u'Įspėjimas',
'contents': 'Turinys'}
"""Mapping of node class name to label text."""
bibliographic_fields = {
# language-dependent: fixed
'autorius': 'author',
'autoriai': 'authors',
'organizacija': 'organization',
'adresas': 'address',
'kontaktas': 'contact',
'versija': 'version',
'revizija': 'revision',
'būsena': 'status',
'data': 'date',
'autoriaus teisės': 'copyright',
'dedikacija': 'dedication',
'santrauka': 'abstract'}
"""English (lowcased) to canonical name mapping for bibliographic fields."""
author_separators = [';', ',']
"""List of separator strings for the 'Authors' bibliographic field. Tried in
order."""

60
docutils/languages/nl.py Normal file
View file

@ -0,0 +1,60 @@
# $Id: nl.py 4564 2006-05-21 20:44:42Z wiemann $
# Author: Martijn Pieters <mjpieters@users.sourceforge.net>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
Dutch-language mappings for language-dependent features of Docutils.
"""
__docformat__ = 'reStructuredText'
labels = {
# fixed: language-dependent
'author': 'Auteur',
'authors': 'Auteurs',
'organization': 'Organisatie',
'address': 'Adres',
'contact': 'Contact',
'version': 'Versie',
'revision': 'Revisie',
'status': 'Status',
'date': 'Datum',
'copyright': 'Copyright',
'dedication': 'Toewijding',
'abstract': 'Samenvatting',
'attention': 'Attentie!',
'caution': 'Let op!',
'danger': '!GEVAAR!',
'error': 'Fout',
'hint': 'Hint',
'important': 'Belangrijk',
'note': 'Opmerking',
'tip': 'Tip',
'warning': 'Waarschuwing',
'contents': 'Inhoud'}
"""Mapping of node class name to label text."""
bibliographic_fields = {
# language-dependent: fixed
'auteur': 'author',
'auteurs': 'authors',
'organisatie': 'organization',
'adres': 'address',
'contact': 'contact',
'versie': 'version',
'revisie': 'revision',
'status': 'status',
'datum': 'date',
'copyright': 'copyright',
'toewijding': 'dedication',
'samenvatting': 'abstract'}
"""Dutch (lowcased) to canonical name mapping for bibliographic fields."""
author_separators = [';', ',']
"""List of separator strings for the 'Authors' bibliographic field. Tried in
order."""

62
docutils/languages/pl.py Normal file
View file

@ -0,0 +1,62 @@
# $Id$
# Author: Robert Wojciechowicz <rw@smsnet.pl>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
Polish-language mappings for language-dependent features of Docutils.
"""
__docformat__ = 'reStructuredText'
labels = {
# fixed: language-dependent
'author': u'Autor',
'authors': u'Autorzy',
'organization': u'Organizacja',
'address': u'Adres',
'contact': u'Kontakt',
'version': u'Wersja',
'revision': u'Korekta',
'status': u'Status',
'date': u'Data',
'copyright': u'Copyright',
'dedication': u'Dedykacja',
'abstract': u'Streszczenie',
'attention': u'Uwaga!',
'caution': u'Ostro\u017cnie!',
'danger': u'!Niebezpiecze\u0144stwo!',
'error': u'B\u0142\u0105d',
'hint': u'Wskaz\u00f3wka',
'important': u'Wa\u017cne',
'note': u'Przypis',
'tip': u'Rada',
'warning': u'Ostrze\u017cenie',
'contents': u'Tre\u015b\u0107'}
"""Mapping of node class name to label text."""
bibliographic_fields = {
# language-dependent: fixed
u'autor': 'author',
u'autorzy': 'authors',
u'organizacja': 'organization',
u'adres': 'address',
u'kontakt': 'contact',
u'wersja': 'version',
u'korekta': 'revision',
u'status': 'status',
u'data': 'date',
u'copyright': 'copyright',
u'dedykacja': 'dedication',
u'streszczenie': 'abstract'}
"""Polish (lowcased) to canonical name mapping for bibliographic fields."""
author_separators = [';', ',']
"""List of separator strings for the 'Authors' bibliographic field. Tried in
order."""

View file

@ -0,0 +1,60 @@
# $Id: pt_br.py 5567 2008-06-03 01:11:03Z goodger $
# Author: David Goodger <goodger@python.org>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
Brazilian Portuguese-language mappings for language-dependent features of Docutils.
"""
__docformat__ = 'reStructuredText'
labels = {
# fixed: language-dependent
'author': u'Autor',
'authors': u'Autores',
'organization': u'Organiza\u00E7\u00E3o',
'address': u'Endere\u00E7o',
'contact': u'Contato',
'version': u'Vers\u00E3o',
'revision': u'Revis\u00E3o',
'status': u'Estado',
'date': u'Data',
'copyright': u'Copyright',
'dedication': u'Dedicat\u00F3ria',
'abstract': u'Resumo',
'attention': u'Aten\u00E7\u00E3o!',
'caution': u'Cuidado!',
'danger': u'PERIGO!',
'error': u'Erro',
'hint': u'Sugest\u00E3o',
'important': u'Importante',
'note': u'Nota',
'tip': u'Dica',
'warning': u'Aviso',
'contents': u'Sum\u00E1rio'}
"""Mapping of node class name to label text."""
bibliographic_fields = {
# language-dependent: fixed
u'autor': 'author',
u'autores': 'authors',
u'organiza\u00E7\u00E3o': 'organization',
u'endere\u00E7o': 'address',
u'contato': 'contact',
u'vers\u00E3o': 'version',
u'revis\u00E3o': 'revision',
u'estado': 'status',
u'data': 'date',
u'copyright': 'copyright',
u'dedicat\u00F3ria': 'dedication',
u'resumo': 'abstract'}
"""Brazilian Portuguese (lowcased) to canonical name mapping for bibliographic fields."""
author_separators = [';', ',']
"""List of separator strings for the 'Authors' bibliographic field. Tried in
order."""

59
docutils/languages/ru.py Normal file
View file

@ -0,0 +1,59 @@
# -*- coding: utf-8 -*-
# $Id: ru.py 7125 2011-09-16 18:36:18Z milde $
# Author: Roman Suzi <rnd@onego.ru>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
Russian-language mappings for language-dependent features of Docutils.
"""
__docformat__ = 'reStructuredText'
labels = {
u'abstract': u'Аннотация',
u'address': u'Адрес',
u'attention': u'Внимание!',
u'author': u'Автор',
u'authors': u'Авторы',
u'caution': u'Осторожно!',
u'contact': u'Контакт',
u'contents': u'Содержание',
u'copyright': u'Права копирования',
u'danger': u'ОПАСНО!',
u'date': u'Дата',
u'dedication': u'Посвящение',
u'error': u'Ошибка',
u'hint': u'Совет',
u'important': u'Важно',
u'note': u'Примечание',
u'organization': u'Организация',
u'revision': u'Редакция',
u'status': u'Статус',
u'tip': u'Подсказка',
u'version': u'Версия',
u'warning': u'Предупреждение'}
"""Mapping of node class name to label text."""
bibliographic_fields = {
u'аннотация': u'abstract',
u'адрес': u'address',
u'автор': u'author',
u'авторы': u'authors',
u'контакт': u'contact',
u'права копирования': u'copyright',
u'дата': u'date',
u'посвящение': u'dedication',
u'организация': u'organization',
u'редакция': u'revision',
u'статус': u'status',
u'версия': u'version'}
"""Russian (lowcased) to canonical name mapping for bibliographic fields."""
author_separators = [';', ',']
"""List of separator strings for the 'Authors' bibliographic field. Tried in
order."""

58
docutils/languages/sk.py Normal file
View file

@ -0,0 +1,58 @@
# $Id: sk.py 4564 2006-05-21 20:44:42Z wiemann $
# Author: Miroslav Vasko <zemiak@zoznam.sk>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
Slovak-language mappings for language-dependent features of Docutils.
"""
__docformat__ = 'reStructuredText'
labels = {
'author': u'Autor',
'authors': u'Autori',
'organization': u'Organiz\u00E1cia',
'address': u'Adresa',
'contact': u'Kontakt',
'version': u'Verzia',
'revision': u'Rev\u00EDzia',
'status': u'Stav',
'date': u'D\u00E1tum',
'copyright': u'Copyright',
'dedication': u'Venovanie',
'abstract': u'Abstraktne',
'attention': u'Pozor!',
'caution': u'Opatrne!',
'danger': u'!NEBEZPE\u010cENSTVO!',
'error': u'Chyba',
'hint': u'Rada',
'important': u'D\u00F4le\u017Eit\u00E9',
'note': u'Pozn\u00E1mka',
'tip': u'Tip',
'warning': u'Varovanie',
'contents': u'Obsah'}
"""Mapping of node class name to label text."""
bibliographic_fields = {
u'autor': 'author',
u'autori': 'authors',
u'organiz\u00E1cia': 'organization',
u'adresa': 'address',
u'kontakt': 'contact',
u'verzia': 'version',
u'rev\u00EDzia': 'revision',
u'stav': 'status',
u'd\u00E1tum': 'date',
u'copyright': 'copyright',
u'venovanie': 'dedication',
u'abstraktne': 'abstract'}
"""Slovak (lowcased) to canonical name mapping for bibliographic fields."""
author_separators = [';', ',']
"""List of separator strings for the 'Authors' bibliographic field. Tried in
order."""

59
docutils/languages/sv.py Normal file
View file

@ -0,0 +1,59 @@
# $Id: sv.py 4564 2006-05-21 20:44:42Z wiemann $
# Author: Adam Chodorowski <chodorowski@users.sourceforge.net>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
Swedish language mappings for language-dependent features of Docutils.
"""
__docformat__ = 'reStructuredText'
labels = {
'author': u'F\u00f6rfattare',
'authors': u'F\u00f6rfattare',
'organization': u'Organisation',
'address': u'Adress',
'contact': u'Kontakt',
'version': u'Version',
'revision': u'Revision',
'status': u'Status',
'date': u'Datum',
'copyright': u'Copyright',
'dedication': u'Dedikation',
'abstract': u'Sammanfattning',
'attention': u'Observera!',
'caution': u'Varning!',
'danger': u'FARA!',
'error': u'Fel',
'hint': u'V\u00e4gledning',
'important': u'Viktigt',
'note': u'Notera',
'tip': u'Tips',
'warning': u'Varning',
'contents': u'Inneh\u00e5ll' }
"""Mapping of node class name to label text."""
bibliographic_fields = {
# 'Author' and 'Authors' identical in Swedish; assume the plural:
u'f\u00f6rfattare': 'authors',
u' n/a': 'author',
u'organisation': 'organization',
u'adress': 'address',
u'kontakt': 'contact',
u'version': 'version',
u'revision': 'revision',
u'status': 'status',
u'datum': 'date',
u'copyright': 'copyright',
u'dedikation': 'dedication',
u'sammanfattning': 'abstract' }
"""Swedish (lowcased) to canonical name mapping for bibliographic fields."""
author_separators = [';', ',']
"""List of separator strings for the 'Authors' bibliographic field. Tried in
order."""

View file

@ -0,0 +1,67 @@
# -*- coding: utf-8 -*-
# $Id: zh_cn.py 4564 2006-05-21 20:44:42Z wiemann $
# Author: Pan Junyong <panjy@zopechina.com>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
Simplified Chinese language mappings for language-dependent features
of Docutils.
"""
__docformat__ = 'reStructuredText'
labels = {
# fixed: language-dependent
'author': u'作者',
'authors': u'作者群',
'organization': u'组织',
'address': u'地址',
'contact': u'联系',
'version': u'版本',
'revision': u'修订',
'status': u'状态',
'date': u'日期',
'copyright': u'版权',
'dedication': u'献辞',
'abstract': u'摘要',
'attention': u'注意',
'caution': u'小心',
'danger': u'危险',
'error': u'错误',
'hint': u'提示',
'important': u'重要',
'note': u'注解',
'tip': u'技巧',
'warning': u'警告',
'contents': u'目录',
}
"""Mapping of node class name to label text."""
bibliographic_fields = {
# language-dependent: fixed
u'作者': 'author',
u'作者群': 'authors',
u'组织': 'organization',
u'地址': 'address',
u'联系': 'contact',
u'版本': 'version',
u'修订': 'revision',
u'状态': 'status',
u'时间': 'date',
u'版权': 'copyright',
u'献辞': 'dedication',
u'摘要': 'abstract'}
"""Simplified Chinese to canonical name mapping for bibliographic fields."""
author_separators = [';', ',',
u'\uff1b', # ''
u'\uff0c', # ''
u'\u3001', # '、'
]
"""List of separator strings for the 'Authors' bibliographic field. Tried in
order."""

View file

@ -0,0 +1,66 @@
# -*- coding: utf-8 -*-
# $Id: zh_tw.py 4564 2006-05-21 20:44:42Z wiemann $
# Author: Joe YS Jaw <joeysj@users.sourceforge.net>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
Traditional Chinese language mappings for language-dependent features of Docutils.
"""
__docformat__ = 'reStructuredText'
labels = {
# fixed: language-dependent
'author': u'\u4f5c\u8005', # '作者' <-- Chinese word
'authors': u'\u4f5c\u8005\u7fa4', # '作者群',
'organization': u'\u7d44\u7e54', # '組織',
'address': u'\u5730\u5740', # '地址',
'contact': u'\u9023\u7d61', # '連絡',
'version': u'\u7248\u672c', # '版本',
'revision': u'\u4fee\u8a02', # '修訂',
'status': u'\u72c0\u614b', # '狀態',
'date': u'\u65e5\u671f', # '日期',
'copyright': u'\u7248\u6b0a', # '版權',
'dedication': u'\u984c\u737b', # '題獻',
'abstract': u'\u6458\u8981', # '摘要',
'attention': u'\u6ce8\u610f\uff01', # '注意!',
'caution': u'\u5c0f\u5fc3\uff01', # '小心!',
'danger': u'\uff01\u5371\u96aa\uff01', # '!危險!',
'error': u'\u932f\u8aa4', # '錯誤',
'hint': u'\u63d0\u793a', # '提示',
'important': u'\u91cd\u8981', # '注意!',
'note': u'\u8a3b\u91cb', # '註釋',
'tip': u'\u79d8\u8a23', # '秘訣',
'warning': u'\u8b66\u544a', # '警告',
'contents': u'\u76ee\u9304' # '目錄'
}
"""Mapping of node class name to label text."""
bibliographic_fields = {
# language-dependent: fixed
'author (translation required)': 'author',
'authors (translation required)': 'authors',
'organization (translation required)': 'organization',
'address (translation required)': 'address',
'contact (translation required)': 'contact',
'version (translation required)': 'version',
'revision (translation required)': 'revision',
'status (translation required)': 'status',
'date (translation required)': 'date',
'copyright (translation required)': 'copyright',
'dedication (translation required)': 'dedication',
'abstract (translation required)': 'abstract'}
"""Traditional Chinese to canonical name mapping for bibliographic fields."""
author_separators = [';', ',',
u'\uff1b', # ''
u'\uff0c', # ''
u'\u3001', # '、'
]
"""List of separator strings for the 'Authors' bibliographic field. Tried in
order."""

47
docutils/math/__init__.py Normal file
View file

@ -0,0 +1,47 @@
# :Id: $Id: __init__.py 7218 2011-11-08 17:42:40Z milde $
# :Author: Guenter Milde.
# :License: Released under the terms of the `2-Clause BSD license`_, in short:
#
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved.
# This file is offered as-is, without any warranty.
#
# .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause
"""
This is the Docutils (Python Documentation Utilities) "math" sub-package.
It contains various modules for conversion between different math formats
(LaTeX, MathML, HTML).
:math2html: LaTeX math -> HTML conversion from eLyXer
:latex2mathml: LaTeX math -> presentational MathML
:unichar2tex: Unicode character to LaTeX math translation table
:tex2unichar: LaTeX math to Unicode character translation dictionaries
"""
# helpers for Docutils math support
# =================================
def pick_math_environment(code, numbered=False):
"""Return the right math environment to display `code`.
The test simply looks for line-breaks (``\\``) outside environments.
Multi-line formulae are set with ``align``, one-liners with
``equation``.
If `numbered` evaluates to ``False``, the "starred" versions are used
to suppress numbering.
"""
# cut out environment content:
chunks = code.split(r'\begin{')
toplevel_code = ''.join([chunk.split(r'\end{')[-1]
for chunk in chunks])
if toplevel_code.find(r'\\') >= 0:
env = 'align'
else:
env = 'equation'
if not numbered:
env += '*'
return env

View file

@ -0,0 +1,560 @@
#!/usr/bin/env python
# -*- coding: utf8 -*-
# :Id: $Id: latex2mathml.py 7218 2011-11-08 17:42:40Z milde $
# :Copyright: © 2010 Günter Milde.
# Based on rst2mathml.py from the latex_math sandbox project
# © 2005 Jens Jørgen Mortensen
# :License: Released under the terms of the `2-Clause BSD license`_, in short:
#
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved.
# This file is offered as-is, without any warranty.
#
# .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause
"""Convert LaTex math code into presentational MathML"""
# Based on the `latex_math` sandbox project by Jens Jørgen Mortensen
import docutils.math.tex2unichar as tex2unichar
# TeX spacing combining
over = {'acute': u'\u00B4', # u'\u0301',
'bar': u'\u00AF', # u'\u0304',
'breve': u'\u02D8', # u'\u0306',
'check': u'\u02C7', # u'\u030C',
'dot': u'\u02D9', # u'\u0307',
'ddot': u'\u00A8', # u'\u0308',
'dddot': u'\u20DB',
'grave': u'`', # u'\u0300',
'hat': u'^', # u'\u0302',
'mathring': u'\u02DA', # u'\u030A',
'overleftrightarrow': u'\u20e1',
# 'overline': # u'\u0305',
'tilde': u'\u02DC', # u'\u0303',
'vec': u'\u20D7'}
Greek = { # Capital Greek letters: (upright in TeX style)
'Phi':u'\u03a6', 'Xi':u'\u039e', 'Sigma':u'\u03a3',
'Psi':u'\u03a8', 'Delta':u'\u0394', 'Theta':u'\u0398',
'Upsilon':u'\u03d2', 'Pi':u'\u03a0', 'Omega':u'\u03a9',
'Gamma':u'\u0393', 'Lambda':u'\u039b'}
letters = tex2unichar.mathalpha
special = tex2unichar.mathbin # Binary symbols
special.update(tex2unichar.mathrel) # Relation symbols, arrow symbols
special.update(tex2unichar.mathord) # Miscellaneous symbols
special.update(tex2unichar.mathop) # Variable-sized symbols
special.update(tex2unichar.mathopen) # Braces
special.update(tex2unichar.mathclose) # Braces
special.update(tex2unichar.mathfence)
sumintprod = ''.join([special[symbol] for symbol in
['sum', 'int', 'oint', 'prod']])
functions = ['arccos', 'arcsin', 'arctan', 'arg', 'cos', 'cosh',
'cot', 'coth', 'csc', 'deg', 'det', 'dim',
'exp', 'gcd', 'hom', 'inf', 'ker', 'lg',
'lim', 'liminf', 'limsup', 'ln', 'log', 'max',
'min', 'Pr', 'sec', 'sin', 'sinh', 'sup',
'tan', 'tanh',
'injlim', 'varinjlim', 'varlimsup',
'projlim', 'varliminf', 'varprojlim']
mathbb = {
'A': u'\U0001D538',
'B': u'\U0001D539',
'C': u'\u2102',
'D': u'\U0001D53B',
'E': u'\U0001D53C',
'F': u'\U0001D53D',
'G': u'\U0001D53E',
'H': u'\u210D',
'I': u'\U0001D540',
'J': u'\U0001D541',
'K': u'\U0001D542',
'L': u'\U0001D543',
'M': u'\U0001D544',
'N': u'\u2115',
'O': u'\U0001D546',
'P': u'\u2119',
'Q': u'\u211A',
'R': u'\u211D',
'S': u'\U0001D54A',
'T': u'\U0001D54B',
'U': u'\U0001D54C',
'V': u'\U0001D54D',
'W': u'\U0001D54E',
'X': u'\U0001D54F',
'Y': u'\U0001D550',
'Z': u'\u2124',
}
mathscr = {
'A': u'\U0001D49C',
'B': u'\u212C', # bernoulli function
'C': u'\U0001D49E',
'D': u'\U0001D49F',
'E': u'\u2130',
'F': u'\u2131',
'G': u'\U0001D4A2',
'H': u'\u210B', # hamiltonian
'I': u'\u2110',
'J': u'\U0001D4A5',
'K': u'\U0001D4A6',
'L': u'\u2112', # lagrangian
'M': u'\u2133', # physics m-matrix
'N': u'\U0001D4A9',
'O': u'\U0001D4AA',
'P': u'\U0001D4AB',
'Q': u'\U0001D4AC',
'R': u'\u211B',
'S': u'\U0001D4AE',
'T': u'\U0001D4AF',
'U': u'\U0001D4B0',
'V': u'\U0001D4B1',
'W': u'\U0001D4B2',
'X': u'\U0001D4B3',
'Y': u'\U0001D4B4',
'Z': u'\U0001D4B5',
'a': u'\U0001D4B6',
'b': u'\U0001D4B7',
'c': u'\U0001D4B8',
'd': u'\U0001D4B9',
'e': u'\u212F',
'f': u'\U0001D4BB',
'g': u'\u210A',
'h': u'\U0001D4BD',
'i': u'\U0001D4BE',
'j': u'\U0001D4BF',
'k': u'\U0001D4C0',
'l': u'\U0001D4C1',
'm': u'\U0001D4C2',
'n': u'\U0001D4C3',
'o': u'\u2134', # order of
'p': u'\U0001D4C5',
'q': u'\U0001D4C6',
'r': u'\U0001D4C7',
's': u'\U0001D4C8',
't': u'\U0001D4C9',
'u': u'\U0001D4CA',
'v': u'\U0001D4CB',
'w': u'\U0001D4CC',
'x': u'\U0001D4CD',
'y': u'\U0001D4CE',
'z': u'\U0001D4CF',
}
negatables = {'=': u'\u2260',
'\in': u'\u2209',
'\equiv': u'\u2262'}
# LaTeX to MathML translation stuff:
class math:
"""Base class for MathML elements."""
nchildren = 1000000
"""Required number of children"""
def __init__(self, children=None, inline=None):
"""math([children]) -> MathML element
children can be one child or a list of children."""
self.children = []
if children is not None:
if type(children) is list:
for child in children:
self.append(child)
else:
# Only one child:
self.append(children)
if inline is not None:
self.inline = inline
def __repr__(self):
if hasattr(self, 'children'):
return self.__class__.__name__ + '(%s)' % \
','.join([repr(child) for child in self.children])
else:
return self.__class__.__name__
def full(self):
"""Room for more children?"""
return len(self.children) >= self.nchildren
def append(self, child):
"""append(child) -> element
Appends child and returns self if self is not full or first
non-full parent."""
assert not self.full()
self.children.append(child)
child.parent = self
node = self
while node.full():
node = node.parent
return node
def delete_child(self):
"""delete_child() -> child
Delete last child and return it."""
child = self.children[-1]
del self.children[-1]
return child
def close(self):
"""close() -> parent
Close element and return first non-full element."""
parent = self.parent
while parent.full():
parent = parent.parent
return parent
def xml(self):
"""xml() -> xml-string"""
return self.xml_start() + self.xml_body() + self.xml_end()
def xml_start(self):
if not hasattr(self, 'inline'):
return ['<%s>' % self.__class__.__name__]
xmlns = 'http://www.w3.org/1998/Math/MathML'
if self.inline:
return ['<math xmlns="%s">' % xmlns]
else:
return ['<math xmlns="%s" mode="display">' % xmlns]
def xml_end(self):
return ['</%s>' % self.__class__.__name__]
def xml_body(self):
xml = []
for child in self.children:
xml.extend(child.xml())
return xml
class mrow(math):
def xml_start(self):
return ['\n<%s>' % self.__class__.__name__]
class mtable(math):
def xml_start(self):
return ['\n<%s>' % self.__class__.__name__]
class mtr(mrow): pass
class mtd(mrow): pass
class mx(math):
"""Base class for mo, mi, and mn"""
nchildren = 0
def __init__(self, data):
self.data = data
def xml_body(self):
return [self.data]
class mo(mx):
translation = {'<': '&lt;', '>': '&gt;'}
def xml_body(self):
return [self.translation.get(self.data, self.data)]
class mi(mx): pass
class mn(mx): pass
class msub(math):
nchildren = 2
class msup(math):
nchildren = 2
class msqrt(math):
nchildren = 1
class mroot(math):
nchildren = 2
class mfrac(math):
nchildren = 2
class msubsup(math):
nchildren = 3
def __init__(self, children=None, reversed=False):
self.reversed = reversed
math.__init__(self, children)
def xml(self):
if self.reversed:
## self.children[1:3] = self.children[2:0:-1]
self.children[1:3] = [self.children[2], self.children[1]]
self.reversed = False
return math.xml(self)
class mfenced(math):
translation = {'\\{': '{', '\\langle': u'\u2329',
'\\}': '}', '\\rangle': u'\u232A',
'.': ''}
def __init__(self, par):
self.openpar = par
math.__init__(self)
def xml_start(self):
open = self.translation.get(self.openpar, self.openpar)
close = self.translation.get(self.closepar, self.closepar)
return ['<mfenced open="%s" close="%s">' % (open, close)]
class mspace(math):
nchildren = 0
class mstyle(math):
def __init__(self, children=None, nchildren=None, **kwargs):
if nchildren is not None:
self.nchildren = nchildren
math.__init__(self, children)
self.attrs = kwargs
def xml_start(self):
return ['<mstyle '] + ['%s="%s"' % item
for item in self.attrs.items()] + ['>']
class mover(math):
nchildren = 2
def __init__(self, children=None, reversed=False):
self.reversed = reversed
math.__init__(self, children)
def xml(self):
if self.reversed:
self.children.reverse()
self.reversed = False
return math.xml(self)
class munder(math):
nchildren = 2
class munderover(math):
nchildren = 3
def __init__(self, children=None):
math.__init__(self, children)
class mtext(math):
nchildren = 0
def __init__(self, text):
self.text = text
def xml_body(self):
return [self.text]
def parse_latex_math(string, inline=True):
"""parse_latex_math(string [,inline]) -> MathML-tree
Returns a MathML-tree parsed from string. inline=True is for
inline math and inline=False is for displayed math.
tree is the whole tree and node is the current element."""
# Normalize white-space:
string = ' '.join(string.split())
if inline:
node = mrow()
tree = math(node, inline=True)
else:
node = mtd()
tree = math(mtable(mtr(node)), inline=False)
while len(string) > 0:
n = len(string)
c = string[0]
skip = 1 # number of characters consumed
if n > 1:
c2 = string[1]
else:
c2 = ''
## print n, string, c, c2, node.__class__.__name__
if c == ' ':
pass
elif c == '\\':
if c2 in '{}':
node = node.append(mo(c2))
skip = 2
elif c2 == ' ':
node = node.append(mspace())
skip = 2
elif c2 == ',': # TODO: small space
node = node.append(mspace())
skip = 2
elif c2.isalpha():
# We have a LaTeX-name:
i = 2
while i < n and string[i].isalpha():
i += 1
name = string[1:i]
node, skip = handle_keyword(name, node, string[i:])
skip += i
elif c2 == '\\':
# End of a row:
entry = mtd()
row = mtr(entry)
node.close().close().append(row)
node = entry
skip = 2
else:
raise SyntaxError(ur'Syntax error: "%s%s"' % (c, c2))
elif c.isalpha():
node = node.append(mi(c))
elif c.isdigit():
node = node.append(mn(c))
elif c in "+-*/=()[]|<>,.!?':;@":
node = node.append(mo(c))
elif c == '_':
child = node.delete_child()
if isinstance(child, msup):
sub = msubsup(child.children, reversed=True)
elif isinstance(child, mo) and child.data in sumintprod:
sub = munder(child)
else:
sub = msub(child)
node.append(sub)
node = sub
elif c == '^':
child = node.delete_child()
if isinstance(child, msub):
sup = msubsup(child.children)
elif isinstance(child, mo) and child.data in sumintprod:
sup = mover(child)
elif (isinstance(child, munder) and
child.children[0].data in sumintprod):
sup = munderover(child.children)
else:
sup = msup(child)
node.append(sup)
node = sup
elif c == '{':
row = mrow()
node.append(row)
node = row
elif c == '}':
node = node.close()
elif c == '&':
entry = mtd()
node.close().append(entry)
node = entry
else:
raise SyntaxError(ur'Illegal character: "%s"' % c)
string = string[skip:]
return tree
def handle_keyword(name, node, string):
skip = 0
if len(string) > 0 and string[0] == ' ':
string = string[1:]
skip = 1
if name == 'begin':
if not string.startswith('{matrix}'):
raise SyntaxError(u'Environment not supported! '
u'Supported environment: "matrix".')
skip += 8
entry = mtd()
table = mtable(mtr(entry))
node.append(table)
node = entry
elif name == 'end':
if not string.startswith('{matrix}'):
raise SyntaxError(ur'Expected "\end{matrix}"!')
skip += 8
node = node.close().close().close()
elif name in ('text', 'mathrm'):
if string[0] != '{':
raise SyntaxError(ur'Expected "\text{...}"!')
i = string.find('}')
if i == -1:
raise SyntaxError(ur'Expected "\text{...}"!')
node = node.append(mtext(string[1:i]))
skip += i + 1
elif name == 'sqrt':
sqrt = msqrt()
node.append(sqrt)
node = sqrt
elif name == 'frac':
frac = mfrac()
node.append(frac)
node = frac
elif name == 'left':
for par in ['(', '[', '|', '\\{', '\\langle', '.']:
if string.startswith(par):
break
else:
raise SyntaxError(u'Missing left-brace!')
fenced = mfenced(par)
node.append(fenced)
row = mrow()
fenced.append(row)
node = row
skip += len(par)
elif name == 'right':
for par in [')', ']', '|', '\\}', '\\rangle', '.']:
if string.startswith(par):
break
else:
raise SyntaxError(u'Missing right-brace!')
node = node.close()
node.closepar = par
node = node.close()
skip += len(par)
elif name == 'not':
for operator in negatables:
if string.startswith(operator):
break
else:
raise SyntaxError(ur'Expected something to negate: "\not ..."!')
node = node.append(mo(negatables[operator]))
skip += len(operator)
elif name == 'mathbf':
style = mstyle(nchildren=1, fontweight='bold')
node.append(style)
node = style
elif name == 'mathbb':
if string[0] != '{' or not string[1].isupper() or string[2] != '}':
raise SyntaxError(ur'Expected something like "\mathbb{A}"!')
node = node.append(mi(mathbb[string[1]]))
skip += 3
elif name in ('mathscr', 'mathcal'):
if string[0] != '{' or string[2] != '}':
raise SyntaxError(ur'Expected something like "\mathscr{A}"!')
node = node.append(mi(mathscr[string[1]]))
skip += 3
elif name == 'colon': # "normal" colon, not binary operator
node = node.append(mo(':')) # TODO: add ``lspace="0pt"``
elif name in Greek: # Greek capitals (upright in "TeX style")
node = node.append(mo(Greek[name]))
# TODO: "ISO style" sets them italic. Could we use a class argument
# to enable styling via CSS?
elif name in letters:
node = node.append(mi(letters[name]))
elif name in special:
node = node.append(mo(special[name]))
elif name in functions:
node = node.append(mo(name))
elif name in over:
ovr = mover(mo(over[name]), reversed=True)
node.append(ovr)
node = ovr
else:
raise SyntaxError(u'Unknown LaTeX command: ' + name)
return node, skip

5254
docutils/math/math2html.py Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,662 @@
# -*- coding: utf8 -*-
# LaTeX math to Unicode symbols translation dictionaries.
# Generated with ``write_tex2unichar.py`` from the data in
# http://milde.users.sourceforge.net/LUCR/Math/
# Includes commands from: wasysym, stmaryrd, mathdots, mathabx, esint, bbold, amsxtra, amsmath, amssymb, standard LaTeX
mathaccent = {
'acute': u'\u0301', # x́ COMBINING ACUTE ACCENT
'bar': u'\u0304', # x̄ COMBINING MACRON
'breve': u'\u0306', # x̆ COMBINING BREVE
'check': u'\u030c', # x̌ COMBINING CARON
'ddddot': u'\u20dc', # x⃜ COMBINING FOUR DOTS ABOVE
'dddot': u'\u20db', # x⃛ COMBINING THREE DOTS ABOVE
'ddot': u'\u0308', # ẍ COMBINING DIAERESIS
'dot': u'\u0307', # ẋ COMBINING DOT ABOVE
'grave': u'\u0300', # x̀ COMBINING GRAVE ACCENT
'hat': u'\u0302', # x̂ COMBINING CIRCUMFLEX ACCENT
'mathring': u'\u030a', # x̊ COMBINING RING ABOVE
'not': u'\u0338', # x̸ COMBINING LONG SOLIDUS OVERLAY
'overleftarrow': u'\u20d6', # x⃖ COMBINING LEFT ARROW ABOVE
'overleftrightarrow': u'\u20e1', # x⃡ COMBINING LEFT RIGHT ARROW ABOVE
'overline': u'\u0305', # x̅ COMBINING OVERLINE
'overrightarrow': u'\u20d7', # x⃗ COMBINING RIGHT ARROW ABOVE
'tilde': u'\u0303', # x̃ COMBINING TILDE
'underbar': u'\u0331', # x̱ COMBINING MACRON BELOW
'underleftarrow': u'\u20ee', # x⃮ COMBINING LEFT ARROW BELOW
'underline': u'\u0332', # x̲ COMBINING LOW LINE
'underrightarrow': u'\u20ef', # x⃯ COMBINING RIGHT ARROW BELOW
'vec': u'\u20d7', # x⃗ COMBINING RIGHT ARROW ABOVE
'widehat': u'\u0302', # x̂ COMBINING CIRCUMFLEX ACCENT
'widetilde': u'\u0303', # x̃ COMBINING TILDE
}
mathalpha = {
'Bbbk': u'\U0001d55c', # 𝕜 MATHEMATICAL DOUBLE-STRUCK SMALL K
'Delta': u'\u0394', # Δ GREEK CAPITAL LETTER DELTA
'Gamma': u'\u0393', # Γ GREEK CAPITAL LETTER GAMMA
'Im': u'\u2111', # BLACK-LETTER CAPITAL I
'Lambda': u'\u039b', # Λ GREEK CAPITAL LETTER LAMDA
'Omega': u'\u03a9', # Ω GREEK CAPITAL LETTER OMEGA
'Phi': u'\u03a6', # Φ GREEK CAPITAL LETTER PHI
'Pi': u'\u03a0', # Π GREEK CAPITAL LETTER PI
'Psi': u'\u03a8', # Ψ GREEK CAPITAL LETTER PSI
'Re': u'\u211c', # BLACK-LETTER CAPITAL R
'Sigma': u'\u03a3', # Σ GREEK CAPITAL LETTER SIGMA
'Theta': u'\u0398', # Θ GREEK CAPITAL LETTER THETA
'Upsilon': u'\u03a5', # Υ GREEK CAPITAL LETTER UPSILON
'Xi': u'\u039e', # Ξ GREEK CAPITAL LETTER XI
'aleph': u'\u2135', # ℵ ALEF SYMBOL
'alpha': u'\u03b1', # α GREEK SMALL LETTER ALPHA
'beta': u'\u03b2', # β GREEK SMALL LETTER BETA
'beth': u'\u2136', # ℶ BET SYMBOL
'chi': u'\u03c7', # χ GREEK SMALL LETTER CHI
'daleth': u'\u2138', # ℸ DALET SYMBOL
'delta': u'\u03b4', # δ GREEK SMALL LETTER DELTA
'digamma': u'\u03dc', # Ϝ GREEK LETTER DIGAMMA
'ell': u'\u2113', # SCRIPT SMALL L
'epsilon': u'\u03f5', # ϵ GREEK LUNATE EPSILON SYMBOL
'eta': u'\u03b7', # η GREEK SMALL LETTER ETA
'eth': u'\xf0', # ð LATIN SMALL LETTER ETH
'gamma': u'\u03b3', # γ GREEK SMALL LETTER GAMMA
'gimel': u'\u2137', # ℷ GIMEL SYMBOL
'hbar': u'\u210f', # ℏ PLANCK CONSTANT OVER TWO PI
'hslash': u'\u210f', # ℏ PLANCK CONSTANT OVER TWO PI
'imath': u'\u0131', # ı LATIN SMALL LETTER DOTLESS I
'iota': u'\u03b9', # ι GREEK SMALL LETTER IOTA
'jmath': u'\u0237', # ȷ LATIN SMALL LETTER DOTLESS J
'kappa': u'\u03ba', # κ GREEK SMALL LETTER KAPPA
'lambda': u'\u03bb', # λ GREEK SMALL LETTER LAMDA
'mu': u'\u03bc', # μ GREEK SMALL LETTER MU
'nu': u'\u03bd', # ν GREEK SMALL LETTER NU
'omega': u'\u03c9', # ω GREEK SMALL LETTER OMEGA
'phi': u'\u03d5', # ϕ GREEK PHI SYMBOL
'pi': u'\u03c0', # π GREEK SMALL LETTER PI
'psi': u'\u03c8', # ψ GREEK SMALL LETTER PSI
'rho': u'\u03c1', # ρ GREEK SMALL LETTER RHO
'sigma': u'\u03c3', # σ GREEK SMALL LETTER SIGMA
'tau': u'\u03c4', # τ GREEK SMALL LETTER TAU
'theta': u'\u03b8', # θ GREEK SMALL LETTER THETA
'upsilon': u'\u03c5', # υ GREEK SMALL LETTER UPSILON
'varDelta': u'\U0001d6e5', # 𝛥 MATHEMATICAL ITALIC CAPITAL DELTA
'varGamma': u'\U0001d6e4', # 𝛤 MATHEMATICAL ITALIC CAPITAL GAMMA
'varLambda': u'\U0001d6ec', # 𝛬 MATHEMATICAL ITALIC CAPITAL LAMDA
'varOmega': u'\U0001d6fa', # 𝛺 MATHEMATICAL ITALIC CAPITAL OMEGA
'varPhi': u'\U0001d6f7', # 𝛷 MATHEMATICAL ITALIC CAPITAL PHI
'varPi': u'\U0001d6f1', # 𝛱 MATHEMATICAL ITALIC CAPITAL PI
'varPsi': u'\U0001d6f9', # 𝛹 MATHEMATICAL ITALIC CAPITAL PSI
'varSigma': u'\U0001d6f4', # 𝛴 MATHEMATICAL ITALIC CAPITAL SIGMA
'varTheta': u'\U0001d6e9', # 𝛩 MATHEMATICAL ITALIC CAPITAL THETA
'varUpsilon': u'\U0001d6f6', # 𝛶 MATHEMATICAL ITALIC CAPITAL UPSILON
'varXi': u'\U0001d6ef', # 𝛯 MATHEMATICAL ITALIC CAPITAL XI
'varepsilon': u'\u03b5', # ε GREEK SMALL LETTER EPSILON
'varkappa': u'\U0001d718', # 𝜘 MATHEMATICAL ITALIC KAPPA SYMBOL
'varphi': u'\u03c6', # φ GREEK SMALL LETTER PHI
'varpi': u'\u03d6', # ϖ GREEK PI SYMBOL
'varrho': u'\u03f1', # ϱ GREEK RHO SYMBOL
'varsigma': u'\u03c2', # ς GREEK SMALL LETTER FINAL SIGMA
'vartheta': u'\u03d1', # ϑ GREEK THETA SYMBOL
'wp': u'\u2118', # ℘ SCRIPT CAPITAL P
'xi': u'\u03be', # ξ GREEK SMALL LETTER XI
'zeta': u'\u03b6', # ζ GREEK SMALL LETTER ZETA
}
mathbin = {
'Cap': u'\u22d2', # ⋒ DOUBLE INTERSECTION
'Circle': u'\u25cb', # ○ WHITE CIRCLE
'Cup': u'\u22d3', # ⋓ DOUBLE UNION
'LHD': u'\u25c0', # ◀ BLACK LEFT-POINTING TRIANGLE
'RHD': u'\u25b6', # ▶ BLACK RIGHT-POINTING TRIANGLE
'amalg': u'\u2a3f', # ⨿ AMALGAMATION OR COPRODUCT
'ast': u'\u2217', # ASTERISK OPERATOR
'barwedge': u'\u22bc', # ⊼ NAND
'bigtriangledown': u'\u25bd', # ▽ WHITE DOWN-POINTING TRIANGLE
'bigtriangleup': u'\u25b3', # △ WHITE UP-POINTING TRIANGLE
'bindnasrepma': u'\u214b', # ⅋ TURNED AMPERSAND
'blacklozenge': u'\u29eb', # ⧫ BLACK LOZENGE
'blacktriangledown': u'\u25be', # ▾ BLACK DOWN-POINTING SMALL TRIANGLE
'blacktriangleleft': u'\u25c2', # ◂ BLACK LEFT-POINTING SMALL TRIANGLE
'blacktriangleright': u'\u25b8', # ▸ BLACK RIGHT-POINTING SMALL TRIANGLE
'blacktriangleup': u'\u25b4', # ▴ BLACK UP-POINTING SMALL TRIANGLE
'boxast': u'\u29c6', # ⧆ SQUARED ASTERISK
'boxbar': u'\u25eb', # ◫ WHITE SQUARE WITH VERTICAL BISECTING LINE
'boxbox': u'\u29c8', # ⧈ SQUARED SQUARE
'boxbslash': u'\u29c5', # ⧅ SQUARED FALLING DIAGONAL SLASH
'boxcircle': u'\u29c7', # ⧇ SQUARED SMALL CIRCLE
'boxdot': u'\u22a1', # ⊡ SQUARED DOT OPERATOR
'boxminus': u'\u229f', # ⊟ SQUARED MINUS
'boxplus': u'\u229e', # ⊞ SQUARED PLUS
'boxslash': u'\u29c4', # ⧄ SQUARED RISING DIAGONAL SLASH
'boxtimes': u'\u22a0', # ⊠ SQUARED TIMES
'bullet': u'\u2219', # ∙ BULLET OPERATOR
'cap': u'\u2229', # ∩ INTERSECTION
'cdot': u'\u22c5', # ⋅ DOT OPERATOR
'circ': u'\u2218', # ∘ RING OPERATOR
'circledast': u'\u229b', # ⊛ CIRCLED ASTERISK OPERATOR
'circledcirc': u'\u229a', # ⊚ CIRCLED RING OPERATOR
'circleddash': u'\u229d', # ⊝ CIRCLED DASH
'cup': u'\u222a', # UNION
'curlyvee': u'\u22ce', # ⋎ CURLY LOGICAL OR
'curlywedge': u'\u22cf', # ⋏ CURLY LOGICAL AND
'dagger': u'\u2020', # † DAGGER
'ddagger': u'\u2021', # ‡ DOUBLE DAGGER
'diamond': u'\u22c4', # ⋄ DIAMOND OPERATOR
'div': u'\xf7', # ÷ DIVISION SIGN
'divideontimes': u'\u22c7', # ⋇ DIVISION TIMES
'dotplus': u'\u2214', # ∔ DOT PLUS
'doublebarwedge': u'\u2a5e', # ⩞ LOGICAL AND WITH DOUBLE OVERBAR
'intercal': u'\u22ba', # ⊺ INTERCALATE
'interleave': u'\u2af4', # ⫴ TRIPLE VERTICAL BAR BINARY RELATION
'land': u'\u2227', # ∧ LOGICAL AND
'leftthreetimes': u'\u22cb', # ⋋ LEFT SEMIDIRECT PRODUCT
'lhd': u'\u25c1', # ◁ WHITE LEFT-POINTING TRIANGLE
'lor': u'\u2228', # LOGICAL OR
'ltimes': u'\u22c9', # ⋉ LEFT NORMAL FACTOR SEMIDIRECT PRODUCT
'mp': u'\u2213', # ∓ MINUS-OR-PLUS SIGN
'odot': u'\u2299', # ⊙ CIRCLED DOT OPERATOR
'ominus': u'\u2296', # ⊖ CIRCLED MINUS
'oplus': u'\u2295', # ⊕ CIRCLED PLUS
'oslash': u'\u2298', # ⊘ CIRCLED DIVISION SLASH
'otimes': u'\u2297', # ⊗ CIRCLED TIMES
'pm': u'\xb1', # ± PLUS-MINUS SIGN
'rhd': u'\u25b7', # ▷ WHITE RIGHT-POINTING TRIANGLE
'rightthreetimes': u'\u22cc', # ⋌ RIGHT SEMIDIRECT PRODUCT
'rtimes': u'\u22ca', # ⋊ RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT
'setminus': u'\u29f5', # REVERSE SOLIDUS OPERATOR
'slash': u'\u2215', # DIVISION SLASH
'smallsetminus': u'\u2216', # SET MINUS
'smalltriangledown': u'\u25bf', # ▿ WHITE DOWN-POINTING SMALL TRIANGLE
'smalltriangleleft': u'\u25c3', # ◃ WHITE LEFT-POINTING SMALL TRIANGLE
'smalltriangleright': u'\u25b9', # ▹ WHITE RIGHT-POINTING SMALL TRIANGLE
'smalltriangleup': u'\u25b5', # ▵ WHITE UP-POINTING SMALL TRIANGLE
'sqcap': u'\u2293', # ⊓ SQUARE CAP
'sqcup': u'\u2294', # ⊔ SQUARE CUP
'sslash': u'\u2afd', # ⫽ DOUBLE SOLIDUS OPERATOR
'star': u'\u22c6', # ⋆ STAR OPERATOR
'talloblong': u'\u2afe', # ⫾ WHITE VERTICAL BAR
'times': u'\xd7', # × MULTIPLICATION SIGN
'triangle': u'\u25b3', # △ WHITE UP-POINTING TRIANGLE
'triangledown': u'\u25bf', # ▿ WHITE DOWN-POINTING SMALL TRIANGLE
'triangleleft': u'\u25c3', # ◃ WHITE LEFT-POINTING SMALL TRIANGLE
'triangleright': u'\u25b9', # ▹ WHITE RIGHT-POINTING SMALL TRIANGLE
'uplus': u'\u228e', # ⊎ MULTISET UNION
'vartriangle': u'\u25b3', # △ WHITE UP-POINTING TRIANGLE
'vee': u'\u2228', # LOGICAL OR
'veebar': u'\u22bb', # ⊻ XOR
'wedge': u'\u2227', # ∧ LOGICAL AND
'wr': u'\u2240', # ≀ WREATH PRODUCT
}
mathclose = {
'Rbag': u'\u27c6', # ⟆ RIGHT S-SHAPED BAG DELIMITER
'lrcorner': u'\u231f', # ⌟ BOTTOM RIGHT CORNER
'rangle': u'\u27e9', # ⟩ MATHEMATICAL RIGHT ANGLE BRACKET
'rbag': u'\u27c6', # ⟆ RIGHT S-SHAPED BAG DELIMITER
'rbrace': u'}', # } RIGHT CURLY BRACKET
'rbrack': u']', # ] RIGHT SQUARE BRACKET
'rceil': u'\u2309', # ⌉ RIGHT CEILING
'rfloor': u'\u230b', # ⌋ RIGHT FLOOR
'rgroup': u'\u27ef', # ⟯ MATHEMATICAL RIGHT FLATTENED PARENTHESIS
'rrbracket': u'\u27e7', # ⟧ MATHEMATICAL RIGHT WHITE SQUARE BRACKET
'rrparenthesis': u'\u2988', # ⦈ Z NOTATION RIGHT IMAGE BRACKET
'urcorner': u'\u231d', # ⌝ TOP RIGHT CORNER
'}': u'}', # } RIGHT CURLY BRACKET
}
mathfence = {
'Vert': u'\u2016', # ‖ DOUBLE VERTICAL LINE
'vert': u'|', # | VERTICAL LINE
'|': u'\u2016', # ‖ DOUBLE VERTICAL LINE
}
mathop = {
'Join': u'\u2a1d', # ⨝ JOIN
'bigcap': u'\u22c2', # ⋂ N-ARY INTERSECTION
'bigcup': u'\u22c3', # N-ARY UNION
'biginterleave': u'\u2afc', # ⫼ LARGE TRIPLE VERTICAL BAR OPERATOR
'bigodot': u'\u2a00', # ⨀ N-ARY CIRCLED DOT OPERATOR
'bigoplus': u'\u2a01', # ⨁ N-ARY CIRCLED PLUS OPERATOR
'bigotimes': u'\u2a02', # ⨂ N-ARY CIRCLED TIMES OPERATOR
'bigsqcup': u'\u2a06', # ⨆ N-ARY SQUARE UNION OPERATOR
'biguplus': u'\u2a04', # ⨄ N-ARY UNION OPERATOR WITH PLUS
'bigvee': u'\u22c1', # N-ARY LOGICAL OR
'bigwedge': u'\u22c0', # ⋀ N-ARY LOGICAL AND
'coprod': u'\u2210', # ∐ N-ARY COPRODUCT
'fatsemi': u'\u2a1f', # ⨟ Z NOTATION SCHEMA COMPOSITION
'fint': u'\u2a0f', # ⨏ INTEGRAL AVERAGE WITH SLASH
'iiiint': u'\u2a0c', # ⨌ QUADRUPLE INTEGRAL OPERATOR
'iiint': u'\u222d', # ∭ TRIPLE INTEGRAL
'iint': u'\u222c', # ∬ DOUBLE INTEGRAL
'int': u'\u222b', # ∫ INTEGRAL
'oiint': u'\u222f', # ∯ SURFACE INTEGRAL
'oint': u'\u222e', # ∮ CONTOUR INTEGRAL
'ointctrclockwise': u'\u2233', # ∳ ANTICLOCKWISE CONTOUR INTEGRAL
'prod': u'\u220f', # ∏ N-ARY PRODUCT
'sqint': u'\u2a16', # ⨖ QUATERNION INTEGRAL OPERATOR
'sum': u'\u2211', # ∑ N-ARY SUMMATION
'varointclockwise': u'\u2232', # ∲ CLOCKWISE CONTOUR INTEGRAL
}
mathopen = {
'Lbag': u'\u27c5', # ⟅ LEFT S-SHAPED BAG DELIMITER
'langle': u'\u27e8', # ⟨ MATHEMATICAL LEFT ANGLE BRACKET
'lbag': u'\u27c5', # ⟅ LEFT S-SHAPED BAG DELIMITER
'lbrace': u'{', # { LEFT CURLY BRACKET
'lbrack': u'[', # [ LEFT SQUARE BRACKET
'lceil': u'\u2308', # ⌈ LEFT CEILING
'lfloor': u'\u230a', # ⌊ LEFT FLOOR
'lgroup': u'\u27ee', # ⟮ MATHEMATICAL LEFT FLATTENED PARENTHESIS
'llbracket': u'\u27e6', # ⟦ MATHEMATICAL LEFT WHITE SQUARE BRACKET
'llcorner': u'\u231e', # ⌞ BOTTOM LEFT CORNER
'llparenthesis': u'\u2987', # ⦇ Z NOTATION LEFT IMAGE BRACKET
'ulcorner': u'\u231c', # ⌜ TOP LEFT CORNER
'{': u'{', # { LEFT CURLY BRACKET
}
mathord = {
'#': u'#', # # NUMBER SIGN
'$': u'$', # $ DOLLAR SIGN
'%': u'%', # % PERCENT SIGN
'&': u'&', # & AMPERSAND
'AC': u'\u223f', # ∿ SINE WAVE
'APLcomment': u'\u235d', # ⍝ APL FUNCTIONAL SYMBOL UP SHOE JOT
'APLdownarrowbox': u'\u2357', # ⍗ APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW
'APLinput': u'\u235e', # ⍞ APL FUNCTIONAL SYMBOL QUOTE QUAD
'APLinv': u'\u2339', # ⌹ APL FUNCTIONAL SYMBOL QUAD DIVIDE
'APLleftarrowbox': u'\u2347', # ⍇ APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW
'APLlog': u'\u235f', # ⍟ APL FUNCTIONAL SYMBOL CIRCLE STAR
'APLrightarrowbox': u'\u2348', # ⍈ APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW
'APLuparrowbox': u'\u2350', # ⍐ APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW
'Aries': u'\u2648', # ♈ ARIES
'CIRCLE': u'\u25cf', # ● BLACK CIRCLE
'CheckedBox': u'\u2611', # ☑ BALLOT BOX WITH CHECK
'Diamond': u'\u25c7', # ◇ WHITE DIAMOND
'Finv': u'\u2132', # Ⅎ TURNED CAPITAL F
'Game': u'\u2141', # ⅁ TURNED SANS-SERIF CAPITAL G
'Gemini': u'\u264a', # ♊ GEMINI
'Jupiter': u'\u2643', # ♃ JUPITER
'LEFTCIRCLE': u'\u25d6', # ◖ LEFT HALF BLACK CIRCLE
'LEFTcircle': u'\u25d0', # ◐ CIRCLE WITH LEFT HALF BLACK
'Leo': u'\u264c', # ♌ LEO
'Libra': u'\u264e', # ♎ LIBRA
'Mars': u'\u2642', # ♂ MALE SIGN
'Mercury': u'\u263f', # ☿ MERCURY
'Neptune': u'\u2646', # ♆ NEPTUNE
'Pluto': u'\u2647', # ♇ PLUTO
'RIGHTCIRCLE': u'\u25d7', # ◗ RIGHT HALF BLACK CIRCLE
'RIGHTcircle': u'\u25d1', # ◑ CIRCLE WITH RIGHT HALF BLACK
'Saturn': u'\u2644', # ♄ SATURN
'Scorpio': u'\u264f', # ♏ SCORPIUS
'Square': u'\u2610', # ☐ BALLOT BOX
'Sun': u'\u2609', # ☉ SUN
'Taurus': u'\u2649', # ♉ TAURUS
'Uranus': u'\u2645', # ♅ URANUS
'Venus': u'\u2640', # ♀ FEMALE SIGN
'XBox': u'\u2612', # ☒ BALLOT BOX WITH X
'Yup': u'\u2144', # ⅄ TURNED SANS-SERIF CAPITAL Y
'_': u'_', # _ LOW LINE
'angle': u'\u2220', # ∠ ANGLE
'aquarius': u'\u2652', # ♒ AQUARIUS
'aries': u'\u2648', # ♈ ARIES
'ast': u'*', # * ASTERISK
'backepsilon': u'\u03f6', # ϶ GREEK REVERSED LUNATE EPSILON SYMBOL
'backprime': u'\u2035', # REVERSED PRIME
'backslash': u'\\', # \ REVERSE SOLIDUS
'because': u'\u2235', # ∵ BECAUSE
'bigstar': u'\u2605', # ★ BLACK STAR
'binampersand': u'&', # & AMPERSAND
'blacklozenge': u'\u2b27', # ⬧ BLACK MEDIUM LOZENGE
'blacksmiley': u'\u263b', # ☻ BLACK SMILING FACE
'blacksquare': u'\u25fc', # ◼ BLACK MEDIUM SQUARE
'bot': u'\u22a5', # ⊥ UP TACK
'boy': u'\u2642', # ♂ MALE SIGN
'cancer': u'\u264b', # ♋ CANCER
'capricornus': u'\u2651', # ♑ CAPRICORN
'cdots': u'\u22ef', # ⋯ MIDLINE HORIZONTAL ELLIPSIS
'cent': u'\xa2', # ¢ CENT SIGN
'centerdot': u'\u2b1d', # ⬝ BLACK VERY SMALL SQUARE
'checkmark': u'\u2713', # ✓ CHECK MARK
'circlearrowleft': u'\u21ba', # ↺ ANTICLOCKWISE OPEN CIRCLE ARROW
'circlearrowright': u'\u21bb', # ↻ CLOCKWISE OPEN CIRCLE ARROW
'circledR': u'\xae', # ® REGISTERED SIGN
'circledcirc': u'\u25ce', # ◎ BULLSEYE
'clubsuit': u'\u2663', # ♣ BLACK CLUB SUIT
'complement': u'\u2201', # ∁ COMPLEMENT
'dasharrow': u'\u21e2', # ⇢ RIGHTWARDS DASHED ARROW
'dashleftarrow': u'\u21e0', # ⇠ LEFTWARDS DASHED ARROW
'dashrightarrow': u'\u21e2', # ⇢ RIGHTWARDS DASHED ARROW
'diameter': u'\u2300', # ⌀ DIAMETER SIGN
'diamondsuit': u'\u2662', # ♢ WHITE DIAMOND SUIT
'earth': u'\u2641', # ♁ EARTH
'exists': u'\u2203', # ∃ THERE EXISTS
'female': u'\u2640', # ♀ FEMALE SIGN
'flat': u'\u266d', # ♭ MUSIC FLAT SIGN
'forall': u'\u2200', # ∀ FOR ALL
'fourth': u'\u2057', # ⁗ QUADRUPLE PRIME
'frownie': u'\u2639', # ☹ WHITE FROWNING FACE
'gemini': u'\u264a', # ♊ GEMINI
'girl': u'\u2640', # ♀ FEMALE SIGN
'heartsuit': u'\u2661', # ♡ WHITE HEART SUIT
'infty': u'\u221e', # ∞ INFINITY
'invneg': u'\u2310', # ⌐ REVERSED NOT SIGN
'jupiter': u'\u2643', # ♃ JUPITER
'ldots': u'\u2026', # … HORIZONTAL ELLIPSIS
'leftmoon': u'\u263e', # ☾ LAST QUARTER MOON
'leftturn': u'\u21ba', # ↺ ANTICLOCKWISE OPEN CIRCLE ARROW
'leo': u'\u264c', # ♌ LEO
'libra': u'\u264e', # ♎ LIBRA
'lnot': u'\xac', # ¬ NOT SIGN
'lozenge': u'\u25ca', # ◊ LOZENGE
'male': u'\u2642', # ♂ MALE SIGN
'maltese': u'\u2720', # ✠ MALTESE CROSS
'mathdollar': u'$', # $ DOLLAR SIGN
'measuredangle': u'\u2221', # ∡ MEASURED ANGLE
'mercury': u'\u263f', # ☿ MERCURY
'mho': u'\u2127', # ℧ INVERTED OHM SIGN
'nabla': u'\u2207', # ∇ NABLA
'natural': u'\u266e', # ♮ MUSIC NATURAL SIGN
'neg': u'\xac', # ¬ NOT SIGN
'neptune': u'\u2646', # ♆ NEPTUNE
'nexists': u'\u2204', # ∄ THERE DOES NOT EXIST
'notbackslash': u'\u2340', # ⍀ APL FUNCTIONAL SYMBOL BACKSLASH BAR
'partial': u'\u2202', # ∂ PARTIAL DIFFERENTIAL
'pisces': u'\u2653', # ♓ PISCES
'pluto': u'\u2647', # ♇ PLUTO
'pounds': u'\xa3', # £ POUND SIGN
'prime': u'\u2032', # PRIME
'quarternote': u'\u2669', # ♩ QUARTER NOTE
'rightmoon': u'\u263d', # ☽ FIRST QUARTER MOON
'rightturn': u'\u21bb', # ↻ CLOCKWISE OPEN CIRCLE ARROW
'sagittarius': u'\u2650', # ♐ SAGITTARIUS
'saturn': u'\u2644', # ♄ SATURN
'scorpio': u'\u264f', # ♏ SCORPIUS
'second': u'\u2033', # ″ DOUBLE PRIME
'sharp': u'\u266f', # ♯ MUSIC SHARP SIGN
'sim': u'~', # ~ TILDE
'slash': u'/', # / SOLIDUS
'smiley': u'\u263a', # ☺ WHITE SMILING FACE
'spadesuit': u'\u2660', # ♠ BLACK SPADE SUIT
'spddot': u'\xa8', # ¨ DIAERESIS
'sphat': u'^', # ^ CIRCUMFLEX ACCENT
'sphericalangle': u'\u2222', # ∢ SPHERICAL ANGLE
'sptilde': u'~', # ~ TILDE
'square': u'\u25fb', # ◻ WHITE MEDIUM SQUARE
'sun': u'\u263c', # ☼ WHITE SUN WITH RAYS
'taurus': u'\u2649', # ♉ TAURUS
'therefore': u'\u2234', # ∴ THEREFORE
'third': u'\u2034', # ‴ TRIPLE PRIME
'top': u'\u22a4', # DOWN TACK
'triangleleft': u'\u25c5', # ◅ WHITE LEFT-POINTING POINTER
'triangleright': u'\u25bb', # ▻ WHITE RIGHT-POINTING POINTER
'twonotes': u'\u266b', # ♫ BEAMED EIGHTH NOTES
'uranus': u'\u2645', # ♅ URANUS
'varEarth': u'\u2641', # ♁ EARTH
'varnothing': u'\u2205', # ∅ EMPTY SET
'virgo': u'\u264d', # ♍ VIRGO
'wasylozenge': u'\u2311', # ⌑ SQUARE LOZENGE
'wasytherefore': u'\u2234', # ∴ THEREFORE
'yen': u'\xa5', # ¥ YEN SIGN
}
mathover = {
'overbrace': u'\u23de', # ⏞ TOP CURLY BRACKET
'wideparen': u'\u23dc', # ⏜ TOP PARENTHESIS
}
mathradical = {
'sqrt': u'\u221a', # √ SQUARE ROOT
'sqrt[3]': u'\u221b', # ∛ CUBE ROOT
'sqrt[4]': u'\u221c', # ∜ FOURTH ROOT
}
mathrel = {
'Bumpeq': u'\u224e', # ≎ GEOMETRICALLY EQUIVALENT TO
'Doteq': u'\u2251', # ≑ GEOMETRICALLY EQUAL TO
'Downarrow': u'\u21d3', # ⇓ DOWNWARDS DOUBLE ARROW
'Leftarrow': u'\u21d0', # ⇐ LEFTWARDS DOUBLE ARROW
'Leftrightarrow': u'\u21d4', # ⇔ LEFT RIGHT DOUBLE ARROW
'Lleftarrow': u'\u21da', # ⇚ LEFTWARDS TRIPLE ARROW
'Longleftarrow': u'\u27f8', # ⟸ LONG LEFTWARDS DOUBLE ARROW
'Longleftrightarrow': u'\u27fa', # ⟺ LONG LEFT RIGHT DOUBLE ARROW
'Longmapsfrom': u'\u27fd', # ⟽ LONG LEFTWARDS DOUBLE ARROW FROM BAR
'Longmapsto': u'\u27fe', # ⟾ LONG RIGHTWARDS DOUBLE ARROW FROM BAR
'Longrightarrow': u'\u27f9', # ⟹ LONG RIGHTWARDS DOUBLE ARROW
'Lsh': u'\u21b0', # ↰ UPWARDS ARROW WITH TIP LEFTWARDS
'Mapsfrom': u'\u2906', # ⤆ LEFTWARDS DOUBLE ARROW FROM BAR
'Mapsto': u'\u2907', # ⤇ RIGHTWARDS DOUBLE ARROW FROM BAR
'Rightarrow': u'\u21d2', # ⇒ RIGHTWARDS DOUBLE ARROW
'Rrightarrow': u'\u21db', # ⇛ RIGHTWARDS TRIPLE ARROW
'Rsh': u'\u21b1', # ↱ UPWARDS ARROW WITH TIP RIGHTWARDS
'Subset': u'\u22d0', # ⋐ DOUBLE SUBSET
'Supset': u'\u22d1', # ⋑ DOUBLE SUPERSET
'Uparrow': u'\u21d1', # ⇑ UPWARDS DOUBLE ARROW
'Updownarrow': u'\u21d5', # ⇕ UP DOWN DOUBLE ARROW
'VDash': u'\u22ab', # ⊫ DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
'Vdash': u'\u22a9', # ⊩ FORCES
'Vvdash': u'\u22aa', # ⊪ TRIPLE VERTICAL BAR RIGHT TURNSTILE
'apprge': u'\u2273', # ≳ GREATER-THAN OR EQUIVALENT TO
'apprle': u'\u2272', # ≲ LESS-THAN OR EQUIVALENT TO
'approx': u'\u2248', # ≈ ALMOST EQUAL TO
'approxeq': u'\u224a', # ≊ ALMOST EQUAL OR EQUAL TO
'asymp': u'\u224d', # ≍ EQUIVALENT TO
'backsim': u'\u223d', # ∽ REVERSED TILDE
'backsimeq': u'\u22cd', # ⋍ REVERSED TILDE EQUALS
'barin': u'\u22f6', # ⋶ ELEMENT OF WITH OVERBAR
'barleftharpoon': u'\u296b', # ⥫ LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
'barrightharpoon': u'\u296d', # ⥭ RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
'between': u'\u226c', # ≬ BETWEEN
'bowtie': u'\u22c8', # ⋈ BOWTIE
'bumpeq': u'\u224f', # ≏ DIFFERENCE BETWEEN
'circeq': u'\u2257', # ≗ RING EQUAL TO
'coloneq': u'\u2254', # ≔ COLON EQUALS
'cong': u'\u2245', # ≅ APPROXIMATELY EQUAL TO
'corresponds': u'\u2259', # ≙ ESTIMATES
'curlyeqprec': u'\u22de', # ⋞ EQUAL TO OR PRECEDES
'curlyeqsucc': u'\u22df', # ⋟ EQUAL TO OR SUCCEEDS
'curvearrowleft': u'\u21b6', # ↶ ANTICLOCKWISE TOP SEMICIRCLE ARROW
'curvearrowright': u'\u21b7', # ↷ CLOCKWISE TOP SEMICIRCLE ARROW
'dashv': u'\u22a3', # ⊣ LEFT TACK
'ddots': u'\u22f1', # ⋱ DOWN RIGHT DIAGONAL ELLIPSIS
'dlsh': u'\u21b2', # ↲ DOWNWARDS ARROW WITH TIP LEFTWARDS
'doteq': u'\u2250', # ≐ APPROACHES THE LIMIT
'doteqdot': u'\u2251', # ≑ GEOMETRICALLY EQUAL TO
'downarrow': u'\u2193', # ↓ DOWNWARDS ARROW
'downdownarrows': u'\u21ca', # ⇊ DOWNWARDS PAIRED ARROWS
'downdownharpoons': u'\u2965', # ⥥ DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
'downharpoonleft': u'\u21c3', # ⇃ DOWNWARDS HARPOON WITH BARB LEFTWARDS
'downharpoonright': u'\u21c2', # ⇂ DOWNWARDS HARPOON WITH BARB RIGHTWARDS
'downuparrows': u'\u21f5', # ⇵ DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW
'downupharpoons': u'\u296f', # ⥯ DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
'drsh': u'\u21b3', # ↳ DOWNWARDS ARROW WITH TIP RIGHTWARDS
'eqcirc': u'\u2256', # ≖ RING IN EQUAL TO
'eqcolon': u'\u2255', # ≕ EQUALS COLON
'eqsim': u'\u2242', # ≂ MINUS TILDE
'eqslantgtr': u'\u2a96', # ⪖ SLANTED EQUAL TO OR GREATER-THAN
'eqslantless': u'\u2a95', # ⪕ SLANTED EQUAL TO OR LESS-THAN
'equiv': u'\u2261', # ≡ IDENTICAL TO
'fallingdotseq': u'\u2252', # ≒ APPROXIMATELY EQUAL TO OR THE IMAGE OF
'frown': u'\u2322', # ⌢ FROWN
'ge': u'\u2265', # ≥ GREATER-THAN OR EQUAL TO
'geq': u'\u2265', # ≥ GREATER-THAN OR EQUAL TO
'geqq': u'\u2267', # ≧ GREATER-THAN OVER EQUAL TO
'geqslant': u'\u2a7e', # ⩾ GREATER-THAN OR SLANTED EQUAL TO
'gets': u'\u2190', # ← LEFTWARDS ARROW
'gg': u'\u226b', # ≫ MUCH GREATER-THAN
'ggcurly': u'\u2abc', # ⪼ DOUBLE SUCCEEDS
'ggg': u'\u22d9', # ⋙ VERY MUCH GREATER-THAN
'gnapprox': u'\u2a8a', # ⪊ GREATER-THAN AND NOT APPROXIMATE
'gneq': u'\u2a88', # ⪈ GREATER-THAN AND SINGLE-LINE NOT EQUAL TO
'gneqq': u'\u2269', # ≩ GREATER-THAN BUT NOT EQUAL TO
'gnsim': u'\u22e7', # ⋧ GREATER-THAN BUT NOT EQUIVALENT TO
'gtrapprox': u'\u2a86', # ⪆ GREATER-THAN OR APPROXIMATE
'gtrdot': u'\u22d7', # ⋗ GREATER-THAN WITH DOT
'gtreqless': u'\u22db', # ⋛ GREATER-THAN EQUAL TO OR LESS-THAN
'gtreqqless': u'\u2a8c', # ⪌ GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN
'gtrless': u'\u2277', # ≷ GREATER-THAN OR LESS-THAN
'gtrsim': u'\u2273', # ≳ GREATER-THAN OR EQUIVALENT TO
'hash': u'\u22d5', # ⋕ EQUAL AND PARALLEL TO
'hookleftarrow': u'\u21a9', # ↩ LEFTWARDS ARROW WITH HOOK
'hookrightarrow': u'\u21aa', # ↪ RIGHTWARDS ARROW WITH HOOK
'iddots': u'\u22f0', # ⋰ UP RIGHT DIAGONAL ELLIPSIS
'impliedby': u'\u27f8', # ⟸ LONG LEFTWARDS DOUBLE ARROW
'implies': u'\u27f9', # ⟹ LONG RIGHTWARDS DOUBLE ARROW
'in': u'\u2208', # ∈ ELEMENT OF
'le': u'\u2264', # ≤ LESS-THAN OR EQUAL TO
'leftarrow': u'\u2190', # ← LEFTWARDS ARROW
'leftarrowtail': u'\u21a2', # ↢ LEFTWARDS ARROW WITH TAIL
'leftarrowtriangle': u'\u21fd', # ⇽ LEFTWARDS OPEN-HEADED ARROW
'leftbarharpoon': u'\u296a', # ⥪ LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
'leftharpoondown': u'\u21bd', # ↽ LEFTWARDS HARPOON WITH BARB DOWNWARDS
'leftharpoonup': u'\u21bc', # ↼ LEFTWARDS HARPOON WITH BARB UPWARDS
'leftleftarrows': u'\u21c7', # ⇇ LEFTWARDS PAIRED ARROWS
'leftleftharpoons': u'\u2962', # ⥢ LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN
'leftrightarrow': u'\u2194', # ↔ LEFT RIGHT ARROW
'leftrightarrows': u'\u21c6', # ⇆ LEFTWARDS ARROW OVER RIGHTWARDS ARROW
'leftrightarrowtriangle': u'\u21ff', # ⇿ LEFT RIGHT OPEN-HEADED ARROW
'leftrightharpoon': u'\u294a', # ⥊ LEFT BARB UP RIGHT BARB DOWN HARPOON
'leftrightharpoons': u'\u21cb', # ⇋ LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
'leftrightsquigarrow': u'\u21ad', # ↭ LEFT RIGHT WAVE ARROW
'leftslice': u'\u2aa6', # ⪦ LESS-THAN CLOSED BY CURVE
'leftsquigarrow': u'\u21dc', # ⇜ LEFTWARDS SQUIGGLE ARROW
'leq': u'\u2264', # ≤ LESS-THAN OR EQUAL TO
'leqq': u'\u2266', # ≦ LESS-THAN OVER EQUAL TO
'leqslant': u'\u2a7d', # ⩽ LESS-THAN OR SLANTED EQUAL TO
'lessapprox': u'\u2a85', # ⪅ LESS-THAN OR APPROXIMATE
'lessdot': u'\u22d6', # ⋖ LESS-THAN WITH DOT
'lesseqgtr': u'\u22da', # ⋚ LESS-THAN EQUAL TO OR GREATER-THAN
'lesseqqgtr': u'\u2a8b', # ⪋ LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN
'lessgtr': u'\u2276', # ≶ LESS-THAN OR GREATER-THAN
'lesssim': u'\u2272', # ≲ LESS-THAN OR EQUIVALENT TO
'lightning': u'\u21af', # ↯ DOWNWARDS ZIGZAG ARROW
'll': u'\u226a', # ≪ MUCH LESS-THAN
'llcurly': u'\u2abb', # ⪻ DOUBLE PRECEDES
'lll': u'\u22d8', # ⋘ VERY MUCH LESS-THAN
'lnapprox': u'\u2a89', # ⪉ LESS-THAN AND NOT APPROXIMATE
'lneq': u'\u2a87', # ⪇ LESS-THAN AND SINGLE-LINE NOT EQUAL TO
'lneqq': u'\u2268', # ≨ LESS-THAN BUT NOT EQUAL TO
'lnsim': u'\u22e6', # ⋦ LESS-THAN BUT NOT EQUIVALENT TO
'longleftarrow': u'\u27f5', # ⟵ LONG LEFTWARDS ARROW
'longleftrightarrow': u'\u27f7', # ⟷ LONG LEFT RIGHT ARROW
'longmapsfrom': u'\u27fb', # ⟻ LONG LEFTWARDS ARROW FROM BAR
'longmapsto': u'\u27fc', # ⟼ LONG RIGHTWARDS ARROW FROM BAR
'longrightarrow': u'\u27f6', # ⟶ LONG RIGHTWARDS ARROW
'looparrowleft': u'\u21ab', # ↫ LEFTWARDS ARROW WITH LOOP
'looparrowright': u'\u21ac', # ↬ RIGHTWARDS ARROW WITH LOOP
'mapsfrom': u'\u21a4', # ↤ LEFTWARDS ARROW FROM BAR
'mapsto': u'\u21a6', # ↦ RIGHTWARDS ARROW FROM BAR
'mid': u'\u2223', # DIVIDES
'models': u'\u22a7', # ⊧ MODELS
'multimap': u'\u22b8', # ⊸ MULTIMAP
'nLeftarrow': u'\u21cd', # ⇍ LEFTWARDS DOUBLE ARROW WITH STROKE
'nLeftrightarrow': u'\u21ce', # ⇎ LEFT RIGHT DOUBLE ARROW WITH STROKE
'nRightarrow': u'\u21cf', # ⇏ RIGHTWARDS DOUBLE ARROW WITH STROKE
'nVDash': u'\u22af', # ⊯ NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
'nVdash': u'\u22ae', # ⊮ DOES NOT FORCE
'ncong': u'\u2247', # ≇ NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
'ne': u'\u2260', # ≠ NOT EQUAL TO
'nearrow': u'\u2197', # ↗ NORTH EAST ARROW
'neq': u'\u2260', # ≠ NOT EQUAL TO
'ngeq': u'\u2271', # ≱ NEITHER GREATER-THAN NOR EQUAL TO
'ngtr': u'\u226f', # ≯ NOT GREATER-THAN
'ni': u'\u220b', # ∋ CONTAINS AS MEMBER
'nleftarrow': u'\u219a', # ↚ LEFTWARDS ARROW WITH STROKE
'nleftrightarrow': u'\u21ae', # ↮ LEFT RIGHT ARROW WITH STROKE
'nleq': u'\u2270', # ≰ NEITHER LESS-THAN NOR EQUAL TO
'nless': u'\u226e', # ≮ NOT LESS-THAN
'nmid': u'\u2224', # ∤ DOES NOT DIVIDE
'notasymp': u'\u226d', # ≭ NOT EQUIVALENT TO
'notin': u'\u2209', # ∉ NOT AN ELEMENT OF
'notowner': u'\u220c', # ∌ DOES NOT CONTAIN AS MEMBER
'notslash': u'\u233f', # ⌿ APL FUNCTIONAL SYMBOL SLASH BAR
'nparallel': u'\u2226', # ∦ NOT PARALLEL TO
'nprec': u'\u2280', # ⊀ DOES NOT PRECEDE
'npreceq': u'\u22e0', # ⋠ DOES NOT PRECEDE OR EQUAL
'nrightarrow': u'\u219b', # ↛ RIGHTWARDS ARROW WITH STROKE
'nsim': u'\u2241', # ≁ NOT TILDE
'nsubseteq': u'\u2288', # ⊈ NEITHER A SUBSET OF NOR EQUAL TO
'nsucc': u'\u2281', # ⊁ DOES NOT SUCCEED
'nsucceq': u'\u22e1', # ⋡ DOES NOT SUCCEED OR EQUAL
'nsupseteq': u'\u2289', # ⊉ NEITHER A SUPERSET OF NOR EQUAL TO
'ntriangleleft': u'\u22ea', # ⋪ NOT NORMAL SUBGROUP OF
'ntrianglelefteq': u'\u22ec', # ⋬ NOT NORMAL SUBGROUP OF OR EQUAL TO
'ntriangleright': u'\u22eb', # ⋫ DOES NOT CONTAIN AS NORMAL SUBGROUP
'ntrianglerighteq': u'\u22ed', # ⋭ DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
'nvDash': u'\u22ad', # ⊭ NOT TRUE
'nvdash': u'\u22ac', # ⊬ DOES NOT PROVE
'nwarrow': u'\u2196', # ↖ NORTH WEST ARROW
'owns': u'\u220b', # ∋ CONTAINS AS MEMBER
'parallel': u'\u2225', # ∥ PARALLEL TO
'perp': u'\u27c2', # ⟂ PERPENDICULAR
'pitchfork': u'\u22d4', # ⋔ PITCHFORK
'prec': u'\u227a', # ≺ PRECEDES
'precapprox': u'\u2ab7', # ⪷ PRECEDES ABOVE ALMOST EQUAL TO
'preccurlyeq': u'\u227c', # ≼ PRECEDES OR EQUAL TO
'preceq': u'\u2aaf', # ⪯ PRECEDES ABOVE SINGLE-LINE EQUALS SIGN
'precnapprox': u'\u2ab9', # ⪹ PRECEDES ABOVE NOT ALMOST EQUAL TO
'precnsim': u'\u22e8', # ⋨ PRECEDES BUT NOT EQUIVALENT TO
'precsim': u'\u227e', # ≾ PRECEDES OR EQUIVALENT TO
'propto': u'\u221d', # ∝ PROPORTIONAL TO
'restriction': u'\u21be', # ↾ UPWARDS HARPOON WITH BARB RIGHTWARDS
'rightarrow': u'\u2192', # → RIGHTWARDS ARROW
'rightarrowtail': u'\u21a3', # ↣ RIGHTWARDS ARROW WITH TAIL
'rightarrowtriangle': u'\u21fe', # ⇾ RIGHTWARDS OPEN-HEADED ARROW
'rightbarharpoon': u'\u296c', # ⥬ RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
'rightharpoondown': u'\u21c1', # ⇁ RIGHTWARDS HARPOON WITH BARB DOWNWARDS
'rightharpoonup': u'\u21c0', # ⇀ RIGHTWARDS HARPOON WITH BARB UPWARDS
'rightleftarrows': u'\u21c4', # ⇄ RIGHTWARDS ARROW OVER LEFTWARDS ARROW
'rightleftharpoon': u'\u294b', # ⥋ LEFT BARB DOWN RIGHT BARB UP HARPOON
'rightleftharpoons': u'\u21cc', # ⇌ RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
'rightrightarrows': u'\u21c9', # ⇉ RIGHTWARDS PAIRED ARROWS
'rightrightharpoons': u'\u2964', # ⥤ RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
'rightslice': u'\u2aa7', # ⪧ GREATER-THAN CLOSED BY CURVE
'rightsquigarrow': u'\u21dd', # ⇝ RIGHTWARDS SQUIGGLE ARROW
'risingdotseq': u'\u2253', # ≓ IMAGE OF OR APPROXIMATELY EQUAL TO
'searrow': u'\u2198', # ↘ SOUTH EAST ARROW
'sim': u'\u223c', # TILDE OPERATOR
'simeq': u'\u2243', # ≃ ASYMPTOTICALLY EQUAL TO
'smallfrown': u'\u2322', # ⌢ FROWN
'smallsmile': u'\u2323', # ⌣ SMILE
'smile': u'\u2323', # ⌣ SMILE
'sqsubset': u'\u228f', # ⊏ SQUARE IMAGE OF
'sqsubseteq': u'\u2291', # ⊑ SQUARE IMAGE OF OR EQUAL TO
'sqsupset': u'\u2290', # ⊐ SQUARE ORIGINAL OF
'sqsupseteq': u'\u2292', # ⊒ SQUARE ORIGINAL OF OR EQUAL TO
'subset': u'\u2282', # ⊂ SUBSET OF
'subseteq': u'\u2286', # ⊆ SUBSET OF OR EQUAL TO
'subseteqq': u'\u2ac5', # ⫅ SUBSET OF ABOVE EQUALS SIGN
'subsetneq': u'\u228a', # ⊊ SUBSET OF WITH NOT EQUAL TO
'subsetneqq': u'\u2acb', # ⫋ SUBSET OF ABOVE NOT EQUAL TO
'succ': u'\u227b', # ≻ SUCCEEDS
'succapprox': u'\u2ab8', # ⪸ SUCCEEDS ABOVE ALMOST EQUAL TO
'succcurlyeq': u'\u227d', # ≽ SUCCEEDS OR EQUAL TO
'succeq': u'\u2ab0', # ⪰ SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN
'succnapprox': u'\u2aba', # ⪺ SUCCEEDS ABOVE NOT ALMOST EQUAL TO
'succnsim': u'\u22e9', # ⋩ SUCCEEDS BUT NOT EQUIVALENT TO
'succsim': u'\u227f', # ≿ SUCCEEDS OR EQUIVALENT TO
'supset': u'\u2283', # ⊃ SUPERSET OF
'supseteq': u'\u2287', # ⊇ SUPERSET OF OR EQUAL TO
'supseteqq': u'\u2ac6', # ⫆ SUPERSET OF ABOVE EQUALS SIGN
'supsetneq': u'\u228b', # ⊋ SUPERSET OF WITH NOT EQUAL TO
'supsetneqq': u'\u2acc', # ⫌ SUPERSET OF ABOVE NOT EQUAL TO
'swarrow': u'\u2199', # ↙ SOUTH WEST ARROW
'to': u'\u2192', # → RIGHTWARDS ARROW
'trianglelefteq': u'\u22b4', # ⊴ NORMAL SUBGROUP OF OR EQUAL TO
'triangleq': u'\u225c', # ≜ DELTA EQUAL TO
'trianglerighteq': u'\u22b5', # ⊵ CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
'twoheadleftarrow': u'\u219e', # ↞ LEFTWARDS TWO HEADED ARROW
'twoheadrightarrow': u'\u21a0', # ↠ RIGHTWARDS TWO HEADED ARROW
'uparrow': u'\u2191', # ↑ UPWARDS ARROW
'updownarrow': u'\u2195', # ↕ UP DOWN ARROW
'updownarrows': u'\u21c5', # ⇅ UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW
'updownharpoons': u'\u296e', # ⥮ UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
'upharpoonleft': u'\u21bf', # ↿ UPWARDS HARPOON WITH BARB LEFTWARDS
'upharpoonright': u'\u21be', # ↾ UPWARDS HARPOON WITH BARB RIGHTWARDS
'upuparrows': u'\u21c8', # ⇈ UPWARDS PAIRED ARROWS
'upupharpoons': u'\u2963', # ⥣ UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
'vDash': u'\u22a8', # ⊨ TRUE
'varpropto': u'\u221d', # ∝ PROPORTIONAL TO
'vartriangleleft': u'\u22b2', # ⊲ NORMAL SUBGROUP OF
'vartriangleright': u'\u22b3', # ⊳ CONTAINS AS NORMAL SUBGROUP
'vdash': u'\u22a2', # ⊢ RIGHT TACK
'vdots': u'\u22ee', # ⋮ VERTICAL ELLIPSIS
}
mathunder = {
'underbrace': u'\u23df', # ⏟ BOTTOM CURLY BRACKET
}
space = {
':': u'\u205f', # MEDIUM MATHEMATICAL SPACE
'medspace': u'\u205f', # MEDIUM MATHEMATICAL SPACE
'quad': u'\u2001', # EM QUAD
}

View file

@ -0,0 +1,788 @@
# LaTeX math to Unicode symbols translation table
# for use with the translate() method of unicode objects.
# Generated with ``write_unichar2tex.py`` from the data in
# http://milde.users.sourceforge.net/LUCR/Math/
# Includes commands from: standard LaTeX, amssymb, amsmath
uni2tex_table = {
160: u'~',
163: u'\\pounds ',
165: u'\\yen ',
172: u'\\neg ',
174: u'\\circledR ',
177: u'\\pm ',
215: u'\\times ',
240: u'\\eth ',
247: u'\\div ',
305: u'\\imath ',
567: u'\\jmath ',
915: u'\\Gamma ',
916: u'\\Delta ',
920: u'\\Theta ',
923: u'\\Lambda ',
926: u'\\Xi ',
928: u'\\Pi ',
931: u'\\Sigma ',
933: u'\\Upsilon ',
934: u'\\Phi ',
936: u'\\Psi ',
937: u'\\Omega ',
945: u'\\alpha ',
946: u'\\beta ',
947: u'\\gamma ',
948: u'\\delta ',
949: u'\\varepsilon ',
950: u'\\zeta ',
951: u'\\eta ',
952: u'\\theta ',
953: u'\\iota ',
954: u'\\kappa ',
955: u'\\lambda ',
956: u'\\mu ',
957: u'\\nu ',
958: u'\\xi ',
960: u'\\pi ',
961: u'\\rho ',
962: u'\\varsigma ',
963: u'\\sigma ',
964: u'\\tau ',
965: u'\\upsilon ',
966: u'\\varphi ',
967: u'\\chi ',
968: u'\\psi ',
969: u'\\omega ',
977: u'\\vartheta ',
981: u'\\phi ',
982: u'\\varpi ',
989: u'\\digamma ',
1014: u'\\backepsilon ',
8193: u'\\quad ',
8214: u'\\| ',
8224: u'\\dagger ',
8225: u'\\ddagger ',
8230: u'\\ldots ',
8242: u'\\prime ',
8245: u'\\backprime ',
8287: u'\\: ',
8450: u'\\mathbb{C}',
8459: u'\\mathcal{H}',
8460: u'\\mathfrak{H}',
8461: u'\\mathbb{H}',
8463: u'\\hslash ',
8464: u'\\mathcal{I}',
8465: u'\\Im ',
8466: u'\\mathcal{L}',
8467: u'\\ell ',
8469: u'\\mathbb{N}',
8472: u'\\wp ',
8473: u'\\mathbb{P}',
8474: u'\\mathbb{Q}',
8475: u'\\mathcal{R}',
8476: u'\\Re ',
8477: u'\\mathbb{R}',
8484: u'\\mathbb{Z}',
8487: u'\\mho ',
8488: u'\\mathfrak{Z}',
8492: u'\\mathcal{B}',
8493: u'\\mathfrak{C}',
8496: u'\\mathcal{E}',
8497: u'\\mathcal{F}',
8498: u'\\Finv ',
8499: u'\\mathcal{M}',
8501: u'\\aleph ',
8502: u'\\beth ',
8503: u'\\gimel ',
8504: u'\\daleth ',
8592: u'\\leftarrow ',
8593: u'\\uparrow ',
8594: u'\\rightarrow ',
8595: u'\\downarrow ',
8596: u'\\leftrightarrow ',
8597: u'\\updownarrow ',
8598: u'\\nwarrow ',
8599: u'\\nearrow ',
8600: u'\\searrow ',
8601: u'\\swarrow ',
8602: u'\\nleftarrow ',
8603: u'\\nrightarrow ',
8606: u'\\twoheadleftarrow ',
8608: u'\\twoheadrightarrow ',
8610: u'\\leftarrowtail ',
8611: u'\\rightarrowtail ',
8614: u'\\mapsto ',
8617: u'\\hookleftarrow ',
8618: u'\\hookrightarrow ',
8619: u'\\looparrowleft ',
8620: u'\\looparrowright ',
8621: u'\\leftrightsquigarrow ',
8622: u'\\nleftrightarrow ',
8624: u'\\Lsh ',
8625: u'\\Rsh ',
8630: u'\\curvearrowleft ',
8631: u'\\curvearrowright ',
8634: u'\\circlearrowleft ',
8635: u'\\circlearrowright ',
8636: u'\\leftharpoonup ',
8637: u'\\leftharpoondown ',
8638: u'\\upharpoonright ',
8639: u'\\upharpoonleft ',
8640: u'\\rightharpoonup ',
8641: u'\\rightharpoondown ',
8642: u'\\downharpoonright ',
8643: u'\\downharpoonleft ',
8644: u'\\rightleftarrows ',
8646: u'\\leftrightarrows ',
8647: u'\\leftleftarrows ',
8648: u'\\upuparrows ',
8649: u'\\rightrightarrows ',
8650: u'\\downdownarrows ',
8651: u'\\leftrightharpoons ',
8652: u'\\rightleftharpoons ',
8653: u'\\nLeftarrow ',
8654: u'\\nLeftrightarrow ',
8655: u'\\nRightarrow ',
8656: u'\\Leftarrow ',
8657: u'\\Uparrow ',
8658: u'\\Rightarrow ',
8659: u'\\Downarrow ',
8660: u'\\Leftrightarrow ',
8661: u'\\Updownarrow ',
8666: u'\\Lleftarrow ',
8667: u'\\Rrightarrow ',
8669: u'\\rightsquigarrow ',
8672: u'\\dashleftarrow ',
8674: u'\\dashrightarrow ',
8704: u'\\forall ',
8705: u'\\complement ',
8706: u'\\partial ',
8707: u'\\exists ',
8708: u'\\nexists ',
8709: u'\\varnothing ',
8711: u'\\nabla ',
8712: u'\\in ',
8713: u'\\notin ',
8715: u'\\ni ',
8719: u'\\prod ',
8720: u'\\coprod ',
8721: u'\\sum ',
8722: u'-',
8723: u'\\mp ',
8724: u'\\dotplus ',
8725: u'\\slash ',
8726: u'\\smallsetminus ',
8727: u'\\ast ',
8728: u'\\circ ',
8729: u'\\bullet ',
8730: u'\\sqrt ',
8731: u'\\sqrt[3] ',
8732: u'\\sqrt[4] ',
8733: u'\\propto ',
8734: u'\\infty ',
8736: u'\\angle ',
8737: u'\\measuredangle ',
8738: u'\\sphericalangle ',
8739: u'\\mid ',
8740: u'\\nmid ',
8741: u'\\parallel ',
8742: u'\\nparallel ',
8743: u'\\wedge ',
8744: u'\\vee ',
8745: u'\\cap ',
8746: u'\\cup ',
8747: u'\\int ',
8748: u'\\iint ',
8749: u'\\iiint ',
8750: u'\\oint ',
8756: u'\\therefore ',
8757: u'\\because ',
8758: u':',
8764: u'\\sim ',
8765: u'\\backsim ',
8768: u'\\wr ',
8769: u'\\nsim ',
8770: u'\\eqsim ',
8771: u'\\simeq ',
8773: u'\\cong ',
8775: u'\\ncong ',
8776: u'\\approx ',
8778: u'\\approxeq ',
8781: u'\\asymp ',
8782: u'\\Bumpeq ',
8783: u'\\bumpeq ',
8784: u'\\doteq ',
8785: u'\\Doteq ',
8786: u'\\fallingdotseq ',
8787: u'\\risingdotseq ',
8790: u'\\eqcirc ',
8791: u'\\circeq ',
8796: u'\\triangleq ',
8800: u'\\neq ',
8801: u'\\equiv ',
8804: u'\\leq ',
8805: u'\\geq ',
8806: u'\\leqq ',
8807: u'\\geqq ',
8808: u'\\lneqq ',
8809: u'\\gneqq ',
8810: u'\\ll ',
8811: u'\\gg ',
8812: u'\\between ',
8814: u'\\nless ',
8815: u'\\ngtr ',
8816: u'\\nleq ',
8817: u'\\ngeq ',
8818: u'\\lesssim ',
8819: u'\\gtrsim ',
8822: u'\\lessgtr ',
8823: u'\\gtrless ',
8826: u'\\prec ',
8827: u'\\succ ',
8828: u'\\preccurlyeq ',
8829: u'\\succcurlyeq ',
8830: u'\\precsim ',
8831: u'\\succsim ',
8832: u'\\nprec ',
8833: u'\\nsucc ',
8834: u'\\subset ',
8835: u'\\supset ',
8838: u'\\subseteq ',
8839: u'\\supseteq ',
8840: u'\\nsubseteq ',
8841: u'\\nsupseteq ',
8842: u'\\subsetneq ',
8843: u'\\supsetneq ',
8846: u'\\uplus ',
8847: u'\\sqsubset ',
8848: u'\\sqsupset ',
8849: u'\\sqsubseteq ',
8850: u'\\sqsupseteq ',
8851: u'\\sqcap ',
8852: u'\\sqcup ',
8853: u'\\oplus ',
8854: u'\\ominus ',
8855: u'\\otimes ',
8856: u'\\oslash ',
8857: u'\\odot ',
8858: u'\\circledcirc ',
8859: u'\\circledast ',
8861: u'\\circleddash ',
8862: u'\\boxplus ',
8863: u'\\boxminus ',
8864: u'\\boxtimes ',
8865: u'\\boxdot ',
8866: u'\\vdash ',
8867: u'\\dashv ',
8868: u'\\top ',
8869: u'\\bot ',
8871: u'\\models ',
8872: u'\\vDash ',
8873: u'\\Vdash ',
8874: u'\\Vvdash ',
8876: u'\\nvdash ',
8877: u'\\nvDash ',
8878: u'\\nVdash ',
8879: u'\\nVDash ',
8882: u'\\vartriangleleft ',
8883: u'\\vartriangleright ',
8884: u'\\trianglelefteq ',
8885: u'\\trianglerighteq ',
8888: u'\\multimap ',
8890: u'\\intercal ',
8891: u'\\veebar ',
8892: u'\\barwedge ',
8896: u'\\bigwedge ',
8897: u'\\bigvee ',
8898: u'\\bigcap ',
8899: u'\\bigcup ',
8900: u'\\diamond ',
8901: u'\\cdot ',
8902: u'\\star ',
8903: u'\\divideontimes ',
8904: u'\\bowtie ',
8905: u'\\ltimes ',
8906: u'\\rtimes ',
8907: u'\\leftthreetimes ',
8908: u'\\rightthreetimes ',
8909: u'\\backsimeq ',
8910: u'\\curlyvee ',
8911: u'\\curlywedge ',
8912: u'\\Subset ',
8913: u'\\Supset ',
8914: u'\\Cap ',
8915: u'\\Cup ',
8916: u'\\pitchfork ',
8918: u'\\lessdot ',
8919: u'\\gtrdot ',
8920: u'\\lll ',
8921: u'\\ggg ',
8922: u'\\lesseqgtr ',
8923: u'\\gtreqless ',
8926: u'\\curlyeqprec ',
8927: u'\\curlyeqsucc ',
8928: u'\\npreceq ',
8929: u'\\nsucceq ',
8934: u'\\lnsim ',
8935: u'\\gnsim ',
8936: u'\\precnsim ',
8937: u'\\succnsim ',
8938: u'\\ntriangleleft ',
8939: u'\\ntriangleright ',
8940: u'\\ntrianglelefteq ',
8941: u'\\ntrianglerighteq ',
8942: u'\\vdots ',
8943: u'\\cdots ',
8945: u'\\ddots ',
8968: u'\\lceil ',
8969: u'\\rceil ',
8970: u'\\lfloor ',
8971: u'\\rfloor ',
8988: u'\\ulcorner ',
8989: u'\\urcorner ',
8990: u'\\llcorner ',
8991: u'\\lrcorner ',
8994: u'\\frown ',
8995: u'\\smile ',
9182: u'\\overbrace ',
9183: u'\\underbrace ',
9651: u'\\bigtriangleup ',
9655: u'\\rhd ',
9661: u'\\bigtriangledown ',
9665: u'\\lhd ',
9671: u'\\Diamond ',
9674: u'\\lozenge ',
9723: u'\\square ',
9724: u'\\blacksquare ',
9733: u'\\bigstar ',
9824: u'\\spadesuit ',
9825: u'\\heartsuit ',
9826: u'\\diamondsuit ',
9827: u'\\clubsuit ',
9837: u'\\flat ',
9838: u'\\natural ',
9839: u'\\sharp ',
10003: u'\\checkmark ',
10016: u'\\maltese ',
10178: u'\\perp ',
10216: u'\\langle ',
10217: u'\\rangle ',
10222: u'\\lgroup ',
10223: u'\\rgroup ',
10229: u'\\longleftarrow ',
10230: u'\\longrightarrow ',
10231: u'\\longleftrightarrow ',
10232: u'\\Longleftarrow ',
10233: u'\\Longrightarrow ',
10234: u'\\Longleftrightarrow ',
10236: u'\\longmapsto ',
10731: u'\\blacklozenge ',
10741: u'\\setminus ',
10752: u'\\bigodot ',
10753: u'\\bigoplus ',
10754: u'\\bigotimes ',
10756: u'\\biguplus ',
10758: u'\\bigsqcup ',
10764: u'\\iiiint ',
10781: u'\\Join ',
10815: u'\\amalg ',
10846: u'\\doublebarwedge ',
10877: u'\\leqslant ',
10878: u'\\geqslant ',
10885: u'\\lessapprox ',
10886: u'\\gtrapprox ',
10887: u'\\lneq ',
10888: u'\\gneq ',
10889: u'\\lnapprox ',
10890: u'\\gnapprox ',
10891: u'\\lesseqqgtr ',
10892: u'\\gtreqqless ',
10901: u'\\eqslantless ',
10902: u'\\eqslantgtr ',
10927: u'\\preceq ',
10928: u'\\succeq ',
10935: u'\\precapprox ',
10936: u'\\succapprox ',
10937: u'\\precnapprox ',
10938: u'\\succnapprox ',
10949: u'\\subseteqq ',
10950: u'\\supseteqq ',
10955: u'\\subsetneqq ',
10956: u'\\supsetneqq ',
119808: u'\\mathbf{A}',
119809: u'\\mathbf{B}',
119810: u'\\mathbf{C}',
119811: u'\\mathbf{D}',
119812: u'\\mathbf{E}',
119813: u'\\mathbf{F}',
119814: u'\\mathbf{G}',
119815: u'\\mathbf{H}',
119816: u'\\mathbf{I}',
119817: u'\\mathbf{J}',
119818: u'\\mathbf{K}',
119819: u'\\mathbf{L}',
119820: u'\\mathbf{M}',
119821: u'\\mathbf{N}',
119822: u'\\mathbf{O}',
119823: u'\\mathbf{P}',
119824: u'\\mathbf{Q}',
119825: u'\\mathbf{R}',
119826: u'\\mathbf{S}',
119827: u'\\mathbf{T}',
119828: u'\\mathbf{U}',
119829: u'\\mathbf{V}',
119830: u'\\mathbf{W}',
119831: u'\\mathbf{X}',
119832: u'\\mathbf{Y}',
119833: u'\\mathbf{Z}',
119834: u'\\mathbf{a}',
119835: u'\\mathbf{b}',
119836: u'\\mathbf{c}',
119837: u'\\mathbf{d}',
119838: u'\\mathbf{e}',
119839: u'\\mathbf{f}',
119840: u'\\mathbf{g}',
119841: u'\\mathbf{h}',
119842: u'\\mathbf{i}',
119843: u'\\mathbf{j}',
119844: u'\\mathbf{k}',
119845: u'\\mathbf{l}',
119846: u'\\mathbf{m}',
119847: u'\\mathbf{n}',
119848: u'\\mathbf{o}',
119849: u'\\mathbf{p}',
119850: u'\\mathbf{q}',
119851: u'\\mathbf{r}',
119852: u'\\mathbf{s}',
119853: u'\\mathbf{t}',
119854: u'\\mathbf{u}',
119855: u'\\mathbf{v}',
119856: u'\\mathbf{w}',
119857: u'\\mathbf{x}',
119858: u'\\mathbf{y}',
119859: u'\\mathbf{z}',
119860: u'A',
119861: u'B',
119862: u'C',
119863: u'D',
119864: u'E',
119865: u'F',
119866: u'G',
119867: u'H',
119868: u'I',
119869: u'J',
119870: u'K',
119871: u'L',
119872: u'M',
119873: u'N',
119874: u'O',
119875: u'P',
119876: u'Q',
119877: u'R',
119878: u'S',
119879: u'T',
119880: u'U',
119881: u'V',
119882: u'W',
119883: u'X',
119884: u'Y',
119885: u'Z',
119886: u'a',
119887: u'b',
119888: u'c',
119889: u'd',
119890: u'e',
119891: u'f',
119892: u'g',
119894: u'i',
119895: u'j',
119896: u'k',
119897: u'l',
119898: u'm',
119899: u'n',
119900: u'o',
119901: u'p',
119902: u'q',
119903: u'r',
119904: u's',
119905: u't',
119906: u'u',
119907: u'v',
119908: u'w',
119909: u'x',
119910: u'y',
119911: u'z',
119964: u'\\mathcal{A}',
119966: u'\\mathcal{C}',
119967: u'\\mathcal{D}',
119970: u'\\mathcal{G}',
119973: u'\\mathcal{J}',
119974: u'\\mathcal{K}',
119977: u'\\mathcal{N}',
119978: u'\\mathcal{O}',
119979: u'\\mathcal{P}',
119980: u'\\mathcal{Q}',
119982: u'\\mathcal{S}',
119983: u'\\mathcal{T}',
119984: u'\\mathcal{U}',
119985: u'\\mathcal{V}',
119986: u'\\mathcal{W}',
119987: u'\\mathcal{X}',
119988: u'\\mathcal{Y}',
119989: u'\\mathcal{Z}',
120068: u'\\mathfrak{A}',
120069: u'\\mathfrak{B}',
120071: u'\\mathfrak{D}',
120072: u'\\mathfrak{E}',
120073: u'\\mathfrak{F}',
120074: u'\\mathfrak{G}',
120077: u'\\mathfrak{J}',
120078: u'\\mathfrak{K}',
120079: u'\\mathfrak{L}',
120080: u'\\mathfrak{M}',
120081: u'\\mathfrak{N}',
120082: u'\\mathfrak{O}',
120083: u'\\mathfrak{P}',
120084: u'\\mathfrak{Q}',
120086: u'\\mathfrak{S}',
120087: u'\\mathfrak{T}',
120088: u'\\mathfrak{U}',
120089: u'\\mathfrak{V}',
120090: u'\\mathfrak{W}',
120091: u'\\mathfrak{X}',
120092: u'\\mathfrak{Y}',
120094: u'\\mathfrak{a}',
120095: u'\\mathfrak{b}',
120096: u'\\mathfrak{c}',
120097: u'\\mathfrak{d}',
120098: u'\\mathfrak{e}',
120099: u'\\mathfrak{f}',
120100: u'\\mathfrak{g}',
120101: u'\\mathfrak{h}',
120102: u'\\mathfrak{i}',
120103: u'\\mathfrak{j}',
120104: u'\\mathfrak{k}',
120105: u'\\mathfrak{l}',
120106: u'\\mathfrak{m}',
120107: u'\\mathfrak{n}',
120108: u'\\mathfrak{o}',
120109: u'\\mathfrak{p}',
120110: u'\\mathfrak{q}',
120111: u'\\mathfrak{r}',
120112: u'\\mathfrak{s}',
120113: u'\\mathfrak{t}',
120114: u'\\mathfrak{u}',
120115: u'\\mathfrak{v}',
120116: u'\\mathfrak{w}',
120117: u'\\mathfrak{x}',
120118: u'\\mathfrak{y}',
120119: u'\\mathfrak{z}',
120120: u'\\mathbb{A}',
120121: u'\\mathbb{B}',
120123: u'\\mathbb{D}',
120124: u'\\mathbb{E}',
120125: u'\\mathbb{F}',
120126: u'\\mathbb{G}',
120128: u'\\mathbb{I}',
120129: u'\\mathbb{J}',
120130: u'\\mathbb{K}',
120131: u'\\mathbb{L}',
120132: u'\\mathbb{M}',
120134: u'\\mathbb{O}',
120138: u'\\mathbb{S}',
120139: u'\\mathbb{T}',
120140: u'\\mathbb{U}',
120141: u'\\mathbb{V}',
120142: u'\\mathbb{W}',
120143: u'\\mathbb{X}',
120144: u'\\mathbb{Y}',
120156: u'\\Bbbk ',
120224: u'\\mathsf{A}',
120225: u'\\mathsf{B}',
120226: u'\\mathsf{C}',
120227: u'\\mathsf{D}',
120228: u'\\mathsf{E}',
120229: u'\\mathsf{F}',
120230: u'\\mathsf{G}',
120231: u'\\mathsf{H}',
120232: u'\\mathsf{I}',
120233: u'\\mathsf{J}',
120234: u'\\mathsf{K}',
120235: u'\\mathsf{L}',
120236: u'\\mathsf{M}',
120237: u'\\mathsf{N}',
120238: u'\\mathsf{O}',
120239: u'\\mathsf{P}',
120240: u'\\mathsf{Q}',
120241: u'\\mathsf{R}',
120242: u'\\mathsf{S}',
120243: u'\\mathsf{T}',
120244: u'\\mathsf{U}',
120245: u'\\mathsf{V}',
120246: u'\\mathsf{W}',
120247: u'\\mathsf{X}',
120248: u'\\mathsf{Y}',
120249: u'\\mathsf{Z}',
120250: u'\\mathsf{a}',
120251: u'\\mathsf{b}',
120252: u'\\mathsf{c}',
120253: u'\\mathsf{d}',
120254: u'\\mathsf{e}',
120255: u'\\mathsf{f}',
120256: u'\\mathsf{g}',
120257: u'\\mathsf{h}',
120258: u'\\mathsf{i}',
120259: u'\\mathsf{j}',
120260: u'\\mathsf{k}',
120261: u'\\mathsf{l}',
120262: u'\\mathsf{m}',
120263: u'\\mathsf{n}',
120264: u'\\mathsf{o}',
120265: u'\\mathsf{p}',
120266: u'\\mathsf{q}',
120267: u'\\mathsf{r}',
120268: u'\\mathsf{s}',
120269: u'\\mathsf{t}',
120270: u'\\mathsf{u}',
120271: u'\\mathsf{v}',
120272: u'\\mathsf{w}',
120273: u'\\mathsf{x}',
120274: u'\\mathsf{y}',
120275: u'\\mathsf{z}',
120432: u'\\mathtt{A}',
120433: u'\\mathtt{B}',
120434: u'\\mathtt{C}',
120435: u'\\mathtt{D}',
120436: u'\\mathtt{E}',
120437: u'\\mathtt{F}',
120438: u'\\mathtt{G}',
120439: u'\\mathtt{H}',
120440: u'\\mathtt{I}',
120441: u'\\mathtt{J}',
120442: u'\\mathtt{K}',
120443: u'\\mathtt{L}',
120444: u'\\mathtt{M}',
120445: u'\\mathtt{N}',
120446: u'\\mathtt{O}',
120447: u'\\mathtt{P}',
120448: u'\\mathtt{Q}',
120449: u'\\mathtt{R}',
120450: u'\\mathtt{S}',
120451: u'\\mathtt{T}',
120452: u'\\mathtt{U}',
120453: u'\\mathtt{V}',
120454: u'\\mathtt{W}',
120455: u'\\mathtt{X}',
120456: u'\\mathtt{Y}',
120457: u'\\mathtt{Z}',
120458: u'\\mathtt{a}',
120459: u'\\mathtt{b}',
120460: u'\\mathtt{c}',
120461: u'\\mathtt{d}',
120462: u'\\mathtt{e}',
120463: u'\\mathtt{f}',
120464: u'\\mathtt{g}',
120465: u'\\mathtt{h}',
120466: u'\\mathtt{i}',
120467: u'\\mathtt{j}',
120468: u'\\mathtt{k}',
120469: u'\\mathtt{l}',
120470: u'\\mathtt{m}',
120471: u'\\mathtt{n}',
120472: u'\\mathtt{o}',
120473: u'\\mathtt{p}',
120474: u'\\mathtt{q}',
120475: u'\\mathtt{r}',
120476: u'\\mathtt{s}',
120477: u'\\mathtt{t}',
120478: u'\\mathtt{u}',
120479: u'\\mathtt{v}',
120480: u'\\mathtt{w}',
120481: u'\\mathtt{x}',
120482: u'\\mathtt{y}',
120483: u'\\mathtt{z}',
120484: u'\\imath ',
120485: u'\\jmath ',
120490: u'\\mathbf{\\Gamma}',
120491: u'\\mathbf{\\Delta}',
120495: u'\\mathbf{\\Theta}',
120498: u'\\mathbf{\\Lambda}',
120501: u'\\mathbf{\\Xi}',
120503: u'\\mathbf{\\Pi}',
120506: u'\\mathbf{\\Sigma}',
120508: u'\\mathbf{\\Upsilon}',
120509: u'\\mathbf{\\Phi}',
120511: u'\\mathbf{\\Psi}',
120512: u'\\mathbf{\\Omega}',
120548: u'\\mathit{\\Gamma}',
120549: u'\\mathit{\\Delta}',
120553: u'\\mathit{\\Theta}',
120556: u'\\mathit{\\Lambda}',
120559: u'\\mathit{\\Xi}',
120561: u'\\mathit{\\Pi}',
120564: u'\\mathit{\\Sigma}',
120566: u'\\mathit{\\Upsilon}',
120567: u'\\mathit{\\Phi}',
120569: u'\\mathit{\\Psi}',
120570: u'\\mathit{\\Omega}',
120572: u'\\alpha ',
120573: u'\\beta ',
120574: u'\\gamma ',
120575: u'\\delta ',
120576: u'\\varepsilon ',
120577: u'\\zeta ',
120578: u'\\eta ',
120579: u'\\theta ',
120580: u'\\iota ',
120581: u'\\kappa ',
120582: u'\\lambda ',
120583: u'\\mu ',
120584: u'\\nu ',
120585: u'\\xi ',
120587: u'\\pi ',
120588: u'\\rho ',
120589: u'\\varsigma ',
120590: u'\\sigma ',
120591: u'\\tau ',
120592: u'\\upsilon ',
120593: u'\\varphi ',
120594: u'\\chi ',
120595: u'\\psi ',
120596: u'\\omega ',
120597: u'\\partial ',
120598: u'\\epsilon ',
120599: u'\\vartheta ',
120600: u'\\varkappa ',
120601: u'\\phi ',
120602: u'\\varrho ',
120603: u'\\varpi ',
120782: u'\\mathbf{0}',
120783: u'\\mathbf{1}',
120784: u'\\mathbf{2}',
120785: u'\\mathbf{3}',
120786: u'\\mathbf{4}',
120787: u'\\mathbf{5}',
120788: u'\\mathbf{6}',
120789: u'\\mathbf{7}',
120790: u'\\mathbf{8}',
120791: u'\\mathbf{9}',
120802: u'\\mathsf{0}',
120803: u'\\mathsf{1}',
120804: u'\\mathsf{2}',
120805: u'\\mathsf{3}',
120806: u'\\mathsf{4}',
120807: u'\\mathsf{5}',
120808: u'\\mathsf{6}',
120809: u'\\mathsf{7}',
120810: u'\\mathsf{8}',
120811: u'\\mathsf{9}',
120822: u'\\mathtt{0}',
120823: u'\\mathtt{1}',
120824: u'\\mathtt{2}',
120825: u'\\mathtt{3}',
120826: u'\\mathtt{4}',
120827: u'\\mathtt{5}',
120828: u'\\mathtt{6}',
120829: u'\\mathtt{7}',
120830: u'\\mathtt{8}',
120831: u'\\mathtt{9}',
}

1933
docutils/nodes.py Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,47 @@
# $Id: __init__.py 5618 2008-07-28 08:37:32Z strank $
# Author: David Goodger <goodger@python.org>
# Copyright: This module has been placed in the public domain.
"""
This package contains Docutils parser modules.
"""
__docformat__ = 'reStructuredText'
from docutils import Component
class Parser(Component):
component_type = 'parser'
config_section = 'parsers'
def parse(self, inputstring, document):
"""Override to parse `inputstring` into document tree `document`."""
raise NotImplementedError('subclass must override this method')
def setup_parse(self, inputstring, document):
"""Initial parse setup. Call at start of `self.parse()`."""
self.inputstring = inputstring
self.document = document
document.reporter.attach_observer(document.note_parse_message)
def finish_parse(self):
"""Finalize parse details. Call at end of `self.parse()`."""
self.document.reporter.detach_observer(
self.document.note_parse_message)
_parser_aliases = {
'restructuredtext': 'rst',
'rest': 'rst',
'restx': 'rst',
'rtxt': 'rst',}
def get_parser_class(parser_name):
"""Return the Parser class from the `parser_name` module."""
parser_name = parser_name.lower()
if parser_name in _parser_aliases:
parser_name = _parser_aliases[parser_name]
module = __import__(parser_name, globals(), locals())
return module.Parser

20
docutils/parsers/null.py Normal file
View file

@ -0,0 +1,20 @@
# $Id: null.py 4564 2006-05-21 20:44:42Z wiemann $
# Author: Martin Blais <blais@furius.ca>
# Copyright: This module has been placed in the public domain.
"""A do-nothing parser."""
from docutils import parsers
class Parser(parsers.Parser):
"""A do-nothing parser."""
supported = ('null',)
config_section = 'null parser'
config_section_dependencies = ('parsers',)
def parse(self, inputstring, document):
pass

View file

@ -0,0 +1,390 @@
# $Id: __init__.py 7320 2012-01-19 22:33:02Z milde $
# Author: David Goodger <goodger@python.org>
# Copyright: This module has been placed in the public domain.
"""
This is ``docutils.parsers.rst`` package. It exports a single class, `Parser`,
the reStructuredText parser.
Usage
=====
1. Create a parser::
parser = docutils.parsers.rst.Parser()
Several optional arguments may be passed to modify the parser's behavior.
Please see `Customizing the Parser`_ below for details.
2. Gather input (a multi-line string), by reading a file or the standard
input::
input = sys.stdin.read()
3. Create a new empty `docutils.nodes.document` tree::
document = docutils.utils.new_document(source, settings)
See `docutils.utils.new_document()` for parameter details.
4. Run the parser, populating the document tree::
parser.parse(input, document)
Parser Overview
===============
The reStructuredText parser is implemented as a state machine, examining its
input one line at a time. To understand how the parser works, please first
become familiar with the `docutils.statemachine` module, then see the
`states` module.
Customizing the Parser
----------------------
Anything that isn't already customizable is that way simply because that type
of customizability hasn't been implemented yet. Patches welcome!
When instantiating an object of the `Parser` class, two parameters may be
passed: ``rfc2822`` and ``inliner``. Pass ``rfc2822=True`` to enable an
initial RFC-2822 style header block, parsed as a "field_list" element (with
"class" attribute set to "rfc2822"). Currently this is the only body-level
element which is customizable without subclassing. (Tip: subclass `Parser`
and change its "state_classes" and "initial_state" attributes to refer to new
classes. Contact the author if you need more details.)
The ``inliner`` parameter takes an instance of `states.Inliner` or a subclass.
It handles inline markup recognition. A common extension is the addition of
further implicit hyperlinks, like "RFC 2822". This can be done by subclassing
`states.Inliner`, adding a new method for the implicit markup, and adding a
``(pattern, method)`` pair to the "implicit_dispatch" attribute of the
subclass. See `states.Inliner.implicit_inline()` for details. Explicit
inline markup can be customized in a `states.Inliner` subclass via the
``patterns.initial`` and ``dispatch`` attributes (and new methods as
appropriate).
"""
__docformat__ = 'reStructuredText'
import docutils.parsers
import docutils.statemachine
from docutils.parsers.rst import states
from docutils import frontend, nodes
class Parser(docutils.parsers.Parser):
"""The reStructuredText parser."""
supported = ('restructuredtext', 'rst', 'rest', 'restx', 'rtxt', 'rstx')
"""Aliases this parser supports."""
settings_spec = (
'reStructuredText Parser Options',
None,
(('Recognize and link to standalone PEP references (like "PEP 258").',
['--pep-references'],
{'action': 'store_true', 'validator': frontend.validate_boolean}),
('Base URL for PEP references '
'(default "http://www.python.org/dev/peps/").',
['--pep-base-url'],
{'metavar': '<URL>', 'default': 'http://www.python.org/dev/peps/',
'validator': frontend.validate_url_trailing_slash}),
('Template for PEP file part of URL. (default "pep-%04d")',
['--pep-file-url-template'],
{'metavar': '<URL>', 'default': 'pep-%04d'}),
('Recognize and link to standalone RFC references (like "RFC 822").',
['--rfc-references'],
{'action': 'store_true', 'validator': frontend.validate_boolean}),
('Base URL for RFC references (default "http://www.faqs.org/rfcs/").',
['--rfc-base-url'],
{'metavar': '<URL>', 'default': 'http://www.faqs.org/rfcs/',
'validator': frontend.validate_url_trailing_slash}),
('Set number of spaces for tab expansion (default 8).',
['--tab-width'],
{'metavar': '<width>', 'type': 'int', 'default': 8,
'validator': frontend.validate_nonnegative_int}),
('Remove spaces before footnote references.',
['--trim-footnote-reference-space'],
{'action': 'store_true', 'validator': frontend.validate_boolean}),
('Leave spaces before footnote references.',
['--leave-footnote-reference-space'],
{'action': 'store_false', 'dest': 'trim_footnote_reference_space'}),
('Disable directives that insert the contents of external file '
'("include" & "raw"); replaced with a "warning" system message.',
['--no-file-insertion'],
{'action': 'store_false', 'default': 1,
'dest': 'file_insertion_enabled',
'validator': frontend.validate_boolean}),
('Enable directives that insert the contents of external file '
'("include" & "raw"). Enabled by default.',
['--file-insertion-enabled'],
{'action': 'store_true'}),
('Disable the "raw" directives; replaced with a "warning" '
'system message.',
['--no-raw'],
{'action': 'store_false', 'default': 1, 'dest': 'raw_enabled',
'validator': frontend.validate_boolean}),
('Enable the "raw" directive. Enabled by default.',
['--raw-enabled'],
{'action': 'store_true'}),
('Token name set for parsing code with Pygments: one of '
'"long", "short", or "none (no parsing)". Default is "short".',
['--syntax-highlight'],
{'choices': ['long', 'short', 'none'],
'default': 'short', 'metavar': '<format>'}),))
config_section = 'restructuredtext parser'
config_section_dependencies = ('parsers',)
def __init__(self, rfc2822=False, inliner=None):
if rfc2822:
self.initial_state = 'RFC2822Body'
else:
self.initial_state = 'Body'
self.state_classes = states.state_classes
self.inliner = inliner
def parse(self, inputstring, document):
"""Parse `inputstring` and populate `document`, a document tree."""
self.setup_parse(inputstring, document)
self.statemachine = states.RSTStateMachine(
state_classes=self.state_classes,
initial_state=self.initial_state,
debug=document.reporter.debug_flag)
inputlines = docutils.statemachine.string2lines(
inputstring, tab_width=document.settings.tab_width,
convert_whitespace=True)
self.statemachine.run(inputlines, document, inliner=self.inliner)
self.finish_parse()
class DirectiveError(Exception):
"""
Store a message and a system message level.
To be thrown from inside directive code.
Do not instantiate directly -- use `Directive.directive_error()`
instead!
"""
def __init__(self, level, message):
"""Set error `message` and `level`"""
Exception.__init__(self)
self.level = level
self.msg = message
class Directive(object):
"""
Base class for reStructuredText directives.
The following attributes may be set by subclasses. They are
interpreted by the directive parser (which runs the directive
class):
- `required_arguments`: The number of required arguments (default:
0).
- `optional_arguments`: The number of optional arguments (default:
0).
- `final_argument_whitespace`: A boolean, indicating if the final
argument may contain whitespace (default: False).
- `option_spec`: A dictionary, mapping known option names to
conversion functions such as `int` or `float` (default: {}, no
options). Several conversion functions are defined in the
directives/__init__.py module.
Option conversion functions take a single parameter, the option
argument (a string or ``None``), validate it and/or convert it
to the appropriate form. Conversion functions may raise
`ValueError` and `TypeError` exceptions.
- `has_content`: A boolean; True if content is allowed. Client
code must handle the case where content is required but not
supplied (an empty content list will be supplied).
Arguments are normally single whitespace-separated words. The
final argument may contain whitespace and/or newlines if
`final_argument_whitespace` is True.
If the form of the arguments is more complex, specify only one
argument (either required or optional) and set
`final_argument_whitespace` to True; the client code must do any
context-sensitive parsing.
When a directive implementation is being run, the directive class
is instantiated, and the `run()` method is executed. During
instantiation, the following instance variables are set:
- ``name`` is the directive type or name (string).
- ``arguments`` is the list of positional arguments (strings).
- ``options`` is a dictionary mapping option names (strings) to
values (type depends on option conversion functions; see
`option_spec` above).
- ``content`` is a list of strings, the directive content line by line.
- ``lineno`` is the absolute line number of the first line
of the directive.
- ``src`` is the name (or path) of the rst source of the directive.
- ``srcline`` is the line number of the first line of the directive
in its source. It may differ from ``lineno``, if the main source
includes other sources with the ``.. include::`` directive.
- ``content_offset`` is the line offset of the first line of the content from
the beginning of the current input. Used when initiating a nested parse.
- ``block_text`` is a string containing the entire directive.
- ``state`` is the state which called the directive function.
- ``state_machine`` is the state machine which controls the state which called
the directive function.
Directive functions return a list of nodes which will be inserted
into the document tree at the point where the directive was
encountered. This can be an empty list if there is nothing to
insert.
For ordinary directives, the list must contain body elements or
structural elements. Some directives are intended specifically
for substitution definitions, and must return a list of `Text`
nodes and/or inline elements (suitable for inline insertion, in
place of the substitution reference). Such directives must verify
substitution definition context, typically using code like this::
if not isinstance(state, states.SubstitutionDef):
error = state_machine.reporter.error(
'Invalid context: the "%s" directive can only be used '
'within a substitution definition.' % (name),
nodes.literal_block(block_text, block_text), line=lineno)
return [error]
"""
# There is a "Creating reStructuredText Directives" how-to at
# <http://docutils.sf.net/docs/howto/rst-directives.html>. If you
# update this docstring, please update the how-to as well.
required_arguments = 0
"""Number of required directive arguments."""
optional_arguments = 0
"""Number of optional arguments after the required arguments."""
final_argument_whitespace = False
"""May the final argument contain whitespace?"""
option_spec = None
"""Mapping of option names to validator functions."""
has_content = False
"""May the directive have content?"""
def __init__(self, name, arguments, options, content, lineno,
content_offset, block_text, state, state_machine):
self.name = name
self.arguments = arguments
self.options = options
self.content = content
self.lineno = lineno
self.content_offset = content_offset
self.block_text = block_text
self.state = state
self.state_machine = state_machine
def run(self):
raise NotImplementedError('Must override run() is subclass.')
# Directive errors:
def directive_error(self, level, message):
"""
Return a DirectiveError suitable for being thrown as an exception.
Call "raise self.directive_error(level, message)" from within
a directive implementation to return one single system message
at level `level`, which automatically gets the directive block
and the line number added.
Preferably use the `debug`, `info`, `warning`, `error`, or `severe`
wrapper methods, e.g. ``self.error(message)`` to generate an
ERROR-level directive error.
"""
return DirectiveError(level, message)
def debug(self, message):
return self.directive_error(0, message)
def info(self, message):
return self.directive_error(1, message)
def warning(self, message):
return self.directive_error(2, message)
def error(self, message):
return self.directive_error(3, message)
def severe(self, message):
return self.directive_error(4, message)
# Convenience methods:
def assert_has_content(self):
"""
Throw an ERROR-level DirectiveError if the directive doesn't
have contents.
"""
if not self.content:
raise self.error('Content block expected for the "%s" directive; '
'none found.' % self.name)
def add_name(self, node):
"""Append self.options['name'] to node['names'] if it exists.
Also normalize the name string and register it as explicit target.
"""
if 'name' in self.options:
name = nodes.fully_normalize_name(self.options.pop('name'))
if 'name' in node:
del(node['name'])
node['names'].append(name)
self.state.document.note_explicit_target(node, node)
def convert_directive_function(directive_fn):
"""
Define & return a directive class generated from `directive_fn`.
`directive_fn` uses the old-style, functional interface.
"""
class FunctionalDirective(Directive):
option_spec = getattr(directive_fn, 'options', None)
has_content = getattr(directive_fn, 'content', False)
_argument_spec = getattr(directive_fn, 'arguments', (0, 0, False))
required_arguments, optional_arguments, final_argument_whitespace \
= _argument_spec
def run(self):
return directive_fn(
self.name, self.arguments, self.options, self.content,
self.lineno, self.content_offset, self.block_text,
self.state, self.state_machine)
# Return new-style directive.
return FunctionalDirective

View file

@ -0,0 +1,397 @@
# $Id: __init__.py 7119 2011-09-02 13:00:23Z milde $
# Author: David Goodger <goodger@python.org>
# Copyright: This module has been placed in the public domain.
"""
This package contains directive implementation modules.
"""
__docformat__ = 'reStructuredText'
import re
import codecs
from docutils import nodes
from docutils.parsers.rst.languages import en as _fallback_language_module
_directive_registry = {
'attention': ('admonitions', 'Attention'),
'caution': ('admonitions', 'Caution'),
'code': ('body', 'CodeBlock'),
'danger': ('admonitions', 'Danger'),
'error': ('admonitions', 'Error'),
'important': ('admonitions', 'Important'),
'note': ('admonitions', 'Note'),
'tip': ('admonitions', 'Tip'),
'hint': ('admonitions', 'Hint'),
'warning': ('admonitions', 'Warning'),
'admonition': ('admonitions', 'Admonition'),
'sidebar': ('body', 'Sidebar'),
'topic': ('body', 'Topic'),
'line-block': ('body', 'LineBlock'),
'parsed-literal': ('body', 'ParsedLiteral'),
'math': ('body', 'MathBlock'),
'rubric': ('body', 'Rubric'),
'epigraph': ('body', 'Epigraph'),
'highlights': ('body', 'Highlights'),
'pull-quote': ('body', 'PullQuote'),
'compound': ('body', 'Compound'),
'container': ('body', 'Container'),
#'questions': ('body', 'question_list'),
'table': ('tables', 'RSTTable'),
'csv-table': ('tables', 'CSVTable'),
'list-table': ('tables', 'ListTable'),
'image': ('images', 'Image'),
'figure': ('images', 'Figure'),
'contents': ('parts', 'Contents'),
'sectnum': ('parts', 'Sectnum'),
'header': ('parts', 'Header'),
'footer': ('parts', 'Footer'),
#'footnotes': ('parts', 'footnotes'),
#'citations': ('parts', 'citations'),
'target-notes': ('references', 'TargetNotes'),
'meta': ('html', 'Meta'),
#'imagemap': ('html', 'imagemap'),
'raw': ('misc', 'Raw'),
'include': ('misc', 'Include'),
'replace': ('misc', 'Replace'),
'unicode': ('misc', 'Unicode'),
'class': ('misc', 'Class'),
'role': ('misc', 'Role'),
'default-role': ('misc', 'DefaultRole'),
'title': ('misc', 'Title'),
'date': ('misc', 'Date'),
'restructuredtext-test-directive': ('misc', 'TestDirective'),}
"""Mapping of directive name to (module name, class name). The
directive name is canonical & must be lowercase. Language-dependent
names are defined in the ``language`` subpackage."""
_directives = {}
"""Cache of imported directives."""
def directive(directive_name, language_module, document):
"""
Locate and return a directive function from its language-dependent name.
If not found in the current language, check English. Return None if the
named directive cannot be found.
"""
normname = directive_name.lower()
messages = []
msg_text = []
if normname in _directives:
return _directives[normname], messages
canonicalname = None
try:
canonicalname = language_module.directives[normname]
except AttributeError, error:
msg_text.append('Problem retrieving directive entry from language '
'module %r: %s.' % (language_module, error))
except KeyError:
msg_text.append('No directive entry for "%s" in module "%s".'
% (directive_name, language_module.__name__))
if not canonicalname:
try:
canonicalname = _fallback_language_module.directives[normname]
msg_text.append('Using English fallback for directive "%s".'
% directive_name)
except KeyError:
msg_text.append('Trying "%s" as canonical directive name.'
% directive_name)
# The canonical name should be an English name, but just in case:
canonicalname = normname
if msg_text:
message = document.reporter.info(
'\n'.join(msg_text), line=document.current_line)
messages.append(message)
try:
modulename, classname = _directive_registry[canonicalname]
except KeyError:
# Error handling done by caller.
return None, messages
try:
module = __import__(modulename, globals(), locals())
except ImportError, detail:
messages.append(document.reporter.error(
'Error importing directive module "%s" (directive "%s"):\n%s'
% (modulename, directive_name, detail),
line=document.current_line))
return None, messages
try:
directive = getattr(module, classname)
_directives[normname] = directive
except AttributeError:
messages.append(document.reporter.error(
'No directive class "%s" in module "%s" (directive "%s").'
% (classname, modulename, directive_name),
line=document.current_line))
return None, messages
return directive, messages
def register_directive(name, directive):
"""
Register a nonstandard application-defined directive function.
Language lookups are not needed for such functions.
"""
_directives[name] = directive
def flag(argument):
"""
Check for a valid flag option (no argument) and return ``None``.
(Directive option conversion function.)
Raise ``ValueError`` if an argument is found.
"""
if argument and argument.strip():
raise ValueError('no argument is allowed; "%s" supplied' % argument)
else:
return None
def unchanged_required(argument):
"""
Return the argument text, unchanged.
(Directive option conversion function.)
Raise ``ValueError`` if no argument is found.
"""
if argument is None:
raise ValueError('argument required but none supplied')
else:
return argument # unchanged!
def unchanged(argument):
"""
Return the argument text, unchanged.
(Directive option conversion function.)
No argument implies empty string ("").
"""
if argument is None:
return u''
else:
return argument # unchanged!
def path(argument):
"""
Return the path argument unwrapped (with newlines removed).
(Directive option conversion function.)
Raise ``ValueError`` if no argument is found.
"""
if argument is None:
raise ValueError('argument required but none supplied')
else:
path = ''.join([s.strip() for s in argument.splitlines()])
return path
def uri(argument):
"""
Return the URI argument with whitespace removed.
(Directive option conversion function.)
Raise ``ValueError`` if no argument is found.
"""
if argument is None:
raise ValueError('argument required but none supplied')
else:
uri = ''.join(argument.split())
return uri
def nonnegative_int(argument):
"""
Check for a nonnegative integer argument; raise ``ValueError`` if not.
(Directive option conversion function.)
"""
value = int(argument)
if value < 0:
raise ValueError('negative value; must be positive or zero')
return value
def percentage(argument):
"""
Check for an integer percentage value with optional percent sign.
"""
try:
argument = argument.rstrip(' %')
except AttributeError:
pass
return nonnegative_int(argument)
length_units = ['em', 'ex', 'px', 'in', 'cm', 'mm', 'pt', 'pc']
def get_measure(argument, units):
"""
Check for a positive argument of one of the units and return a
normalized string of the form "<value><unit>" (without space in
between).
To be called from directive option conversion functions.
"""
match = re.match(r'^([0-9.]+) *(%s)$' % '|'.join(units), argument)
try:
assert match is not None
float(match.group(1))
except (AssertionError, ValueError):
raise ValueError(
'not a positive measure of one of the following units:\n%s'
% ' '.join(['"%s"' % i for i in units]))
return match.group(1) + match.group(2)
def length_or_unitless(argument):
return get_measure(argument, length_units + [''])
def length_or_percentage_or_unitless(argument, default=''):
"""
Return normalized string of a length or percentage unit.
Add <default> if there is no unit. Raise ValueError if the argument is not
a positive measure of one of the valid CSS units (or without unit).
>>> length_or_percentage_or_unitless('3 pt')
'3pt'
>>> length_or_percentage_or_unitless('3%', 'em')
'3%'
>>> length_or_percentage_or_unitless('3')
'3'
>>> length_or_percentage_or_unitless('3', 'px')
'3px'
"""
try:
return get_measure(argument, length_units + ['%'])
except ValueError:
return get_measure(argument, ['']) + default
def class_option(argument):
"""
Convert the argument into a list of ID-compatible strings and return it.
(Directive option conversion function.)
Raise ``ValueError`` if no argument is found.
"""
if argument is None:
raise ValueError('argument required but none supplied')
names = argument.split()
class_names = []
for name in names:
class_name = nodes.make_id(name)
if not class_name:
raise ValueError('cannot make "%s" into a class name' % name)
class_names.append(class_name)
return class_names
unicode_pattern = re.compile(
r'(?:0x|x|\\x|U\+?|\\u)([0-9a-f]+)$|&#x([0-9a-f]+);$', re.IGNORECASE)
def unicode_code(code):
r"""
Convert a Unicode character code to a Unicode character.
(Directive option conversion function.)
Codes may be decimal numbers, hexadecimal numbers (prefixed by ``0x``,
``x``, ``\x``, ``U+``, ``u``, or ``\u``; e.g. ``U+262E``), or XML-style
numeric character entities (e.g. ``&#x262E;``). Other text remains as-is.
Raise ValueError for illegal Unicode code values.
"""
try:
if code.isdigit(): # decimal number
return unichr(int(code))
else:
match = unicode_pattern.match(code)
if match: # hex number
value = match.group(1) or match.group(2)
return unichr(int(value, 16))
else: # other text
return code
except OverflowError, detail:
raise ValueError('code too large (%s)' % detail)
def single_char_or_unicode(argument):
"""
A single character is returned as-is. Unicode characters codes are
converted as in `unicode_code`. (Directive option conversion function.)
"""
char = unicode_code(argument)
if len(char) > 1:
raise ValueError('%r invalid; must be a single character or '
'a Unicode code' % char)
return char
def single_char_or_whitespace_or_unicode(argument):
"""
As with `single_char_or_unicode`, but "tab" and "space" are also supported.
(Directive option conversion function.)
"""
if argument == 'tab':
char = '\t'
elif argument == 'space':
char = ' '
else:
char = single_char_or_unicode(argument)
return char
def positive_int(argument):
"""
Converts the argument into an integer. Raises ValueError for negative,
zero, or non-integer values. (Directive option conversion function.)
"""
value = int(argument)
if value < 1:
raise ValueError('negative or zero value; must be positive')
return value
def positive_int_list(argument):
"""
Converts a space- or comma-separated list of values into a Python list
of integers.
(Directive option conversion function.)
Raises ValueError for non-positive-integer values.
"""
if ',' in argument:
entries = argument.split(',')
else:
entries = argument.split()
return [positive_int(entry) for entry in entries]
def encoding(argument):
"""
Verfies the encoding argument by lookup.
(Directive option conversion function.)
Raises ValueError for unknown encodings.
"""
try:
codecs.lookup(argument)
except LookupError:
raise ValueError('unknown encoding: "%s"' % argument)
return argument
def choice(argument, values):
"""
Directive option utility function, supplied to enable options whose
argument must be a member of a finite set of possible values (must be
lower case). A custom conversion function must be written to use it. For
example::
from docutils.parsers.rst import directives
def yesno(argument):
return directives.choice(argument, ('yes', 'no'))
Raise ``ValueError`` if no argument is found or if the argument's value is
not valid (not an entry in the supplied list).
"""
try:
value = argument.lower().strip()
except AttributeError:
raise ValueError('must supply an argument; choose from %s'
% format_values(values))
if value in values:
return value
else:
raise ValueError('"%s" unknown; choose from %s'
% (argument, format_values(values)))
def format_values(values):
return '%s, or "%s"' % (', '.join(['"%s"' % s for s in values[:-1]]),
values[-1])

View file

@ -0,0 +1,96 @@
# $Id: admonitions.py 7072 2011-07-06 15:52:30Z milde $
# Author: David Goodger <goodger@python.org>
# Copyright: This module has been placed in the public domain.
"""
Admonition directives.
"""
__docformat__ = 'reStructuredText'
from docutils.parsers.rst import Directive
from docutils.parsers.rst import states, directives
from docutils.parsers.rst.roles import set_classes
from docutils import nodes
class BaseAdmonition(Directive):
final_argument_whitespace = True
option_spec = {'class': directives.class_option,
'name': directives.unchanged}
has_content = True
node_class = None
"""Subclasses must set this to the appropriate admonition node class."""
def run(self):
set_classes(self.options)
self.assert_has_content()
text = '\n'.join(self.content)
admonition_node = self.node_class(text, **self.options)
self.add_name(admonition_node)
if self.node_class is nodes.admonition:
title_text = self.arguments[0]
textnodes, messages = self.state.inline_text(title_text,
self.lineno)
admonition_node += nodes.title(title_text, '', *textnodes)
admonition_node += messages
if not 'classes' in self.options:
admonition_node['classes'] += ['admonition-' +
nodes.make_id(title_text)]
self.state.nested_parse(self.content, self.content_offset,
admonition_node)
return [admonition_node]
class Admonition(BaseAdmonition):
required_arguments = 1
node_class = nodes.admonition
class Attention(BaseAdmonition):
node_class = nodes.attention
class Caution(BaseAdmonition):
node_class = nodes.caution
class Danger(BaseAdmonition):
node_class = nodes.danger
class Error(BaseAdmonition):
node_class = nodes.error
class Hint(BaseAdmonition):
node_class = nodes.hint
class Important(BaseAdmonition):
node_class = nodes.important
class Note(BaseAdmonition):
node_class = nodes.note
class Tip(BaseAdmonition):
node_class = nodes.tip
class Warning(BaseAdmonition):
node_class = nodes.warning

View file

@ -0,0 +1,289 @@
# $Id: body.py 7267 2011-12-20 14:14:21Z milde $
# Author: David Goodger <goodger@python.org>
# Copyright: This module has been placed in the public domain.
"""
Directives for additional body elements.
See `docutils.parsers.rst.directives` for API details.
"""
__docformat__ = 'reStructuredText'
import sys
from docutils import nodes
from docutils.parsers.rst import Directive
from docutils.parsers.rst import directives
from docutils.parsers.rst.roles import set_classes
from docutils.utils.code_analyzer import Lexer, LexerError, NumberLines
class BasePseudoSection(Directive):
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = True
option_spec = {'class': directives.class_option,
'name': directives.unchanged}
has_content = True
node_class = None
"""Node class to be used (must be set in subclasses)."""
def run(self):
if not (self.state_machine.match_titles
or isinstance(self.state_machine.node, nodes.sidebar)):
raise self.error('The "%s" directive may not be used within '
'topics or body elements.' % self.name)
self.assert_has_content()
title_text = self.arguments[0]
textnodes, messages = self.state.inline_text(title_text, self.lineno)
titles = [nodes.title(title_text, '', *textnodes)]
# Sidebar uses this code.
if 'subtitle' in self.options:
textnodes, more_messages = self.state.inline_text(
self.options['subtitle'], self.lineno)
titles.append(nodes.subtitle(self.options['subtitle'], '',
*textnodes))
messages.extend(more_messages)
text = '\n'.join(self.content)
node = self.node_class(text, *(titles + messages))
node['classes'] += self.options.get('class', [])
self.add_name(node)
if text:
self.state.nested_parse(self.content, self.content_offset, node)
return [node]
class Topic(BasePseudoSection):
node_class = nodes.topic
class Sidebar(BasePseudoSection):
node_class = nodes.sidebar
option_spec = BasePseudoSection.option_spec.copy()
option_spec['subtitle'] = directives.unchanged_required
def run(self):
if isinstance(self.state_machine.node, nodes.sidebar):
raise self.error('The "%s" directive may not be used within a '
'sidebar element.' % self.name)
return BasePseudoSection.run(self)
class LineBlock(Directive):
option_spec = {'class': directives.class_option,
'name': directives.unchanged}
has_content = True
def run(self):
self.assert_has_content()
block = nodes.line_block(classes=self.options.get('class', []))
self.add_name(block)
node_list = [block]
for line_text in self.content:
text_nodes, messages = self.state.inline_text(
line_text.strip(), self.lineno + self.content_offset)
line = nodes.line(line_text, '', *text_nodes)
if line_text.strip():
line.indent = len(line_text) - len(line_text.lstrip())
block += line
node_list.extend(messages)
self.content_offset += 1
self.state.nest_line_block_lines(block)
return node_list
class ParsedLiteral(Directive):
option_spec = {'class': directives.class_option,
'name': directives.unchanged}
has_content = True
def run(self):
set_classes(self.options)
self.assert_has_content()
text = '\n'.join(self.content)
text_nodes, messages = self.state.inline_text(text, self.lineno)
node = nodes.literal_block(text, '', *text_nodes, **self.options)
node.line = self.content_offset + 1
self.add_name(node)
return [node] + messages
class CodeBlock(Directive):
"""Parse and mark up content of a code block.
Configuration setting: syntax_highlight
Highlight Code content with Pygments?
Possible values: ('long', 'short', 'none')
"""
optional_arguments = 1
option_spec = {'class': directives.class_option,
'name': directives.unchanged,
'number-lines': directives.unchanged # integer or None
}
has_content = True
def run(self):
self.assert_has_content()
if self.arguments:
language = self.arguments[0]
else:
language = ''
set_classes(self.options)
classes = ['code']
if language:
classes.append(language)
if 'classes' in self.options:
classes.extend(self.options['classes'])
# set up lexical analyzer
try:
tokens = Lexer(u'\n'.join(self.content), language,
self.state.document.settings.syntax_highlight)
except LexerError, error:
raise self.warning(error)
if 'number-lines' in self.options:
# optional argument `startline`, defaults to 1
try:
startline = int(self.options['number-lines'] or 1)
except ValueError:
raise self.error(':number-lines: with non-integer start value')
endline = startline + len(self.content)
# add linenumber filter:
tokens = NumberLines(tokens, startline, endline)
node = nodes.literal_block('\n'.join(self.content), classes=classes)
self.add_name(node)
# if called from "include", set the source
if 'source' in self.options:
node.attributes['source'] = self.options['source']
# analyze content and add nodes for every token
for classes, value in tokens:
# print (classes, value)
if classes:
node += nodes.inline(value, value, classes=classes)
else:
# insert as Text to decrease the verbosity of the output
node += nodes.Text(value, value)
return [node]
class MathBlock(Directive):
option_spec = {'class': directives.class_option,
'name': directives.unchanged}
## TODO: Add Sphinx' ``mathbase.py`` option 'nowrap'?
# 'nowrap': directives.flag,
has_content = True
def run(self):
set_classes(self.options)
self.assert_has_content()
# join lines, separate blocks
content = '\n'.join(self.content).split('\n\n')
_nodes = []
for block in content:
if not block:
continue
node = nodes.math_block(self.block_text, block, **self.options)
node.line = self.content_offset + 1
self.add_name(node)
_nodes.append(node)
return _nodes
class Rubric(Directive):
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = True
option_spec = {'class': directives.class_option,
'name': directives.unchanged}
def run(self):
set_classes(self.options)
rubric_text = self.arguments[0]
textnodes, messages = self.state.inline_text(rubric_text, self.lineno)
rubric = nodes.rubric(rubric_text, '', *textnodes, **self.options)
self.add_name(rubric)
return [rubric] + messages
class BlockQuote(Directive):
has_content = True
classes = []
def run(self):
self.assert_has_content()
elements = self.state.block_quote(self.content, self.content_offset)
for element in elements:
if isinstance(element, nodes.block_quote):
element['classes'] += self.classes
return elements
class Epigraph(BlockQuote):
classes = ['epigraph']
class Highlights(BlockQuote):
classes = ['highlights']
class PullQuote(BlockQuote):
classes = ['pull-quote']
class Compound(Directive):
option_spec = {'class': directives.class_option,
'name': directives.unchanged}
has_content = True
def run(self):
self.assert_has_content()
text = '\n'.join(self.content)
node = nodes.compound(text)
node['classes'] += self.options.get('class', [])
self.add_name(node)
self.state.nested_parse(self.content, self.content_offset, node)
return [node]
class Container(Directive):
optional_arguments = 1
final_argument_whitespace = True
option_spec = {'name': directives.unchanged}
has_content = True
def run(self):
self.assert_has_content()
text = '\n'.join(self.content)
try:
if self.arguments:
classes = directives.class_option(self.arguments[0])
else:
classes = []
except ValueError:
raise self.error(
'Invalid class attribute value for "%s" directive: "%s".'
% (self.name, self.arguments[0]))
node = nodes.container(text)
node['classes'].extend(classes)
self.add_name(node)
self.state.nested_parse(self.content, self.content_offset, node)
return [node]

View file

@ -0,0 +1,86 @@
# $Id: html.py 7320 2012-01-19 22:33:02Z milde $
# Author: David Goodger <goodger@python.org>
# Copyright: This module has been placed in the public domain.
"""
Directives for typically HTML-specific constructs.
"""
__docformat__ = 'reStructuredText'
import sys
from docutils import nodes, utils
from docutils.parsers.rst import Directive
from docutils.parsers.rst import states
from docutils.transforms import components
class MetaBody(states.SpecializedBody):
class meta(nodes.Special, nodes.PreBibliographic, nodes.Element):
"""HTML-specific "meta" element."""
pass
def field_marker(self, match, context, next_state):
"""Meta element."""
node, blank_finish = self.parsemeta(match)
self.parent += node
return [], next_state, []
def parsemeta(self, match):
name = self.parse_field_marker(match)
indented, indent, line_offset, blank_finish = \
self.state_machine.get_first_known_indented(match.end())
node = self.meta()
pending = nodes.pending(components.Filter,
{'component': 'writer',
'format': 'html',
'nodes': [node]})
node['content'] = ' '.join(indented)
if not indented:
line = self.state_machine.line
msg = self.reporter.info(
'No content for meta tag "%s".' % name,
nodes.literal_block(line, line))
return msg, blank_finish
tokens = name.split()
try:
attname, val = utils.extract_name_value(tokens[0])[0]
node[attname.lower()] = val
except utils.NameValueError:
node['name'] = tokens[0]
for token in tokens[1:]:
try:
attname, val = utils.extract_name_value(token)[0]
node[attname.lower()] = val
except utils.NameValueError, detail:
line = self.state_machine.line
msg = self.reporter.error(
'Error parsing meta tag attribute "%s": %s.'
% (token, detail), nodes.literal_block(line, line))
return msg, blank_finish
self.document.note_pending(pending)
return pending, blank_finish
class Meta(Directive):
has_content = True
SMkwargs = {'state_classes': (MetaBody,)}
def run(self):
self.assert_has_content()
node = nodes.Element()
new_line_offset, blank_finish = self.state.nested_list_parse(
self.content, self.content_offset, node,
initial_state='MetaBody', blank_finish=True,
state_machine_kwargs=self.SMkwargs)
if (new_line_offset - self.content_offset) != len(self.content):
# incomplete parse of block?
error = self.state_machine.reporter.error(
'Invalid meta directive.',
nodes.literal_block(self.block_text, self.block_text),
line=self.lineno)
node += error
return node.children

View file

@ -0,0 +1,162 @@
# $Id: images.py 7256 2011-12-14 23:53:38Z milde $
# Author: David Goodger <goodger@python.org>
# Copyright: This module has been placed in the public domain.
"""
Directives for figures and simple images.
"""
__docformat__ = 'reStructuredText'
import sys
import urllib
from docutils import nodes, utils
from docutils.parsers.rst import Directive
from docutils.parsers.rst import directives, states
from docutils.nodes import fully_normalize_name, whitespace_normalize_name
from docutils.parsers.rst.roles import set_classes
try: # check for the Python Imaging Library
import PIL
except ImportError:
try: # sometimes PIL modules are put in PYTHONPATH's root
import Image
class PIL(object): pass # dummy wrapper
PIL.Image = Image
except ImportError:
PIL = None
class Image(Directive):
align_h_values = ('left', 'center', 'right')
align_v_values = ('top', 'middle', 'bottom')
align_values = align_v_values + align_h_values
def align(argument):
# This is not callable as self.align. We cannot make it a
# staticmethod because we're saving an unbound method in
# option_spec below.
return directives.choice(argument, Image.align_values)
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = True
option_spec = {'alt': directives.unchanged,
'height': directives.length_or_unitless,
'width': directives.length_or_percentage_or_unitless,
'scale': directives.percentage,
'align': align,
'name': directives.unchanged,
'target': directives.unchanged_required,
'class': directives.class_option}
def run(self):
if 'align' in self.options:
if isinstance(self.state, states.SubstitutionDef):
# Check for align_v_values.
if self.options['align'] not in self.align_v_values:
raise self.error(
'Error in "%s" directive: "%s" is not a valid value '
'for the "align" option within a substitution '
'definition. Valid values for "align" are: "%s".'
% (self.name, self.options['align'],
'", "'.join(self.align_v_values)))
elif self.options['align'] not in self.align_h_values:
raise self.error(
'Error in "%s" directive: "%s" is not a valid value for '
'the "align" option. Valid values for "align" are: "%s".'
% (self.name, self.options['align'],
'", "'.join(self.align_h_values)))
messages = []
reference = directives.uri(self.arguments[0])
self.options['uri'] = reference
reference_node = None
if 'target' in self.options:
block = states.escape2null(
self.options['target']).splitlines()
block = [line for line in block]
target_type, data = self.state.parse_target(
block, self.block_text, self.lineno)
if target_type == 'refuri':
reference_node = nodes.reference(refuri=data)
elif target_type == 'refname':
reference_node = nodes.reference(
refname=fully_normalize_name(data),
name=whitespace_normalize_name(data))
reference_node.indirect_reference_name = data
self.state.document.note_refname(reference_node)
else: # malformed target
messages.append(data) # data is a system message
del self.options['target']
set_classes(self.options)
image_node = nodes.image(self.block_text, **self.options)
self.add_name(image_node)
if reference_node:
reference_node += image_node
return messages + [reference_node]
else:
return messages + [image_node]
class Figure(Image):
def align(argument):
return directives.choice(argument, Figure.align_h_values)
def figwidth_value(argument):
if argument.lower() == 'image':
return 'image'
else:
return directives.length_or_percentage_or_unitless(argument, 'px')
option_spec = Image.option_spec.copy()
option_spec['figwidth'] = figwidth_value
option_spec['figclass'] = directives.class_option
option_spec['align'] = align
has_content = True
def run(self):
figwidth = self.options.pop('figwidth', None)
figclasses = self.options.pop('figclass', None)
align = self.options.pop('align', None)
(image_node,) = Image.run(self)
if isinstance(image_node, nodes.system_message):
return [image_node]
figure_node = nodes.figure('', image_node)
if figwidth == 'image':
if PIL and self.state.document.settings.file_insertion_enabled:
imagepath = urllib.url2pathname(image_node['uri'])
try:
img = PIL.Image.open(
imagepath.encode(sys.getfilesystemencoding()))
except (IOError, UnicodeEncodeError):
pass # TODO: warn?
else:
self.state.document.settings.record_dependencies.add(
imagepath.replace('\\', '/'))
figure_node['width'] = img.size[0]
del img
elif figwidth is not None:
figure_node['width'] = figwidth
if figclasses:
figure_node['classes'] += figclasses
if align:
figure_node['align'] = align
if self.content:
node = nodes.Element() # anonymous container for parsing
self.state.nested_parse(self.content, self.content_offset, node)
first_node = node[0]
if isinstance(first_node, nodes.paragraph):
caption = nodes.caption(first_node.rawsource, '',
*first_node.children)
figure_node += caption
elif not (isinstance(first_node, nodes.comment)
and len(first_node) == 0):
error = self.state_machine.reporter.error(
'Figure caption must be a paragraph or empty comment.',
nodes.literal_block(self.block_text, self.block_text),
line=self.lineno)
return [figure_node, error]
if len(node) > 1:
figure_node += nodes.legend('', *node[1:])
return [figure_node]

View file

@ -0,0 +1,522 @@
# $Id: misc.py 7433 2012-05-11 21:03:07Z milde $
# Authors: David Goodger <goodger@python.org>; Dethe Elza
# Copyright: This module has been placed in the public domain.
"""Miscellaneous directives."""
__docformat__ = 'reStructuredText'
import sys
import os.path
import re
import time
from docutils import io, nodes, statemachine, utils
from docutils.error_reporting import SafeString, ErrorString
from docutils.parsers.rst import Directive, convert_directive_function
from docutils.parsers.rst import directives, roles, states
from docutils.parsers.rst.directives.body import CodeBlock, NumberLines
from docutils.parsers.rst.roles import set_classes
from docutils.transforms import misc
class Include(Directive):
"""
Include content read from a separate source file.
Content may be parsed by the parser, or included as a literal
block. The encoding of the included file can be specified. Only
a part of the given file argument may be included by specifying
start and end line or text to match before and/or after the text
to be used.
"""
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = True
option_spec = {'literal': directives.flag,
'code': directives.unchanged,
'encoding': directives.encoding,
'tab-width': int,
'start-line': int,
'end-line': int,
'start-after': directives.unchanged_required,
'end-before': directives.unchanged_required,
# ignored except for 'literal' or 'code':
'number-lines': directives.unchanged, # integer or None
'class': directives.class_option,
'name': directives.unchanged}
standard_include_path = os.path.join(os.path.dirname(states.__file__),
'include')
def run(self):
"""Include a file as part of the content of this reST file."""
if not self.state.document.settings.file_insertion_enabled:
raise self.warning('"%s" directive disabled.' % self.name)
source = self.state_machine.input_lines.source(
self.lineno - self.state_machine.input_offset - 1)
source_dir = os.path.dirname(os.path.abspath(source))
path = directives.path(self.arguments[0])
if path.startswith('<') and path.endswith('>'):
path = os.path.join(self.standard_include_path, path[1:-1])
path = os.path.normpath(os.path.join(source_dir, path))
path = utils.relative_path(None, path)
path = nodes.reprunicode(path)
encoding = self.options.get(
'encoding', self.state.document.settings.input_encoding)
tab_width = self.options.get(
'tab-width', self.state.document.settings.tab_width)
try:
self.state.document.settings.record_dependencies.add(path)
include_file = io.FileInput(
source_path=path, encoding=encoding,
error_handler=(self.state.document.settings.\
input_encoding_error_handler),
handle_io_errors=None)
except UnicodeEncodeError, error:
raise self.severe(u'Problems with "%s" directive path:\n'
'Cannot encode input file path "%s" '
'(wrong locale?).' %
(self.name, SafeString(path)))
except IOError, error:
raise self.severe(u'Problems with "%s" directive path:\n%s.' %
(self.name, ErrorString(error)))
startline = self.options.get('start-line', None)
endline = self.options.get('end-line', None)
try:
if startline or (endline is not None):
lines = include_file.readlines()
rawtext = ''.join(lines[startline:endline])
else:
rawtext = include_file.read()
except UnicodeError, error:
raise self.severe(u'Problem with "%s" directive:\n%s' %
(self.name, ErrorString(error)))
# start-after/end-before: no restrictions on newlines in match-text,
# and no restrictions on matching inside lines vs. line boundaries
after_text = self.options.get('start-after', None)
if after_text:
# skip content in rawtext before *and incl.* a matching text
after_index = rawtext.find(after_text)
if after_index < 0:
raise self.severe('Problem with "start-after" option of "%s" '
'directive:\nText not found.' % self.name)
rawtext = rawtext[after_index + len(after_text):]
before_text = self.options.get('end-before', None)
if before_text:
# skip content in rawtext after *and incl.* a matching text
before_index = rawtext.find(before_text)
if before_index < 0:
raise self.severe('Problem with "end-before" option of "%s" '
'directive:\nText not found.' % self.name)
rawtext = rawtext[:before_index]
include_lines = statemachine.string2lines(rawtext, tab_width,
convert_whitespace=True)
if 'literal' in self.options:
# Convert tabs to spaces, if `tab_width` is positive.
if tab_width >= 0:
text = rawtext.expandtabs(tab_width)
else:
text = rawtext
literal_block = nodes.literal_block(rawtext, source=path,
classes=self.options.get('class', []))
literal_block.line = 1
self.add_name(literal_block)
if 'number-lines' in self.options:
try:
startline = int(self.options['number-lines'] or 1)
except ValueError:
raise self.error(':number-lines: with non-integer '
'start value')
endline = startline + len(include_lines)
if text.endswith('\n'):
text = text[:-1]
tokens = NumberLines([([], text)], startline, endline)
for classes, value in tokens:
if classes:
literal_block += nodes.inline(value, value,
classes=classes)
else:
literal_block += nodes.Text(value, value)
else:
literal_block += nodes.Text(text, text)
return [literal_block]
if 'code' in self.options:
self.options['source'] = path
codeblock = CodeBlock(self.name,
[self.options.pop('code')], # arguments
self.options,
include_lines, # content
self.lineno,
self.content_offset,
self.block_text,
self.state,
self.state_machine)
return codeblock.run()
self.state_machine.insert_input(include_lines, path)
return []
class Raw(Directive):
"""
Pass through content unchanged
Content is included in output based on type argument
Content may be included inline (content section of directive) or
imported from a file or url.
"""
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = True
option_spec = {'file': directives.path,
'url': directives.uri,
'encoding': directives.encoding}
has_content = True
def run(self):
if (not self.state.document.settings.raw_enabled
or (not self.state.document.settings.file_insertion_enabled
and ('file' in self.options
or 'url' in self.options))):
raise self.warning('"%s" directive disabled.' % self.name)
attributes = {'format': ' '.join(self.arguments[0].lower().split())}
encoding = self.options.get(
'encoding', self.state.document.settings.input_encoding)
if self.content:
if 'file' in self.options or 'url' in self.options:
raise self.error(
'"%s" directive may not both specify an external file '
'and have content.' % self.name)
text = '\n'.join(self.content)
elif 'file' in self.options:
if 'url' in self.options:
raise self.error(
'The "file" and "url" options may not be simultaneously '
'specified for the "%s" directive.' % self.name)
source_dir = os.path.dirname(
os.path.abspath(self.state.document.current_source))
path = os.path.normpath(os.path.join(source_dir,
self.options['file']))
path = utils.relative_path(None, path)
try:
raw_file = io.FileInput(
source_path=path, encoding=encoding,
error_handler=(self.state.document.settings.\
input_encoding_error_handler),
handle_io_errors=None)
# TODO: currently, raw input files are recorded as
# dependencies even if not used for the chosen output format.
self.state.document.settings.record_dependencies.add(path)
except IOError, error:
raise self.severe(u'Problems with "%s" directive path:\n%s.'
% (self.name, ErrorString(error)))
try:
text = raw_file.read()
except UnicodeError, error:
raise self.severe(u'Problem with "%s" directive:\n%s'
% (self.name, ErrorString(error)))
attributes['source'] = path
elif 'url' in self.options:
source = self.options['url']
# Do not import urllib2 at the top of the module because
# it may fail due to broken SSL dependencies, and it takes
# about 0.15 seconds to load.
import urllib2
try:
raw_text = urllib2.urlopen(source).read()
except (urllib2.URLError, IOError, OSError), error:
raise self.severe(u'Problems with "%s" directive URL "%s":\n%s.'
% (self.name, self.options['url'], ErrorString(error)))
raw_file = io.StringInput(
source=raw_text, source_path=source, encoding=encoding,
error_handler=(self.state.document.settings.\
input_encoding_error_handler))
try:
text = raw_file.read()
except UnicodeError, error:
raise self.severe(u'Problem with "%s" directive:\n%s'
% (self.name, ErrorString(error)))
attributes['source'] = source
else:
# This will always fail because there is no content.
self.assert_has_content()
raw_node = nodes.raw('', text, **attributes)
(raw_node.source,
raw_node.line) = self.state_machine.get_source_and_line(self.lineno)
return [raw_node]
class Replace(Directive):
has_content = True
def run(self):
if not isinstance(self.state, states.SubstitutionDef):
raise self.error(
'Invalid context: the "%s" directive can only be used within '
'a substitution definition.' % self.name)
self.assert_has_content()
text = '\n'.join(self.content)
element = nodes.Element(text)
self.state.nested_parse(self.content, self.content_offset,
element)
# element might contain [paragraph] + system_message(s)
node = None
messages = []
for elem in element:
if not node and isinstance(elem, nodes.paragraph):
node = elem
elif isinstance(elem, nodes.system_message):
elem['backrefs'] = []
messages.append(elem)
else:
return [
self.state_machine.reporter.error(
'Error in "%s" directive: may contain a single paragraph '
'only.' % (self.name), line=self.lineno) ]
if node:
return messages + node.children
return messages
class Unicode(Directive):
r"""
Convert Unicode character codes (numbers) to characters. Codes may be
decimal numbers, hexadecimal numbers (prefixed by ``0x``, ``x``, ``\x``,
``U+``, ``u``, or ``\u``; e.g. ``U+262E``), or XML-style numeric character
entities (e.g. ``&#x262E;``). Text following ".." is a comment and is
ignored. Spaces are ignored, and any other text remains as-is.
"""
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = True
option_spec = {'trim': directives.flag,
'ltrim': directives.flag,
'rtrim': directives.flag}
comment_pattern = re.compile(r'( |\n|^)\.\. ')
def run(self):
if not isinstance(self.state, states.SubstitutionDef):
raise self.error(
'Invalid context: the "%s" directive can only be used within '
'a substitution definition.' % self.name)
substitution_definition = self.state_machine.node
if 'trim' in self.options:
substitution_definition.attributes['ltrim'] = 1
substitution_definition.attributes['rtrim'] = 1
if 'ltrim' in self.options:
substitution_definition.attributes['ltrim'] = 1
if 'rtrim' in self.options:
substitution_definition.attributes['rtrim'] = 1
codes = self.comment_pattern.split(self.arguments[0])[0].split()
element = nodes.Element()
for code in codes:
try:
decoded = directives.unicode_code(code)
except ValueError, error:
raise self.error(u'Invalid character code: %s\n%s'
% (code, ErrorString(error)))
element += nodes.Text(decoded)
return element.children
class Class(Directive):
"""
Set a "class" attribute on the directive content or the next element.
When applied to the next element, a "pending" element is inserted, and a
transform does the work later.
"""
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = True
has_content = True
def run(self):
try:
class_value = directives.class_option(self.arguments[0])
except ValueError:
raise self.error(
'Invalid class attribute value for "%s" directive: "%s".'
% (self.name, self.arguments[0]))
node_list = []
if self.content:
container = nodes.Element()
self.state.nested_parse(self.content, self.content_offset,
container)
for node in container:
node['classes'].extend(class_value)
node_list.extend(container.children)
else:
pending = nodes.pending(
misc.ClassAttribute,
{'class': class_value, 'directive': self.name},
self.block_text)
self.state_machine.document.note_pending(pending)
node_list.append(pending)
return node_list
class Role(Directive):
has_content = True
argument_pattern = re.compile(r'(%s)\s*(\(\s*(%s)\s*\)\s*)?$'
% ((states.Inliner.simplename,) * 2))
def run(self):
"""Dynamically create and register a custom interpreted text role."""
if self.content_offset > self.lineno or not self.content:
raise self.error('"%s" directive requires arguments on the first '
'line.' % self.name)
args = self.content[0]
match = self.argument_pattern.match(args)
if not match:
raise self.error('"%s" directive arguments not valid role names: '
'"%s".' % (self.name, args))
new_role_name = match.group(1)
base_role_name = match.group(3)
messages = []
if base_role_name:
base_role, messages = roles.role(
base_role_name, self.state_machine.language, self.lineno,
self.state.reporter)
if base_role is None:
error = self.state.reporter.error(
'Unknown interpreted text role "%s".' % base_role_name,
nodes.literal_block(self.block_text, self.block_text),
line=self.lineno)
return messages + [error]
else:
base_role = roles.generic_custom_role
assert not hasattr(base_role, 'arguments'), (
'Supplemental directive arguments for "%s" directive not '
'supported (specified by "%r" role).' % (self.name, base_role))
try:
converted_role = convert_directive_function(base_role)
(arguments, options, content, content_offset) = (
self.state.parse_directive_block(
self.content[1:], self.content_offset, converted_role,
option_presets={}))
except states.MarkupError, detail:
error = self.state_machine.reporter.error(
'Error in "%s" directive:\n%s.' % (self.name, detail),
nodes.literal_block(self.block_text, self.block_text),
line=self.lineno)
return messages + [error]
if 'class' not in options:
try:
options['class'] = directives.class_option(new_role_name)
except ValueError, detail:
error = self.state_machine.reporter.error(
u'Invalid argument for "%s" directive:\n%s.'
% (self.name, SafeString(detail)), nodes.literal_block(
self.block_text, self.block_text), line=self.lineno)
return messages + [error]
role = roles.CustomRole(new_role_name, base_role, options, content)
roles.register_local_role(new_role_name, role)
return messages
class DefaultRole(Directive):
"""Set the default interpreted text role."""
optional_arguments = 1
final_argument_whitespace = False
def run(self):
if not self.arguments:
if '' in roles._roles:
# restore the "default" default role
del roles._roles['']
return []
role_name = self.arguments[0]
role, messages = roles.role(role_name, self.state_machine.language,
self.lineno, self.state.reporter)
if role is None:
error = self.state.reporter.error(
'Unknown interpreted text role "%s".' % role_name,
nodes.literal_block(self.block_text, self.block_text),
line=self.lineno)
return messages + [error]
roles._roles[''] = role
# @@@ should this be local to the document, not the parser?
return messages
class Title(Directive):
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = True
def run(self):
self.state_machine.document['title'] = self.arguments[0]
return []
class Date(Directive):
has_content = True
def run(self):
if not isinstance(self.state, states.SubstitutionDef):
raise self.error(
'Invalid context: the "%s" directive can only be used within '
'a substitution definition.' % self.name)
format = '\n'.join(self.content) or '%Y-%m-%d'
text = time.strftime(format)
return [nodes.Text(text)]
class TestDirective(Directive):
"""This directive is useful only for testing purposes."""
optional_arguments = 1
final_argument_whitespace = True
option_spec = {'option': directives.unchanged_required}
has_content = True
def run(self):
if self.content:
text = '\n'.join(self.content)
info = self.state_machine.reporter.info(
'Directive processed. Type="%s", arguments=%r, options=%r, '
'content:' % (self.name, self.arguments, self.options),
nodes.literal_block(text, text), line=self.lineno)
else:
info = self.state_machine.reporter.info(
'Directive processed. Type="%s", arguments=%r, options=%r, '
'content: None' % (self.name, self.arguments, self.options),
line=self.lineno)
return [info]
# Old-style, functional definition:
#
# def directive_test_function(name, arguments, options, content, lineno,
# content_offset, block_text, state, state_machine):
# """This directive is useful only for testing purposes."""
# if content:
# text = '\n'.join(content)
# info = state_machine.reporter.info(
# 'Directive processed. Type="%s", arguments=%r, options=%r, '
# 'content:' % (name, arguments, options),
# nodes.literal_block(text, text), line=lineno)
# else:
# info = state_machine.reporter.info(
# 'Directive processed. Type="%s", arguments=%r, options=%r, '
# 'content: None' % (name, arguments, options), line=lineno)
# return [info]
#
# directive_test_function.arguments = (0, 1, 1)
# directive_test_function.options = {'option': directives.unchanged_required}
# directive_test_function.content = 1

View file

@ -0,0 +1,126 @@
# $Id: parts.py 7308 2012-01-06 12:08:43Z milde $
# Authors: David Goodger <goodger@python.org>; Dmitry Jemerov
# Copyright: This module has been placed in the public domain.
"""
Directives for document parts.
"""
__docformat__ = 'reStructuredText'
from docutils import nodes, languages
from docutils.transforms import parts
from docutils.parsers.rst import Directive
from docutils.parsers.rst import directives
class Contents(Directive):
"""
Table of contents.
The table of contents is generated in two passes: initial parse and
transform. During the initial parse, a 'pending' element is generated
which acts as a placeholder, storing the TOC title and any options
internally. At a later stage in the processing, the 'pending' element is
replaced by a 'topic' element, a title and the table of contents proper.
"""
backlinks_values = ('top', 'entry', 'none')
def backlinks(arg):
value = directives.choice(arg, Contents.backlinks_values)
if value == 'none':
return None
else:
return value
optional_arguments = 1
final_argument_whitespace = True
option_spec = {'depth': directives.nonnegative_int,
'local': directives.flag,
'backlinks': backlinks,
'class': directives.class_option}
def run(self):
if not (self.state_machine.match_titles
or isinstance(self.state_machine.node, nodes.sidebar)):
raise self.error('The "%s" directive may not be used within '
'topics or body elements.' % self.name)
document = self.state_machine.document
language = languages.get_language(document.settings.language_code,
document.reporter)
if self.arguments:
title_text = self.arguments[0]
text_nodes, messages = self.state.inline_text(title_text,
self.lineno)
title = nodes.title(title_text, '', *text_nodes)
else:
messages = []
if 'local' in self.options:
title = None
else:
title = nodes.title('', language.labels['contents'])
topic = nodes.topic(classes=['contents'])
topic['classes'] += self.options.get('class', [])
# the latex2e writer needs source and line for a warning:
topic.source, topic.line = self.state_machine.get_source_and_line()
topic.line -= 1
if 'local' in self.options:
topic['classes'].append('local')
if title:
name = title.astext()
topic += title
else:
name = language.labels['contents']
name = nodes.fully_normalize_name(name)
if not document.has_name(name):
topic['names'].append(name)
document.note_implicit_target(topic)
pending = nodes.pending(parts.Contents, rawsource=self.block_text)
pending.details.update(self.options)
document.note_pending(pending)
topic += pending
return [topic] + messages
class Sectnum(Directive):
"""Automatic section numbering."""
option_spec = {'depth': int,
'start': int,
'prefix': directives.unchanged_required,
'suffix': directives.unchanged_required}
def run(self):
pending = nodes.pending(parts.SectNum)
pending.details.update(self.options)
self.state_machine.document.note_pending(pending)
return [pending]
class Header(Directive):
"""Contents of document header."""
has_content = True
def run(self):
self.assert_has_content()
header = self.state_machine.document.get_decoration().get_header()
self.state.nested_parse(self.content, self.content_offset, header)
return []
class Footer(Directive):
"""Contents of document footer."""
has_content = True
def run(self):
self.assert_has_content()
footer = self.state_machine.document.get_decoration().get_footer()
self.state.nested_parse(self.content, self.content_offset, footer)
return []

View file

@ -0,0 +1,29 @@
# $Id: references.py 7062 2011-06-30 22:14:29Z milde $
# Authors: David Goodger <goodger@python.org>; Dmitry Jemerov
# Copyright: This module has been placed in the public domain.
"""
Directives for references and targets.
"""
__docformat__ = 'reStructuredText'
from docutils import nodes
from docutils.transforms import references
from docutils.parsers.rst import Directive
from docutils.parsers.rst import directives
class TargetNotes(Directive):
"""Target footnote generation."""
option_spec = {'class': directives.class_option,
'name': directives.unchanged}
def run(self):
pending = nodes.pending(references.TargetNotes)
self.add_name(pending)
pending.details.update(self.options)
self.state_machine.document.note_pending(pending)
return [pending]

View file

@ -0,0 +1,454 @@
# $Id: tables.py 7328 2012-01-27 08:41:35Z milde $
# Authors: David Goodger <goodger@python.org>; David Priest
# Copyright: This module has been placed in the public domain.
"""
Directives for table elements.
"""
__docformat__ = 'reStructuredText'
import sys
import os.path
import csv
from docutils import io, nodes, statemachine, utils
from docutils.error_reporting import SafeString
from docutils.utils import SystemMessagePropagation
from docutils.parsers.rst import Directive
from docutils.parsers.rst import directives
class Table(Directive):
"""
Generic table base class.
"""
optional_arguments = 1
final_argument_whitespace = True
option_spec = {'class': directives.class_option,
'name': directives.unchanged}
has_content = True
def make_title(self):
if self.arguments:
title_text = self.arguments[0]
text_nodes, messages = self.state.inline_text(title_text,
self.lineno)
title = nodes.title(title_text, '', *text_nodes)
else:
title = None
messages = []
return title, messages
def process_header_option(self):
source = self.state_machine.get_source(self.lineno - 1)
table_head = []
max_header_cols = 0
if 'header' in self.options: # separate table header in option
rows, max_header_cols = self.parse_csv_data_into_rows(
self.options['header'].split('\n'), self.HeaderDialect(),
source)
table_head.extend(rows)
return table_head, max_header_cols
def check_table_dimensions(self, rows, header_rows, stub_columns):
if len(rows) < header_rows:
error = self.state_machine.reporter.error(
'%s header row(s) specified but only %s row(s) of data '
'supplied ("%s" directive).'
% (header_rows, len(rows), self.name), nodes.literal_block(
self.block_text, self.block_text), line=self.lineno)
raise SystemMessagePropagation(error)
if len(rows) == header_rows > 0:
error = self.state_machine.reporter.error(
'Insufficient data supplied (%s row(s)); no data remaining '
'for table body, required by "%s" directive.'
% (len(rows), self.name), nodes.literal_block(
self.block_text, self.block_text), line=self.lineno)
raise SystemMessagePropagation(error)
for row in rows:
if len(row) < stub_columns:
error = self.state_machine.reporter.error(
'%s stub column(s) specified but only %s columns(s) of '
'data supplied ("%s" directive).' %
(stub_columns, len(row), self.name), nodes.literal_block(
self.block_text, self.block_text), line=self.lineno)
raise SystemMessagePropagation(error)
if len(row) == stub_columns > 0:
error = self.state_machine.reporter.error(
'Insufficient data supplied (%s columns(s)); no data remaining '
'for table body, required by "%s" directive.'
% (len(row), self.name), nodes.literal_block(
self.block_text, self.block_text), line=self.lineno)
raise SystemMessagePropagation(error)
def get_column_widths(self, max_cols):
if 'widths' in self.options:
col_widths = self.options['widths']
if len(col_widths) != max_cols:
error = self.state_machine.reporter.error(
'"%s" widths do not match the number of columns in table '
'(%s).' % (self.name, max_cols), nodes.literal_block(
self.block_text, self.block_text), line=self.lineno)
raise SystemMessagePropagation(error)
elif max_cols:
col_widths = [100 // max_cols] * max_cols
else:
error = self.state_machine.reporter.error(
'No table data detected in CSV file.', nodes.literal_block(
self.block_text, self.block_text), line=self.lineno)
raise SystemMessagePropagation(error)
return col_widths
def extend_short_rows_with_empty_cells(self, columns, parts):
for part in parts:
for row in part:
if len(row) < columns:
row.extend([(0, 0, 0, [])] * (columns - len(row)))
class RSTTable(Table):
def run(self):
if not self.content:
warning = self.state_machine.reporter.warning(
'Content block expected for the "%s" directive; none found.'
% self.name, nodes.literal_block(
self.block_text, self.block_text), line=self.lineno)
return [warning]
title, messages = self.make_title()
node = nodes.Element() # anonymous container for parsing
self.state.nested_parse(self.content, self.content_offset, node)
if len(node) != 1 or not isinstance(node[0], nodes.table):
error = self.state_machine.reporter.error(
'Error parsing content block for the "%s" directive: exactly '
'one table expected.' % self.name, nodes.literal_block(
self.block_text, self.block_text), line=self.lineno)
return [error]
table_node = node[0]
table_node['classes'] += self.options.get('class', [])
self.add_name(table_node)
if title:
table_node.insert(0, title)
return [table_node] + messages
class CSVTable(Table):
option_spec = {'header-rows': directives.nonnegative_int,
'stub-columns': directives.nonnegative_int,
'header': directives.unchanged,
'widths': directives.positive_int_list,
'file': directives.path,
'url': directives.uri,
'encoding': directives.encoding,
'class': directives.class_option,
'name': directives.unchanged,
# field delimiter char
'delim': directives.single_char_or_whitespace_or_unicode,
# treat whitespace after delimiter as significant
'keepspace': directives.flag,
# text field quote/unquote char:
'quote': directives.single_char_or_unicode,
# char used to escape delim & quote as-needed:
'escape': directives.single_char_or_unicode,}
class DocutilsDialect(csv.Dialect):
"""CSV dialect for `csv_table` directive."""
delimiter = ','
quotechar = '"'
doublequote = True
skipinitialspace = True
lineterminator = '\n'
quoting = csv.QUOTE_MINIMAL
def __init__(self, options):
if 'delim' in options:
self.delimiter = str(options['delim'])
if 'keepspace' in options:
self.skipinitialspace = False
if 'quote' in options:
self.quotechar = str(options['quote'])
if 'escape' in options:
self.doublequote = False
self.escapechar = str(options['escape'])
csv.Dialect.__init__(self)
class HeaderDialect(csv.Dialect):
"""CSV dialect to use for the "header" option data."""
delimiter = ','
quotechar = '"'
escapechar = '\\'
doublequote = False
skipinitialspace = True
lineterminator = '\n'
quoting = csv.QUOTE_MINIMAL
def check_requirements(self):
pass
def run(self):
try:
if (not self.state.document.settings.file_insertion_enabled
and ('file' in self.options
or 'url' in self.options)):
warning = self.state_machine.reporter.warning(
'File and URL access deactivated; ignoring "%s" '
'directive.' % self.name, nodes.literal_block(
self.block_text, self.block_text), line=self.lineno)
return [warning]
self.check_requirements()
title, messages = self.make_title()
csv_data, source = self.get_csv_data()
table_head, max_header_cols = self.process_header_option()
rows, max_cols = self.parse_csv_data_into_rows(
csv_data, self.DocutilsDialect(self.options), source)
max_cols = max(max_cols, max_header_cols)
header_rows = self.options.get('header-rows', 0)
stub_columns = self.options.get('stub-columns', 0)
self.check_table_dimensions(rows, header_rows, stub_columns)
table_head.extend(rows[:header_rows])
table_body = rows[header_rows:]
col_widths = self.get_column_widths(max_cols)
self.extend_short_rows_with_empty_cells(max_cols,
(table_head, table_body))
except SystemMessagePropagation, detail:
return [detail.args[0]]
except csv.Error, detail:
error = self.state_machine.reporter.error(
'Error with CSV data in "%s" directive:\n%s'
% (self.name, detail), nodes.literal_block(
self.block_text, self.block_text), line=self.lineno)
return [error]
table = (col_widths, table_head, table_body)
table_node = self.state.build_table(table, self.content_offset,
stub_columns)
table_node['classes'] += self.options.get('class', [])
self.add_name(table_node)
if title:
table_node.insert(0, title)
return [table_node] + messages
def get_csv_data(self):
"""
Get CSV data from the directive content, from an external
file, or from a URL reference.
"""
encoding = self.options.get(
'encoding', self.state.document.settings.input_encoding)
if self.content:
# CSV data is from directive content.
if 'file' in self.options or 'url' in self.options:
error = self.state_machine.reporter.error(
'"%s" directive may not both specify an external file and'
' have content.' % self.name, nodes.literal_block(
self.block_text, self.block_text), line=self.lineno)
raise SystemMessagePropagation(error)
source = self.content.source(0)
csv_data = self.content
elif 'file' in self.options:
# CSV data is from an external file.
if 'url' in self.options:
error = self.state_machine.reporter.error(
'The "file" and "url" options may not be simultaneously'
' specified for the "%s" directive.' % self.name,
nodes.literal_block(self.block_text, self.block_text),
line=self.lineno)
raise SystemMessagePropagation(error)
source_dir = os.path.dirname(
os.path.abspath(self.state.document.current_source))
source = os.path.normpath(os.path.join(source_dir,
self.options['file']))
source = utils.relative_path(None, source)
try:
self.state.document.settings.record_dependencies.add(source)
csv_file = io.FileInput(
source_path=source, encoding=encoding,
error_handler=(self.state.document.settings.\
input_encoding_error_handler),
handle_io_errors=None)
csv_data = csv_file.read().splitlines()
except IOError, error:
severe = self.state_machine.reporter.severe(
u'Problems with "%s" directive path:\n%s.'
% (self.name, SafeString(error)),
nodes.literal_block(self.block_text, self.block_text),
line=self.lineno)
raise SystemMessagePropagation(severe)
elif 'url' in self.options:
# CSV data is from a URL.
# Do not import urllib2 at the top of the module because
# it may fail due to broken SSL dependencies, and it takes
# about 0.15 seconds to load.
import urllib2
source = self.options['url']
try:
csv_text = urllib2.urlopen(source).read()
except (urllib2.URLError, IOError, OSError, ValueError), error:
severe = self.state_machine.reporter.severe(
'Problems with "%s" directive URL "%s":\n%s.'
% (self.name, self.options['url'], SafeString(error)),
nodes.literal_block(self.block_text, self.block_text),
line=self.lineno)
raise SystemMessagePropagation(severe)
csv_file = io.StringInput(
source=csv_text, source_path=source, encoding=encoding,
error_handler=(self.state.document.settings.\
input_encoding_error_handler))
csv_data = csv_file.read().splitlines()
else:
error = self.state_machine.reporter.warning(
'The "%s" directive requires content; none supplied.'
% self.name, nodes.literal_block(
self.block_text, self.block_text), line=self.lineno)
raise SystemMessagePropagation(error)
return csv_data, source
if sys.version_info < (3,):
# 2.x csv module doesn't do Unicode
def decode_from_csv(s):
return s.decode('utf-8')
def encode_for_csv(s):
return s.encode('utf-8')
else:
def decode_from_csv(s):
return s
def encode_for_csv(s):
return s
decode_from_csv = staticmethod(decode_from_csv)
encode_for_csv = staticmethod(encode_for_csv)
def parse_csv_data_into_rows(self, csv_data, dialect, source):
# csv.py doesn't do Unicode; encode temporarily as UTF-8
csv_reader = csv.reader([self.encode_for_csv(line + '\n')
for line in csv_data],
dialect=dialect)
rows = []
max_cols = 0
for row in csv_reader:
row_data = []
for cell in row:
# decode UTF-8 back to Unicode
cell_text = self.decode_from_csv(cell)
cell_data = (0, 0, 0, statemachine.StringList(
cell_text.splitlines(), source=source))
row_data.append(cell_data)
rows.append(row_data)
max_cols = max(max_cols, len(row))
return rows, max_cols
class ListTable(Table):
"""
Implement tables whose data is encoded as a uniform two-level bullet list.
For further ideas, see
http://docutils.sf.net/docs/dev/rst/alternatives.html#list-driven-tables
"""
option_spec = {'header-rows': directives.nonnegative_int,
'stub-columns': directives.nonnegative_int,
'widths': directives.positive_int_list,
'class': directives.class_option,
'name': directives.unchanged}
def run(self):
if not self.content:
error = self.state_machine.reporter.error(
'The "%s" directive is empty; content required.' % self.name,
nodes.literal_block(self.block_text, self.block_text),
line=self.lineno)
return [error]
title, messages = self.make_title()
node = nodes.Element() # anonymous container for parsing
self.state.nested_parse(self.content, self.content_offset, node)
try:
num_cols, col_widths = self.check_list_content(node)
table_data = [[item.children for item in row_list[0]]
for row_list in node[0]]
header_rows = self.options.get('header-rows', 0)
stub_columns = self.options.get('stub-columns', 0)
self.check_table_dimensions(table_data, header_rows, stub_columns)
except SystemMessagePropagation, detail:
return [detail.args[0]]
table_node = self.build_table_from_list(table_data, col_widths,
header_rows, stub_columns)
table_node['classes'] += self.options.get('class', [])
self.add_name(table_node)
if title:
table_node.insert(0, title)
return [table_node] + messages
def check_list_content(self, node):
if len(node) != 1 or not isinstance(node[0], nodes.bullet_list):
error = self.state_machine.reporter.error(
'Error parsing content block for the "%s" directive: '
'exactly one bullet list expected.' % self.name,
nodes.literal_block(self.block_text, self.block_text),
line=self.lineno)
raise SystemMessagePropagation(error)
list_node = node[0]
# Check for a uniform two-level bullet list:
for item_index in range(len(list_node)):
item = list_node[item_index]
if len(item) != 1 or not isinstance(item[0], nodes.bullet_list):
error = self.state_machine.reporter.error(
'Error parsing content block for the "%s" directive: '
'two-level bullet list expected, but row %s does not '
'contain a second-level bullet list.'
% (self.name, item_index + 1), nodes.literal_block(
self.block_text, self.block_text), line=self.lineno)
raise SystemMessagePropagation(error)
elif item_index:
# ATTN pychecker users: num_cols is guaranteed to be set in the
# "else" clause below for item_index==0, before this branch is
# triggered.
if len(item[0]) != num_cols:
error = self.state_machine.reporter.error(
'Error parsing content block for the "%s" directive: '
'uniform two-level bullet list expected, but row %s '
'does not contain the same number of items as row 1 '
'(%s vs %s).'
% (self.name, item_index + 1, len(item[0]), num_cols),
nodes.literal_block(self.block_text, self.block_text),
line=self.lineno)
raise SystemMessagePropagation(error)
else:
num_cols = len(item[0])
col_widths = self.get_column_widths(num_cols)
return num_cols, col_widths
def build_table_from_list(self, table_data, col_widths, header_rows, stub_columns):
table = nodes.table()
tgroup = nodes.tgroup(cols=len(col_widths))
table += tgroup
for col_width in col_widths:
colspec = nodes.colspec(colwidth=col_width)
if stub_columns:
colspec.attributes['stub'] = 1
stub_columns -= 1
tgroup += colspec
rows = []
for row in table_data:
row_node = nodes.row()
for cell in row:
entry = nodes.entry()
entry += cell
row_node += entry
rows.append(row_node)
if header_rows:
thead = nodes.thead()
thead.extend(rows[:header_rows])
tgroup += thead
tbody = nodes.tbody()
tbody.extend(rows[header_rows:])
tgroup += tbody
return table

View file

@ -0,0 +1,17 @@
============================================
``docutils/parsers/rst/include`` Directory
============================================
This directory contains standard data files intended for inclusion in
reStructuredText documents. To access these files, use the "include"
directive with the special syntax for standard "include" data files,
angle brackets around the file name::
.. include:: <isonum.txt>
See the documentation for the `"include" directive`__ and
`reStructuredText Standard Substitution Definition Sets`__ for
details.
__ http://docutils.sf.net/docs/ref/rst/directives.html#include
__ http://docutils.sf.net/docs/ref/rst/substitutions.html

View file

@ -0,0 +1,162 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |angzarr| unicode:: U+0237C .. RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
.. |cirmid| unicode:: U+02AEF .. VERTICAL LINE WITH CIRCLE ABOVE
.. |cudarrl| unicode:: U+02938 .. RIGHT-SIDE ARC CLOCKWISE ARROW
.. |cudarrr| unicode:: U+02935 .. ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS
.. |cularr| unicode:: U+021B6 .. ANTICLOCKWISE TOP SEMICIRCLE ARROW
.. |cularrp| unicode:: U+0293D .. TOP ARC ANTICLOCKWISE ARROW WITH PLUS
.. |curarr| unicode:: U+021B7 .. CLOCKWISE TOP SEMICIRCLE ARROW
.. |curarrm| unicode:: U+0293C .. TOP ARC CLOCKWISE ARROW WITH MINUS
.. |Darr| unicode:: U+021A1 .. DOWNWARDS TWO HEADED ARROW
.. |dArr| unicode:: U+021D3 .. DOWNWARDS DOUBLE ARROW
.. |darr2| unicode:: U+021CA .. DOWNWARDS PAIRED ARROWS
.. |ddarr| unicode:: U+021CA .. DOWNWARDS PAIRED ARROWS
.. |DDotrahd| unicode:: U+02911 .. RIGHTWARDS ARROW WITH DOTTED STEM
.. |dfisht| unicode:: U+0297F .. DOWN FISH TAIL
.. |dHar| unicode:: U+02965 .. DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
.. |dharl| unicode:: U+021C3 .. DOWNWARDS HARPOON WITH BARB LEFTWARDS
.. |dharr| unicode:: U+021C2 .. DOWNWARDS HARPOON WITH BARB RIGHTWARDS
.. |dlarr| unicode:: U+02199 .. SOUTH WEST ARROW
.. |drarr| unicode:: U+02198 .. SOUTH EAST ARROW
.. |duarr| unicode:: U+021F5 .. DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW
.. |duhar| unicode:: U+0296F .. DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
.. |dzigrarr| unicode:: U+027FF .. LONG RIGHTWARDS SQUIGGLE ARROW
.. |erarr| unicode:: U+02971 .. EQUALS SIGN ABOVE RIGHTWARDS ARROW
.. |hArr| unicode:: U+021D4 .. LEFT RIGHT DOUBLE ARROW
.. |harr| unicode:: U+02194 .. LEFT RIGHT ARROW
.. |harrcir| unicode:: U+02948 .. LEFT RIGHT ARROW THROUGH SMALL CIRCLE
.. |harrw| unicode:: U+021AD .. LEFT RIGHT WAVE ARROW
.. |hoarr| unicode:: U+021FF .. LEFT RIGHT OPEN-HEADED ARROW
.. |imof| unicode:: U+022B7 .. IMAGE OF
.. |lAarr| unicode:: U+021DA .. LEFTWARDS TRIPLE ARROW
.. |Larr| unicode:: U+0219E .. LEFTWARDS TWO HEADED ARROW
.. |larr2| unicode:: U+021C7 .. LEFTWARDS PAIRED ARROWS
.. |larrbfs| unicode:: U+0291F .. LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND
.. |larrfs| unicode:: U+0291D .. LEFTWARDS ARROW TO BLACK DIAMOND
.. |larrhk| unicode:: U+021A9 .. LEFTWARDS ARROW WITH HOOK
.. |larrlp| unicode:: U+021AB .. LEFTWARDS ARROW WITH LOOP
.. |larrpl| unicode:: U+02939 .. LEFT-SIDE ARC ANTICLOCKWISE ARROW
.. |larrsim| unicode:: U+02973 .. LEFTWARDS ARROW ABOVE TILDE OPERATOR
.. |larrtl| unicode:: U+021A2 .. LEFTWARDS ARROW WITH TAIL
.. |lAtail| unicode:: U+0291B .. LEFTWARDS DOUBLE ARROW-TAIL
.. |latail| unicode:: U+02919 .. LEFTWARDS ARROW-TAIL
.. |lBarr| unicode:: U+0290E .. LEFTWARDS TRIPLE DASH ARROW
.. |lbarr| unicode:: U+0290C .. LEFTWARDS DOUBLE DASH ARROW
.. |ldca| unicode:: U+02936 .. ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS
.. |ldrdhar| unicode:: U+02967 .. LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
.. |ldrushar| unicode:: U+0294B .. LEFT BARB DOWN RIGHT BARB UP HARPOON
.. |ldsh| unicode:: U+021B2 .. DOWNWARDS ARROW WITH TIP LEFTWARDS
.. |lfisht| unicode:: U+0297C .. LEFT FISH TAIL
.. |lHar| unicode:: U+02962 .. LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN
.. |lhard| unicode:: U+021BD .. LEFTWARDS HARPOON WITH BARB DOWNWARDS
.. |lharu| unicode:: U+021BC .. LEFTWARDS HARPOON WITH BARB UPWARDS
.. |lharul| unicode:: U+0296A .. LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
.. |llarr| unicode:: U+021C7 .. LEFTWARDS PAIRED ARROWS
.. |llhard| unicode:: U+0296B .. LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
.. |loarr| unicode:: U+021FD .. LEFTWARDS OPEN-HEADED ARROW
.. |lrarr| unicode:: U+021C6 .. LEFTWARDS ARROW OVER RIGHTWARDS ARROW
.. |lrarr2| unicode:: U+021C6 .. LEFTWARDS ARROW OVER RIGHTWARDS ARROW
.. |lrhar| unicode:: U+021CB .. LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
.. |lrhar2| unicode:: U+021CB .. LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
.. |lrhard| unicode:: U+0296D .. RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
.. |lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS
.. |lurdshar| unicode:: U+0294A .. LEFT BARB UP RIGHT BARB DOWN HARPOON
.. |luruhar| unicode:: U+02966 .. LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP
.. |Map| unicode:: U+02905 .. RIGHTWARDS TWO-HEADED ARROW FROM BAR
.. |map| unicode:: U+021A6 .. RIGHTWARDS ARROW FROM BAR
.. |midcir| unicode:: U+02AF0 .. VERTICAL LINE WITH CIRCLE BELOW
.. |mumap| unicode:: U+022B8 .. MULTIMAP
.. |nearhk| unicode:: U+02924 .. NORTH EAST ARROW WITH HOOK
.. |neArr| unicode:: U+021D7 .. NORTH EAST DOUBLE ARROW
.. |nearr| unicode:: U+02197 .. NORTH EAST ARROW
.. |nesear| unicode:: U+02928 .. NORTH EAST ARROW AND SOUTH EAST ARROW
.. |nhArr| unicode:: U+021CE .. LEFT RIGHT DOUBLE ARROW WITH STROKE
.. |nharr| unicode:: U+021AE .. LEFT RIGHT ARROW WITH STROKE
.. |nlArr| unicode:: U+021CD .. LEFTWARDS DOUBLE ARROW WITH STROKE
.. |nlarr| unicode:: U+0219A .. LEFTWARDS ARROW WITH STROKE
.. |nrArr| unicode:: U+021CF .. RIGHTWARDS DOUBLE ARROW WITH STROKE
.. |nrarr| unicode:: U+0219B .. RIGHTWARDS ARROW WITH STROKE
.. |nrarrc| unicode:: U+02933 U+00338 .. WAVE ARROW POINTING DIRECTLY RIGHT with slash
.. |nrarrw| unicode:: U+0219D U+00338 .. RIGHTWARDS WAVE ARROW with slash
.. |nvHarr| unicode:: U+02904 .. LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE
.. |nvlArr| unicode:: U+02902 .. LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE
.. |nvrArr| unicode:: U+02903 .. RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE
.. |nwarhk| unicode:: U+02923 .. NORTH WEST ARROW WITH HOOK
.. |nwArr| unicode:: U+021D6 .. NORTH WEST DOUBLE ARROW
.. |nwarr| unicode:: U+02196 .. NORTH WEST ARROW
.. |nwnear| unicode:: U+02927 .. NORTH WEST ARROW AND NORTH EAST ARROW
.. |olarr| unicode:: U+021BA .. ANTICLOCKWISE OPEN CIRCLE ARROW
.. |orarr| unicode:: U+021BB .. CLOCKWISE OPEN CIRCLE ARROW
.. |origof| unicode:: U+022B6 .. ORIGINAL OF
.. |rAarr| unicode:: U+021DB .. RIGHTWARDS TRIPLE ARROW
.. |Rarr| unicode:: U+021A0 .. RIGHTWARDS TWO HEADED ARROW
.. |rarr2| unicode:: U+021C9 .. RIGHTWARDS PAIRED ARROWS
.. |rarrap| unicode:: U+02975 .. RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO
.. |rarrbfs| unicode:: U+02920 .. RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND
.. |rarrc| unicode:: U+02933 .. WAVE ARROW POINTING DIRECTLY RIGHT
.. |rarrfs| unicode:: U+0291E .. RIGHTWARDS ARROW TO BLACK DIAMOND
.. |rarrhk| unicode:: U+021AA .. RIGHTWARDS ARROW WITH HOOK
.. |rarrlp| unicode:: U+021AC .. RIGHTWARDS ARROW WITH LOOP
.. |rarrpl| unicode:: U+02945 .. RIGHTWARDS ARROW WITH PLUS BELOW
.. |rarrsim| unicode:: U+02974 .. RIGHTWARDS ARROW ABOVE TILDE OPERATOR
.. |Rarrtl| unicode:: U+02916 .. RIGHTWARDS TWO-HEADED ARROW WITH TAIL
.. |rarrtl| unicode:: U+021A3 .. RIGHTWARDS ARROW WITH TAIL
.. |rarrw| unicode:: U+0219D .. RIGHTWARDS WAVE ARROW
.. |rAtail| unicode:: U+0291C .. RIGHTWARDS DOUBLE ARROW-TAIL
.. |ratail| unicode:: U+0291A .. RIGHTWARDS ARROW-TAIL
.. |RBarr| unicode:: U+02910 .. RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW
.. |rBarr| unicode:: U+0290F .. RIGHTWARDS TRIPLE DASH ARROW
.. |rbarr| unicode:: U+0290D .. RIGHTWARDS DOUBLE DASH ARROW
.. |rdca| unicode:: U+02937 .. ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS
.. |rdldhar| unicode:: U+02969 .. RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN
.. |rdsh| unicode:: U+021B3 .. DOWNWARDS ARROW WITH TIP RIGHTWARDS
.. |rfisht| unicode:: U+0297D .. RIGHT FISH TAIL
.. |rHar| unicode:: U+02964 .. RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
.. |rhard| unicode:: U+021C1 .. RIGHTWARDS HARPOON WITH BARB DOWNWARDS
.. |rharu| unicode:: U+021C0 .. RIGHTWARDS HARPOON WITH BARB UPWARDS
.. |rharul| unicode:: U+0296C .. RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
.. |rlarr| unicode:: U+021C4 .. RIGHTWARDS ARROW OVER LEFTWARDS ARROW
.. |rlarr2| unicode:: U+021C4 .. RIGHTWARDS ARROW OVER LEFTWARDS ARROW
.. |rlhar| unicode:: U+021CC .. RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
.. |rlhar2| unicode:: U+021CC .. RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
.. |roarr| unicode:: U+021FE .. RIGHTWARDS OPEN-HEADED ARROW
.. |rrarr| unicode:: U+021C9 .. RIGHTWARDS PAIRED ARROWS
.. |rsh| unicode:: U+021B1 .. UPWARDS ARROW WITH TIP RIGHTWARDS
.. |ruluhar| unicode:: U+02968 .. RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP
.. |searhk| unicode:: U+02925 .. SOUTH EAST ARROW WITH HOOK
.. |seArr| unicode:: U+021D8 .. SOUTH EAST DOUBLE ARROW
.. |searr| unicode:: U+02198 .. SOUTH EAST ARROW
.. |seswar| unicode:: U+02929 .. SOUTH EAST ARROW AND SOUTH WEST ARROW
.. |simrarr| unicode:: U+02972 .. TILDE OPERATOR ABOVE RIGHTWARDS ARROW
.. |slarr| unicode:: U+02190 .. LEFTWARDS ARROW
.. |srarr| unicode:: U+02192 .. RIGHTWARDS ARROW
.. |swarhk| unicode:: U+02926 .. SOUTH WEST ARROW WITH HOOK
.. |swArr| unicode:: U+021D9 .. SOUTH WEST DOUBLE ARROW
.. |swarr| unicode:: U+02199 .. SOUTH WEST ARROW
.. |swnwar| unicode:: U+0292A .. SOUTH WEST ARROW AND NORTH WEST ARROW
.. |Uarr| unicode:: U+0219F .. UPWARDS TWO HEADED ARROW
.. |uArr| unicode:: U+021D1 .. UPWARDS DOUBLE ARROW
.. |uarr2| unicode:: U+021C8 .. UPWARDS PAIRED ARROWS
.. |Uarrocir| unicode:: U+02949 .. UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE
.. |udarr| unicode:: U+021C5 .. UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW
.. |udhar| unicode:: U+0296E .. UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
.. |ufisht| unicode:: U+0297E .. UP FISH TAIL
.. |uHar| unicode:: U+02963 .. UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
.. |uharl| unicode:: U+021BF .. UPWARDS HARPOON WITH BARB LEFTWARDS
.. |uharr| unicode:: U+021BE .. UPWARDS HARPOON WITH BARB RIGHTWARDS
.. |uuarr| unicode:: U+021C8 .. UPWARDS PAIRED ARROWS
.. |vArr| unicode:: U+021D5 .. UP DOWN DOUBLE ARROW
.. |varr| unicode:: U+02195 .. UP DOWN ARROW
.. |xhArr| unicode:: U+027FA .. LONG LEFT RIGHT DOUBLE ARROW
.. |xharr| unicode:: U+027F7 .. LONG LEFT RIGHT ARROW
.. |xlArr| unicode:: U+027F8 .. LONG LEFTWARDS DOUBLE ARROW
.. |xlarr| unicode:: U+027F5 .. LONG LEFTWARDS ARROW
.. |xmap| unicode:: U+027FC .. LONG RIGHTWARDS ARROW FROM BAR
.. |xrArr| unicode:: U+027F9 .. LONG RIGHTWARDS DOUBLE ARROW
.. |xrarr| unicode:: U+027F6 .. LONG RIGHTWARDS ARROW
.. |zigrarr| unicode:: U+021DD .. RIGHTWARDS SQUIGGLE ARROW

View file

@ -0,0 +1,126 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |ac| unicode:: U+0223E .. INVERTED LAZY S
.. |acE| unicode:: U+0223E U+00333 .. INVERTED LAZY S with double underline
.. |amalg| unicode:: U+02A3F .. AMALGAMATION OR COPRODUCT
.. |barvee| unicode:: U+022BD .. NOR
.. |Barwed| unicode:: U+02306 .. PERSPECTIVE
.. |barwed| unicode:: U+02305 .. PROJECTIVE
.. |bsolb| unicode:: U+029C5 .. SQUARED FALLING DIAGONAL SLASH
.. |Cap| unicode:: U+022D2 .. DOUBLE INTERSECTION
.. |capand| unicode:: U+02A44 .. INTERSECTION WITH LOGICAL AND
.. |capbrcup| unicode:: U+02A49 .. INTERSECTION ABOVE BAR ABOVE UNION
.. |capcap| unicode:: U+02A4B .. INTERSECTION BESIDE AND JOINED WITH INTERSECTION
.. |capcup| unicode:: U+02A47 .. INTERSECTION ABOVE UNION
.. |capdot| unicode:: U+02A40 .. INTERSECTION WITH DOT
.. |caps| unicode:: U+02229 U+0FE00 .. INTERSECTION with serifs
.. |ccaps| unicode:: U+02A4D .. CLOSED INTERSECTION WITH SERIFS
.. |ccups| unicode:: U+02A4C .. CLOSED UNION WITH SERIFS
.. |ccupssm| unicode:: U+02A50 .. CLOSED UNION WITH SERIFS AND SMASH PRODUCT
.. |coprod| unicode:: U+02210 .. N-ARY COPRODUCT
.. |Cup| unicode:: U+022D3 .. DOUBLE UNION
.. |cupbrcap| unicode:: U+02A48 .. UNION ABOVE BAR ABOVE INTERSECTION
.. |cupcap| unicode:: U+02A46 .. UNION ABOVE INTERSECTION
.. |cupcup| unicode:: U+02A4A .. UNION BESIDE AND JOINED WITH UNION
.. |cupdot| unicode:: U+0228D .. MULTISET MULTIPLICATION
.. |cupor| unicode:: U+02A45 .. UNION WITH LOGICAL OR
.. |cups| unicode:: U+0222A U+0FE00 .. UNION with serifs
.. |cuvee| unicode:: U+022CE .. CURLY LOGICAL OR
.. |cuwed| unicode:: U+022CF .. CURLY LOGICAL AND
.. |Dagger| unicode:: U+02021 .. DOUBLE DAGGER
.. |dagger| unicode:: U+02020 .. DAGGER
.. |diam| unicode:: U+022C4 .. DIAMOND OPERATOR
.. |divonx| unicode:: U+022C7 .. DIVISION TIMES
.. |eplus| unicode:: U+02A71 .. EQUALS SIGN ABOVE PLUS SIGN
.. |hercon| unicode:: U+022B9 .. HERMITIAN CONJUGATE MATRIX
.. |intcal| unicode:: U+022BA .. INTERCALATE
.. |iprod| unicode:: U+02A3C .. INTERIOR PRODUCT
.. |loplus| unicode:: U+02A2D .. PLUS SIGN IN LEFT HALF CIRCLE
.. |lotimes| unicode:: U+02A34 .. MULTIPLICATION SIGN IN LEFT HALF CIRCLE
.. |lthree| unicode:: U+022CB .. LEFT SEMIDIRECT PRODUCT
.. |ltimes| unicode:: U+022C9 .. LEFT NORMAL FACTOR SEMIDIRECT PRODUCT
.. |midast| unicode:: U+0002A .. ASTERISK
.. |minusb| unicode:: U+0229F .. SQUARED MINUS
.. |minusd| unicode:: U+02238 .. DOT MINUS
.. |minusdu| unicode:: U+02A2A .. MINUS SIGN WITH DOT BELOW
.. |ncap| unicode:: U+02A43 .. INTERSECTION WITH OVERBAR
.. |ncup| unicode:: U+02A42 .. UNION WITH OVERBAR
.. |oast| unicode:: U+0229B .. CIRCLED ASTERISK OPERATOR
.. |ocir| unicode:: U+0229A .. CIRCLED RING OPERATOR
.. |odash| unicode:: U+0229D .. CIRCLED DASH
.. |odiv| unicode:: U+02A38 .. CIRCLED DIVISION SIGN
.. |odot| unicode:: U+02299 .. CIRCLED DOT OPERATOR
.. |odsold| unicode:: U+029BC .. CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN
.. |ofcir| unicode:: U+029BF .. CIRCLED BULLET
.. |ogt| unicode:: U+029C1 .. CIRCLED GREATER-THAN
.. |ohbar| unicode:: U+029B5 .. CIRCLE WITH HORIZONTAL BAR
.. |olcir| unicode:: U+029BE .. CIRCLED WHITE BULLET
.. |olt| unicode:: U+029C0 .. CIRCLED LESS-THAN
.. |omid| unicode:: U+029B6 .. CIRCLED VERTICAL BAR
.. |ominus| unicode:: U+02296 .. CIRCLED MINUS
.. |opar| unicode:: U+029B7 .. CIRCLED PARALLEL
.. |operp| unicode:: U+029B9 .. CIRCLED PERPENDICULAR
.. |oplus| unicode:: U+02295 .. CIRCLED PLUS
.. |osol| unicode:: U+02298 .. CIRCLED DIVISION SLASH
.. |Otimes| unicode:: U+02A37 .. MULTIPLICATION SIGN IN DOUBLE CIRCLE
.. |otimes| unicode:: U+02297 .. CIRCLED TIMES
.. |otimesas| unicode:: U+02A36 .. CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT
.. |ovbar| unicode:: U+0233D .. APL FUNCTIONAL SYMBOL CIRCLE STILE
.. |plusacir| unicode:: U+02A23 .. PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE
.. |plusb| unicode:: U+0229E .. SQUARED PLUS
.. |pluscir| unicode:: U+02A22 .. PLUS SIGN WITH SMALL CIRCLE ABOVE
.. |plusdo| unicode:: U+02214 .. DOT PLUS
.. |plusdu| unicode:: U+02A25 .. PLUS SIGN WITH DOT BELOW
.. |pluse| unicode:: U+02A72 .. PLUS SIGN ABOVE EQUALS SIGN
.. |plussim| unicode:: U+02A26 .. PLUS SIGN WITH TILDE BELOW
.. |plustwo| unicode:: U+02A27 .. PLUS SIGN WITH SUBSCRIPT TWO
.. |prod| unicode:: U+0220F .. N-ARY PRODUCT
.. |race| unicode:: U+029DA .. LEFT DOUBLE WIGGLY FENCE
.. |roplus| unicode:: U+02A2E .. PLUS SIGN IN RIGHT HALF CIRCLE
.. |rotimes| unicode:: U+02A35 .. MULTIPLICATION SIGN IN RIGHT HALF CIRCLE
.. |rthree| unicode:: U+022CC .. RIGHT SEMIDIRECT PRODUCT
.. |rtimes| unicode:: U+022CA .. RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT
.. |sdot| unicode:: U+022C5 .. DOT OPERATOR
.. |sdotb| unicode:: U+022A1 .. SQUARED DOT OPERATOR
.. |setmn| unicode:: U+02216 .. SET MINUS
.. |simplus| unicode:: U+02A24 .. PLUS SIGN WITH TILDE ABOVE
.. |smashp| unicode:: U+02A33 .. SMASH PRODUCT
.. |solb| unicode:: U+029C4 .. SQUARED RISING DIAGONAL SLASH
.. |sqcap| unicode:: U+02293 .. SQUARE CAP
.. |sqcaps| unicode:: U+02293 U+0FE00 .. SQUARE CAP with serifs
.. |sqcup| unicode:: U+02294 .. SQUARE CUP
.. |sqcups| unicode:: U+02294 U+0FE00 .. SQUARE CUP with serifs
.. |ssetmn| unicode:: U+02216 .. SET MINUS
.. |sstarf| unicode:: U+022C6 .. STAR OPERATOR
.. |subdot| unicode:: U+02ABD .. SUBSET WITH DOT
.. |sum| unicode:: U+02211 .. N-ARY SUMMATION
.. |supdot| unicode:: U+02ABE .. SUPERSET WITH DOT
.. |timesb| unicode:: U+022A0 .. SQUARED TIMES
.. |timesbar| unicode:: U+02A31 .. MULTIPLICATION SIGN WITH UNDERBAR
.. |timesd| unicode:: U+02A30 .. MULTIPLICATION SIGN WITH DOT ABOVE
.. |top| unicode:: U+022A4 .. DOWN TACK
.. |tridot| unicode:: U+025EC .. WHITE UP-POINTING TRIANGLE WITH DOT
.. |triminus| unicode:: U+02A3A .. MINUS SIGN IN TRIANGLE
.. |triplus| unicode:: U+02A39 .. PLUS SIGN IN TRIANGLE
.. |trisb| unicode:: U+029CD .. TRIANGLE WITH SERIFS AT BOTTOM
.. |tritime| unicode:: U+02A3B .. MULTIPLICATION SIGN IN TRIANGLE
.. |uplus| unicode:: U+0228E .. MULTISET UNION
.. |veebar| unicode:: U+022BB .. XOR
.. |wedbar| unicode:: U+02A5F .. LOGICAL AND WITH UNDERBAR
.. |wreath| unicode:: U+02240 .. WREATH PRODUCT
.. |xcap| unicode:: U+022C2 .. N-ARY INTERSECTION
.. |xcirc| unicode:: U+025EF .. LARGE CIRCLE
.. |xcup| unicode:: U+022C3 .. N-ARY UNION
.. |xdtri| unicode:: U+025BD .. WHITE DOWN-POINTING TRIANGLE
.. |xodot| unicode:: U+02A00 .. N-ARY CIRCLED DOT OPERATOR
.. |xoplus| unicode:: U+02A01 .. N-ARY CIRCLED PLUS OPERATOR
.. |xotime| unicode:: U+02A02 .. N-ARY CIRCLED TIMES OPERATOR
.. |xsqcup| unicode:: U+02A06 .. N-ARY SQUARE UNION OPERATOR
.. |xuplus| unicode:: U+02A04 .. N-ARY UNION OPERATOR WITH PLUS
.. |xutri| unicode:: U+025B3 .. WHITE UP-POINTING TRIANGLE
.. |xvee| unicode:: U+022C1 .. N-ARY LOGICAL OR
.. |xwedge| unicode:: U+022C0 .. N-ARY LOGICAL AND

View file

@ -0,0 +1,29 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |dlcorn| unicode:: U+0231E .. BOTTOM LEFT CORNER
.. |drcorn| unicode:: U+0231F .. BOTTOM RIGHT CORNER
.. |gtlPar| unicode:: U+02995 .. DOUBLE LEFT ARC GREATER-THAN BRACKET
.. |langd| unicode:: U+02991 .. LEFT ANGLE BRACKET WITH DOT
.. |lbrke| unicode:: U+0298B .. LEFT SQUARE BRACKET WITH UNDERBAR
.. |lbrksld| unicode:: U+0298F .. LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
.. |lbrkslu| unicode:: U+0298D .. LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
.. |lceil| unicode:: U+02308 .. LEFT CEILING
.. |lfloor| unicode:: U+0230A .. LEFT FLOOR
.. |lmoust| unicode:: U+023B0 .. UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION
.. |lpargt| unicode:: U+029A0 .. SPHERICAL ANGLE OPENING LEFT
.. |lparlt| unicode:: U+02993 .. LEFT ARC LESS-THAN BRACKET
.. |ltrPar| unicode:: U+02996 .. DOUBLE RIGHT ARC LESS-THAN BRACKET
.. |rangd| unicode:: U+02992 .. RIGHT ANGLE BRACKET WITH DOT
.. |rbrke| unicode:: U+0298C .. RIGHT SQUARE BRACKET WITH UNDERBAR
.. |rbrksld| unicode:: U+0298E .. RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
.. |rbrkslu| unicode:: U+02990 .. RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
.. |rceil| unicode:: U+02309 .. RIGHT CEILING
.. |rfloor| unicode:: U+0230B .. RIGHT FLOOR
.. |rmoust| unicode:: U+023B1 .. UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION
.. |rpargt| unicode:: U+02994 .. RIGHT ARC GREATER-THAN BRACKET
.. |ulcorn| unicode:: U+0231C .. TOP LEFT CORNER
.. |urcorn| unicode:: U+0231D .. TOP RIGHT CORNER

View file

@ -0,0 +1,96 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |gnap| unicode:: U+02A8A .. GREATER-THAN AND NOT APPROXIMATE
.. |gnE| unicode:: U+02269 .. GREATER-THAN BUT NOT EQUAL TO
.. |gne| unicode:: U+02A88 .. GREATER-THAN AND SINGLE-LINE NOT EQUAL TO
.. |gnsim| unicode:: U+022E7 .. GREATER-THAN BUT NOT EQUIVALENT TO
.. |gvnE| unicode:: U+02269 U+0FE00 .. GREATER-THAN BUT NOT EQUAL TO - with vertical stroke
.. |lnap| unicode:: U+02A89 .. LESS-THAN AND NOT APPROXIMATE
.. |lnE| unicode:: U+02268 .. LESS-THAN BUT NOT EQUAL TO
.. |lne| unicode:: U+02A87 .. LESS-THAN AND SINGLE-LINE NOT EQUAL TO
.. |lnsim| unicode:: U+022E6 .. LESS-THAN BUT NOT EQUIVALENT TO
.. |lvnE| unicode:: U+02268 U+0FE00 .. LESS-THAN BUT NOT EQUAL TO - with vertical stroke
.. |nap| unicode:: U+02249 .. NOT ALMOST EQUAL TO
.. |napE| unicode:: U+02A70 U+00338 .. APPROXIMATELY EQUAL OR EQUAL TO with slash
.. |napid| unicode:: U+0224B U+00338 .. TRIPLE TILDE with slash
.. |ncong| unicode:: U+02247 .. NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
.. |ncongdot| unicode:: U+02A6D U+00338 .. CONGRUENT WITH DOT ABOVE with slash
.. |nequiv| unicode:: U+02262 .. NOT IDENTICAL TO
.. |ngE| unicode:: U+02267 U+00338 .. GREATER-THAN OVER EQUAL TO with slash
.. |nge| unicode:: U+02271 .. NEITHER GREATER-THAN NOR EQUAL TO
.. |nges| unicode:: U+02A7E U+00338 .. GREATER-THAN OR SLANTED EQUAL TO with slash
.. |nGg| unicode:: U+022D9 U+00338 .. VERY MUCH GREATER-THAN with slash
.. |ngsim| unicode:: U+02275 .. NEITHER GREATER-THAN NOR EQUIVALENT TO
.. |nGt| unicode:: U+0226B U+020D2 .. MUCH GREATER THAN with vertical line
.. |ngt| unicode:: U+0226F .. NOT GREATER-THAN
.. |nGtv| unicode:: U+0226B U+00338 .. MUCH GREATER THAN with slash
.. |nlE| unicode:: U+02266 U+00338 .. LESS-THAN OVER EQUAL TO with slash
.. |nle| unicode:: U+02270 .. NEITHER LESS-THAN NOR EQUAL TO
.. |nles| unicode:: U+02A7D U+00338 .. LESS-THAN OR SLANTED EQUAL TO with slash
.. |nLl| unicode:: U+022D8 U+00338 .. VERY MUCH LESS-THAN with slash
.. |nlsim| unicode:: U+02274 .. NEITHER LESS-THAN NOR EQUIVALENT TO
.. |nLt| unicode:: U+0226A U+020D2 .. MUCH LESS THAN with vertical line
.. |nlt| unicode:: U+0226E .. NOT LESS-THAN
.. |nltri| unicode:: U+022EA .. NOT NORMAL SUBGROUP OF
.. |nltrie| unicode:: U+022EC .. NOT NORMAL SUBGROUP OF OR EQUAL TO
.. |nLtv| unicode:: U+0226A U+00338 .. MUCH LESS THAN with slash
.. |nmid| unicode:: U+02224 .. DOES NOT DIVIDE
.. |npar| unicode:: U+02226 .. NOT PARALLEL TO
.. |npr| unicode:: U+02280 .. DOES NOT PRECEDE
.. |nprcue| unicode:: U+022E0 .. DOES NOT PRECEDE OR EQUAL
.. |npre| unicode:: U+02AAF U+00338 .. PRECEDES ABOVE SINGLE-LINE EQUALS SIGN with slash
.. |nrtri| unicode:: U+022EB .. DOES NOT CONTAIN AS NORMAL SUBGROUP
.. |nrtrie| unicode:: U+022ED .. DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
.. |nsc| unicode:: U+02281 .. DOES NOT SUCCEED
.. |nsccue| unicode:: U+022E1 .. DOES NOT SUCCEED OR EQUAL
.. |nsce| unicode:: U+02AB0 U+00338 .. SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN with slash
.. |nsim| unicode:: U+02241 .. NOT TILDE
.. |nsime| unicode:: U+02244 .. NOT ASYMPTOTICALLY EQUAL TO
.. |nsmid| unicode:: U+02224 .. DOES NOT DIVIDE
.. |nspar| unicode:: U+02226 .. NOT PARALLEL TO
.. |nsqsube| unicode:: U+022E2 .. NOT SQUARE IMAGE OF OR EQUAL TO
.. |nsqsupe| unicode:: U+022E3 .. NOT SQUARE ORIGINAL OF OR EQUAL TO
.. |nsub| unicode:: U+02284 .. NOT A SUBSET OF
.. |nsubE| unicode:: U+02AC5 U+00338 .. SUBSET OF ABOVE EQUALS SIGN with slash
.. |nsube| unicode:: U+02288 .. NEITHER A SUBSET OF NOR EQUAL TO
.. |nsup| unicode:: U+02285 .. NOT A SUPERSET OF
.. |nsupE| unicode:: U+02AC6 U+00338 .. SUPERSET OF ABOVE EQUALS SIGN with slash
.. |nsupe| unicode:: U+02289 .. NEITHER A SUPERSET OF NOR EQUAL TO
.. |ntgl| unicode:: U+02279 .. NEITHER GREATER-THAN NOR LESS-THAN
.. |ntlg| unicode:: U+02278 .. NEITHER LESS-THAN NOR GREATER-THAN
.. |nvap| unicode:: U+0224D U+020D2 .. EQUIVALENT TO with vertical line
.. |nVDash| unicode:: U+022AF .. NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
.. |nVdash| unicode:: U+022AE .. DOES NOT FORCE
.. |nvDash| unicode:: U+022AD .. NOT TRUE
.. |nvdash| unicode:: U+022AC .. DOES NOT PROVE
.. |nvge| unicode:: U+02265 U+020D2 .. GREATER-THAN OR EQUAL TO with vertical line
.. |nvgt| unicode:: U+0003E U+020D2 .. GREATER-THAN SIGN with vertical line
.. |nvle| unicode:: U+02264 U+020D2 .. LESS-THAN OR EQUAL TO with vertical line
.. |nvlt| unicode:: U+0003C U+020D2 .. LESS-THAN SIGN with vertical line
.. |nvltrie| unicode:: U+022B4 U+020D2 .. NORMAL SUBGROUP OF OR EQUAL TO with vertical line
.. |nvrtrie| unicode:: U+022B5 U+020D2 .. CONTAINS AS NORMAL SUBGROUP OR EQUAL TO with vertical line
.. |nvsim| unicode:: U+0223C U+020D2 .. TILDE OPERATOR with vertical line
.. |parsim| unicode:: U+02AF3 .. PARALLEL WITH TILDE OPERATOR
.. |prnap| unicode:: U+02AB9 .. PRECEDES ABOVE NOT ALMOST EQUAL TO
.. |prnE| unicode:: U+02AB5 .. PRECEDES ABOVE NOT EQUAL TO
.. |prnsim| unicode:: U+022E8 .. PRECEDES BUT NOT EQUIVALENT TO
.. |rnmid| unicode:: U+02AEE .. DOES NOT DIVIDE WITH REVERSED NEGATION SLASH
.. |scnap| unicode:: U+02ABA .. SUCCEEDS ABOVE NOT ALMOST EQUAL TO
.. |scnE| unicode:: U+02AB6 .. SUCCEEDS ABOVE NOT EQUAL TO
.. |scnsim| unicode:: U+022E9 .. SUCCEEDS BUT NOT EQUIVALENT TO
.. |simne| unicode:: U+02246 .. APPROXIMATELY BUT NOT ACTUALLY EQUAL TO
.. |solbar| unicode:: U+0233F .. APL FUNCTIONAL SYMBOL SLASH BAR
.. |subnE| unicode:: U+02ACB .. SUBSET OF ABOVE NOT EQUAL TO
.. |subne| unicode:: U+0228A .. SUBSET OF WITH NOT EQUAL TO
.. |supnE| unicode:: U+02ACC .. SUPERSET OF ABOVE NOT EQUAL TO
.. |supne| unicode:: U+0228B .. SUPERSET OF WITH NOT EQUAL TO
.. |vnsub| unicode:: U+02282 U+020D2 .. SUBSET OF with vertical line
.. |vnsup| unicode:: U+02283 U+020D2 .. SUPERSET OF with vertical line
.. |vsubnE| unicode:: U+02ACB U+0FE00 .. SUBSET OF ABOVE NOT EQUAL TO - variant with stroke through bottom members
.. |vsubne| unicode:: U+0228A U+0FE00 .. SUBSET OF WITH NOT EQUAL TO - variant with stroke through bottom members
.. |vsupnE| unicode:: U+02ACC U+0FE00 .. SUPERSET OF ABOVE NOT EQUAL TO - variant with stroke through bottom members
.. |vsupne| unicode:: U+0228B U+0FE00 .. SUPERSET OF WITH NOT EQUAL TO - variant with stroke through bottom members

View file

@ -0,0 +1,62 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |ang| unicode:: U+02220 .. ANGLE
.. |ange| unicode:: U+029A4 .. ANGLE WITH UNDERBAR
.. |angmsd| unicode:: U+02221 .. MEASURED ANGLE
.. |angmsdaa| unicode:: U+029A8 .. MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT
.. |angmsdab| unicode:: U+029A9 .. MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT
.. |angmsdac| unicode:: U+029AA .. MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT
.. |angmsdad| unicode:: U+029AB .. MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT
.. |angmsdae| unicode:: U+029AC .. MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP
.. |angmsdaf| unicode:: U+029AD .. MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP
.. |angmsdag| unicode:: U+029AE .. MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN
.. |angmsdah| unicode:: U+029AF .. MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN
.. |angrtvb| unicode:: U+022BE .. RIGHT ANGLE WITH ARC
.. |angrtvbd| unicode:: U+0299D .. MEASURED RIGHT ANGLE WITH DOT
.. |bbrk| unicode:: U+023B5 .. BOTTOM SQUARE BRACKET
.. |bbrktbrk| unicode:: U+023B6 .. BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET
.. |bemptyv| unicode:: U+029B0 .. REVERSED EMPTY SET
.. |beth| unicode:: U+02136 .. BET SYMBOL
.. |boxbox| unicode:: U+029C9 .. TWO JOINED SQUARES
.. |bprime| unicode:: U+02035 .. REVERSED PRIME
.. |bsemi| unicode:: U+0204F .. REVERSED SEMICOLON
.. |cemptyv| unicode:: U+029B2 .. EMPTY SET WITH SMALL CIRCLE ABOVE
.. |cirE| unicode:: U+029C3 .. CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT
.. |cirscir| unicode:: U+029C2 .. CIRCLE WITH SMALL CIRCLE TO THE RIGHT
.. |comp| unicode:: U+02201 .. COMPLEMENT
.. |daleth| unicode:: U+02138 .. DALET SYMBOL
.. |demptyv| unicode:: U+029B1 .. EMPTY SET WITH OVERBAR
.. |ell| unicode:: U+02113 .. SCRIPT SMALL L
.. |empty| unicode:: U+02205 .. EMPTY SET
.. |emptyv| unicode:: U+02205 .. EMPTY SET
.. |gimel| unicode:: U+02137 .. GIMEL SYMBOL
.. |iiota| unicode:: U+02129 .. TURNED GREEK SMALL LETTER IOTA
.. |image| unicode:: U+02111 .. BLACK-LETTER CAPITAL I
.. |imath| unicode:: U+00131 .. LATIN SMALL LETTER DOTLESS I
.. |inodot| unicode:: U+00131 .. LATIN SMALL LETTER DOTLESS I
.. |jmath| unicode:: U+0006A .. LATIN SMALL LETTER J
.. |jnodot| unicode:: U+0006A .. LATIN SMALL LETTER J
.. |laemptyv| unicode:: U+029B4 .. EMPTY SET WITH LEFT ARROW ABOVE
.. |lltri| unicode:: U+025FA .. LOWER LEFT TRIANGLE
.. |lrtri| unicode:: U+022BF .. RIGHT TRIANGLE
.. |mho| unicode:: U+02127 .. INVERTED OHM SIGN
.. |nang| unicode:: U+02220 U+020D2 .. ANGLE with vertical line
.. |nexist| unicode:: U+02204 .. THERE DOES NOT EXIST
.. |oS| unicode:: U+024C8 .. CIRCLED LATIN CAPITAL LETTER S
.. |planck| unicode:: U+0210F .. PLANCK CONSTANT OVER TWO PI
.. |plankv| unicode:: U+0210F .. PLANCK CONSTANT OVER TWO PI
.. |raemptyv| unicode:: U+029B3 .. EMPTY SET WITH RIGHT ARROW ABOVE
.. |range| unicode:: U+029A5 .. REVERSED ANGLE WITH UNDERBAR
.. |real| unicode:: U+0211C .. BLACK-LETTER CAPITAL R
.. |sbsol| unicode:: U+0FE68 .. SMALL REVERSE SOLIDUS
.. |tbrk| unicode:: U+023B4 .. TOP SQUARE BRACKET
.. |trpezium| unicode:: U+0FFFD .. REPLACEMENT CHARACTER
.. |ultri| unicode:: U+025F8 .. UPPER LEFT TRIANGLE
.. |urtri| unicode:: U+025F9 .. UPPER RIGHT TRIANGLE
.. |vprime| unicode:: U+02032 .. PRIME
.. |vzigzag| unicode:: U+0299A .. VERTICAL ZIGZAG LINE
.. |weierp| unicode:: U+02118 .. SCRIPT CAPITAL P

View file

@ -0,0 +1,191 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |apE| unicode:: U+02A70 .. APPROXIMATELY EQUAL OR EQUAL TO
.. |ape| unicode:: U+0224A .. ALMOST EQUAL OR EQUAL TO
.. |apid| unicode:: U+0224B .. TRIPLE TILDE
.. |asymp| unicode:: U+02248 .. ALMOST EQUAL TO
.. |Barv| unicode:: U+02AE7 .. SHORT DOWN TACK WITH OVERBAR
.. |bcong| unicode:: U+0224C .. ALL EQUAL TO
.. |bepsi| unicode:: U+003F6 .. GREEK REVERSED LUNATE EPSILON SYMBOL
.. |bowtie| unicode:: U+022C8 .. BOWTIE
.. |bsim| unicode:: U+0223D .. REVERSED TILDE
.. |bsime| unicode:: U+022CD .. REVERSED TILDE EQUALS
.. |bsolhsub| unicode:: U+0005C U+02282 .. REVERSE SOLIDUS, SUBSET OF
.. |bump| unicode:: U+0224E .. GEOMETRICALLY EQUIVALENT TO
.. |bumpE| unicode:: U+02AAE .. EQUALS SIGN WITH BUMPY ABOVE
.. |bumpe| unicode:: U+0224F .. DIFFERENCE BETWEEN
.. |cire| unicode:: U+02257 .. RING EQUAL TO
.. |Colon| unicode:: U+02237 .. PROPORTION
.. |Colone| unicode:: U+02A74 .. DOUBLE COLON EQUAL
.. |colone| unicode:: U+02254 .. COLON EQUALS
.. |congdot| unicode:: U+02A6D .. CONGRUENT WITH DOT ABOVE
.. |csub| unicode:: U+02ACF .. CLOSED SUBSET
.. |csube| unicode:: U+02AD1 .. CLOSED SUBSET OR EQUAL TO
.. |csup| unicode:: U+02AD0 .. CLOSED SUPERSET
.. |csupe| unicode:: U+02AD2 .. CLOSED SUPERSET OR EQUAL TO
.. |cuepr| unicode:: U+022DE .. EQUAL TO OR PRECEDES
.. |cuesc| unicode:: U+022DF .. EQUAL TO OR SUCCEEDS
.. |cupre| unicode:: U+0227C .. PRECEDES OR EQUAL TO
.. |Dashv| unicode:: U+02AE4 .. VERTICAL BAR DOUBLE LEFT TURNSTILE
.. |dashv| unicode:: U+022A3 .. LEFT TACK
.. |easter| unicode:: U+02A6E .. EQUALS WITH ASTERISK
.. |ecir| unicode:: U+02256 .. RING IN EQUAL TO
.. |ecolon| unicode:: U+02255 .. EQUALS COLON
.. |eDDot| unicode:: U+02A77 .. EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW
.. |eDot| unicode:: U+02251 .. GEOMETRICALLY EQUAL TO
.. |efDot| unicode:: U+02252 .. APPROXIMATELY EQUAL TO OR THE IMAGE OF
.. |eg| unicode:: U+02A9A .. DOUBLE-LINE EQUAL TO OR GREATER-THAN
.. |egs| unicode:: U+02A96 .. SLANTED EQUAL TO OR GREATER-THAN
.. |egsdot| unicode:: U+02A98 .. SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE
.. |el| unicode:: U+02A99 .. DOUBLE-LINE EQUAL TO OR LESS-THAN
.. |els| unicode:: U+02A95 .. SLANTED EQUAL TO OR LESS-THAN
.. |elsdot| unicode:: U+02A97 .. SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE
.. |equest| unicode:: U+0225F .. QUESTIONED EQUAL TO
.. |equivDD| unicode:: U+02A78 .. EQUIVALENT WITH FOUR DOTS ABOVE
.. |erDot| unicode:: U+02253 .. IMAGE OF OR APPROXIMATELY EQUAL TO
.. |esdot| unicode:: U+02250 .. APPROACHES THE LIMIT
.. |Esim| unicode:: U+02A73 .. EQUALS SIGN ABOVE TILDE OPERATOR
.. |esim| unicode:: U+02242 .. MINUS TILDE
.. |fork| unicode:: U+022D4 .. PITCHFORK
.. |forkv| unicode:: U+02AD9 .. ELEMENT OF OPENING DOWNWARDS
.. |frown| unicode:: U+02322 .. FROWN
.. |gap| unicode:: U+02A86 .. GREATER-THAN OR APPROXIMATE
.. |gE| unicode:: U+02267 .. GREATER-THAN OVER EQUAL TO
.. |gEl| unicode:: U+02A8C .. GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN
.. |gel| unicode:: U+022DB .. GREATER-THAN EQUAL TO OR LESS-THAN
.. |ges| unicode:: U+02A7E .. GREATER-THAN OR SLANTED EQUAL TO
.. |gescc| unicode:: U+02AA9 .. GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
.. |gesdot| unicode:: U+02A80 .. GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
.. |gesdoto| unicode:: U+02A82 .. GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
.. |gesdotol| unicode:: U+02A84 .. GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT
.. |gesl| unicode:: U+022DB U+0FE00 .. GREATER-THAN slanted EQUAL TO OR LESS-THAN
.. |gesles| unicode:: U+02A94 .. GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL
.. |Gg| unicode:: U+022D9 .. VERY MUCH GREATER-THAN
.. |gl| unicode:: U+02277 .. GREATER-THAN OR LESS-THAN
.. |gla| unicode:: U+02AA5 .. GREATER-THAN BESIDE LESS-THAN
.. |glE| unicode:: U+02A92 .. GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL
.. |glj| unicode:: U+02AA4 .. GREATER-THAN OVERLAPPING LESS-THAN
.. |gsdot| unicode:: U+022D7 .. GREATER-THAN WITH DOT
.. |gsim| unicode:: U+02273 .. GREATER-THAN OR EQUIVALENT TO
.. |gsime| unicode:: U+02A8E .. GREATER-THAN ABOVE SIMILAR OR EQUAL
.. |gsiml| unicode:: U+02A90 .. GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN
.. |Gt| unicode:: U+0226B .. MUCH GREATER-THAN
.. |gtcc| unicode:: U+02AA7 .. GREATER-THAN CLOSED BY CURVE
.. |gtcir| unicode:: U+02A7A .. GREATER-THAN WITH CIRCLE INSIDE
.. |gtdot| unicode:: U+022D7 .. GREATER-THAN WITH DOT
.. |gtquest| unicode:: U+02A7C .. GREATER-THAN WITH QUESTION MARK ABOVE
.. |gtrarr| unicode:: U+02978 .. GREATER-THAN ABOVE RIGHTWARDS ARROW
.. |homtht| unicode:: U+0223B .. HOMOTHETIC
.. |lap| unicode:: U+02A85 .. LESS-THAN OR APPROXIMATE
.. |lat| unicode:: U+02AAB .. LARGER THAN
.. |late| unicode:: U+02AAD .. LARGER THAN OR EQUAL TO
.. |lates| unicode:: U+02AAD U+0FE00 .. LARGER THAN OR slanted EQUAL
.. |ldot| unicode:: U+022D6 .. LESS-THAN WITH DOT
.. |lE| unicode:: U+02266 .. LESS-THAN OVER EQUAL TO
.. |lEg| unicode:: U+02A8B .. LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN
.. |leg| unicode:: U+022DA .. LESS-THAN EQUAL TO OR GREATER-THAN
.. |les| unicode:: U+02A7D .. LESS-THAN OR SLANTED EQUAL TO
.. |lescc| unicode:: U+02AA8 .. LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
.. |lesdot| unicode:: U+02A7F .. LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
.. |lesdoto| unicode:: U+02A81 .. LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
.. |lesdotor| unicode:: U+02A83 .. LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT
.. |lesg| unicode:: U+022DA U+0FE00 .. LESS-THAN slanted EQUAL TO OR GREATER-THAN
.. |lesges| unicode:: U+02A93 .. LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL
.. |lg| unicode:: U+02276 .. LESS-THAN OR GREATER-THAN
.. |lgE| unicode:: U+02A91 .. LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL
.. |Ll| unicode:: U+022D8 .. VERY MUCH LESS-THAN
.. |lsim| unicode:: U+02272 .. LESS-THAN OR EQUIVALENT TO
.. |lsime| unicode:: U+02A8D .. LESS-THAN ABOVE SIMILAR OR EQUAL
.. |lsimg| unicode:: U+02A8F .. LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN
.. |Lt| unicode:: U+0226A .. MUCH LESS-THAN
.. |ltcc| unicode:: U+02AA6 .. LESS-THAN CLOSED BY CURVE
.. |ltcir| unicode:: U+02A79 .. LESS-THAN WITH CIRCLE INSIDE
.. |ltdot| unicode:: U+022D6 .. LESS-THAN WITH DOT
.. |ltlarr| unicode:: U+02976 .. LESS-THAN ABOVE LEFTWARDS ARROW
.. |ltquest| unicode:: U+02A7B .. LESS-THAN WITH QUESTION MARK ABOVE
.. |ltrie| unicode:: U+022B4 .. NORMAL SUBGROUP OF OR EQUAL TO
.. |mcomma| unicode:: U+02A29 .. MINUS SIGN WITH COMMA ABOVE
.. |mDDot| unicode:: U+0223A .. GEOMETRIC PROPORTION
.. |mid| unicode:: U+02223 .. DIVIDES
.. |mlcp| unicode:: U+02ADB .. TRANSVERSAL INTERSECTION
.. |models| unicode:: U+022A7 .. MODELS
.. |mstpos| unicode:: U+0223E .. INVERTED LAZY S
.. |Pr| unicode:: U+02ABB .. DOUBLE PRECEDES
.. |pr| unicode:: U+0227A .. PRECEDES
.. |prap| unicode:: U+02AB7 .. PRECEDES ABOVE ALMOST EQUAL TO
.. |prcue| unicode:: U+0227C .. PRECEDES OR EQUAL TO
.. |prE| unicode:: U+02AB3 .. PRECEDES ABOVE EQUALS SIGN
.. |pre| unicode:: U+02AAF .. PRECEDES ABOVE SINGLE-LINE EQUALS SIGN
.. |prsim| unicode:: U+0227E .. PRECEDES OR EQUIVALENT TO
.. |prurel| unicode:: U+022B0 .. PRECEDES UNDER RELATION
.. |ratio| unicode:: U+02236 .. RATIO
.. |rtrie| unicode:: U+022B5 .. CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
.. |rtriltri| unicode:: U+029CE .. RIGHT TRIANGLE ABOVE LEFT TRIANGLE
.. |samalg| unicode:: U+02210 .. N-ARY COPRODUCT
.. |Sc| unicode:: U+02ABC .. DOUBLE SUCCEEDS
.. |sc| unicode:: U+0227B .. SUCCEEDS
.. |scap| unicode:: U+02AB8 .. SUCCEEDS ABOVE ALMOST EQUAL TO
.. |sccue| unicode:: U+0227D .. SUCCEEDS OR EQUAL TO
.. |scE| unicode:: U+02AB4 .. SUCCEEDS ABOVE EQUALS SIGN
.. |sce| unicode:: U+02AB0 .. SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN
.. |scsim| unicode:: U+0227F .. SUCCEEDS OR EQUIVALENT TO
.. |sdote| unicode:: U+02A66 .. EQUALS SIGN WITH DOT BELOW
.. |sfrown| unicode:: U+02322 .. FROWN
.. |simg| unicode:: U+02A9E .. SIMILAR OR GREATER-THAN
.. |simgE| unicode:: U+02AA0 .. SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN
.. |siml| unicode:: U+02A9D .. SIMILAR OR LESS-THAN
.. |simlE| unicode:: U+02A9F .. SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN
.. |smid| unicode:: U+02223 .. DIVIDES
.. |smile| unicode:: U+02323 .. SMILE
.. |smt| unicode:: U+02AAA .. SMALLER THAN
.. |smte| unicode:: U+02AAC .. SMALLER THAN OR EQUAL TO
.. |smtes| unicode:: U+02AAC U+0FE00 .. SMALLER THAN OR slanted EQUAL
.. |spar| unicode:: U+02225 .. PARALLEL TO
.. |sqsub| unicode:: U+0228F .. SQUARE IMAGE OF
.. |sqsube| unicode:: U+02291 .. SQUARE IMAGE OF OR EQUAL TO
.. |sqsup| unicode:: U+02290 .. SQUARE ORIGINAL OF
.. |sqsupe| unicode:: U+02292 .. SQUARE ORIGINAL OF OR EQUAL TO
.. |ssmile| unicode:: U+02323 .. SMILE
.. |Sub| unicode:: U+022D0 .. DOUBLE SUBSET
.. |subE| unicode:: U+02AC5 .. SUBSET OF ABOVE EQUALS SIGN
.. |subedot| unicode:: U+02AC3 .. SUBSET OF OR EQUAL TO WITH DOT ABOVE
.. |submult| unicode:: U+02AC1 .. SUBSET WITH MULTIPLICATION SIGN BELOW
.. |subplus| unicode:: U+02ABF .. SUBSET WITH PLUS SIGN BELOW
.. |subrarr| unicode:: U+02979 .. SUBSET ABOVE RIGHTWARDS ARROW
.. |subsim| unicode:: U+02AC7 .. SUBSET OF ABOVE TILDE OPERATOR
.. |subsub| unicode:: U+02AD5 .. SUBSET ABOVE SUBSET
.. |subsup| unicode:: U+02AD3 .. SUBSET ABOVE SUPERSET
.. |Sup| unicode:: U+022D1 .. DOUBLE SUPERSET
.. |supdsub| unicode:: U+02AD8 .. SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET
.. |supE| unicode:: U+02AC6 .. SUPERSET OF ABOVE EQUALS SIGN
.. |supedot| unicode:: U+02AC4 .. SUPERSET OF OR EQUAL TO WITH DOT ABOVE
.. |suphsol| unicode:: U+02283 U+0002F .. SUPERSET OF, SOLIDUS
.. |suphsub| unicode:: U+02AD7 .. SUPERSET BESIDE SUBSET
.. |suplarr| unicode:: U+0297B .. SUPERSET ABOVE LEFTWARDS ARROW
.. |supmult| unicode:: U+02AC2 .. SUPERSET WITH MULTIPLICATION SIGN BELOW
.. |supplus| unicode:: U+02AC0 .. SUPERSET WITH PLUS SIGN BELOW
.. |supsim| unicode:: U+02AC8 .. SUPERSET OF ABOVE TILDE OPERATOR
.. |supsub| unicode:: U+02AD4 .. SUPERSET ABOVE SUBSET
.. |supsup| unicode:: U+02AD6 .. SUPERSET ABOVE SUPERSET
.. |thkap| unicode:: U+02248 .. ALMOST EQUAL TO
.. |thksim| unicode:: U+0223C .. TILDE OPERATOR
.. |topfork| unicode:: U+02ADA .. PITCHFORK WITH TEE TOP
.. |trie| unicode:: U+0225C .. DELTA EQUAL TO
.. |twixt| unicode:: U+0226C .. BETWEEN
.. |Vbar| unicode:: U+02AEB .. DOUBLE UP TACK
.. |vBar| unicode:: U+02AE8 .. SHORT UP TACK WITH UNDERBAR
.. |vBarv| unicode:: U+02AE9 .. SHORT UP TACK ABOVE SHORT DOWN TACK
.. |VDash| unicode:: U+022AB .. DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
.. |Vdash| unicode:: U+022A9 .. FORCES
.. |vDash| unicode:: U+022A8 .. TRUE
.. |vdash| unicode:: U+022A2 .. RIGHT TACK
.. |Vdashl| unicode:: U+02AE6 .. LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL
.. |veebar| unicode:: U+022BB .. XOR
.. |vltri| unicode:: U+022B2 .. NORMAL SUBGROUP OF
.. |vprop| unicode:: U+0221D .. PROPORTIONAL TO
.. |vrtri| unicode:: U+022B3 .. CONTAINS AS NORMAL SUBGROUP
.. |Vvdash| unicode:: U+022AA .. TRIPLE VERTICAL BAR RIGHT TURNSTILE

View file

@ -0,0 +1,46 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |boxDL| unicode:: U+02557 .. BOX DRAWINGS DOUBLE DOWN AND LEFT
.. |boxDl| unicode:: U+02556 .. BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
.. |boxdL| unicode:: U+02555 .. BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
.. |boxdl| unicode:: U+02510 .. BOX DRAWINGS LIGHT DOWN AND LEFT
.. |boxDR| unicode:: U+02554 .. BOX DRAWINGS DOUBLE DOWN AND RIGHT
.. |boxDr| unicode:: U+02553 .. BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
.. |boxdR| unicode:: U+02552 .. BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
.. |boxdr| unicode:: U+0250C .. BOX DRAWINGS LIGHT DOWN AND RIGHT
.. |boxH| unicode:: U+02550 .. BOX DRAWINGS DOUBLE HORIZONTAL
.. |boxh| unicode:: U+02500 .. BOX DRAWINGS LIGHT HORIZONTAL
.. |boxHD| unicode:: U+02566 .. BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
.. |boxHd| unicode:: U+02564 .. BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
.. |boxhD| unicode:: U+02565 .. BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
.. |boxhd| unicode:: U+0252C .. BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
.. |boxHU| unicode:: U+02569 .. BOX DRAWINGS DOUBLE UP AND HORIZONTAL
.. |boxHu| unicode:: U+02567 .. BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
.. |boxhU| unicode:: U+02568 .. BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
.. |boxhu| unicode:: U+02534 .. BOX DRAWINGS LIGHT UP AND HORIZONTAL
.. |boxUL| unicode:: U+0255D .. BOX DRAWINGS DOUBLE UP AND LEFT
.. |boxUl| unicode:: U+0255C .. BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
.. |boxuL| unicode:: U+0255B .. BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
.. |boxul| unicode:: U+02518 .. BOX DRAWINGS LIGHT UP AND LEFT
.. |boxUR| unicode:: U+0255A .. BOX DRAWINGS DOUBLE UP AND RIGHT
.. |boxUr| unicode:: U+02559 .. BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
.. |boxuR| unicode:: U+02558 .. BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
.. |boxur| unicode:: U+02514 .. BOX DRAWINGS LIGHT UP AND RIGHT
.. |boxV| unicode:: U+02551 .. BOX DRAWINGS DOUBLE VERTICAL
.. |boxv| unicode:: U+02502 .. BOX DRAWINGS LIGHT VERTICAL
.. |boxVH| unicode:: U+0256C .. BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
.. |boxVh| unicode:: U+0256B .. BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
.. |boxvH| unicode:: U+0256A .. BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
.. |boxvh| unicode:: U+0253C .. BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
.. |boxVL| unicode:: U+02563 .. BOX DRAWINGS DOUBLE VERTICAL AND LEFT
.. |boxVl| unicode:: U+02562 .. BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
.. |boxvL| unicode:: U+02561 .. BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
.. |boxvl| unicode:: U+02524 .. BOX DRAWINGS LIGHT VERTICAL AND LEFT
.. |boxVR| unicode:: U+02560 .. BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
.. |boxVr| unicode:: U+0255F .. BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
.. |boxvR| unicode:: U+0255E .. BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
.. |boxvr| unicode:: U+0251C .. BOX DRAWINGS LIGHT VERTICAL AND RIGHT

View file

@ -0,0 +1,73 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |Acy| unicode:: U+00410 .. CYRILLIC CAPITAL LETTER A
.. |acy| unicode:: U+00430 .. CYRILLIC SMALL LETTER A
.. |Bcy| unicode:: U+00411 .. CYRILLIC CAPITAL LETTER BE
.. |bcy| unicode:: U+00431 .. CYRILLIC SMALL LETTER BE
.. |CHcy| unicode:: U+00427 .. CYRILLIC CAPITAL LETTER CHE
.. |chcy| unicode:: U+00447 .. CYRILLIC SMALL LETTER CHE
.. |Dcy| unicode:: U+00414 .. CYRILLIC CAPITAL LETTER DE
.. |dcy| unicode:: U+00434 .. CYRILLIC SMALL LETTER DE
.. |Ecy| unicode:: U+0042D .. CYRILLIC CAPITAL LETTER E
.. |ecy| unicode:: U+0044D .. CYRILLIC SMALL LETTER E
.. |Fcy| unicode:: U+00424 .. CYRILLIC CAPITAL LETTER EF
.. |fcy| unicode:: U+00444 .. CYRILLIC SMALL LETTER EF
.. |Gcy| unicode:: U+00413 .. CYRILLIC CAPITAL LETTER GHE
.. |gcy| unicode:: U+00433 .. CYRILLIC SMALL LETTER GHE
.. |HARDcy| unicode:: U+0042A .. CYRILLIC CAPITAL LETTER HARD SIGN
.. |hardcy| unicode:: U+0044A .. CYRILLIC SMALL LETTER HARD SIGN
.. |Icy| unicode:: U+00418 .. CYRILLIC CAPITAL LETTER I
.. |icy| unicode:: U+00438 .. CYRILLIC SMALL LETTER I
.. |IEcy| unicode:: U+00415 .. CYRILLIC CAPITAL LETTER IE
.. |iecy| unicode:: U+00435 .. CYRILLIC SMALL LETTER IE
.. |IOcy| unicode:: U+00401 .. CYRILLIC CAPITAL LETTER IO
.. |iocy| unicode:: U+00451 .. CYRILLIC SMALL LETTER IO
.. |Jcy| unicode:: U+00419 .. CYRILLIC CAPITAL LETTER SHORT I
.. |jcy| unicode:: U+00439 .. CYRILLIC SMALL LETTER SHORT I
.. |Kcy| unicode:: U+0041A .. CYRILLIC CAPITAL LETTER KA
.. |kcy| unicode:: U+0043A .. CYRILLIC SMALL LETTER KA
.. |KHcy| unicode:: U+00425 .. CYRILLIC CAPITAL LETTER HA
.. |khcy| unicode:: U+00445 .. CYRILLIC SMALL LETTER HA
.. |Lcy| unicode:: U+0041B .. CYRILLIC CAPITAL LETTER EL
.. |lcy| unicode:: U+0043B .. CYRILLIC SMALL LETTER EL
.. |Mcy| unicode:: U+0041C .. CYRILLIC CAPITAL LETTER EM
.. |mcy| unicode:: U+0043C .. CYRILLIC SMALL LETTER EM
.. |Ncy| unicode:: U+0041D .. CYRILLIC CAPITAL LETTER EN
.. |ncy| unicode:: U+0043D .. CYRILLIC SMALL LETTER EN
.. |numero| unicode:: U+02116 .. NUMERO SIGN
.. |Ocy| unicode:: U+0041E .. CYRILLIC CAPITAL LETTER O
.. |ocy| unicode:: U+0043E .. CYRILLIC SMALL LETTER O
.. |Pcy| unicode:: U+0041F .. CYRILLIC CAPITAL LETTER PE
.. |pcy| unicode:: U+0043F .. CYRILLIC SMALL LETTER PE
.. |Rcy| unicode:: U+00420 .. CYRILLIC CAPITAL LETTER ER
.. |rcy| unicode:: U+00440 .. CYRILLIC SMALL LETTER ER
.. |Scy| unicode:: U+00421 .. CYRILLIC CAPITAL LETTER ES
.. |scy| unicode:: U+00441 .. CYRILLIC SMALL LETTER ES
.. |SHCHcy| unicode:: U+00429 .. CYRILLIC CAPITAL LETTER SHCHA
.. |shchcy| unicode:: U+00449 .. CYRILLIC SMALL LETTER SHCHA
.. |SHcy| unicode:: U+00428 .. CYRILLIC CAPITAL LETTER SHA
.. |shcy| unicode:: U+00448 .. CYRILLIC SMALL LETTER SHA
.. |SOFTcy| unicode:: U+0042C .. CYRILLIC CAPITAL LETTER SOFT SIGN
.. |softcy| unicode:: U+0044C .. CYRILLIC SMALL LETTER SOFT SIGN
.. |Tcy| unicode:: U+00422 .. CYRILLIC CAPITAL LETTER TE
.. |tcy| unicode:: U+00442 .. CYRILLIC SMALL LETTER TE
.. |TScy| unicode:: U+00426 .. CYRILLIC CAPITAL LETTER TSE
.. |tscy| unicode:: U+00446 .. CYRILLIC SMALL LETTER TSE
.. |Ucy| unicode:: U+00423 .. CYRILLIC CAPITAL LETTER U
.. |ucy| unicode:: U+00443 .. CYRILLIC SMALL LETTER U
.. |Vcy| unicode:: U+00412 .. CYRILLIC CAPITAL LETTER VE
.. |vcy| unicode:: U+00432 .. CYRILLIC SMALL LETTER VE
.. |YAcy| unicode:: U+0042F .. CYRILLIC CAPITAL LETTER YA
.. |yacy| unicode:: U+0044F .. CYRILLIC SMALL LETTER YA
.. |Ycy| unicode:: U+0042B .. CYRILLIC CAPITAL LETTER YERU
.. |ycy| unicode:: U+0044B .. CYRILLIC SMALL LETTER YERU
.. |YUcy| unicode:: U+0042E .. CYRILLIC CAPITAL LETTER YU
.. |yucy| unicode:: U+0044E .. CYRILLIC SMALL LETTER YU
.. |Zcy| unicode:: U+00417 .. CYRILLIC CAPITAL LETTER ZE
.. |zcy| unicode:: U+00437 .. CYRILLIC SMALL LETTER ZE
.. |ZHcy| unicode:: U+00416 .. CYRILLIC CAPITAL LETTER ZHE
.. |zhcy| unicode:: U+00436 .. CYRILLIC SMALL LETTER ZHE

View file

@ -0,0 +1,32 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |DJcy| unicode:: U+00402 .. CYRILLIC CAPITAL LETTER DJE
.. |djcy| unicode:: U+00452 .. CYRILLIC SMALL LETTER DJE
.. |DScy| unicode:: U+00405 .. CYRILLIC CAPITAL LETTER DZE
.. |dscy| unicode:: U+00455 .. CYRILLIC SMALL LETTER DZE
.. |DZcy| unicode:: U+0040F .. CYRILLIC CAPITAL LETTER DZHE
.. |dzcy| unicode:: U+0045F .. CYRILLIC SMALL LETTER DZHE
.. |GJcy| unicode:: U+00403 .. CYRILLIC CAPITAL LETTER GJE
.. |gjcy| unicode:: U+00453 .. CYRILLIC SMALL LETTER GJE
.. |Iukcy| unicode:: U+00406 .. CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
.. |iukcy| unicode:: U+00456 .. CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
.. |Jsercy| unicode:: U+00408 .. CYRILLIC CAPITAL LETTER JE
.. |jsercy| unicode:: U+00458 .. CYRILLIC SMALL LETTER JE
.. |Jukcy| unicode:: U+00404 .. CYRILLIC CAPITAL LETTER UKRAINIAN IE
.. |jukcy| unicode:: U+00454 .. CYRILLIC SMALL LETTER UKRAINIAN IE
.. |KJcy| unicode:: U+0040C .. CYRILLIC CAPITAL LETTER KJE
.. |kjcy| unicode:: U+0045C .. CYRILLIC SMALL LETTER KJE
.. |LJcy| unicode:: U+00409 .. CYRILLIC CAPITAL LETTER LJE
.. |ljcy| unicode:: U+00459 .. CYRILLIC SMALL LETTER LJE
.. |NJcy| unicode:: U+0040A .. CYRILLIC CAPITAL LETTER NJE
.. |njcy| unicode:: U+0045A .. CYRILLIC SMALL LETTER NJE
.. |TSHcy| unicode:: U+0040B .. CYRILLIC CAPITAL LETTER TSHE
.. |tshcy| unicode:: U+0045B .. CYRILLIC SMALL LETTER TSHE
.. |Ubrcy| unicode:: U+0040E .. CYRILLIC CAPITAL LETTER SHORT U
.. |ubrcy| unicode:: U+0045E .. CYRILLIC SMALL LETTER SHORT U
.. |YIcy| unicode:: U+00407 .. CYRILLIC CAPITAL LETTER YI
.. |yicy| unicode:: U+00457 .. CYRILLIC SMALL LETTER YI

View file

@ -0,0 +1,20 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |acute| unicode:: U+000B4 .. ACUTE ACCENT
.. |breve| unicode:: U+002D8 .. BREVE
.. |caron| unicode:: U+002C7 .. CARON
.. |cedil| unicode:: U+000B8 .. CEDILLA
.. |circ| unicode:: U+002C6 .. MODIFIER LETTER CIRCUMFLEX ACCENT
.. |dblac| unicode:: U+002DD .. DOUBLE ACUTE ACCENT
.. |die| unicode:: U+000A8 .. DIAERESIS
.. |dot| unicode:: U+002D9 .. DOT ABOVE
.. |grave| unicode:: U+00060 .. GRAVE ACCENT
.. |macr| unicode:: U+000AF .. MACRON
.. |ogon| unicode:: U+002DB .. OGONEK
.. |ring| unicode:: U+002DA .. RING ABOVE
.. |tilde| unicode:: U+002DC .. SMALL TILDE
.. |uml| unicode:: U+000A8 .. DIAERESIS

View file

@ -0,0 +1,55 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |Agr| unicode:: U+00391 .. GREEK CAPITAL LETTER ALPHA
.. |agr| unicode:: U+003B1 .. GREEK SMALL LETTER ALPHA
.. |Bgr| unicode:: U+00392 .. GREEK CAPITAL LETTER BETA
.. |bgr| unicode:: U+003B2 .. GREEK SMALL LETTER BETA
.. |Dgr| unicode:: U+00394 .. GREEK CAPITAL LETTER DELTA
.. |dgr| unicode:: U+003B4 .. GREEK SMALL LETTER DELTA
.. |EEgr| unicode:: U+00397 .. GREEK CAPITAL LETTER ETA
.. |eegr| unicode:: U+003B7 .. GREEK SMALL LETTER ETA
.. |Egr| unicode:: U+00395 .. GREEK CAPITAL LETTER EPSILON
.. |egr| unicode:: U+003B5 .. GREEK SMALL LETTER EPSILON
.. |Ggr| unicode:: U+00393 .. GREEK CAPITAL LETTER GAMMA
.. |ggr| unicode:: U+003B3 .. GREEK SMALL LETTER GAMMA
.. |Igr| unicode:: U+00399 .. GREEK CAPITAL LETTER IOTA
.. |igr| unicode:: U+003B9 .. GREEK SMALL LETTER IOTA
.. |Kgr| unicode:: U+0039A .. GREEK CAPITAL LETTER KAPPA
.. |kgr| unicode:: U+003BA .. GREEK SMALL LETTER KAPPA
.. |KHgr| unicode:: U+003A7 .. GREEK CAPITAL LETTER CHI
.. |khgr| unicode:: U+003C7 .. GREEK SMALL LETTER CHI
.. |Lgr| unicode:: U+0039B .. GREEK CAPITAL LETTER LAMDA
.. |lgr| unicode:: U+003BB .. GREEK SMALL LETTER LAMDA
.. |Mgr| unicode:: U+0039C .. GREEK CAPITAL LETTER MU
.. |mgr| unicode:: U+003BC .. GREEK SMALL LETTER MU
.. |Ngr| unicode:: U+0039D .. GREEK CAPITAL LETTER NU
.. |ngr| unicode:: U+003BD .. GREEK SMALL LETTER NU
.. |Ogr| unicode:: U+0039F .. GREEK CAPITAL LETTER OMICRON
.. |ogr| unicode:: U+003BF .. GREEK SMALL LETTER OMICRON
.. |OHgr| unicode:: U+003A9 .. GREEK CAPITAL LETTER OMEGA
.. |ohgr| unicode:: U+003C9 .. GREEK SMALL LETTER OMEGA
.. |Pgr| unicode:: U+003A0 .. GREEK CAPITAL LETTER PI
.. |pgr| unicode:: U+003C0 .. GREEK SMALL LETTER PI
.. |PHgr| unicode:: U+003A6 .. GREEK CAPITAL LETTER PHI
.. |phgr| unicode:: U+003C6 .. GREEK SMALL LETTER PHI
.. |PSgr| unicode:: U+003A8 .. GREEK CAPITAL LETTER PSI
.. |psgr| unicode:: U+003C8 .. GREEK SMALL LETTER PSI
.. |Rgr| unicode:: U+003A1 .. GREEK CAPITAL LETTER RHO
.. |rgr| unicode:: U+003C1 .. GREEK SMALL LETTER RHO
.. |sfgr| unicode:: U+003C2 .. GREEK SMALL LETTER FINAL SIGMA
.. |Sgr| unicode:: U+003A3 .. GREEK CAPITAL LETTER SIGMA
.. |sgr| unicode:: U+003C3 .. GREEK SMALL LETTER SIGMA
.. |Tgr| unicode:: U+003A4 .. GREEK CAPITAL LETTER TAU
.. |tgr| unicode:: U+003C4 .. GREEK SMALL LETTER TAU
.. |THgr| unicode:: U+00398 .. GREEK CAPITAL LETTER THETA
.. |thgr| unicode:: U+003B8 .. GREEK SMALL LETTER THETA
.. |Ugr| unicode:: U+003A5 .. GREEK CAPITAL LETTER UPSILON
.. |ugr| unicode:: U+003C5 .. GREEK SMALL LETTER UPSILON
.. |Xgr| unicode:: U+0039E .. GREEK CAPITAL LETTER XI
.. |xgr| unicode:: U+003BE .. GREEK SMALL LETTER XI
.. |Zgr| unicode:: U+00396 .. GREEK CAPITAL LETTER ZETA
.. |zgr| unicode:: U+003B6 .. GREEK SMALL LETTER ZETA

View file

@ -0,0 +1,26 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |Aacgr| unicode:: U+00386 .. GREEK CAPITAL LETTER ALPHA WITH TONOS
.. |aacgr| unicode:: U+003AC .. GREEK SMALL LETTER ALPHA WITH TONOS
.. |Eacgr| unicode:: U+00388 .. GREEK CAPITAL LETTER EPSILON WITH TONOS
.. |eacgr| unicode:: U+003AD .. GREEK SMALL LETTER EPSILON WITH TONOS
.. |EEacgr| unicode:: U+00389 .. GREEK CAPITAL LETTER ETA WITH TONOS
.. |eeacgr| unicode:: U+003AE .. GREEK SMALL LETTER ETA WITH TONOS
.. |Iacgr| unicode:: U+0038A .. GREEK CAPITAL LETTER IOTA WITH TONOS
.. |iacgr| unicode:: U+003AF .. GREEK SMALL LETTER IOTA WITH TONOS
.. |idiagr| unicode:: U+00390 .. GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
.. |Idigr| unicode:: U+003AA .. GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
.. |idigr| unicode:: U+003CA .. GREEK SMALL LETTER IOTA WITH DIALYTIKA
.. |Oacgr| unicode:: U+0038C .. GREEK CAPITAL LETTER OMICRON WITH TONOS
.. |oacgr| unicode:: U+003CC .. GREEK SMALL LETTER OMICRON WITH TONOS
.. |OHacgr| unicode:: U+0038F .. GREEK CAPITAL LETTER OMEGA WITH TONOS
.. |ohacgr| unicode:: U+003CE .. GREEK SMALL LETTER OMEGA WITH TONOS
.. |Uacgr| unicode:: U+0038E .. GREEK CAPITAL LETTER UPSILON WITH TONOS
.. |uacgr| unicode:: U+003CD .. GREEK SMALL LETTER UPSILON WITH TONOS
.. |udiagr| unicode:: U+003B0 .. GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
.. |Udigr| unicode:: U+003AB .. GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
.. |udigr| unicode:: U+003CB .. GREEK SMALL LETTER UPSILON WITH DIALYTIKA

View file

@ -0,0 +1,52 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |alpha| unicode:: U+003B1 .. GREEK SMALL LETTER ALPHA
.. |beta| unicode:: U+003B2 .. GREEK SMALL LETTER BETA
.. |chi| unicode:: U+003C7 .. GREEK SMALL LETTER CHI
.. |Delta| unicode:: U+00394 .. GREEK CAPITAL LETTER DELTA
.. |delta| unicode:: U+003B4 .. GREEK SMALL LETTER DELTA
.. |epsi| unicode:: U+003F5 .. GREEK LUNATE EPSILON SYMBOL
.. |epsis| unicode:: U+003F5 .. GREEK LUNATE EPSILON SYMBOL
.. |epsiv| unicode:: U+003B5 .. GREEK SMALL LETTER EPSILON
.. |eta| unicode:: U+003B7 .. GREEK SMALL LETTER ETA
.. |Gamma| unicode:: U+00393 .. GREEK CAPITAL LETTER GAMMA
.. |gamma| unicode:: U+003B3 .. GREEK SMALL LETTER GAMMA
.. |Gammad| unicode:: U+003DC .. GREEK LETTER DIGAMMA
.. |gammad| unicode:: U+003DD .. GREEK SMALL LETTER DIGAMMA
.. |iota| unicode:: U+003B9 .. GREEK SMALL LETTER IOTA
.. |kappa| unicode:: U+003BA .. GREEK SMALL LETTER KAPPA
.. |kappav| unicode:: U+003F0 .. GREEK KAPPA SYMBOL
.. |Lambda| unicode:: U+0039B .. GREEK CAPITAL LETTER LAMDA
.. |lambda| unicode:: U+003BB .. GREEK SMALL LETTER LAMDA
.. |mu| unicode:: U+003BC .. GREEK SMALL LETTER MU
.. |nu| unicode:: U+003BD .. GREEK SMALL LETTER NU
.. |Omega| unicode:: U+003A9 .. GREEK CAPITAL LETTER OMEGA
.. |omega| unicode:: U+003C9 .. GREEK SMALL LETTER OMEGA
.. |Phi| unicode:: U+003A6 .. GREEK CAPITAL LETTER PHI
.. |phi| unicode:: U+003D5 .. GREEK PHI SYMBOL
.. |phis| unicode:: U+003D5 .. GREEK PHI SYMBOL
.. |phiv| unicode:: U+003C6 .. GREEK SMALL LETTER PHI
.. |Pi| unicode:: U+003A0 .. GREEK CAPITAL LETTER PI
.. |pi| unicode:: U+003C0 .. GREEK SMALL LETTER PI
.. |piv| unicode:: U+003D6 .. GREEK PI SYMBOL
.. |Psi| unicode:: U+003A8 .. GREEK CAPITAL LETTER PSI
.. |psi| unicode:: U+003C8 .. GREEK SMALL LETTER PSI
.. |rho| unicode:: U+003C1 .. GREEK SMALL LETTER RHO
.. |rhov| unicode:: U+003F1 .. GREEK RHO SYMBOL
.. |Sigma| unicode:: U+003A3 .. GREEK CAPITAL LETTER SIGMA
.. |sigma| unicode:: U+003C3 .. GREEK SMALL LETTER SIGMA
.. |sigmav| unicode:: U+003C2 .. GREEK SMALL LETTER FINAL SIGMA
.. |tau| unicode:: U+003C4 .. GREEK SMALL LETTER TAU
.. |Theta| unicode:: U+00398 .. GREEK CAPITAL LETTER THETA
.. |theta| unicode:: U+003B8 .. GREEK SMALL LETTER THETA
.. |thetas| unicode:: U+003B8 .. GREEK SMALL LETTER THETA
.. |thetav| unicode:: U+003D1 .. GREEK THETA SYMBOL
.. |Upsi| unicode:: U+003D2 .. GREEK UPSILON WITH HOOK SYMBOL
.. |upsi| unicode:: U+003C5 .. GREEK SMALL LETTER UPSILON
.. |Xi| unicode:: U+0039E .. GREEK CAPITAL LETTER XI
.. |xi| unicode:: U+003BE .. GREEK SMALL LETTER XI
.. |zeta| unicode:: U+003B6 .. GREEK SMALL LETTER ZETA

View file

@ -0,0 +1,49 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |b.alpha| unicode:: U+1D6C2 .. MATHEMATICAL BOLD SMALL ALPHA
.. |b.beta| unicode:: U+1D6C3 .. MATHEMATICAL BOLD SMALL BETA
.. |b.chi| unicode:: U+1D6D8 .. MATHEMATICAL BOLD SMALL CHI
.. |b.Delta| unicode:: U+1D6AB .. MATHEMATICAL BOLD CAPITAL DELTA
.. |b.delta| unicode:: U+1D6C5 .. MATHEMATICAL BOLD SMALL DELTA
.. |b.epsi| unicode:: U+1D6C6 .. MATHEMATICAL BOLD SMALL EPSILON
.. |b.epsiv| unicode:: U+1D6DC .. MATHEMATICAL BOLD EPSILON SYMBOL
.. |b.eta| unicode:: U+1D6C8 .. MATHEMATICAL BOLD SMALL ETA
.. |b.Gamma| unicode:: U+1D6AA .. MATHEMATICAL BOLD CAPITAL GAMMA
.. |b.gamma| unicode:: U+1D6C4 .. MATHEMATICAL BOLD SMALL GAMMA
.. |b.Gammad| unicode:: U+003DC .. GREEK LETTER DIGAMMA
.. |b.gammad| unicode:: U+003DD .. GREEK SMALL LETTER DIGAMMA
.. |b.iota| unicode:: U+1D6CA .. MATHEMATICAL BOLD SMALL IOTA
.. |b.kappa| unicode:: U+1D6CB .. MATHEMATICAL BOLD SMALL KAPPA
.. |b.kappav| unicode:: U+1D6DE .. MATHEMATICAL BOLD KAPPA SYMBOL
.. |b.Lambda| unicode:: U+1D6B2 .. MATHEMATICAL BOLD CAPITAL LAMDA
.. |b.lambda| unicode:: U+1D6CC .. MATHEMATICAL BOLD SMALL LAMDA
.. |b.mu| unicode:: U+1D6CD .. MATHEMATICAL BOLD SMALL MU
.. |b.nu| unicode:: U+1D6CE .. MATHEMATICAL BOLD SMALL NU
.. |b.Omega| unicode:: U+1D6C0 .. MATHEMATICAL BOLD CAPITAL OMEGA
.. |b.omega| unicode:: U+1D6DA .. MATHEMATICAL BOLD SMALL OMEGA
.. |b.Phi| unicode:: U+1D6BD .. MATHEMATICAL BOLD CAPITAL PHI
.. |b.phi| unicode:: U+1D6D7 .. MATHEMATICAL BOLD SMALL PHI
.. |b.phiv| unicode:: U+1D6DF .. MATHEMATICAL BOLD PHI SYMBOL
.. |b.Pi| unicode:: U+1D6B7 .. MATHEMATICAL BOLD CAPITAL PI
.. |b.pi| unicode:: U+1D6D1 .. MATHEMATICAL BOLD SMALL PI
.. |b.piv| unicode:: U+1D6E1 .. MATHEMATICAL BOLD PI SYMBOL
.. |b.Psi| unicode:: U+1D6BF .. MATHEMATICAL BOLD CAPITAL PSI
.. |b.psi| unicode:: U+1D6D9 .. MATHEMATICAL BOLD SMALL PSI
.. |b.rho| unicode:: U+1D6D2 .. MATHEMATICAL BOLD SMALL RHO
.. |b.rhov| unicode:: U+1D6E0 .. MATHEMATICAL BOLD RHO SYMBOL
.. |b.Sigma| unicode:: U+1D6BA .. MATHEMATICAL BOLD CAPITAL SIGMA
.. |b.sigma| unicode:: U+1D6D4 .. MATHEMATICAL BOLD SMALL SIGMA
.. |b.sigmav| unicode:: U+1D6D3 .. MATHEMATICAL BOLD SMALL FINAL SIGMA
.. |b.tau| unicode:: U+1D6D5 .. MATHEMATICAL BOLD SMALL TAU
.. |b.Theta| unicode:: U+1D6AF .. MATHEMATICAL BOLD CAPITAL THETA
.. |b.thetas| unicode:: U+1D6C9 .. MATHEMATICAL BOLD SMALL THETA
.. |b.thetav| unicode:: U+1D6DD .. MATHEMATICAL BOLD THETA SYMBOL
.. |b.Upsi| unicode:: U+1D6BC .. MATHEMATICAL BOLD CAPITAL UPSILON
.. |b.upsi| unicode:: U+1D6D6 .. MATHEMATICAL BOLD SMALL UPSILON
.. |b.Xi| unicode:: U+1D6B5 .. MATHEMATICAL BOLD CAPITAL XI
.. |b.xi| unicode:: U+1D6CF .. MATHEMATICAL BOLD SMALL XI
.. |b.zeta| unicode:: U+1D6C7 .. MATHEMATICAL BOLD SMALL ZETA

View file

@ -0,0 +1,8 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |b.Gammad| unicode:: U+003DC .. GREEK LETTER DIGAMMA
.. |b.gammad| unicode:: U+003DD .. GREEK SMALL LETTER DIGAMMA

View file

@ -0,0 +1,68 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |Aacute| unicode:: U+000C1 .. LATIN CAPITAL LETTER A WITH ACUTE
.. |aacute| unicode:: U+000E1 .. LATIN SMALL LETTER A WITH ACUTE
.. |Acirc| unicode:: U+000C2 .. LATIN CAPITAL LETTER A WITH CIRCUMFLEX
.. |acirc| unicode:: U+000E2 .. LATIN SMALL LETTER A WITH CIRCUMFLEX
.. |AElig| unicode:: U+000C6 .. LATIN CAPITAL LETTER AE
.. |aelig| unicode:: U+000E6 .. LATIN SMALL LETTER AE
.. |Agrave| unicode:: U+000C0 .. LATIN CAPITAL LETTER A WITH GRAVE
.. |agrave| unicode:: U+000E0 .. LATIN SMALL LETTER A WITH GRAVE
.. |Aring| unicode:: U+000C5 .. LATIN CAPITAL LETTER A WITH RING ABOVE
.. |aring| unicode:: U+000E5 .. LATIN SMALL LETTER A WITH RING ABOVE
.. |Atilde| unicode:: U+000C3 .. LATIN CAPITAL LETTER A WITH TILDE
.. |atilde| unicode:: U+000E3 .. LATIN SMALL LETTER A WITH TILDE
.. |Auml| unicode:: U+000C4 .. LATIN CAPITAL LETTER A WITH DIAERESIS
.. |auml| unicode:: U+000E4 .. LATIN SMALL LETTER A WITH DIAERESIS
.. |Ccedil| unicode:: U+000C7 .. LATIN CAPITAL LETTER C WITH CEDILLA
.. |ccedil| unicode:: U+000E7 .. LATIN SMALL LETTER C WITH CEDILLA
.. |Eacute| unicode:: U+000C9 .. LATIN CAPITAL LETTER E WITH ACUTE
.. |eacute| unicode:: U+000E9 .. LATIN SMALL LETTER E WITH ACUTE
.. |Ecirc| unicode:: U+000CA .. LATIN CAPITAL LETTER E WITH CIRCUMFLEX
.. |ecirc| unicode:: U+000EA .. LATIN SMALL LETTER E WITH CIRCUMFLEX
.. |Egrave| unicode:: U+000C8 .. LATIN CAPITAL LETTER E WITH GRAVE
.. |egrave| unicode:: U+000E8 .. LATIN SMALL LETTER E WITH GRAVE
.. |ETH| unicode:: U+000D0 .. LATIN CAPITAL LETTER ETH
.. |eth| unicode:: U+000F0 .. LATIN SMALL LETTER ETH
.. |Euml| unicode:: U+000CB .. LATIN CAPITAL LETTER E WITH DIAERESIS
.. |euml| unicode:: U+000EB .. LATIN SMALL LETTER E WITH DIAERESIS
.. |Iacute| unicode:: U+000CD .. LATIN CAPITAL LETTER I WITH ACUTE
.. |iacute| unicode:: U+000ED .. LATIN SMALL LETTER I WITH ACUTE
.. |Icirc| unicode:: U+000CE .. LATIN CAPITAL LETTER I WITH CIRCUMFLEX
.. |icirc| unicode:: U+000EE .. LATIN SMALL LETTER I WITH CIRCUMFLEX
.. |Igrave| unicode:: U+000CC .. LATIN CAPITAL LETTER I WITH GRAVE
.. |igrave| unicode:: U+000EC .. LATIN SMALL LETTER I WITH GRAVE
.. |Iuml| unicode:: U+000CF .. LATIN CAPITAL LETTER I WITH DIAERESIS
.. |iuml| unicode:: U+000EF .. LATIN SMALL LETTER I WITH DIAERESIS
.. |Ntilde| unicode:: U+000D1 .. LATIN CAPITAL LETTER N WITH TILDE
.. |ntilde| unicode:: U+000F1 .. LATIN SMALL LETTER N WITH TILDE
.. |Oacute| unicode:: U+000D3 .. LATIN CAPITAL LETTER O WITH ACUTE
.. |oacute| unicode:: U+000F3 .. LATIN SMALL LETTER O WITH ACUTE
.. |Ocirc| unicode:: U+000D4 .. LATIN CAPITAL LETTER O WITH CIRCUMFLEX
.. |ocirc| unicode:: U+000F4 .. LATIN SMALL LETTER O WITH CIRCUMFLEX
.. |Ograve| unicode:: U+000D2 .. LATIN CAPITAL LETTER O WITH GRAVE
.. |ograve| unicode:: U+000F2 .. LATIN SMALL LETTER O WITH GRAVE
.. |Oslash| unicode:: U+000D8 .. LATIN CAPITAL LETTER O WITH STROKE
.. |oslash| unicode:: U+000F8 .. LATIN SMALL LETTER O WITH STROKE
.. |Otilde| unicode:: U+000D5 .. LATIN CAPITAL LETTER O WITH TILDE
.. |otilde| unicode:: U+000F5 .. LATIN SMALL LETTER O WITH TILDE
.. |Ouml| unicode:: U+000D6 .. LATIN CAPITAL LETTER O WITH DIAERESIS
.. |ouml| unicode:: U+000F6 .. LATIN SMALL LETTER O WITH DIAERESIS
.. |szlig| unicode:: U+000DF .. LATIN SMALL LETTER SHARP S
.. |THORN| unicode:: U+000DE .. LATIN CAPITAL LETTER THORN
.. |thorn| unicode:: U+000FE .. LATIN SMALL LETTER THORN
.. |Uacute| unicode:: U+000DA .. LATIN CAPITAL LETTER U WITH ACUTE
.. |uacute| unicode:: U+000FA .. LATIN SMALL LETTER U WITH ACUTE
.. |Ucirc| unicode:: U+000DB .. LATIN CAPITAL LETTER U WITH CIRCUMFLEX
.. |ucirc| unicode:: U+000FB .. LATIN SMALL LETTER U WITH CIRCUMFLEX
.. |Ugrave| unicode:: U+000D9 .. LATIN CAPITAL LETTER U WITH GRAVE
.. |ugrave| unicode:: U+000F9 .. LATIN SMALL LETTER U WITH GRAVE
.. |Uuml| unicode:: U+000DC .. LATIN CAPITAL LETTER U WITH DIAERESIS
.. |uuml| unicode:: U+000FC .. LATIN SMALL LETTER U WITH DIAERESIS
.. |Yacute| unicode:: U+000DD .. LATIN CAPITAL LETTER Y WITH ACUTE
.. |yacute| unicode:: U+000FD .. LATIN SMALL LETTER Y WITH ACUTE
.. |yuml| unicode:: U+000FF .. LATIN SMALL LETTER Y WITH DIAERESIS

View file

@ -0,0 +1,128 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |Abreve| unicode:: U+00102 .. LATIN CAPITAL LETTER A WITH BREVE
.. |abreve| unicode:: U+00103 .. LATIN SMALL LETTER A WITH BREVE
.. |Amacr| unicode:: U+00100 .. LATIN CAPITAL LETTER A WITH MACRON
.. |amacr| unicode:: U+00101 .. LATIN SMALL LETTER A WITH MACRON
.. |Aogon| unicode:: U+00104 .. LATIN CAPITAL LETTER A WITH OGONEK
.. |aogon| unicode:: U+00105 .. LATIN SMALL LETTER A WITH OGONEK
.. |Cacute| unicode:: U+00106 .. LATIN CAPITAL LETTER C WITH ACUTE
.. |cacute| unicode:: U+00107 .. LATIN SMALL LETTER C WITH ACUTE
.. |Ccaron| unicode:: U+0010C .. LATIN CAPITAL LETTER C WITH CARON
.. |ccaron| unicode:: U+0010D .. LATIN SMALL LETTER C WITH CARON
.. |Ccirc| unicode:: U+00108 .. LATIN CAPITAL LETTER C WITH CIRCUMFLEX
.. |ccirc| unicode:: U+00109 .. LATIN SMALL LETTER C WITH CIRCUMFLEX
.. |Cdot| unicode:: U+0010A .. LATIN CAPITAL LETTER C WITH DOT ABOVE
.. |cdot| unicode:: U+0010B .. LATIN SMALL LETTER C WITH DOT ABOVE
.. |Dcaron| unicode:: U+0010E .. LATIN CAPITAL LETTER D WITH CARON
.. |dcaron| unicode:: U+0010F .. LATIN SMALL LETTER D WITH CARON
.. |Dstrok| unicode:: U+00110 .. LATIN CAPITAL LETTER D WITH STROKE
.. |dstrok| unicode:: U+00111 .. LATIN SMALL LETTER D WITH STROKE
.. |Ecaron| unicode:: U+0011A .. LATIN CAPITAL LETTER E WITH CARON
.. |ecaron| unicode:: U+0011B .. LATIN SMALL LETTER E WITH CARON
.. |Edot| unicode:: U+00116 .. LATIN CAPITAL LETTER E WITH DOT ABOVE
.. |edot| unicode:: U+00117 .. LATIN SMALL LETTER E WITH DOT ABOVE
.. |Emacr| unicode:: U+00112 .. LATIN CAPITAL LETTER E WITH MACRON
.. |emacr| unicode:: U+00113 .. LATIN SMALL LETTER E WITH MACRON
.. |ENG| unicode:: U+0014A .. LATIN CAPITAL LETTER ENG
.. |eng| unicode:: U+0014B .. LATIN SMALL LETTER ENG
.. |Eogon| unicode:: U+00118 .. LATIN CAPITAL LETTER E WITH OGONEK
.. |eogon| unicode:: U+00119 .. LATIN SMALL LETTER E WITH OGONEK
.. |gacute| unicode:: U+001F5 .. LATIN SMALL LETTER G WITH ACUTE
.. |Gbreve| unicode:: U+0011E .. LATIN CAPITAL LETTER G WITH BREVE
.. |gbreve| unicode:: U+0011F .. LATIN SMALL LETTER G WITH BREVE
.. |Gcedil| unicode:: U+00122 .. LATIN CAPITAL LETTER G WITH CEDILLA
.. |gcedil| unicode:: U+00123 .. LATIN SMALL LETTER G WITH CEDILLA
.. |Gcirc| unicode:: U+0011C .. LATIN CAPITAL LETTER G WITH CIRCUMFLEX
.. |gcirc| unicode:: U+0011D .. LATIN SMALL LETTER G WITH CIRCUMFLEX
.. |Gdot| unicode:: U+00120 .. LATIN CAPITAL LETTER G WITH DOT ABOVE
.. |gdot| unicode:: U+00121 .. LATIN SMALL LETTER G WITH DOT ABOVE
.. |Hcirc| unicode:: U+00124 .. LATIN CAPITAL LETTER H WITH CIRCUMFLEX
.. |hcirc| unicode:: U+00125 .. LATIN SMALL LETTER H WITH CIRCUMFLEX
.. |Hstrok| unicode:: U+00126 .. LATIN CAPITAL LETTER H WITH STROKE
.. |hstrok| unicode:: U+00127 .. LATIN SMALL LETTER H WITH STROKE
.. |Idot| unicode:: U+00130 .. LATIN CAPITAL LETTER I WITH DOT ABOVE
.. |IJlig| unicode:: U+00132 .. LATIN CAPITAL LIGATURE IJ
.. |ijlig| unicode:: U+00133 .. LATIN SMALL LIGATURE IJ
.. |Imacr| unicode:: U+0012A .. LATIN CAPITAL LETTER I WITH MACRON
.. |imacr| unicode:: U+0012B .. LATIN SMALL LETTER I WITH MACRON
.. |inodot| unicode:: U+00131 .. LATIN SMALL LETTER DOTLESS I
.. |Iogon| unicode:: U+0012E .. LATIN CAPITAL LETTER I WITH OGONEK
.. |iogon| unicode:: U+0012F .. LATIN SMALL LETTER I WITH OGONEK
.. |Itilde| unicode:: U+00128 .. LATIN CAPITAL LETTER I WITH TILDE
.. |itilde| unicode:: U+00129 .. LATIN SMALL LETTER I WITH TILDE
.. |Jcirc| unicode:: U+00134 .. LATIN CAPITAL LETTER J WITH CIRCUMFLEX
.. |jcirc| unicode:: U+00135 .. LATIN SMALL LETTER J WITH CIRCUMFLEX
.. |Kcedil| unicode:: U+00136 .. LATIN CAPITAL LETTER K WITH CEDILLA
.. |kcedil| unicode:: U+00137 .. LATIN SMALL LETTER K WITH CEDILLA
.. |kgreen| unicode:: U+00138 .. LATIN SMALL LETTER KRA
.. |Lacute| unicode:: U+00139 .. LATIN CAPITAL LETTER L WITH ACUTE
.. |lacute| unicode:: U+0013A .. LATIN SMALL LETTER L WITH ACUTE
.. |Lcaron| unicode:: U+0013D .. LATIN CAPITAL LETTER L WITH CARON
.. |lcaron| unicode:: U+0013E .. LATIN SMALL LETTER L WITH CARON
.. |Lcedil| unicode:: U+0013B .. LATIN CAPITAL LETTER L WITH CEDILLA
.. |lcedil| unicode:: U+0013C .. LATIN SMALL LETTER L WITH CEDILLA
.. |Lmidot| unicode:: U+0013F .. LATIN CAPITAL LETTER L WITH MIDDLE DOT
.. |lmidot| unicode:: U+00140 .. LATIN SMALL LETTER L WITH MIDDLE DOT
.. |Lstrok| unicode:: U+00141 .. LATIN CAPITAL LETTER L WITH STROKE
.. |lstrok| unicode:: U+00142 .. LATIN SMALL LETTER L WITH STROKE
.. |Nacute| unicode:: U+00143 .. LATIN CAPITAL LETTER N WITH ACUTE
.. |nacute| unicode:: U+00144 .. LATIN SMALL LETTER N WITH ACUTE
.. |napos| unicode:: U+00149 .. LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
.. |Ncaron| unicode:: U+00147 .. LATIN CAPITAL LETTER N WITH CARON
.. |ncaron| unicode:: U+00148 .. LATIN SMALL LETTER N WITH CARON
.. |Ncedil| unicode:: U+00145 .. LATIN CAPITAL LETTER N WITH CEDILLA
.. |ncedil| unicode:: U+00146 .. LATIN SMALL LETTER N WITH CEDILLA
.. |Odblac| unicode:: U+00150 .. LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
.. |odblac| unicode:: U+00151 .. LATIN SMALL LETTER O WITH DOUBLE ACUTE
.. |OElig| unicode:: U+00152 .. LATIN CAPITAL LIGATURE OE
.. |oelig| unicode:: U+00153 .. LATIN SMALL LIGATURE OE
.. |Omacr| unicode:: U+0014C .. LATIN CAPITAL LETTER O WITH MACRON
.. |omacr| unicode:: U+0014D .. LATIN SMALL LETTER O WITH MACRON
.. |Racute| unicode:: U+00154 .. LATIN CAPITAL LETTER R WITH ACUTE
.. |racute| unicode:: U+00155 .. LATIN SMALL LETTER R WITH ACUTE
.. |Rcaron| unicode:: U+00158 .. LATIN CAPITAL LETTER R WITH CARON
.. |rcaron| unicode:: U+00159 .. LATIN SMALL LETTER R WITH CARON
.. |Rcedil| unicode:: U+00156 .. LATIN CAPITAL LETTER R WITH CEDILLA
.. |rcedil| unicode:: U+00157 .. LATIN SMALL LETTER R WITH CEDILLA
.. |Sacute| unicode:: U+0015A .. LATIN CAPITAL LETTER S WITH ACUTE
.. |sacute| unicode:: U+0015B .. LATIN SMALL LETTER S WITH ACUTE
.. |Scaron| unicode:: U+00160 .. LATIN CAPITAL LETTER S WITH CARON
.. |scaron| unicode:: U+00161 .. LATIN SMALL LETTER S WITH CARON
.. |Scedil| unicode:: U+0015E .. LATIN CAPITAL LETTER S WITH CEDILLA
.. |scedil| unicode:: U+0015F .. LATIN SMALL LETTER S WITH CEDILLA
.. |Scirc| unicode:: U+0015C .. LATIN CAPITAL LETTER S WITH CIRCUMFLEX
.. |scirc| unicode:: U+0015D .. LATIN SMALL LETTER S WITH CIRCUMFLEX
.. |Tcaron| unicode:: U+00164 .. LATIN CAPITAL LETTER T WITH CARON
.. |tcaron| unicode:: U+00165 .. LATIN SMALL LETTER T WITH CARON
.. |Tcedil| unicode:: U+00162 .. LATIN CAPITAL LETTER T WITH CEDILLA
.. |tcedil| unicode:: U+00163 .. LATIN SMALL LETTER T WITH CEDILLA
.. |Tstrok| unicode:: U+00166 .. LATIN CAPITAL LETTER T WITH STROKE
.. |tstrok| unicode:: U+00167 .. LATIN SMALL LETTER T WITH STROKE
.. |Ubreve| unicode:: U+0016C .. LATIN CAPITAL LETTER U WITH BREVE
.. |ubreve| unicode:: U+0016D .. LATIN SMALL LETTER U WITH BREVE
.. |Udblac| unicode:: U+00170 .. LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
.. |udblac| unicode:: U+00171 .. LATIN SMALL LETTER U WITH DOUBLE ACUTE
.. |Umacr| unicode:: U+0016A .. LATIN CAPITAL LETTER U WITH MACRON
.. |umacr| unicode:: U+0016B .. LATIN SMALL LETTER U WITH MACRON
.. |Uogon| unicode:: U+00172 .. LATIN CAPITAL LETTER U WITH OGONEK
.. |uogon| unicode:: U+00173 .. LATIN SMALL LETTER U WITH OGONEK
.. |Uring| unicode:: U+0016E .. LATIN CAPITAL LETTER U WITH RING ABOVE
.. |uring| unicode:: U+0016F .. LATIN SMALL LETTER U WITH RING ABOVE
.. |Utilde| unicode:: U+00168 .. LATIN CAPITAL LETTER U WITH TILDE
.. |utilde| unicode:: U+00169 .. LATIN SMALL LETTER U WITH TILDE
.. |Wcirc| unicode:: U+00174 .. LATIN CAPITAL LETTER W WITH CIRCUMFLEX
.. |wcirc| unicode:: U+00175 .. LATIN SMALL LETTER W WITH CIRCUMFLEX
.. |Ycirc| unicode:: U+00176 .. LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
.. |ycirc| unicode:: U+00177 .. LATIN SMALL LETTER Y WITH CIRCUMFLEX
.. |Yuml| unicode:: U+00178 .. LATIN CAPITAL LETTER Y WITH DIAERESIS
.. |Zacute| unicode:: U+00179 .. LATIN CAPITAL LETTER Z WITH ACUTE
.. |zacute| unicode:: U+0017A .. LATIN SMALL LETTER Z WITH ACUTE
.. |Zcaron| unicode:: U+0017D .. LATIN CAPITAL LETTER Z WITH CARON
.. |zcaron| unicode:: U+0017E .. LATIN SMALL LETTER Z WITH CARON
.. |Zdot| unicode:: U+0017B .. LATIN CAPITAL LETTER Z WITH DOT ABOVE
.. |zdot| unicode:: U+0017C .. LATIN SMALL LETTER Z WITH DOT ABOVE

View file

@ -0,0 +1,58 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |Afr| unicode:: U+1D504 .. MATHEMATICAL FRAKTUR CAPITAL A
.. |afr| unicode:: U+1D51E .. MATHEMATICAL FRAKTUR SMALL A
.. |Bfr| unicode:: U+1D505 .. MATHEMATICAL FRAKTUR CAPITAL B
.. |bfr| unicode:: U+1D51F .. MATHEMATICAL FRAKTUR SMALL B
.. |Cfr| unicode:: U+0212D .. BLACK-LETTER CAPITAL C
.. |cfr| unicode:: U+1D520 .. MATHEMATICAL FRAKTUR SMALL C
.. |Dfr| unicode:: U+1D507 .. MATHEMATICAL FRAKTUR CAPITAL D
.. |dfr| unicode:: U+1D521 .. MATHEMATICAL FRAKTUR SMALL D
.. |Efr| unicode:: U+1D508 .. MATHEMATICAL FRAKTUR CAPITAL E
.. |efr| unicode:: U+1D522 .. MATHEMATICAL FRAKTUR SMALL E
.. |Ffr| unicode:: U+1D509 .. MATHEMATICAL FRAKTUR CAPITAL F
.. |ffr| unicode:: U+1D523 .. MATHEMATICAL FRAKTUR SMALL F
.. |Gfr| unicode:: U+1D50A .. MATHEMATICAL FRAKTUR CAPITAL G
.. |gfr| unicode:: U+1D524 .. MATHEMATICAL FRAKTUR SMALL G
.. |Hfr| unicode:: U+0210C .. BLACK-LETTER CAPITAL H
.. |hfr| unicode:: U+1D525 .. MATHEMATICAL FRAKTUR SMALL H
.. |Ifr| unicode:: U+02111 .. BLACK-LETTER CAPITAL I
.. |ifr| unicode:: U+1D526 .. MATHEMATICAL FRAKTUR SMALL I
.. |Jfr| unicode:: U+1D50D .. MATHEMATICAL FRAKTUR CAPITAL J
.. |jfr| unicode:: U+1D527 .. MATHEMATICAL FRAKTUR SMALL J
.. |Kfr| unicode:: U+1D50E .. MATHEMATICAL FRAKTUR CAPITAL K
.. |kfr| unicode:: U+1D528 .. MATHEMATICAL FRAKTUR SMALL K
.. |Lfr| unicode:: U+1D50F .. MATHEMATICAL FRAKTUR CAPITAL L
.. |lfr| unicode:: U+1D529 .. MATHEMATICAL FRAKTUR SMALL L
.. |Mfr| unicode:: U+1D510 .. MATHEMATICAL FRAKTUR CAPITAL M
.. |mfr| unicode:: U+1D52A .. MATHEMATICAL FRAKTUR SMALL M
.. |Nfr| unicode:: U+1D511 .. MATHEMATICAL FRAKTUR CAPITAL N
.. |nfr| unicode:: U+1D52B .. MATHEMATICAL FRAKTUR SMALL N
.. |Ofr| unicode:: U+1D512 .. MATHEMATICAL FRAKTUR CAPITAL O
.. |ofr| unicode:: U+1D52C .. MATHEMATICAL FRAKTUR SMALL O
.. |Pfr| unicode:: U+1D513 .. MATHEMATICAL FRAKTUR CAPITAL P
.. |pfr| unicode:: U+1D52D .. MATHEMATICAL FRAKTUR SMALL P
.. |Qfr| unicode:: U+1D514 .. MATHEMATICAL FRAKTUR CAPITAL Q
.. |qfr| unicode:: U+1D52E .. MATHEMATICAL FRAKTUR SMALL Q
.. |Rfr| unicode:: U+0211C .. BLACK-LETTER CAPITAL R
.. |rfr| unicode:: U+1D52F .. MATHEMATICAL FRAKTUR SMALL R
.. |Sfr| unicode:: U+1D516 .. MATHEMATICAL FRAKTUR CAPITAL S
.. |sfr| unicode:: U+1D530 .. MATHEMATICAL FRAKTUR SMALL S
.. |Tfr| unicode:: U+1D517 .. MATHEMATICAL FRAKTUR CAPITAL T
.. |tfr| unicode:: U+1D531 .. MATHEMATICAL FRAKTUR SMALL T
.. |Ufr| unicode:: U+1D518 .. MATHEMATICAL FRAKTUR CAPITAL U
.. |ufr| unicode:: U+1D532 .. MATHEMATICAL FRAKTUR SMALL U
.. |Vfr| unicode:: U+1D519 .. MATHEMATICAL FRAKTUR CAPITAL V
.. |vfr| unicode:: U+1D533 .. MATHEMATICAL FRAKTUR SMALL V
.. |Wfr| unicode:: U+1D51A .. MATHEMATICAL FRAKTUR CAPITAL W
.. |wfr| unicode:: U+1D534 .. MATHEMATICAL FRAKTUR SMALL W
.. |Xfr| unicode:: U+1D51B .. MATHEMATICAL FRAKTUR CAPITAL X
.. |xfr| unicode:: U+1D535 .. MATHEMATICAL FRAKTUR SMALL X
.. |Yfr| unicode:: U+1D51C .. MATHEMATICAL FRAKTUR CAPITAL Y
.. |yfr| unicode:: U+1D536 .. MATHEMATICAL FRAKTUR SMALL Y
.. |Zfr| unicode:: U+02128 .. BLACK-LETTER CAPITAL Z
.. |zfr| unicode:: U+1D537 .. MATHEMATICAL FRAKTUR SMALL Z

View file

@ -0,0 +1,11 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |Cfr| unicode:: U+0212D .. BLACK-LETTER CAPITAL C
.. |Hfr| unicode:: U+0210C .. BLACK-LETTER CAPITAL H
.. |Ifr| unicode:: U+02111 .. BLACK-LETTER CAPITAL I
.. |Rfr| unicode:: U+0211C .. BLACK-LETTER CAPITAL R
.. |Zfr| unicode:: U+02128 .. BLACK-LETTER CAPITAL Z

View file

@ -0,0 +1,32 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |Aopf| unicode:: U+1D538 .. MATHEMATICAL DOUBLE-STRUCK CAPITAL A
.. |Bopf| unicode:: U+1D539 .. MATHEMATICAL DOUBLE-STRUCK CAPITAL B
.. |Copf| unicode:: U+02102 .. DOUBLE-STRUCK CAPITAL C
.. |Dopf| unicode:: U+1D53B .. MATHEMATICAL DOUBLE-STRUCK CAPITAL D
.. |Eopf| unicode:: U+1D53C .. MATHEMATICAL DOUBLE-STRUCK CAPITAL E
.. |Fopf| unicode:: U+1D53D .. MATHEMATICAL DOUBLE-STRUCK CAPITAL F
.. |Gopf| unicode:: U+1D53E .. MATHEMATICAL DOUBLE-STRUCK CAPITAL G
.. |Hopf| unicode:: U+0210D .. DOUBLE-STRUCK CAPITAL H
.. |Iopf| unicode:: U+1D540 .. MATHEMATICAL DOUBLE-STRUCK CAPITAL I
.. |Jopf| unicode:: U+1D541 .. MATHEMATICAL DOUBLE-STRUCK CAPITAL J
.. |Kopf| unicode:: U+1D542 .. MATHEMATICAL DOUBLE-STRUCK CAPITAL K
.. |Lopf| unicode:: U+1D543 .. MATHEMATICAL DOUBLE-STRUCK CAPITAL L
.. |Mopf| unicode:: U+1D544 .. MATHEMATICAL DOUBLE-STRUCK CAPITAL M
.. |Nopf| unicode:: U+02115 .. DOUBLE-STRUCK CAPITAL N
.. |Oopf| unicode:: U+1D546 .. MATHEMATICAL DOUBLE-STRUCK CAPITAL O
.. |Popf| unicode:: U+02119 .. DOUBLE-STRUCK CAPITAL P
.. |Qopf| unicode:: U+0211A .. DOUBLE-STRUCK CAPITAL Q
.. |Ropf| unicode:: U+0211D .. DOUBLE-STRUCK CAPITAL R
.. |Sopf| unicode:: U+1D54A .. MATHEMATICAL DOUBLE-STRUCK CAPITAL S
.. |Topf| unicode:: U+1D54B .. MATHEMATICAL DOUBLE-STRUCK CAPITAL T
.. |Uopf| unicode:: U+1D54C .. MATHEMATICAL DOUBLE-STRUCK CAPITAL U
.. |Vopf| unicode:: U+1D54D .. MATHEMATICAL DOUBLE-STRUCK CAPITAL V
.. |Wopf| unicode:: U+1D54E .. MATHEMATICAL DOUBLE-STRUCK CAPITAL W
.. |Xopf| unicode:: U+1D54F .. MATHEMATICAL DOUBLE-STRUCK CAPITAL X
.. |Yopf| unicode:: U+1D550 .. MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
.. |Zopf| unicode:: U+02124 .. DOUBLE-STRUCK CAPITAL Z

View file

@ -0,0 +1,13 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |Copf| unicode:: U+02102 .. DOUBLE-STRUCK CAPITAL C
.. |Hopf| unicode:: U+0210D .. DOUBLE-STRUCK CAPITAL H
.. |Nopf| unicode:: U+02115 .. DOUBLE-STRUCK CAPITAL N
.. |Popf| unicode:: U+02119 .. DOUBLE-STRUCK CAPITAL P
.. |Qopf| unicode:: U+0211A .. DOUBLE-STRUCK CAPITAL Q
.. |Ropf| unicode:: U+0211D .. DOUBLE-STRUCK CAPITAL R
.. |Zopf| unicode:: U+02124 .. DOUBLE-STRUCK CAPITAL Z

View file

@ -0,0 +1,58 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |Ascr| unicode:: U+1D49C .. MATHEMATICAL SCRIPT CAPITAL A
.. |ascr| unicode:: U+1D4B6 .. MATHEMATICAL SCRIPT SMALL A
.. |Bscr| unicode:: U+0212C .. SCRIPT CAPITAL B
.. |bscr| unicode:: U+1D4B7 .. MATHEMATICAL SCRIPT SMALL B
.. |Cscr| unicode:: U+1D49E .. MATHEMATICAL SCRIPT CAPITAL C
.. |cscr| unicode:: U+1D4B8 .. MATHEMATICAL SCRIPT SMALL C
.. |Dscr| unicode:: U+1D49F .. MATHEMATICAL SCRIPT CAPITAL D
.. |dscr| unicode:: U+1D4B9 .. MATHEMATICAL SCRIPT SMALL D
.. |Escr| unicode:: U+02130 .. SCRIPT CAPITAL E
.. |escr| unicode:: U+0212F .. SCRIPT SMALL E
.. |Fscr| unicode:: U+02131 .. SCRIPT CAPITAL F
.. |fscr| unicode:: U+1D4BB .. MATHEMATICAL SCRIPT SMALL F
.. |Gscr| unicode:: U+1D4A2 .. MATHEMATICAL SCRIPT CAPITAL G
.. |gscr| unicode:: U+0210A .. SCRIPT SMALL G
.. |Hscr| unicode:: U+0210B .. SCRIPT CAPITAL H
.. |hscr| unicode:: U+1D4BD .. MATHEMATICAL SCRIPT SMALL H
.. |Iscr| unicode:: U+02110 .. SCRIPT CAPITAL I
.. |iscr| unicode:: U+1D4BE .. MATHEMATICAL SCRIPT SMALL I
.. |Jscr| unicode:: U+1D4A5 .. MATHEMATICAL SCRIPT CAPITAL J
.. |jscr| unicode:: U+1D4BF .. MATHEMATICAL SCRIPT SMALL J
.. |Kscr| unicode:: U+1D4A6 .. MATHEMATICAL SCRIPT CAPITAL K
.. |kscr| unicode:: U+1D4C0 .. MATHEMATICAL SCRIPT SMALL K
.. |Lscr| unicode:: U+02112 .. SCRIPT CAPITAL L
.. |lscr| unicode:: U+1D4C1 .. MATHEMATICAL SCRIPT SMALL L
.. |Mscr| unicode:: U+02133 .. SCRIPT CAPITAL M
.. |mscr| unicode:: U+1D4C2 .. MATHEMATICAL SCRIPT SMALL M
.. |Nscr| unicode:: U+1D4A9 .. MATHEMATICAL SCRIPT CAPITAL N
.. |nscr| unicode:: U+1D4C3 .. MATHEMATICAL SCRIPT SMALL N
.. |Oscr| unicode:: U+1D4AA .. MATHEMATICAL SCRIPT CAPITAL O
.. |oscr| unicode:: U+02134 .. SCRIPT SMALL O
.. |Pscr| unicode:: U+1D4AB .. MATHEMATICAL SCRIPT CAPITAL P
.. |pscr| unicode:: U+1D4C5 .. MATHEMATICAL SCRIPT SMALL P
.. |Qscr| unicode:: U+1D4AC .. MATHEMATICAL SCRIPT CAPITAL Q
.. |qscr| unicode:: U+1D4C6 .. MATHEMATICAL SCRIPT SMALL Q
.. |Rscr| unicode:: U+0211B .. SCRIPT CAPITAL R
.. |rscr| unicode:: U+1D4C7 .. MATHEMATICAL SCRIPT SMALL R
.. |Sscr| unicode:: U+1D4AE .. MATHEMATICAL SCRIPT CAPITAL S
.. |sscr| unicode:: U+1D4C8 .. MATHEMATICAL SCRIPT SMALL S
.. |Tscr| unicode:: U+1D4AF .. MATHEMATICAL SCRIPT CAPITAL T
.. |tscr| unicode:: U+1D4C9 .. MATHEMATICAL SCRIPT SMALL T
.. |Uscr| unicode:: U+1D4B0 .. MATHEMATICAL SCRIPT CAPITAL U
.. |uscr| unicode:: U+1D4CA .. MATHEMATICAL SCRIPT SMALL U
.. |Vscr| unicode:: U+1D4B1 .. MATHEMATICAL SCRIPT CAPITAL V
.. |vscr| unicode:: U+1D4CB .. MATHEMATICAL SCRIPT SMALL V
.. |Wscr| unicode:: U+1D4B2 .. MATHEMATICAL SCRIPT CAPITAL W
.. |wscr| unicode:: U+1D4CC .. MATHEMATICAL SCRIPT SMALL W
.. |Xscr| unicode:: U+1D4B3 .. MATHEMATICAL SCRIPT CAPITAL X
.. |xscr| unicode:: U+1D4CD .. MATHEMATICAL SCRIPT SMALL X
.. |Yscr| unicode:: U+1D4B4 .. MATHEMATICAL SCRIPT CAPITAL Y
.. |yscr| unicode:: U+1D4CE .. MATHEMATICAL SCRIPT SMALL Y
.. |Zscr| unicode:: U+1D4B5 .. MATHEMATICAL SCRIPT CAPITAL Z
.. |zscr| unicode:: U+1D4CF .. MATHEMATICAL SCRIPT SMALL Z

View file

@ -0,0 +1,17 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |Bscr| unicode:: U+0212C .. SCRIPT CAPITAL B
.. |Escr| unicode:: U+02130 .. SCRIPT CAPITAL E
.. |escr| unicode:: U+0212F .. SCRIPT SMALL E
.. |Fscr| unicode:: U+02131 .. SCRIPT CAPITAL F
.. |gscr| unicode:: U+0210A .. SCRIPT SMALL G
.. |Hscr| unicode:: U+0210B .. SCRIPT CAPITAL H
.. |Iscr| unicode:: U+02110 .. SCRIPT CAPITAL I
.. |Lscr| unicode:: U+02112 .. SCRIPT CAPITAL L
.. |Mscr| unicode:: U+02133 .. SCRIPT CAPITAL M
.. |oscr| unicode:: U+02134 .. SCRIPT SMALL O
.. |Rscr| unicode:: U+0211B .. SCRIPT CAPITAL R

View file

@ -0,0 +1,82 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |amp| unicode:: U+00026 .. AMPERSAND
.. |apos| unicode:: U+00027 .. APOSTROPHE
.. |ast| unicode:: U+0002A .. ASTERISK
.. |brvbar| unicode:: U+000A6 .. BROKEN BAR
.. |bsol| unicode:: U+0005C .. REVERSE SOLIDUS
.. |cent| unicode:: U+000A2 .. CENT SIGN
.. |colon| unicode:: U+0003A .. COLON
.. |comma| unicode:: U+0002C .. COMMA
.. |commat| unicode:: U+00040 .. COMMERCIAL AT
.. |copy| unicode:: U+000A9 .. COPYRIGHT SIGN
.. |curren| unicode:: U+000A4 .. CURRENCY SIGN
.. |darr| unicode:: U+02193 .. DOWNWARDS ARROW
.. |deg| unicode:: U+000B0 .. DEGREE SIGN
.. |divide| unicode:: U+000F7 .. DIVISION SIGN
.. |dollar| unicode:: U+00024 .. DOLLAR SIGN
.. |equals| unicode:: U+0003D .. EQUALS SIGN
.. |excl| unicode:: U+00021 .. EXCLAMATION MARK
.. |frac12| unicode:: U+000BD .. VULGAR FRACTION ONE HALF
.. |frac14| unicode:: U+000BC .. VULGAR FRACTION ONE QUARTER
.. |frac18| unicode:: U+0215B .. VULGAR FRACTION ONE EIGHTH
.. |frac34| unicode:: U+000BE .. VULGAR FRACTION THREE QUARTERS
.. |frac38| unicode:: U+0215C .. VULGAR FRACTION THREE EIGHTHS
.. |frac58| unicode:: U+0215D .. VULGAR FRACTION FIVE EIGHTHS
.. |frac78| unicode:: U+0215E .. VULGAR FRACTION SEVEN EIGHTHS
.. |gt| unicode:: U+0003E .. GREATER-THAN SIGN
.. |half| unicode:: U+000BD .. VULGAR FRACTION ONE HALF
.. |horbar| unicode:: U+02015 .. HORIZONTAL BAR
.. |hyphen| unicode:: U+02010 .. HYPHEN
.. |iexcl| unicode:: U+000A1 .. INVERTED EXCLAMATION MARK
.. |iquest| unicode:: U+000BF .. INVERTED QUESTION MARK
.. |laquo| unicode:: U+000AB .. LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
.. |larr| unicode:: U+02190 .. LEFTWARDS ARROW
.. |lcub| unicode:: U+0007B .. LEFT CURLY BRACKET
.. |ldquo| unicode:: U+0201C .. LEFT DOUBLE QUOTATION MARK
.. |lowbar| unicode:: U+0005F .. LOW LINE
.. |lpar| unicode:: U+00028 .. LEFT PARENTHESIS
.. |lsqb| unicode:: U+0005B .. LEFT SQUARE BRACKET
.. |lsquo| unicode:: U+02018 .. LEFT SINGLE QUOTATION MARK
.. |lt| unicode:: U+0003C .. LESS-THAN SIGN
.. |micro| unicode:: U+000B5 .. MICRO SIGN
.. |middot| unicode:: U+000B7 .. MIDDLE DOT
.. |nbsp| unicode:: U+000A0 .. NO-BREAK SPACE
.. |not| unicode:: U+000AC .. NOT SIGN
.. |num| unicode:: U+00023 .. NUMBER SIGN
.. |ohm| unicode:: U+02126 .. OHM SIGN
.. |ordf| unicode:: U+000AA .. FEMININE ORDINAL INDICATOR
.. |ordm| unicode:: U+000BA .. MASCULINE ORDINAL INDICATOR
.. |para| unicode:: U+000B6 .. PILCROW SIGN
.. |percnt| unicode:: U+00025 .. PERCENT SIGN
.. |period| unicode:: U+0002E .. FULL STOP
.. |plus| unicode:: U+0002B .. PLUS SIGN
.. |plusmn| unicode:: U+000B1 .. PLUS-MINUS SIGN
.. |pound| unicode:: U+000A3 .. POUND SIGN
.. |quest| unicode:: U+0003F .. QUESTION MARK
.. |quot| unicode:: U+00022 .. QUOTATION MARK
.. |raquo| unicode:: U+000BB .. RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
.. |rarr| unicode:: U+02192 .. RIGHTWARDS ARROW
.. |rcub| unicode:: U+0007D .. RIGHT CURLY BRACKET
.. |rdquo| unicode:: U+0201D .. RIGHT DOUBLE QUOTATION MARK
.. |reg| unicode:: U+000AE .. REGISTERED SIGN
.. |rpar| unicode:: U+00029 .. RIGHT PARENTHESIS
.. |rsqb| unicode:: U+0005D .. RIGHT SQUARE BRACKET
.. |rsquo| unicode:: U+02019 .. RIGHT SINGLE QUOTATION MARK
.. |sect| unicode:: U+000A7 .. SECTION SIGN
.. |semi| unicode:: U+0003B .. SEMICOLON
.. |shy| unicode:: U+000AD .. SOFT HYPHEN
.. |sol| unicode:: U+0002F .. SOLIDUS
.. |sung| unicode:: U+0266A .. EIGHTH NOTE
.. |sup1| unicode:: U+000B9 .. SUPERSCRIPT ONE
.. |sup2| unicode:: U+000B2 .. SUPERSCRIPT TWO
.. |sup3| unicode:: U+000B3 .. SUPERSCRIPT THREE
.. |times| unicode:: U+000D7 .. MULTIPLICATION SIGN
.. |trade| unicode:: U+02122 .. TRADE MARK SIGN
.. |uarr| unicode:: U+02191 .. UPWARDS ARROW
.. |verbar| unicode:: U+0007C .. VERTICAL LINE
.. |yen| unicode:: U+000A5 .. YEN SIGN

View file

@ -0,0 +1,90 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |blank| unicode:: U+02423 .. OPEN BOX
.. |blk12| unicode:: U+02592 .. MEDIUM SHADE
.. |blk14| unicode:: U+02591 .. LIGHT SHADE
.. |blk34| unicode:: U+02593 .. DARK SHADE
.. |block| unicode:: U+02588 .. FULL BLOCK
.. |bull| unicode:: U+02022 .. BULLET
.. |caret| unicode:: U+02041 .. CARET INSERTION POINT
.. |check| unicode:: U+02713 .. CHECK MARK
.. |cir| unicode:: U+025CB .. WHITE CIRCLE
.. |clubs| unicode:: U+02663 .. BLACK CLUB SUIT
.. |copysr| unicode:: U+02117 .. SOUND RECORDING COPYRIGHT
.. |cross| unicode:: U+02717 .. BALLOT X
.. |Dagger| unicode:: U+02021 .. DOUBLE DAGGER
.. |dagger| unicode:: U+02020 .. DAGGER
.. |dash| unicode:: U+02010 .. HYPHEN
.. |diams| unicode:: U+02666 .. BLACK DIAMOND SUIT
.. |dlcrop| unicode:: U+0230D .. BOTTOM LEFT CROP
.. |drcrop| unicode:: U+0230C .. BOTTOM RIGHT CROP
.. |dtri| unicode:: U+025BF .. WHITE DOWN-POINTING SMALL TRIANGLE
.. |dtrif| unicode:: U+025BE .. BLACK DOWN-POINTING SMALL TRIANGLE
.. |emsp| unicode:: U+02003 .. EM SPACE
.. |emsp13| unicode:: U+02004 .. THREE-PER-EM SPACE
.. |emsp14| unicode:: U+02005 .. FOUR-PER-EM SPACE
.. |ensp| unicode:: U+02002 .. EN SPACE
.. |female| unicode:: U+02640 .. FEMALE SIGN
.. |ffilig| unicode:: U+0FB03 .. LATIN SMALL LIGATURE FFI
.. |fflig| unicode:: U+0FB00 .. LATIN SMALL LIGATURE FF
.. |ffllig| unicode:: U+0FB04 .. LATIN SMALL LIGATURE FFL
.. |filig| unicode:: U+0FB01 .. LATIN SMALL LIGATURE FI
.. |flat| unicode:: U+0266D .. MUSIC FLAT SIGN
.. |fllig| unicode:: U+0FB02 .. LATIN SMALL LIGATURE FL
.. |frac13| unicode:: U+02153 .. VULGAR FRACTION ONE THIRD
.. |frac15| unicode:: U+02155 .. VULGAR FRACTION ONE FIFTH
.. |frac16| unicode:: U+02159 .. VULGAR FRACTION ONE SIXTH
.. |frac23| unicode:: U+02154 .. VULGAR FRACTION TWO THIRDS
.. |frac25| unicode:: U+02156 .. VULGAR FRACTION TWO FIFTHS
.. |frac35| unicode:: U+02157 .. VULGAR FRACTION THREE FIFTHS
.. |frac45| unicode:: U+02158 .. VULGAR FRACTION FOUR FIFTHS
.. |frac56| unicode:: U+0215A .. VULGAR FRACTION FIVE SIXTHS
.. |hairsp| unicode:: U+0200A .. HAIR SPACE
.. |hearts| unicode:: U+02665 .. BLACK HEART SUIT
.. |hellip| unicode:: U+02026 .. HORIZONTAL ELLIPSIS
.. |hybull| unicode:: U+02043 .. HYPHEN BULLET
.. |incare| unicode:: U+02105 .. CARE OF
.. |ldquor| unicode:: U+0201E .. DOUBLE LOW-9 QUOTATION MARK
.. |lhblk| unicode:: U+02584 .. LOWER HALF BLOCK
.. |loz| unicode:: U+025CA .. LOZENGE
.. |lozf| unicode:: U+029EB .. BLACK LOZENGE
.. |lsquor| unicode:: U+0201A .. SINGLE LOW-9 QUOTATION MARK
.. |ltri| unicode:: U+025C3 .. WHITE LEFT-POINTING SMALL TRIANGLE
.. |ltrif| unicode:: U+025C2 .. BLACK LEFT-POINTING SMALL TRIANGLE
.. |male| unicode:: U+02642 .. MALE SIGN
.. |malt| unicode:: U+02720 .. MALTESE CROSS
.. |marker| unicode:: U+025AE .. BLACK VERTICAL RECTANGLE
.. |mdash| unicode:: U+02014 .. EM DASH
.. |mldr| unicode:: U+02026 .. HORIZONTAL ELLIPSIS
.. |natur| unicode:: U+0266E .. MUSIC NATURAL SIGN
.. |ndash| unicode:: U+02013 .. EN DASH
.. |nldr| unicode:: U+02025 .. TWO DOT LEADER
.. |numsp| unicode:: U+02007 .. FIGURE SPACE
.. |phone| unicode:: U+0260E .. BLACK TELEPHONE
.. |puncsp| unicode:: U+02008 .. PUNCTUATION SPACE
.. |rdquor| unicode:: U+0201D .. RIGHT DOUBLE QUOTATION MARK
.. |rect| unicode:: U+025AD .. WHITE RECTANGLE
.. |rsquor| unicode:: U+02019 .. RIGHT SINGLE QUOTATION MARK
.. |rtri| unicode:: U+025B9 .. WHITE RIGHT-POINTING SMALL TRIANGLE
.. |rtrif| unicode:: U+025B8 .. BLACK RIGHT-POINTING SMALL TRIANGLE
.. |rx| unicode:: U+0211E .. PRESCRIPTION TAKE
.. |sext| unicode:: U+02736 .. SIX POINTED BLACK STAR
.. |sharp| unicode:: U+0266F .. MUSIC SHARP SIGN
.. |spades| unicode:: U+02660 .. BLACK SPADE SUIT
.. |squ| unicode:: U+025A1 .. WHITE SQUARE
.. |squf| unicode:: U+025AA .. BLACK SMALL SQUARE
.. |star| unicode:: U+02606 .. WHITE STAR
.. |starf| unicode:: U+02605 .. BLACK STAR
.. |target| unicode:: U+02316 .. POSITION INDICATOR
.. |telrec| unicode:: U+02315 .. TELEPHONE RECORDER
.. |thinsp| unicode:: U+02009 .. THIN SPACE
.. |uhblk| unicode:: U+02580 .. UPPER HALF BLOCK
.. |ulcrop| unicode:: U+0230F .. TOP LEFT CROP
.. |urcrop| unicode:: U+0230E .. TOP RIGHT CROP
.. |utri| unicode:: U+025B5 .. WHITE UP-POINTING SMALL TRIANGLE
.. |utrif| unicode:: U+025B4 .. BLACK UP-POINTING SMALL TRIANGLE
.. |vellip| unicode:: U+022EE .. VERTICAL ELLIPSIS

View file

@ -0,0 +1,168 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |acd| unicode:: U+0223F .. SINE WAVE
.. |aleph| unicode:: U+02135 .. ALEF SYMBOL
.. |And| unicode:: U+02A53 .. DOUBLE LOGICAL AND
.. |and| unicode:: U+02227 .. LOGICAL AND
.. |andand| unicode:: U+02A55 .. TWO INTERSECTING LOGICAL AND
.. |andd| unicode:: U+02A5C .. LOGICAL AND WITH HORIZONTAL DASH
.. |andslope| unicode:: U+02A58 .. SLOPING LARGE AND
.. |andv| unicode:: U+02A5A .. LOGICAL AND WITH MIDDLE STEM
.. |ang90| unicode:: U+0221F .. RIGHT ANGLE
.. |angrt| unicode:: U+0221F .. RIGHT ANGLE
.. |angsph| unicode:: U+02222 .. SPHERICAL ANGLE
.. |angst| unicode:: U+0212B .. ANGSTROM SIGN
.. |ap| unicode:: U+02248 .. ALMOST EQUAL TO
.. |apacir| unicode:: U+02A6F .. ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT
.. |awconint| unicode:: U+02233 .. ANTICLOCKWISE CONTOUR INTEGRAL
.. |awint| unicode:: U+02A11 .. ANTICLOCKWISE INTEGRATION
.. |becaus| unicode:: U+02235 .. BECAUSE
.. |bernou| unicode:: U+0212C .. SCRIPT CAPITAL B
.. |bne| unicode:: U+0003D U+020E5 .. EQUALS SIGN with reverse slash
.. |bnequiv| unicode:: U+02261 U+020E5 .. IDENTICAL TO with reverse slash
.. |bNot| unicode:: U+02AED .. REVERSED DOUBLE STROKE NOT SIGN
.. |bnot| unicode:: U+02310 .. REVERSED NOT SIGN
.. |bottom| unicode:: U+022A5 .. UP TACK
.. |cap| unicode:: U+02229 .. INTERSECTION
.. |Cconint| unicode:: U+02230 .. VOLUME INTEGRAL
.. |cirfnint| unicode:: U+02A10 .. CIRCULATION FUNCTION
.. |compfn| unicode:: U+02218 .. RING OPERATOR
.. |cong| unicode:: U+02245 .. APPROXIMATELY EQUAL TO
.. |Conint| unicode:: U+0222F .. SURFACE INTEGRAL
.. |conint| unicode:: U+0222E .. CONTOUR INTEGRAL
.. |ctdot| unicode:: U+022EF .. MIDLINE HORIZONTAL ELLIPSIS
.. |cup| unicode:: U+0222A .. UNION
.. |cwconint| unicode:: U+02232 .. CLOCKWISE CONTOUR INTEGRAL
.. |cwint| unicode:: U+02231 .. CLOCKWISE INTEGRAL
.. |cylcty| unicode:: U+0232D .. CYLINDRICITY
.. |disin| unicode:: U+022F2 .. ELEMENT OF WITH LONG HORIZONTAL STROKE
.. |Dot| unicode:: U+000A8 .. DIAERESIS
.. |DotDot| unicode:: U+020DC .. COMBINING FOUR DOTS ABOVE
.. |dsol| unicode:: U+029F6 .. SOLIDUS WITH OVERBAR
.. |dtdot| unicode:: U+022F1 .. DOWN RIGHT DIAGONAL ELLIPSIS
.. |dwangle| unicode:: U+029A6 .. OBLIQUE ANGLE OPENING UP
.. |elinters| unicode:: U+0FFFD .. REPLACEMENT CHARACTER
.. |epar| unicode:: U+022D5 .. EQUAL AND PARALLEL TO
.. |eparsl| unicode:: U+029E3 .. EQUALS SIGN AND SLANTED PARALLEL
.. |equiv| unicode:: U+02261 .. IDENTICAL TO
.. |eqvparsl| unicode:: U+029E5 .. IDENTICAL TO AND SLANTED PARALLEL
.. |exist| unicode:: U+02203 .. THERE EXISTS
.. |fltns| unicode:: U+025B1 .. WHITE PARALLELOGRAM
.. |fnof| unicode:: U+00192 .. LATIN SMALL LETTER F WITH HOOK
.. |forall| unicode:: U+02200 .. FOR ALL
.. |fpartint| unicode:: U+02A0D .. FINITE PART INTEGRAL
.. |ge| unicode:: U+02265 .. GREATER-THAN OR EQUAL TO
.. |hamilt| unicode:: U+0210B .. SCRIPT CAPITAL H
.. |iff| unicode:: U+021D4 .. LEFT RIGHT DOUBLE ARROW
.. |iinfin| unicode:: U+029DC .. INCOMPLETE INFINITY
.. |imped| unicode:: U+001B5 .. LATIN CAPITAL LETTER Z WITH STROKE
.. |infin| unicode:: U+0221E .. INFINITY
.. |infintie| unicode:: U+029DD .. TIE OVER INFINITY
.. |Int| unicode:: U+0222C .. DOUBLE INTEGRAL
.. |int| unicode:: U+0222B .. INTEGRAL
.. |intlarhk| unicode:: U+02A17 .. INTEGRAL WITH LEFTWARDS ARROW WITH HOOK
.. |isin| unicode:: U+02208 .. ELEMENT OF
.. |isindot| unicode:: U+022F5 .. ELEMENT OF WITH DOT ABOVE
.. |isinE| unicode:: U+022F9 .. ELEMENT OF WITH TWO HORIZONTAL STROKES
.. |isins| unicode:: U+022F4 .. SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
.. |isinsv| unicode:: U+022F3 .. ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
.. |isinv| unicode:: U+02208 .. ELEMENT OF
.. |lagran| unicode:: U+02112 .. SCRIPT CAPITAL L
.. |Lang| unicode:: U+0300A .. LEFT DOUBLE ANGLE BRACKET
.. |lang| unicode:: U+02329 .. LEFT-POINTING ANGLE BRACKET
.. |lArr| unicode:: U+021D0 .. LEFTWARDS DOUBLE ARROW
.. |lbbrk| unicode:: U+03014 .. LEFT TORTOISE SHELL BRACKET
.. |le| unicode:: U+02264 .. LESS-THAN OR EQUAL TO
.. |loang| unicode:: U+03018 .. LEFT WHITE TORTOISE SHELL BRACKET
.. |lobrk| unicode:: U+0301A .. LEFT WHITE SQUARE BRACKET
.. |lopar| unicode:: U+02985 .. LEFT WHITE PARENTHESIS
.. |lowast| unicode:: U+02217 .. ASTERISK OPERATOR
.. |minus| unicode:: U+02212 .. MINUS SIGN
.. |mnplus| unicode:: U+02213 .. MINUS-OR-PLUS SIGN
.. |nabla| unicode:: U+02207 .. NABLA
.. |ne| unicode:: U+02260 .. NOT EQUAL TO
.. |nedot| unicode:: U+02250 U+00338 .. APPROACHES THE LIMIT with slash
.. |nhpar| unicode:: U+02AF2 .. PARALLEL WITH HORIZONTAL STROKE
.. |ni| unicode:: U+0220B .. CONTAINS AS MEMBER
.. |nis| unicode:: U+022FC .. SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
.. |nisd| unicode:: U+022FA .. CONTAINS WITH LONG HORIZONTAL STROKE
.. |niv| unicode:: U+0220B .. CONTAINS AS MEMBER
.. |Not| unicode:: U+02AEC .. DOUBLE STROKE NOT SIGN
.. |notin| unicode:: U+02209 .. NOT AN ELEMENT OF
.. |notindot| unicode:: U+022F5 U+00338 .. ELEMENT OF WITH DOT ABOVE with slash
.. |notinE| unicode:: U+022F9 U+00338 .. ELEMENT OF WITH TWO HORIZONTAL STROKES with slash
.. |notinva| unicode:: U+02209 .. NOT AN ELEMENT OF
.. |notinvb| unicode:: U+022F7 .. SMALL ELEMENT OF WITH OVERBAR
.. |notinvc| unicode:: U+022F6 .. ELEMENT OF WITH OVERBAR
.. |notni| unicode:: U+0220C .. DOES NOT CONTAIN AS MEMBER
.. |notniva| unicode:: U+0220C .. DOES NOT CONTAIN AS MEMBER
.. |notnivb| unicode:: U+022FE .. SMALL CONTAINS WITH OVERBAR
.. |notnivc| unicode:: U+022FD .. CONTAINS WITH OVERBAR
.. |nparsl| unicode:: U+02AFD U+020E5 .. DOUBLE SOLIDUS OPERATOR with reverse slash
.. |npart| unicode:: U+02202 U+00338 .. PARTIAL DIFFERENTIAL with slash
.. |npolint| unicode:: U+02A14 .. LINE INTEGRATION NOT INCLUDING THE POLE
.. |nvinfin| unicode:: U+029DE .. INFINITY NEGATED WITH VERTICAL BAR
.. |olcross| unicode:: U+029BB .. CIRCLE WITH SUPERIMPOSED X
.. |Or| unicode:: U+02A54 .. DOUBLE LOGICAL OR
.. |or| unicode:: U+02228 .. LOGICAL OR
.. |ord| unicode:: U+02A5D .. LOGICAL OR WITH HORIZONTAL DASH
.. |order| unicode:: U+02134 .. SCRIPT SMALL O
.. |oror| unicode:: U+02A56 .. TWO INTERSECTING LOGICAL OR
.. |orslope| unicode:: U+02A57 .. SLOPING LARGE OR
.. |orv| unicode:: U+02A5B .. LOGICAL OR WITH MIDDLE STEM
.. |par| unicode:: U+02225 .. PARALLEL TO
.. |parsl| unicode:: U+02AFD .. DOUBLE SOLIDUS OPERATOR
.. |part| unicode:: U+02202 .. PARTIAL DIFFERENTIAL
.. |permil| unicode:: U+02030 .. PER MILLE SIGN
.. |perp| unicode:: U+022A5 .. UP TACK
.. |pertenk| unicode:: U+02031 .. PER TEN THOUSAND SIGN
.. |phmmat| unicode:: U+02133 .. SCRIPT CAPITAL M
.. |pointint| unicode:: U+02A15 .. INTEGRAL AROUND A POINT OPERATOR
.. |Prime| unicode:: U+02033 .. DOUBLE PRIME
.. |prime| unicode:: U+02032 .. PRIME
.. |profalar| unicode:: U+0232E .. ALL AROUND-PROFILE
.. |profline| unicode:: U+02312 .. ARC
.. |profsurf| unicode:: U+02313 .. SEGMENT
.. |prop| unicode:: U+0221D .. PROPORTIONAL TO
.. |qint| unicode:: U+02A0C .. QUADRUPLE INTEGRAL OPERATOR
.. |qprime| unicode:: U+02057 .. QUADRUPLE PRIME
.. |quatint| unicode:: U+02A16 .. QUATERNION INTEGRAL OPERATOR
.. |radic| unicode:: U+0221A .. SQUARE ROOT
.. |Rang| unicode:: U+0300B .. RIGHT DOUBLE ANGLE BRACKET
.. |rang| unicode:: U+0232A .. RIGHT-POINTING ANGLE BRACKET
.. |rArr| unicode:: U+021D2 .. RIGHTWARDS DOUBLE ARROW
.. |rbbrk| unicode:: U+03015 .. RIGHT TORTOISE SHELL BRACKET
.. |roang| unicode:: U+03019 .. RIGHT WHITE TORTOISE SHELL BRACKET
.. |robrk| unicode:: U+0301B .. RIGHT WHITE SQUARE BRACKET
.. |ropar| unicode:: U+02986 .. RIGHT WHITE PARENTHESIS
.. |rppolint| unicode:: U+02A12 .. LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE
.. |scpolint| unicode:: U+02A13 .. LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE
.. |sim| unicode:: U+0223C .. TILDE OPERATOR
.. |simdot| unicode:: U+02A6A .. TILDE OPERATOR WITH DOT ABOVE
.. |sime| unicode:: U+02243 .. ASYMPTOTICALLY EQUAL TO
.. |smeparsl| unicode:: U+029E4 .. EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE
.. |square| unicode:: U+025A1 .. WHITE SQUARE
.. |squarf| unicode:: U+025AA .. BLACK SMALL SQUARE
.. |strns| unicode:: U+000AF .. MACRON
.. |sub| unicode:: U+02282 .. SUBSET OF
.. |sube| unicode:: U+02286 .. SUBSET OF OR EQUAL TO
.. |sup| unicode:: U+02283 .. SUPERSET OF
.. |supe| unicode:: U+02287 .. SUPERSET OF OR EQUAL TO
.. |tdot| unicode:: U+020DB .. COMBINING THREE DOTS ABOVE
.. |there4| unicode:: U+02234 .. THEREFORE
.. |tint| unicode:: U+0222D .. TRIPLE INTEGRAL
.. |top| unicode:: U+022A4 .. DOWN TACK
.. |topbot| unicode:: U+02336 .. APL FUNCTIONAL SYMBOL I-BEAM
.. |topcir| unicode:: U+02AF1 .. DOWN TACK WITH CIRCLE BELOW
.. |tprime| unicode:: U+02034 .. TRIPLE PRIME
.. |utdot| unicode:: U+022F0 .. UP RIGHT DIAGONAL ELLIPSIS
.. |uwangle| unicode:: U+029A7 .. OBLIQUE ANGLE OPENING DOWN
.. |vangrt| unicode:: U+0299C .. RIGHT ANGLE VARIANT WITH SQUARE
.. |veeeq| unicode:: U+0225A .. EQUIANGULAR TO
.. |Verbar| unicode:: U+02016 .. DOUBLE VERTICAL LINE
.. |wedgeq| unicode:: U+02259 .. ESTIMATES
.. |xnis| unicode:: U+022FB .. CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE

View file

@ -0,0 +1,554 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |angle| unicode:: U+02220 .. ANGLE
.. |ApplyFunction| unicode:: U+02061 .. FUNCTION APPLICATION
.. |approx| unicode:: U+02248 .. ALMOST EQUAL TO
.. |approxeq| unicode:: U+0224A .. ALMOST EQUAL OR EQUAL TO
.. |Assign| unicode:: U+02254 .. COLON EQUALS
.. |backcong| unicode:: U+0224C .. ALL EQUAL TO
.. |backepsilon| unicode:: U+003F6 .. GREEK REVERSED LUNATE EPSILON SYMBOL
.. |backprime| unicode:: U+02035 .. REVERSED PRIME
.. |backsim| unicode:: U+0223D .. REVERSED TILDE
.. |backsimeq| unicode:: U+022CD .. REVERSED TILDE EQUALS
.. |Backslash| unicode:: U+02216 .. SET MINUS
.. |barwedge| unicode:: U+02305 .. PROJECTIVE
.. |Because| unicode:: U+02235 .. BECAUSE
.. |because| unicode:: U+02235 .. BECAUSE
.. |Bernoullis| unicode:: U+0212C .. SCRIPT CAPITAL B
.. |between| unicode:: U+0226C .. BETWEEN
.. |bigcap| unicode:: U+022C2 .. N-ARY INTERSECTION
.. |bigcirc| unicode:: U+025EF .. LARGE CIRCLE
.. |bigcup| unicode:: U+022C3 .. N-ARY UNION
.. |bigodot| unicode:: U+02A00 .. N-ARY CIRCLED DOT OPERATOR
.. |bigoplus| unicode:: U+02A01 .. N-ARY CIRCLED PLUS OPERATOR
.. |bigotimes| unicode:: U+02A02 .. N-ARY CIRCLED TIMES OPERATOR
.. |bigsqcup| unicode:: U+02A06 .. N-ARY SQUARE UNION OPERATOR
.. |bigstar| unicode:: U+02605 .. BLACK STAR
.. |bigtriangledown| unicode:: U+025BD .. WHITE DOWN-POINTING TRIANGLE
.. |bigtriangleup| unicode:: U+025B3 .. WHITE UP-POINTING TRIANGLE
.. |biguplus| unicode:: U+02A04 .. N-ARY UNION OPERATOR WITH PLUS
.. |bigvee| unicode:: U+022C1 .. N-ARY LOGICAL OR
.. |bigwedge| unicode:: U+022C0 .. N-ARY LOGICAL AND
.. |bkarow| unicode:: U+0290D .. RIGHTWARDS DOUBLE DASH ARROW
.. |blacklozenge| unicode:: U+029EB .. BLACK LOZENGE
.. |blacksquare| unicode:: U+025AA .. BLACK SMALL SQUARE
.. |blacktriangle| unicode:: U+025B4 .. BLACK UP-POINTING SMALL TRIANGLE
.. |blacktriangledown| unicode:: U+025BE .. BLACK DOWN-POINTING SMALL TRIANGLE
.. |blacktriangleleft| unicode:: U+025C2 .. BLACK LEFT-POINTING SMALL TRIANGLE
.. |blacktriangleright| unicode:: U+025B8 .. BLACK RIGHT-POINTING SMALL TRIANGLE
.. |bot| unicode:: U+022A5 .. UP TACK
.. |boxminus| unicode:: U+0229F .. SQUARED MINUS
.. |boxplus| unicode:: U+0229E .. SQUARED PLUS
.. |boxtimes| unicode:: U+022A0 .. SQUARED TIMES
.. |Breve| unicode:: U+002D8 .. BREVE
.. |bullet| unicode:: U+02022 .. BULLET
.. |Bumpeq| unicode:: U+0224E .. GEOMETRICALLY EQUIVALENT TO
.. |bumpeq| unicode:: U+0224F .. DIFFERENCE BETWEEN
.. |CapitalDifferentialD| unicode:: U+02145 .. DOUBLE-STRUCK ITALIC CAPITAL D
.. |Cayleys| unicode:: U+0212D .. BLACK-LETTER CAPITAL C
.. |Cedilla| unicode:: U+000B8 .. CEDILLA
.. |CenterDot| unicode:: U+000B7 .. MIDDLE DOT
.. |centerdot| unicode:: U+000B7 .. MIDDLE DOT
.. |checkmark| unicode:: U+02713 .. CHECK MARK
.. |circeq| unicode:: U+02257 .. RING EQUAL TO
.. |circlearrowleft| unicode:: U+021BA .. ANTICLOCKWISE OPEN CIRCLE ARROW
.. |circlearrowright| unicode:: U+021BB .. CLOCKWISE OPEN CIRCLE ARROW
.. |circledast| unicode:: U+0229B .. CIRCLED ASTERISK OPERATOR
.. |circledcirc| unicode:: U+0229A .. CIRCLED RING OPERATOR
.. |circleddash| unicode:: U+0229D .. CIRCLED DASH
.. |CircleDot| unicode:: U+02299 .. CIRCLED DOT OPERATOR
.. |circledR| unicode:: U+000AE .. REGISTERED SIGN
.. |circledS| unicode:: U+024C8 .. CIRCLED LATIN CAPITAL LETTER S
.. |CircleMinus| unicode:: U+02296 .. CIRCLED MINUS
.. |CirclePlus| unicode:: U+02295 .. CIRCLED PLUS
.. |CircleTimes| unicode:: U+02297 .. CIRCLED TIMES
.. |ClockwiseContourIntegral| unicode:: U+02232 .. CLOCKWISE CONTOUR INTEGRAL
.. |CloseCurlyDoubleQuote| unicode:: U+0201D .. RIGHT DOUBLE QUOTATION MARK
.. |CloseCurlyQuote| unicode:: U+02019 .. RIGHT SINGLE QUOTATION MARK
.. |clubsuit| unicode:: U+02663 .. BLACK CLUB SUIT
.. |coloneq| unicode:: U+02254 .. COLON EQUALS
.. |complement| unicode:: U+02201 .. COMPLEMENT
.. |complexes| unicode:: U+02102 .. DOUBLE-STRUCK CAPITAL C
.. |Congruent| unicode:: U+02261 .. IDENTICAL TO
.. |ContourIntegral| unicode:: U+0222E .. CONTOUR INTEGRAL
.. |Coproduct| unicode:: U+02210 .. N-ARY COPRODUCT
.. |CounterClockwiseContourIntegral| unicode:: U+02233 .. ANTICLOCKWISE CONTOUR INTEGRAL
.. |CupCap| unicode:: U+0224D .. EQUIVALENT TO
.. |curlyeqprec| unicode:: U+022DE .. EQUAL TO OR PRECEDES
.. |curlyeqsucc| unicode:: U+022DF .. EQUAL TO OR SUCCEEDS
.. |curlyvee| unicode:: U+022CE .. CURLY LOGICAL OR
.. |curlywedge| unicode:: U+022CF .. CURLY LOGICAL AND
.. |curvearrowleft| unicode:: U+021B6 .. ANTICLOCKWISE TOP SEMICIRCLE ARROW
.. |curvearrowright| unicode:: U+021B7 .. CLOCKWISE TOP SEMICIRCLE ARROW
.. |dbkarow| unicode:: U+0290F .. RIGHTWARDS TRIPLE DASH ARROW
.. |ddagger| unicode:: U+02021 .. DOUBLE DAGGER
.. |ddotseq| unicode:: U+02A77 .. EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW
.. |Del| unicode:: U+02207 .. NABLA
.. |DiacriticalAcute| unicode:: U+000B4 .. ACUTE ACCENT
.. |DiacriticalDot| unicode:: U+002D9 .. DOT ABOVE
.. |DiacriticalDoubleAcute| unicode:: U+002DD .. DOUBLE ACUTE ACCENT
.. |DiacriticalGrave| unicode:: U+00060 .. GRAVE ACCENT
.. |DiacriticalTilde| unicode:: U+002DC .. SMALL TILDE
.. |Diamond| unicode:: U+022C4 .. DIAMOND OPERATOR
.. |diamond| unicode:: U+022C4 .. DIAMOND OPERATOR
.. |diamondsuit| unicode:: U+02666 .. BLACK DIAMOND SUIT
.. |DifferentialD| unicode:: U+02146 .. DOUBLE-STRUCK ITALIC SMALL D
.. |digamma| unicode:: U+003DD .. GREEK SMALL LETTER DIGAMMA
.. |div| unicode:: U+000F7 .. DIVISION SIGN
.. |divideontimes| unicode:: U+022C7 .. DIVISION TIMES
.. |doteq| unicode:: U+02250 .. APPROACHES THE LIMIT
.. |doteqdot| unicode:: U+02251 .. GEOMETRICALLY EQUAL TO
.. |DotEqual| unicode:: U+02250 .. APPROACHES THE LIMIT
.. |dotminus| unicode:: U+02238 .. DOT MINUS
.. |dotplus| unicode:: U+02214 .. DOT PLUS
.. |dotsquare| unicode:: U+022A1 .. SQUARED DOT OPERATOR
.. |doublebarwedge| unicode:: U+02306 .. PERSPECTIVE
.. |DoubleContourIntegral| unicode:: U+0222F .. SURFACE INTEGRAL
.. |DoubleDot| unicode:: U+000A8 .. DIAERESIS
.. |DoubleDownArrow| unicode:: U+021D3 .. DOWNWARDS DOUBLE ARROW
.. |DoubleLeftArrow| unicode:: U+021D0 .. LEFTWARDS DOUBLE ARROW
.. |DoubleLeftRightArrow| unicode:: U+021D4 .. LEFT RIGHT DOUBLE ARROW
.. |DoubleLeftTee| unicode:: U+02AE4 .. VERTICAL BAR DOUBLE LEFT TURNSTILE
.. |DoubleLongLeftArrow| unicode:: U+027F8 .. LONG LEFTWARDS DOUBLE ARROW
.. |DoubleLongLeftRightArrow| unicode:: U+027FA .. LONG LEFT RIGHT DOUBLE ARROW
.. |DoubleLongRightArrow| unicode:: U+027F9 .. LONG RIGHTWARDS DOUBLE ARROW
.. |DoubleRightArrow| unicode:: U+021D2 .. RIGHTWARDS DOUBLE ARROW
.. |DoubleRightTee| unicode:: U+022A8 .. TRUE
.. |DoubleUpArrow| unicode:: U+021D1 .. UPWARDS DOUBLE ARROW
.. |DoubleUpDownArrow| unicode:: U+021D5 .. UP DOWN DOUBLE ARROW
.. |DoubleVerticalBar| unicode:: U+02225 .. PARALLEL TO
.. |DownArrow| unicode:: U+02193 .. DOWNWARDS ARROW
.. |Downarrow| unicode:: U+021D3 .. DOWNWARDS DOUBLE ARROW
.. |downarrow| unicode:: U+02193 .. DOWNWARDS ARROW
.. |DownArrowUpArrow| unicode:: U+021F5 .. DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW
.. |downdownarrows| unicode:: U+021CA .. DOWNWARDS PAIRED ARROWS
.. |downharpoonleft| unicode:: U+021C3 .. DOWNWARDS HARPOON WITH BARB LEFTWARDS
.. |downharpoonright| unicode:: U+021C2 .. DOWNWARDS HARPOON WITH BARB RIGHTWARDS
.. |DownLeftVector| unicode:: U+021BD .. LEFTWARDS HARPOON WITH BARB DOWNWARDS
.. |DownRightVector| unicode:: U+021C1 .. RIGHTWARDS HARPOON WITH BARB DOWNWARDS
.. |DownTee| unicode:: U+022A4 .. DOWN TACK
.. |DownTeeArrow| unicode:: U+021A7 .. DOWNWARDS ARROW FROM BAR
.. |drbkarow| unicode:: U+02910 .. RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW
.. |Element| unicode:: U+02208 .. ELEMENT OF
.. |emptyset| unicode:: U+02205 .. EMPTY SET
.. |eqcirc| unicode:: U+02256 .. RING IN EQUAL TO
.. |eqcolon| unicode:: U+02255 .. EQUALS COLON
.. |eqsim| unicode:: U+02242 .. MINUS TILDE
.. |eqslantgtr| unicode:: U+02A96 .. SLANTED EQUAL TO OR GREATER-THAN
.. |eqslantless| unicode:: U+02A95 .. SLANTED EQUAL TO OR LESS-THAN
.. |EqualTilde| unicode:: U+02242 .. MINUS TILDE
.. |Equilibrium| unicode:: U+021CC .. RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
.. |Exists| unicode:: U+02203 .. THERE EXISTS
.. |expectation| unicode:: U+02130 .. SCRIPT CAPITAL E
.. |ExponentialE| unicode:: U+02147 .. DOUBLE-STRUCK ITALIC SMALL E
.. |exponentiale| unicode:: U+02147 .. DOUBLE-STRUCK ITALIC SMALL E
.. |fallingdotseq| unicode:: U+02252 .. APPROXIMATELY EQUAL TO OR THE IMAGE OF
.. |ForAll| unicode:: U+02200 .. FOR ALL
.. |Fouriertrf| unicode:: U+02131 .. SCRIPT CAPITAL F
.. |geq| unicode:: U+02265 .. GREATER-THAN OR EQUAL TO
.. |geqq| unicode:: U+02267 .. GREATER-THAN OVER EQUAL TO
.. |geqslant| unicode:: U+02A7E .. GREATER-THAN OR SLANTED EQUAL TO
.. |gg| unicode:: U+0226B .. MUCH GREATER-THAN
.. |ggg| unicode:: U+022D9 .. VERY MUCH GREATER-THAN
.. |gnapprox| unicode:: U+02A8A .. GREATER-THAN AND NOT APPROXIMATE
.. |gneq| unicode:: U+02A88 .. GREATER-THAN AND SINGLE-LINE NOT EQUAL TO
.. |gneqq| unicode:: U+02269 .. GREATER-THAN BUT NOT EQUAL TO
.. |GreaterEqual| unicode:: U+02265 .. GREATER-THAN OR EQUAL TO
.. |GreaterEqualLess| unicode:: U+022DB .. GREATER-THAN EQUAL TO OR LESS-THAN
.. |GreaterFullEqual| unicode:: U+02267 .. GREATER-THAN OVER EQUAL TO
.. |GreaterLess| unicode:: U+02277 .. GREATER-THAN OR LESS-THAN
.. |GreaterSlantEqual| unicode:: U+02A7E .. GREATER-THAN OR SLANTED EQUAL TO
.. |GreaterTilde| unicode:: U+02273 .. GREATER-THAN OR EQUIVALENT TO
.. |gtrapprox| unicode:: U+02A86 .. GREATER-THAN OR APPROXIMATE
.. |gtrdot| unicode:: U+022D7 .. GREATER-THAN WITH DOT
.. |gtreqless| unicode:: U+022DB .. GREATER-THAN EQUAL TO OR LESS-THAN
.. |gtreqqless| unicode:: U+02A8C .. GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN
.. |gtrless| unicode:: U+02277 .. GREATER-THAN OR LESS-THAN
.. |gtrsim| unicode:: U+02273 .. GREATER-THAN OR EQUIVALENT TO
.. |gvertneqq| unicode:: U+02269 U+0FE00 .. GREATER-THAN BUT NOT EQUAL TO - with vertical stroke
.. |Hacek| unicode:: U+002C7 .. CARON
.. |hbar| unicode:: U+0210F .. PLANCK CONSTANT OVER TWO PI
.. |heartsuit| unicode:: U+02665 .. BLACK HEART SUIT
.. |HilbertSpace| unicode:: U+0210B .. SCRIPT CAPITAL H
.. |hksearow| unicode:: U+02925 .. SOUTH EAST ARROW WITH HOOK
.. |hkswarow| unicode:: U+02926 .. SOUTH WEST ARROW WITH HOOK
.. |hookleftarrow| unicode:: U+021A9 .. LEFTWARDS ARROW WITH HOOK
.. |hookrightarrow| unicode:: U+021AA .. RIGHTWARDS ARROW WITH HOOK
.. |hslash| unicode:: U+0210F .. PLANCK CONSTANT OVER TWO PI
.. |HumpDownHump| unicode:: U+0224E .. GEOMETRICALLY EQUIVALENT TO
.. |HumpEqual| unicode:: U+0224F .. DIFFERENCE BETWEEN
.. |iiiint| unicode:: U+02A0C .. QUADRUPLE INTEGRAL OPERATOR
.. |iiint| unicode:: U+0222D .. TRIPLE INTEGRAL
.. |Im| unicode:: U+02111 .. BLACK-LETTER CAPITAL I
.. |ImaginaryI| unicode:: U+02148 .. DOUBLE-STRUCK ITALIC SMALL I
.. |imagline| unicode:: U+02110 .. SCRIPT CAPITAL I
.. |imagpart| unicode:: U+02111 .. BLACK-LETTER CAPITAL I
.. |Implies| unicode:: U+021D2 .. RIGHTWARDS DOUBLE ARROW
.. |in| unicode:: U+02208 .. ELEMENT OF
.. |integers| unicode:: U+02124 .. DOUBLE-STRUCK CAPITAL Z
.. |Integral| unicode:: U+0222B .. INTEGRAL
.. |intercal| unicode:: U+022BA .. INTERCALATE
.. |Intersection| unicode:: U+022C2 .. N-ARY INTERSECTION
.. |intprod| unicode:: U+02A3C .. INTERIOR PRODUCT
.. |InvisibleComma| unicode:: U+02063 .. INVISIBLE SEPARATOR
.. |InvisibleTimes| unicode:: U+02062 .. INVISIBLE TIMES
.. |langle| unicode:: U+02329 .. LEFT-POINTING ANGLE BRACKET
.. |Laplacetrf| unicode:: U+02112 .. SCRIPT CAPITAL L
.. |lbrace| unicode:: U+0007B .. LEFT CURLY BRACKET
.. |lbrack| unicode:: U+0005B .. LEFT SQUARE BRACKET
.. |LeftAngleBracket| unicode:: U+02329 .. LEFT-POINTING ANGLE BRACKET
.. |LeftArrow| unicode:: U+02190 .. LEFTWARDS ARROW
.. |Leftarrow| unicode:: U+021D0 .. LEFTWARDS DOUBLE ARROW
.. |leftarrow| unicode:: U+02190 .. LEFTWARDS ARROW
.. |LeftArrowBar| unicode:: U+021E4 .. LEFTWARDS ARROW TO BAR
.. |LeftArrowRightArrow| unicode:: U+021C6 .. LEFTWARDS ARROW OVER RIGHTWARDS ARROW
.. |leftarrowtail| unicode:: U+021A2 .. LEFTWARDS ARROW WITH TAIL
.. |LeftCeiling| unicode:: U+02308 .. LEFT CEILING
.. |LeftDoubleBracket| unicode:: U+0301A .. LEFT WHITE SQUARE BRACKET
.. |LeftDownVector| unicode:: U+021C3 .. DOWNWARDS HARPOON WITH BARB LEFTWARDS
.. |LeftFloor| unicode:: U+0230A .. LEFT FLOOR
.. |leftharpoondown| unicode:: U+021BD .. LEFTWARDS HARPOON WITH BARB DOWNWARDS
.. |leftharpoonup| unicode:: U+021BC .. LEFTWARDS HARPOON WITH BARB UPWARDS
.. |leftleftarrows| unicode:: U+021C7 .. LEFTWARDS PAIRED ARROWS
.. |LeftRightArrow| unicode:: U+02194 .. LEFT RIGHT ARROW
.. |Leftrightarrow| unicode:: U+021D4 .. LEFT RIGHT DOUBLE ARROW
.. |leftrightarrow| unicode:: U+02194 .. LEFT RIGHT ARROW
.. |leftrightarrows| unicode:: U+021C6 .. LEFTWARDS ARROW OVER RIGHTWARDS ARROW
.. |leftrightharpoons| unicode:: U+021CB .. LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
.. |leftrightsquigarrow| unicode:: U+021AD .. LEFT RIGHT WAVE ARROW
.. |LeftTee| unicode:: U+022A3 .. LEFT TACK
.. |LeftTeeArrow| unicode:: U+021A4 .. LEFTWARDS ARROW FROM BAR
.. |leftthreetimes| unicode:: U+022CB .. LEFT SEMIDIRECT PRODUCT
.. |LeftTriangle| unicode:: U+022B2 .. NORMAL SUBGROUP OF
.. |LeftTriangleEqual| unicode:: U+022B4 .. NORMAL SUBGROUP OF OR EQUAL TO
.. |LeftUpVector| unicode:: U+021BF .. UPWARDS HARPOON WITH BARB LEFTWARDS
.. |LeftVector| unicode:: U+021BC .. LEFTWARDS HARPOON WITH BARB UPWARDS
.. |leq| unicode:: U+02264 .. LESS-THAN OR EQUAL TO
.. |leqq| unicode:: U+02266 .. LESS-THAN OVER EQUAL TO
.. |leqslant| unicode:: U+02A7D .. LESS-THAN OR SLANTED EQUAL TO
.. |lessapprox| unicode:: U+02A85 .. LESS-THAN OR APPROXIMATE
.. |lessdot| unicode:: U+022D6 .. LESS-THAN WITH DOT
.. |lesseqgtr| unicode:: U+022DA .. LESS-THAN EQUAL TO OR GREATER-THAN
.. |lesseqqgtr| unicode:: U+02A8B .. LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN
.. |LessEqualGreater| unicode:: U+022DA .. LESS-THAN EQUAL TO OR GREATER-THAN
.. |LessFullEqual| unicode:: U+02266 .. LESS-THAN OVER EQUAL TO
.. |LessGreater| unicode:: U+02276 .. LESS-THAN OR GREATER-THAN
.. |lessgtr| unicode:: U+02276 .. LESS-THAN OR GREATER-THAN
.. |lesssim| unicode:: U+02272 .. LESS-THAN OR EQUIVALENT TO
.. |LessSlantEqual| unicode:: U+02A7D .. LESS-THAN OR SLANTED EQUAL TO
.. |LessTilde| unicode:: U+02272 .. LESS-THAN OR EQUIVALENT TO
.. |ll| unicode:: U+0226A .. MUCH LESS-THAN
.. |llcorner| unicode:: U+0231E .. BOTTOM LEFT CORNER
.. |Lleftarrow| unicode:: U+021DA .. LEFTWARDS TRIPLE ARROW
.. |lmoustache| unicode:: U+023B0 .. UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION
.. |lnapprox| unicode:: U+02A89 .. LESS-THAN AND NOT APPROXIMATE
.. |lneq| unicode:: U+02A87 .. LESS-THAN AND SINGLE-LINE NOT EQUAL TO
.. |lneqq| unicode:: U+02268 .. LESS-THAN BUT NOT EQUAL TO
.. |LongLeftArrow| unicode:: U+027F5 .. LONG LEFTWARDS ARROW
.. |Longleftarrow| unicode:: U+027F8 .. LONG LEFTWARDS DOUBLE ARROW
.. |longleftarrow| unicode:: U+027F5 .. LONG LEFTWARDS ARROW
.. |LongLeftRightArrow| unicode:: U+027F7 .. LONG LEFT RIGHT ARROW
.. |Longleftrightarrow| unicode:: U+027FA .. LONG LEFT RIGHT DOUBLE ARROW
.. |longleftrightarrow| unicode:: U+027F7 .. LONG LEFT RIGHT ARROW
.. |longmapsto| unicode:: U+027FC .. LONG RIGHTWARDS ARROW FROM BAR
.. |LongRightArrow| unicode:: U+027F6 .. LONG RIGHTWARDS ARROW
.. |Longrightarrow| unicode:: U+027F9 .. LONG RIGHTWARDS DOUBLE ARROW
.. |longrightarrow| unicode:: U+027F6 .. LONG RIGHTWARDS ARROW
.. |looparrowleft| unicode:: U+021AB .. LEFTWARDS ARROW WITH LOOP
.. |looparrowright| unicode:: U+021AC .. RIGHTWARDS ARROW WITH LOOP
.. |LowerLeftArrow| unicode:: U+02199 .. SOUTH WEST ARROW
.. |LowerRightArrow| unicode:: U+02198 .. SOUTH EAST ARROW
.. |lozenge| unicode:: U+025CA .. LOZENGE
.. |lrcorner| unicode:: U+0231F .. BOTTOM RIGHT CORNER
.. |Lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS
.. |lvertneqq| unicode:: U+02268 U+0FE00 .. LESS-THAN BUT NOT EQUAL TO - with vertical stroke
.. |maltese| unicode:: U+02720 .. MALTESE CROSS
.. |mapsto| unicode:: U+021A6 .. RIGHTWARDS ARROW FROM BAR
.. |measuredangle| unicode:: U+02221 .. MEASURED ANGLE
.. |Mellintrf| unicode:: U+02133 .. SCRIPT CAPITAL M
.. |MinusPlus| unicode:: U+02213 .. MINUS-OR-PLUS SIGN
.. |mp| unicode:: U+02213 .. MINUS-OR-PLUS SIGN
.. |multimap| unicode:: U+022B8 .. MULTIMAP
.. |napprox| unicode:: U+02249 .. NOT ALMOST EQUAL TO
.. |natural| unicode:: U+0266E .. MUSIC NATURAL SIGN
.. |naturals| unicode:: U+02115 .. DOUBLE-STRUCK CAPITAL N
.. |nearrow| unicode:: U+02197 .. NORTH EAST ARROW
.. |NegativeMediumSpace| unicode:: U+0200B .. ZERO WIDTH SPACE
.. |NegativeThickSpace| unicode:: U+0200B .. ZERO WIDTH SPACE
.. |NegativeThinSpace| unicode:: U+0200B .. ZERO WIDTH SPACE
.. |NegativeVeryThinSpace| unicode:: U+0200B .. ZERO WIDTH SPACE
.. |NestedGreaterGreater| unicode:: U+0226B .. MUCH GREATER-THAN
.. |NestedLessLess| unicode:: U+0226A .. MUCH LESS-THAN
.. |nexists| unicode:: U+02204 .. THERE DOES NOT EXIST
.. |ngeq| unicode:: U+02271 .. NEITHER GREATER-THAN NOR EQUAL TO
.. |ngeqq| unicode:: U+02267 U+00338 .. GREATER-THAN OVER EQUAL TO with slash
.. |ngeqslant| unicode:: U+02A7E U+00338 .. GREATER-THAN OR SLANTED EQUAL TO with slash
.. |ngtr| unicode:: U+0226F .. NOT GREATER-THAN
.. |nLeftarrow| unicode:: U+021CD .. LEFTWARDS DOUBLE ARROW WITH STROKE
.. |nleftarrow| unicode:: U+0219A .. LEFTWARDS ARROW WITH STROKE
.. |nLeftrightarrow| unicode:: U+021CE .. LEFT RIGHT DOUBLE ARROW WITH STROKE
.. |nleftrightarrow| unicode:: U+021AE .. LEFT RIGHT ARROW WITH STROKE
.. |nleq| unicode:: U+02270 .. NEITHER LESS-THAN NOR EQUAL TO
.. |nleqq| unicode:: U+02266 U+00338 .. LESS-THAN OVER EQUAL TO with slash
.. |nleqslant| unicode:: U+02A7D U+00338 .. LESS-THAN OR SLANTED EQUAL TO with slash
.. |nless| unicode:: U+0226E .. NOT LESS-THAN
.. |NonBreakingSpace| unicode:: U+000A0 .. NO-BREAK SPACE
.. |NotCongruent| unicode:: U+02262 .. NOT IDENTICAL TO
.. |NotDoubleVerticalBar| unicode:: U+02226 .. NOT PARALLEL TO
.. |NotElement| unicode:: U+02209 .. NOT AN ELEMENT OF
.. |NotEqual| unicode:: U+02260 .. NOT EQUAL TO
.. |NotEqualTilde| unicode:: U+02242 U+00338 .. MINUS TILDE with slash
.. |NotExists| unicode:: U+02204 .. THERE DOES NOT EXIST
.. |NotGreater| unicode:: U+0226F .. NOT GREATER-THAN
.. |NotGreaterEqual| unicode:: U+02271 .. NEITHER GREATER-THAN NOR EQUAL TO
.. |NotGreaterFullEqual| unicode:: U+02266 U+00338 .. LESS-THAN OVER EQUAL TO with slash
.. |NotGreaterGreater| unicode:: U+0226B U+00338 .. MUCH GREATER THAN with slash
.. |NotGreaterLess| unicode:: U+02279 .. NEITHER GREATER-THAN NOR LESS-THAN
.. |NotGreaterSlantEqual| unicode:: U+02A7E U+00338 .. GREATER-THAN OR SLANTED EQUAL TO with slash
.. |NotGreaterTilde| unicode:: U+02275 .. NEITHER GREATER-THAN NOR EQUIVALENT TO
.. |NotHumpDownHump| unicode:: U+0224E U+00338 .. GEOMETRICALLY EQUIVALENT TO with slash
.. |NotLeftTriangle| unicode:: U+022EA .. NOT NORMAL SUBGROUP OF
.. |NotLeftTriangleEqual| unicode:: U+022EC .. NOT NORMAL SUBGROUP OF OR EQUAL TO
.. |NotLess| unicode:: U+0226E .. NOT LESS-THAN
.. |NotLessEqual| unicode:: U+02270 .. NEITHER LESS-THAN NOR EQUAL TO
.. |NotLessGreater| unicode:: U+02278 .. NEITHER LESS-THAN NOR GREATER-THAN
.. |NotLessLess| unicode:: U+0226A U+00338 .. MUCH LESS THAN with slash
.. |NotLessSlantEqual| unicode:: U+02A7D U+00338 .. LESS-THAN OR SLANTED EQUAL TO with slash
.. |NotLessTilde| unicode:: U+02274 .. NEITHER LESS-THAN NOR EQUIVALENT TO
.. |NotPrecedes| unicode:: U+02280 .. DOES NOT PRECEDE
.. |NotPrecedesEqual| unicode:: U+02AAF U+00338 .. PRECEDES ABOVE SINGLE-LINE EQUALS SIGN with slash
.. |NotPrecedesSlantEqual| unicode:: U+022E0 .. DOES NOT PRECEDE OR EQUAL
.. |NotReverseElement| unicode:: U+0220C .. DOES NOT CONTAIN AS MEMBER
.. |NotRightTriangle| unicode:: U+022EB .. DOES NOT CONTAIN AS NORMAL SUBGROUP
.. |NotRightTriangleEqual| unicode:: U+022ED .. DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
.. |NotSquareSubsetEqual| unicode:: U+022E2 .. NOT SQUARE IMAGE OF OR EQUAL TO
.. |NotSquareSupersetEqual| unicode:: U+022E3 .. NOT SQUARE ORIGINAL OF OR EQUAL TO
.. |NotSubset| unicode:: U+02282 U+020D2 .. SUBSET OF with vertical line
.. |NotSubsetEqual| unicode:: U+02288 .. NEITHER A SUBSET OF NOR EQUAL TO
.. |NotSucceeds| unicode:: U+02281 .. DOES NOT SUCCEED
.. |NotSucceedsEqual| unicode:: U+02AB0 U+00338 .. SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN with slash
.. |NotSucceedsSlantEqual| unicode:: U+022E1 .. DOES NOT SUCCEED OR EQUAL
.. |NotSuperset| unicode:: U+02283 U+020D2 .. SUPERSET OF with vertical line
.. |NotSupersetEqual| unicode:: U+02289 .. NEITHER A SUPERSET OF NOR EQUAL TO
.. |NotTilde| unicode:: U+02241 .. NOT TILDE
.. |NotTildeEqual| unicode:: U+02244 .. NOT ASYMPTOTICALLY EQUAL TO
.. |NotTildeFullEqual| unicode:: U+02247 .. NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
.. |NotTildeTilde| unicode:: U+02249 .. NOT ALMOST EQUAL TO
.. |NotVerticalBar| unicode:: U+02224 .. DOES NOT DIVIDE
.. |nparallel| unicode:: U+02226 .. NOT PARALLEL TO
.. |nprec| unicode:: U+02280 .. DOES NOT PRECEDE
.. |npreceq| unicode:: U+02AAF U+00338 .. PRECEDES ABOVE SINGLE-LINE EQUALS SIGN with slash
.. |nRightarrow| unicode:: U+021CF .. RIGHTWARDS DOUBLE ARROW WITH STROKE
.. |nrightarrow| unicode:: U+0219B .. RIGHTWARDS ARROW WITH STROKE
.. |nshortmid| unicode:: U+02224 .. DOES NOT DIVIDE
.. |nshortparallel| unicode:: U+02226 .. NOT PARALLEL TO
.. |nsimeq| unicode:: U+02244 .. NOT ASYMPTOTICALLY EQUAL TO
.. |nsubset| unicode:: U+02282 U+020D2 .. SUBSET OF with vertical line
.. |nsubseteq| unicode:: U+02288 .. NEITHER A SUBSET OF NOR EQUAL TO
.. |nsubseteqq| unicode:: U+02AC5 U+00338 .. SUBSET OF ABOVE EQUALS SIGN with slash
.. |nsucc| unicode:: U+02281 .. DOES NOT SUCCEED
.. |nsucceq| unicode:: U+02AB0 U+00338 .. SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN with slash
.. |nsupset| unicode:: U+02283 U+020D2 .. SUPERSET OF with vertical line
.. |nsupseteq| unicode:: U+02289 .. NEITHER A SUPERSET OF NOR EQUAL TO
.. |nsupseteqq| unicode:: U+02AC6 U+00338 .. SUPERSET OF ABOVE EQUALS SIGN with slash
.. |ntriangleleft| unicode:: U+022EA .. NOT NORMAL SUBGROUP OF
.. |ntrianglelefteq| unicode:: U+022EC .. NOT NORMAL SUBGROUP OF OR EQUAL TO
.. |ntriangleright| unicode:: U+022EB .. DOES NOT CONTAIN AS NORMAL SUBGROUP
.. |ntrianglerighteq| unicode:: U+022ED .. DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
.. |nwarrow| unicode:: U+02196 .. NORTH WEST ARROW
.. |oint| unicode:: U+0222E .. CONTOUR INTEGRAL
.. |OpenCurlyDoubleQuote| unicode:: U+0201C .. LEFT DOUBLE QUOTATION MARK
.. |OpenCurlyQuote| unicode:: U+02018 .. LEFT SINGLE QUOTATION MARK
.. |orderof| unicode:: U+02134 .. SCRIPT SMALL O
.. |parallel| unicode:: U+02225 .. PARALLEL TO
.. |PartialD| unicode:: U+02202 .. PARTIAL DIFFERENTIAL
.. |pitchfork| unicode:: U+022D4 .. PITCHFORK
.. |PlusMinus| unicode:: U+000B1 .. PLUS-MINUS SIGN
.. |pm| unicode:: U+000B1 .. PLUS-MINUS SIGN
.. |Poincareplane| unicode:: U+0210C .. BLACK-LETTER CAPITAL H
.. |prec| unicode:: U+0227A .. PRECEDES
.. |precapprox| unicode:: U+02AB7 .. PRECEDES ABOVE ALMOST EQUAL TO
.. |preccurlyeq| unicode:: U+0227C .. PRECEDES OR EQUAL TO
.. |Precedes| unicode:: U+0227A .. PRECEDES
.. |PrecedesEqual| unicode:: U+02AAF .. PRECEDES ABOVE SINGLE-LINE EQUALS SIGN
.. |PrecedesSlantEqual| unicode:: U+0227C .. PRECEDES OR EQUAL TO
.. |PrecedesTilde| unicode:: U+0227E .. PRECEDES OR EQUIVALENT TO
.. |preceq| unicode:: U+02AAF .. PRECEDES ABOVE SINGLE-LINE EQUALS SIGN
.. |precnapprox| unicode:: U+02AB9 .. PRECEDES ABOVE NOT ALMOST EQUAL TO
.. |precneqq| unicode:: U+02AB5 .. PRECEDES ABOVE NOT EQUAL TO
.. |precnsim| unicode:: U+022E8 .. PRECEDES BUT NOT EQUIVALENT TO
.. |precsim| unicode:: U+0227E .. PRECEDES OR EQUIVALENT TO
.. |primes| unicode:: U+02119 .. DOUBLE-STRUCK CAPITAL P
.. |Proportion| unicode:: U+02237 .. PROPORTION
.. |Proportional| unicode:: U+0221D .. PROPORTIONAL TO
.. |propto| unicode:: U+0221D .. PROPORTIONAL TO
.. |quaternions| unicode:: U+0210D .. DOUBLE-STRUCK CAPITAL H
.. |questeq| unicode:: U+0225F .. QUESTIONED EQUAL TO
.. |rangle| unicode:: U+0232A .. RIGHT-POINTING ANGLE BRACKET
.. |rationals| unicode:: U+0211A .. DOUBLE-STRUCK CAPITAL Q
.. |rbrace| unicode:: U+0007D .. RIGHT CURLY BRACKET
.. |rbrack| unicode:: U+0005D .. RIGHT SQUARE BRACKET
.. |Re| unicode:: U+0211C .. BLACK-LETTER CAPITAL R
.. |realine| unicode:: U+0211B .. SCRIPT CAPITAL R
.. |realpart| unicode:: U+0211C .. BLACK-LETTER CAPITAL R
.. |reals| unicode:: U+0211D .. DOUBLE-STRUCK CAPITAL R
.. |ReverseElement| unicode:: U+0220B .. CONTAINS AS MEMBER
.. |ReverseEquilibrium| unicode:: U+021CB .. LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
.. |ReverseUpEquilibrium| unicode:: U+0296F .. DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
.. |RightAngleBracket| unicode:: U+0232A .. RIGHT-POINTING ANGLE BRACKET
.. |RightArrow| unicode:: U+02192 .. RIGHTWARDS ARROW
.. |Rightarrow| unicode:: U+021D2 .. RIGHTWARDS DOUBLE ARROW
.. |rightarrow| unicode:: U+02192 .. RIGHTWARDS ARROW
.. |RightArrowBar| unicode:: U+021E5 .. RIGHTWARDS ARROW TO BAR
.. |RightArrowLeftArrow| unicode:: U+021C4 .. RIGHTWARDS ARROW OVER LEFTWARDS ARROW
.. |rightarrowtail| unicode:: U+021A3 .. RIGHTWARDS ARROW WITH TAIL
.. |RightCeiling| unicode:: U+02309 .. RIGHT CEILING
.. |RightDoubleBracket| unicode:: U+0301B .. RIGHT WHITE SQUARE BRACKET
.. |RightDownVector| unicode:: U+021C2 .. DOWNWARDS HARPOON WITH BARB RIGHTWARDS
.. |RightFloor| unicode:: U+0230B .. RIGHT FLOOR
.. |rightharpoondown| unicode:: U+021C1 .. RIGHTWARDS HARPOON WITH BARB DOWNWARDS
.. |rightharpoonup| unicode:: U+021C0 .. RIGHTWARDS HARPOON WITH BARB UPWARDS
.. |rightleftarrows| unicode:: U+021C4 .. RIGHTWARDS ARROW OVER LEFTWARDS ARROW
.. |rightleftharpoons| unicode:: U+021CC .. RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
.. |rightrightarrows| unicode:: U+021C9 .. RIGHTWARDS PAIRED ARROWS
.. |rightsquigarrow| unicode:: U+0219D .. RIGHTWARDS WAVE ARROW
.. |RightTee| unicode:: U+022A2 .. RIGHT TACK
.. |RightTeeArrow| unicode:: U+021A6 .. RIGHTWARDS ARROW FROM BAR
.. |rightthreetimes| unicode:: U+022CC .. RIGHT SEMIDIRECT PRODUCT
.. |RightTriangle| unicode:: U+022B3 .. CONTAINS AS NORMAL SUBGROUP
.. |RightTriangleEqual| unicode:: U+022B5 .. CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
.. |RightUpVector| unicode:: U+021BE .. UPWARDS HARPOON WITH BARB RIGHTWARDS
.. |RightVector| unicode:: U+021C0 .. RIGHTWARDS HARPOON WITH BARB UPWARDS
.. |risingdotseq| unicode:: U+02253 .. IMAGE OF OR APPROXIMATELY EQUAL TO
.. |rmoustache| unicode:: U+023B1 .. UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION
.. |Rrightarrow| unicode:: U+021DB .. RIGHTWARDS TRIPLE ARROW
.. |Rsh| unicode:: U+021B1 .. UPWARDS ARROW WITH TIP RIGHTWARDS
.. |searrow| unicode:: U+02198 .. SOUTH EAST ARROW
.. |setminus| unicode:: U+02216 .. SET MINUS
.. |ShortDownArrow| unicode:: U+02193 .. DOWNWARDS ARROW
.. |ShortLeftArrow| unicode:: U+02190 .. LEFTWARDS ARROW
.. |shortmid| unicode:: U+02223 .. DIVIDES
.. |shortparallel| unicode:: U+02225 .. PARALLEL TO
.. |ShortRightArrow| unicode:: U+02192 .. RIGHTWARDS ARROW
.. |ShortUpArrow| unicode:: U+02191 .. UPWARDS ARROW
.. |simeq| unicode:: U+02243 .. ASYMPTOTICALLY EQUAL TO
.. |SmallCircle| unicode:: U+02218 .. RING OPERATOR
.. |smallsetminus| unicode:: U+02216 .. SET MINUS
.. |spadesuit| unicode:: U+02660 .. BLACK SPADE SUIT
.. |Sqrt| unicode:: U+0221A .. SQUARE ROOT
.. |sqsubset| unicode:: U+0228F .. SQUARE IMAGE OF
.. |sqsubseteq| unicode:: U+02291 .. SQUARE IMAGE OF OR EQUAL TO
.. |sqsupset| unicode:: U+02290 .. SQUARE ORIGINAL OF
.. |sqsupseteq| unicode:: U+02292 .. SQUARE ORIGINAL OF OR EQUAL TO
.. |Square| unicode:: U+025A1 .. WHITE SQUARE
.. |SquareIntersection| unicode:: U+02293 .. SQUARE CAP
.. |SquareSubset| unicode:: U+0228F .. SQUARE IMAGE OF
.. |SquareSubsetEqual| unicode:: U+02291 .. SQUARE IMAGE OF OR EQUAL TO
.. |SquareSuperset| unicode:: U+02290 .. SQUARE ORIGINAL OF
.. |SquareSupersetEqual| unicode:: U+02292 .. SQUARE ORIGINAL OF OR EQUAL TO
.. |SquareUnion| unicode:: U+02294 .. SQUARE CUP
.. |Star| unicode:: U+022C6 .. STAR OPERATOR
.. |straightepsilon| unicode:: U+003F5 .. GREEK LUNATE EPSILON SYMBOL
.. |straightphi| unicode:: U+003D5 .. GREEK PHI SYMBOL
.. |Subset| unicode:: U+022D0 .. DOUBLE SUBSET
.. |subset| unicode:: U+02282 .. SUBSET OF
.. |subseteq| unicode:: U+02286 .. SUBSET OF OR EQUAL TO
.. |subseteqq| unicode:: U+02AC5 .. SUBSET OF ABOVE EQUALS SIGN
.. |SubsetEqual| unicode:: U+02286 .. SUBSET OF OR EQUAL TO
.. |subsetneq| unicode:: U+0228A .. SUBSET OF WITH NOT EQUAL TO
.. |subsetneqq| unicode:: U+02ACB .. SUBSET OF ABOVE NOT EQUAL TO
.. |succ| unicode:: U+0227B .. SUCCEEDS
.. |succapprox| unicode:: U+02AB8 .. SUCCEEDS ABOVE ALMOST EQUAL TO
.. |succcurlyeq| unicode:: U+0227D .. SUCCEEDS OR EQUAL TO
.. |Succeeds| unicode:: U+0227B .. SUCCEEDS
.. |SucceedsEqual| unicode:: U+02AB0 .. SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN
.. |SucceedsSlantEqual| unicode:: U+0227D .. SUCCEEDS OR EQUAL TO
.. |SucceedsTilde| unicode:: U+0227F .. SUCCEEDS OR EQUIVALENT TO
.. |succeq| unicode:: U+02AB0 .. SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN
.. |succnapprox| unicode:: U+02ABA .. SUCCEEDS ABOVE NOT ALMOST EQUAL TO
.. |succneqq| unicode:: U+02AB6 .. SUCCEEDS ABOVE NOT EQUAL TO
.. |succnsim| unicode:: U+022E9 .. SUCCEEDS BUT NOT EQUIVALENT TO
.. |succsim| unicode:: U+0227F .. SUCCEEDS OR EQUIVALENT TO
.. |SuchThat| unicode:: U+0220B .. CONTAINS AS MEMBER
.. |Sum| unicode:: U+02211 .. N-ARY SUMMATION
.. |Superset| unicode:: U+02283 .. SUPERSET OF
.. |SupersetEqual| unicode:: U+02287 .. SUPERSET OF OR EQUAL TO
.. |Supset| unicode:: U+022D1 .. DOUBLE SUPERSET
.. |supset| unicode:: U+02283 .. SUPERSET OF
.. |supseteq| unicode:: U+02287 .. SUPERSET OF OR EQUAL TO
.. |supseteqq| unicode:: U+02AC6 .. SUPERSET OF ABOVE EQUALS SIGN
.. |supsetneq| unicode:: U+0228B .. SUPERSET OF WITH NOT EQUAL TO
.. |supsetneqq| unicode:: U+02ACC .. SUPERSET OF ABOVE NOT EQUAL TO
.. |swarrow| unicode:: U+02199 .. SOUTH WEST ARROW
.. |Therefore| unicode:: U+02234 .. THEREFORE
.. |therefore| unicode:: U+02234 .. THEREFORE
.. |thickapprox| unicode:: U+02248 .. ALMOST EQUAL TO
.. |thicksim| unicode:: U+0223C .. TILDE OPERATOR
.. |ThinSpace| unicode:: U+02009 .. THIN SPACE
.. |Tilde| unicode:: U+0223C .. TILDE OPERATOR
.. |TildeEqual| unicode:: U+02243 .. ASYMPTOTICALLY EQUAL TO
.. |TildeFullEqual| unicode:: U+02245 .. APPROXIMATELY EQUAL TO
.. |TildeTilde| unicode:: U+02248 .. ALMOST EQUAL TO
.. |toea| unicode:: U+02928 .. NORTH EAST ARROW AND SOUTH EAST ARROW
.. |tosa| unicode:: U+02929 .. SOUTH EAST ARROW AND SOUTH WEST ARROW
.. |triangle| unicode:: U+025B5 .. WHITE UP-POINTING SMALL TRIANGLE
.. |triangledown| unicode:: U+025BF .. WHITE DOWN-POINTING SMALL TRIANGLE
.. |triangleleft| unicode:: U+025C3 .. WHITE LEFT-POINTING SMALL TRIANGLE
.. |trianglelefteq| unicode:: U+022B4 .. NORMAL SUBGROUP OF OR EQUAL TO
.. |triangleq| unicode:: U+0225C .. DELTA EQUAL TO
.. |triangleright| unicode:: U+025B9 .. WHITE RIGHT-POINTING SMALL TRIANGLE
.. |trianglerighteq| unicode:: U+022B5 .. CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
.. |TripleDot| unicode:: U+020DB .. COMBINING THREE DOTS ABOVE
.. |twoheadleftarrow| unicode:: U+0219E .. LEFTWARDS TWO HEADED ARROW
.. |twoheadrightarrow| unicode:: U+021A0 .. RIGHTWARDS TWO HEADED ARROW
.. |ulcorner| unicode:: U+0231C .. TOP LEFT CORNER
.. |Union| unicode:: U+022C3 .. N-ARY UNION
.. |UnionPlus| unicode:: U+0228E .. MULTISET UNION
.. |UpArrow| unicode:: U+02191 .. UPWARDS ARROW
.. |Uparrow| unicode:: U+021D1 .. UPWARDS DOUBLE ARROW
.. |uparrow| unicode:: U+02191 .. UPWARDS ARROW
.. |UpArrowDownArrow| unicode:: U+021C5 .. UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW
.. |UpDownArrow| unicode:: U+02195 .. UP DOWN ARROW
.. |Updownarrow| unicode:: U+021D5 .. UP DOWN DOUBLE ARROW
.. |updownarrow| unicode:: U+02195 .. UP DOWN ARROW
.. |UpEquilibrium| unicode:: U+0296E .. UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
.. |upharpoonleft| unicode:: U+021BF .. UPWARDS HARPOON WITH BARB LEFTWARDS
.. |upharpoonright| unicode:: U+021BE .. UPWARDS HARPOON WITH BARB RIGHTWARDS
.. |UpperLeftArrow| unicode:: U+02196 .. NORTH WEST ARROW
.. |UpperRightArrow| unicode:: U+02197 .. NORTH EAST ARROW
.. |upsilon| unicode:: U+003C5 .. GREEK SMALL LETTER UPSILON
.. |UpTee| unicode:: U+022A5 .. UP TACK
.. |UpTeeArrow| unicode:: U+021A5 .. UPWARDS ARROW FROM BAR
.. |upuparrows| unicode:: U+021C8 .. UPWARDS PAIRED ARROWS
.. |urcorner| unicode:: U+0231D .. TOP RIGHT CORNER
.. |varepsilon| unicode:: U+003B5 .. GREEK SMALL LETTER EPSILON
.. |varkappa| unicode:: U+003F0 .. GREEK KAPPA SYMBOL
.. |varnothing| unicode:: U+02205 .. EMPTY SET
.. |varphi| unicode:: U+003C6 .. GREEK SMALL LETTER PHI
.. |varpi| unicode:: U+003D6 .. GREEK PI SYMBOL
.. |varpropto| unicode:: U+0221D .. PROPORTIONAL TO
.. |varrho| unicode:: U+003F1 .. GREEK RHO SYMBOL
.. |varsigma| unicode:: U+003C2 .. GREEK SMALL LETTER FINAL SIGMA
.. |varsubsetneq| unicode:: U+0228A U+0FE00 .. SUBSET OF WITH NOT EQUAL TO - variant with stroke through bottom members
.. |varsubsetneqq| unicode:: U+02ACB U+0FE00 .. SUBSET OF ABOVE NOT EQUAL TO - variant with stroke through bottom members
.. |varsupsetneq| unicode:: U+0228B U+0FE00 .. SUPERSET OF WITH NOT EQUAL TO - variant with stroke through bottom members
.. |varsupsetneqq| unicode:: U+02ACC U+0FE00 .. SUPERSET OF ABOVE NOT EQUAL TO - variant with stroke through bottom members
.. |vartheta| unicode:: U+003D1 .. GREEK THETA SYMBOL
.. |vartriangleleft| unicode:: U+022B2 .. NORMAL SUBGROUP OF
.. |vartriangleright| unicode:: U+022B3 .. CONTAINS AS NORMAL SUBGROUP
.. |Vee| unicode:: U+022C1 .. N-ARY LOGICAL OR
.. |vee| unicode:: U+02228 .. LOGICAL OR
.. |Vert| unicode:: U+02016 .. DOUBLE VERTICAL LINE
.. |vert| unicode:: U+0007C .. VERTICAL LINE
.. |VerticalBar| unicode:: U+02223 .. DIVIDES
.. |VerticalTilde| unicode:: U+02240 .. WREATH PRODUCT
.. |VeryThinSpace| unicode:: U+0200A .. HAIR SPACE
.. |Wedge| unicode:: U+022C0 .. N-ARY LOGICAL AND
.. |wedge| unicode:: U+02227 .. LOGICAL AND
.. |wp| unicode:: U+02118 .. SCRIPT CAPITAL P
.. |wr| unicode:: U+02240 .. WREATH PRODUCT
.. |zeetrf| unicode:: U+02128 .. BLACK-LETTER CAPITAL Z

View file

@ -0,0 +1,113 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |af| unicode:: U+02061 .. FUNCTION APPLICATION
.. |aopf| unicode:: U+1D552 .. MATHEMATICAL DOUBLE-STRUCK SMALL A
.. |asympeq| unicode:: U+0224D .. EQUIVALENT TO
.. |bopf| unicode:: U+1D553 .. MATHEMATICAL DOUBLE-STRUCK SMALL B
.. |copf| unicode:: U+1D554 .. MATHEMATICAL DOUBLE-STRUCK SMALL C
.. |Cross| unicode:: U+02A2F .. VECTOR OR CROSS PRODUCT
.. |DD| unicode:: U+02145 .. DOUBLE-STRUCK ITALIC CAPITAL D
.. |dd| unicode:: U+02146 .. DOUBLE-STRUCK ITALIC SMALL D
.. |dopf| unicode:: U+1D555 .. MATHEMATICAL DOUBLE-STRUCK SMALL D
.. |DownArrowBar| unicode:: U+02913 .. DOWNWARDS ARROW TO BAR
.. |DownBreve| unicode:: U+00311 .. COMBINING INVERTED BREVE
.. |DownLeftRightVector| unicode:: U+02950 .. LEFT BARB DOWN RIGHT BARB DOWN HARPOON
.. |DownLeftTeeVector| unicode:: U+0295E .. LEFTWARDS HARPOON WITH BARB DOWN FROM BAR
.. |DownLeftVectorBar| unicode:: U+02956 .. LEFTWARDS HARPOON WITH BARB DOWN TO BAR
.. |DownRightTeeVector| unicode:: U+0295F .. RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR
.. |DownRightVectorBar| unicode:: U+02957 .. RIGHTWARDS HARPOON WITH BARB DOWN TO BAR
.. |ee| unicode:: U+02147 .. DOUBLE-STRUCK ITALIC SMALL E
.. |EmptySmallSquare| unicode:: U+025FB .. WHITE MEDIUM SQUARE
.. |EmptyVerySmallSquare| unicode:: U+025AB .. WHITE SMALL SQUARE
.. |eopf| unicode:: U+1D556 .. MATHEMATICAL DOUBLE-STRUCK SMALL E
.. |Equal| unicode:: U+02A75 .. TWO CONSECUTIVE EQUALS SIGNS
.. |FilledSmallSquare| unicode:: U+025FC .. BLACK MEDIUM SQUARE
.. |FilledVerySmallSquare| unicode:: U+025AA .. BLACK SMALL SQUARE
.. |fopf| unicode:: U+1D557 .. MATHEMATICAL DOUBLE-STRUCK SMALL F
.. |gopf| unicode:: U+1D558 .. MATHEMATICAL DOUBLE-STRUCK SMALL G
.. |GreaterGreater| unicode:: U+02AA2 .. DOUBLE NESTED GREATER-THAN
.. |Hat| unicode:: U+0005E .. CIRCUMFLEX ACCENT
.. |hopf| unicode:: U+1D559 .. MATHEMATICAL DOUBLE-STRUCK SMALL H
.. |HorizontalLine| unicode:: U+02500 .. BOX DRAWINGS LIGHT HORIZONTAL
.. |ic| unicode:: U+02063 .. INVISIBLE SEPARATOR
.. |ii| unicode:: U+02148 .. DOUBLE-STRUCK ITALIC SMALL I
.. |iopf| unicode:: U+1D55A .. MATHEMATICAL DOUBLE-STRUCK SMALL I
.. |it| unicode:: U+02062 .. INVISIBLE TIMES
.. |jopf| unicode:: U+1D55B .. MATHEMATICAL DOUBLE-STRUCK SMALL J
.. |kopf| unicode:: U+1D55C .. MATHEMATICAL DOUBLE-STRUCK SMALL K
.. |larrb| unicode:: U+021E4 .. LEFTWARDS ARROW TO BAR
.. |LeftDownTeeVector| unicode:: U+02961 .. DOWNWARDS HARPOON WITH BARB LEFT FROM BAR
.. |LeftDownVectorBar| unicode:: U+02959 .. DOWNWARDS HARPOON WITH BARB LEFT TO BAR
.. |LeftRightVector| unicode:: U+0294E .. LEFT BARB UP RIGHT BARB UP HARPOON
.. |LeftTeeVector| unicode:: U+0295A .. LEFTWARDS HARPOON WITH BARB UP FROM BAR
.. |LeftTriangleBar| unicode:: U+029CF .. LEFT TRIANGLE BESIDE VERTICAL BAR
.. |LeftUpDownVector| unicode:: U+02951 .. UP BARB LEFT DOWN BARB LEFT HARPOON
.. |LeftUpTeeVector| unicode:: U+02960 .. UPWARDS HARPOON WITH BARB LEFT FROM BAR
.. |LeftUpVectorBar| unicode:: U+02958 .. UPWARDS HARPOON WITH BARB LEFT TO BAR
.. |LeftVectorBar| unicode:: U+02952 .. LEFTWARDS HARPOON WITH BARB UP TO BAR
.. |LessLess| unicode:: U+02AA1 .. DOUBLE NESTED LESS-THAN
.. |lopf| unicode:: U+1D55D .. MATHEMATICAL DOUBLE-STRUCK SMALL L
.. |mapstodown| unicode:: U+021A7 .. DOWNWARDS ARROW FROM BAR
.. |mapstoleft| unicode:: U+021A4 .. LEFTWARDS ARROW FROM BAR
.. |mapstoup| unicode:: U+021A5 .. UPWARDS ARROW FROM BAR
.. |MediumSpace| unicode:: U+0205F .. MEDIUM MATHEMATICAL SPACE
.. |mopf| unicode:: U+1D55E .. MATHEMATICAL DOUBLE-STRUCK SMALL M
.. |nbump| unicode:: U+0224E U+00338 .. GEOMETRICALLY EQUIVALENT TO with slash
.. |nbumpe| unicode:: U+0224F U+00338 .. DIFFERENCE BETWEEN with slash
.. |nesim| unicode:: U+02242 U+00338 .. MINUS TILDE with slash
.. |NewLine| unicode:: U+0000A .. LINE FEED (LF)
.. |NoBreak| unicode:: U+02060 .. WORD JOINER
.. |nopf| unicode:: U+1D55F .. MATHEMATICAL DOUBLE-STRUCK SMALL N
.. |NotCupCap| unicode:: U+0226D .. NOT EQUIVALENT TO
.. |NotHumpEqual| unicode:: U+0224F U+00338 .. DIFFERENCE BETWEEN with slash
.. |NotLeftTriangleBar| unicode:: U+029CF U+00338 .. LEFT TRIANGLE BESIDE VERTICAL BAR with slash
.. |NotNestedGreaterGreater| unicode:: U+02AA2 U+00338 .. DOUBLE NESTED GREATER-THAN with slash
.. |NotNestedLessLess| unicode:: U+02AA1 U+00338 .. DOUBLE NESTED LESS-THAN with slash
.. |NotRightTriangleBar| unicode:: U+029D0 U+00338 .. VERTICAL BAR BESIDE RIGHT TRIANGLE with slash
.. |NotSquareSubset| unicode:: U+0228F U+00338 .. SQUARE IMAGE OF with slash
.. |NotSquareSuperset| unicode:: U+02290 U+00338 .. SQUARE ORIGINAL OF with slash
.. |NotSucceedsTilde| unicode:: U+0227F U+00338 .. SUCCEEDS OR EQUIVALENT TO with slash
.. |oopf| unicode:: U+1D560 .. MATHEMATICAL DOUBLE-STRUCK SMALL O
.. |OverBar| unicode:: U+000AF .. MACRON
.. |OverBrace| unicode:: U+0FE37 .. PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
.. |OverBracket| unicode:: U+023B4 .. TOP SQUARE BRACKET
.. |OverParenthesis| unicode:: U+0FE35 .. PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
.. |planckh| unicode:: U+0210E .. PLANCK CONSTANT
.. |popf| unicode:: U+1D561 .. MATHEMATICAL DOUBLE-STRUCK SMALL P
.. |Product| unicode:: U+0220F .. N-ARY PRODUCT
.. |qopf| unicode:: U+1D562 .. MATHEMATICAL DOUBLE-STRUCK SMALL Q
.. |rarrb| unicode:: U+021E5 .. RIGHTWARDS ARROW TO BAR
.. |RightDownTeeVector| unicode:: U+0295D .. DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR
.. |RightDownVectorBar| unicode:: U+02955 .. DOWNWARDS HARPOON WITH BARB RIGHT TO BAR
.. |RightTeeVector| unicode:: U+0295B .. RIGHTWARDS HARPOON WITH BARB UP FROM BAR
.. |RightTriangleBar| unicode:: U+029D0 .. VERTICAL BAR BESIDE RIGHT TRIANGLE
.. |RightUpDownVector| unicode:: U+0294F .. UP BARB RIGHT DOWN BARB RIGHT HARPOON
.. |RightUpTeeVector| unicode:: U+0295C .. UPWARDS HARPOON WITH BARB RIGHT FROM BAR
.. |RightUpVectorBar| unicode:: U+02954 .. UPWARDS HARPOON WITH BARB RIGHT TO BAR
.. |RightVectorBar| unicode:: U+02953 .. RIGHTWARDS HARPOON WITH BARB UP TO BAR
.. |ropf| unicode:: U+1D563 .. MATHEMATICAL DOUBLE-STRUCK SMALL R
.. |RoundImplies| unicode:: U+02970 .. RIGHT DOUBLE ARROW WITH ROUNDED HEAD
.. |RuleDelayed| unicode:: U+029F4 .. RULE-DELAYED
.. |sopf| unicode:: U+1D564 .. MATHEMATICAL DOUBLE-STRUCK SMALL S
.. |Tab| unicode:: U+00009 .. CHARACTER TABULATION
.. |ThickSpace| unicode:: U+02009 U+0200A U+0200A .. space of width 5/18 em
.. |topf| unicode:: U+1D565 .. MATHEMATICAL DOUBLE-STRUCK SMALL T
.. |UnderBar| unicode:: U+00332 .. COMBINING LOW LINE
.. |UnderBrace| unicode:: U+0FE38 .. PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
.. |UnderBracket| unicode:: U+023B5 .. BOTTOM SQUARE BRACKET
.. |UnderParenthesis| unicode:: U+0FE36 .. PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
.. |uopf| unicode:: U+1D566 .. MATHEMATICAL DOUBLE-STRUCK SMALL U
.. |UpArrowBar| unicode:: U+02912 .. UPWARDS ARROW TO BAR
.. |Upsilon| unicode:: U+003A5 .. GREEK CAPITAL LETTER UPSILON
.. |VerticalLine| unicode:: U+0007C .. VERTICAL LINE
.. |VerticalSeparator| unicode:: U+02758 .. LIGHT VERTICAL BAR
.. |vopf| unicode:: U+1D567 .. MATHEMATICAL DOUBLE-STRUCK SMALL V
.. |wopf| unicode:: U+1D568 .. MATHEMATICAL DOUBLE-STRUCK SMALL W
.. |xopf| unicode:: U+1D569 .. MATHEMATICAL DOUBLE-STRUCK SMALL X
.. |yopf| unicode:: U+1D56A .. MATHEMATICAL DOUBLE-STRUCK SMALL Y
.. |ZeroWidthSpace| unicode:: U+0200B .. ZERO WIDTH SPACE
.. |zopf| unicode:: U+1D56B .. MATHEMATICAL DOUBLE-STRUCK SMALL Z

View file

@ -0,0 +1,87 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |af| unicode:: U+02061 .. FUNCTION APPLICATION
.. |asympeq| unicode:: U+0224D .. EQUIVALENT TO
.. |Cross| unicode:: U+02A2F .. VECTOR OR CROSS PRODUCT
.. |DD| unicode:: U+02145 .. DOUBLE-STRUCK ITALIC CAPITAL D
.. |dd| unicode:: U+02146 .. DOUBLE-STRUCK ITALIC SMALL D
.. |DownArrowBar| unicode:: U+02913 .. DOWNWARDS ARROW TO BAR
.. |DownBreve| unicode:: U+00311 .. COMBINING INVERTED BREVE
.. |DownLeftRightVector| unicode:: U+02950 .. LEFT BARB DOWN RIGHT BARB DOWN HARPOON
.. |DownLeftTeeVector| unicode:: U+0295E .. LEFTWARDS HARPOON WITH BARB DOWN FROM BAR
.. |DownLeftVectorBar| unicode:: U+02956 .. LEFTWARDS HARPOON WITH BARB DOWN TO BAR
.. |DownRightTeeVector| unicode:: U+0295F .. RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR
.. |DownRightVectorBar| unicode:: U+02957 .. RIGHTWARDS HARPOON WITH BARB DOWN TO BAR
.. |ee| unicode:: U+02147 .. DOUBLE-STRUCK ITALIC SMALL E
.. |EmptySmallSquare| unicode:: U+025FB .. WHITE MEDIUM SQUARE
.. |EmptyVerySmallSquare| unicode:: U+025AB .. WHITE SMALL SQUARE
.. |Equal| unicode:: U+02A75 .. TWO CONSECUTIVE EQUALS SIGNS
.. |FilledSmallSquare| unicode:: U+025FC .. BLACK MEDIUM SQUARE
.. |FilledVerySmallSquare| unicode:: U+025AA .. BLACK SMALL SQUARE
.. |GreaterGreater| unicode:: U+02AA2 .. DOUBLE NESTED GREATER-THAN
.. |Hat| unicode:: U+0005E .. CIRCUMFLEX ACCENT
.. |HorizontalLine| unicode:: U+02500 .. BOX DRAWINGS LIGHT HORIZONTAL
.. |ic| unicode:: U+02063 .. INVISIBLE SEPARATOR
.. |ii| unicode:: U+02148 .. DOUBLE-STRUCK ITALIC SMALL I
.. |it| unicode:: U+02062 .. INVISIBLE TIMES
.. |larrb| unicode:: U+021E4 .. LEFTWARDS ARROW TO BAR
.. |LeftDownTeeVector| unicode:: U+02961 .. DOWNWARDS HARPOON WITH BARB LEFT FROM BAR
.. |LeftDownVectorBar| unicode:: U+02959 .. DOWNWARDS HARPOON WITH BARB LEFT TO BAR
.. |LeftRightVector| unicode:: U+0294E .. LEFT BARB UP RIGHT BARB UP HARPOON
.. |LeftTeeVector| unicode:: U+0295A .. LEFTWARDS HARPOON WITH BARB UP FROM BAR
.. |LeftTriangleBar| unicode:: U+029CF .. LEFT TRIANGLE BESIDE VERTICAL BAR
.. |LeftUpDownVector| unicode:: U+02951 .. UP BARB LEFT DOWN BARB LEFT HARPOON
.. |LeftUpTeeVector| unicode:: U+02960 .. UPWARDS HARPOON WITH BARB LEFT FROM BAR
.. |LeftUpVectorBar| unicode:: U+02958 .. UPWARDS HARPOON WITH BARB LEFT TO BAR
.. |LeftVectorBar| unicode:: U+02952 .. LEFTWARDS HARPOON WITH BARB UP TO BAR
.. |LessLess| unicode:: U+02AA1 .. DOUBLE NESTED LESS-THAN
.. |mapstodown| unicode:: U+021A7 .. DOWNWARDS ARROW FROM BAR
.. |mapstoleft| unicode:: U+021A4 .. LEFTWARDS ARROW FROM BAR
.. |mapstoup| unicode:: U+021A5 .. UPWARDS ARROW FROM BAR
.. |MediumSpace| unicode:: U+0205F .. MEDIUM MATHEMATICAL SPACE
.. |nbump| unicode:: U+0224E U+00338 .. GEOMETRICALLY EQUIVALENT TO with slash
.. |nbumpe| unicode:: U+0224F U+00338 .. DIFFERENCE BETWEEN with slash
.. |nesim| unicode:: U+02242 U+00338 .. MINUS TILDE with slash
.. |NewLine| unicode:: U+0000A .. LINE FEED (LF)
.. |NoBreak| unicode:: U+02060 .. WORD JOINER
.. |NotCupCap| unicode:: U+0226D .. NOT EQUIVALENT TO
.. |NotHumpEqual| unicode:: U+0224F U+00338 .. DIFFERENCE BETWEEN with slash
.. |NotLeftTriangleBar| unicode:: U+029CF U+00338 .. LEFT TRIANGLE BESIDE VERTICAL BAR with slash
.. |NotNestedGreaterGreater| unicode:: U+02AA2 U+00338 .. DOUBLE NESTED GREATER-THAN with slash
.. |NotNestedLessLess| unicode:: U+02AA1 U+00338 .. DOUBLE NESTED LESS-THAN with slash
.. |NotRightTriangleBar| unicode:: U+029D0 U+00338 .. VERTICAL BAR BESIDE RIGHT TRIANGLE with slash
.. |NotSquareSubset| unicode:: U+0228F U+00338 .. SQUARE IMAGE OF with slash
.. |NotSquareSuperset| unicode:: U+02290 U+00338 .. SQUARE ORIGINAL OF with slash
.. |NotSucceedsTilde| unicode:: U+0227F U+00338 .. SUCCEEDS OR EQUIVALENT TO with slash
.. |OverBar| unicode:: U+000AF .. MACRON
.. |OverBrace| unicode:: U+0FE37 .. PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
.. |OverBracket| unicode:: U+023B4 .. TOP SQUARE BRACKET
.. |OverParenthesis| unicode:: U+0FE35 .. PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
.. |planckh| unicode:: U+0210E .. PLANCK CONSTANT
.. |Product| unicode:: U+0220F .. N-ARY PRODUCT
.. |rarrb| unicode:: U+021E5 .. RIGHTWARDS ARROW TO BAR
.. |RightDownTeeVector| unicode:: U+0295D .. DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR
.. |RightDownVectorBar| unicode:: U+02955 .. DOWNWARDS HARPOON WITH BARB RIGHT TO BAR
.. |RightTeeVector| unicode:: U+0295B .. RIGHTWARDS HARPOON WITH BARB UP FROM BAR
.. |RightTriangleBar| unicode:: U+029D0 .. VERTICAL BAR BESIDE RIGHT TRIANGLE
.. |RightUpDownVector| unicode:: U+0294F .. UP BARB RIGHT DOWN BARB RIGHT HARPOON
.. |RightUpTeeVector| unicode:: U+0295C .. UPWARDS HARPOON WITH BARB RIGHT FROM BAR
.. |RightUpVectorBar| unicode:: U+02954 .. UPWARDS HARPOON WITH BARB RIGHT TO BAR
.. |RightVectorBar| unicode:: U+02953 .. RIGHTWARDS HARPOON WITH BARB UP TO BAR
.. |RoundImplies| unicode:: U+02970 .. RIGHT DOUBLE ARROW WITH ROUNDED HEAD
.. |RuleDelayed| unicode:: U+029F4 .. RULE-DELAYED
.. |Tab| unicode:: U+00009 .. CHARACTER TABULATION
.. |ThickSpace| unicode:: U+02009 U+0200A U+0200A .. space of width 5/18 em
.. |UnderBar| unicode:: U+00332 .. COMBINING LOW LINE
.. |UnderBrace| unicode:: U+0FE38 .. PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
.. |UnderBracket| unicode:: U+023B5 .. BOTTOM SQUARE BRACKET
.. |UnderParenthesis| unicode:: U+0FE36 .. PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
.. |UpArrowBar| unicode:: U+02912 .. UPWARDS ARROW TO BAR
.. |Upsilon| unicode:: U+003A5 .. GREEK CAPITAL LETTER UPSILON
.. |VerticalLine| unicode:: U+0007C .. VERTICAL LINE
.. |VerticalSeparator| unicode:: U+02758 .. LIGHT VERTICAL BAR
.. |ZeroWidthSpace| unicode:: U+0200B .. ZERO WIDTH SPACE

View file

@ -0,0 +1,68 @@
.. Definitions of interpreted text roles (classes) for S5/HTML data.
.. This data file has been placed in the public domain.
.. Colours
=======
.. role:: black
.. role:: gray
.. role:: silver
.. role:: white
.. role:: maroon
.. role:: red
.. role:: magenta
.. role:: fuchsia
.. role:: pink
.. role:: orange
.. role:: yellow
.. role:: lime
.. role:: green
.. role:: olive
.. role:: teal
.. role:: cyan
.. role:: aqua
.. role:: blue
.. role:: navy
.. role:: purple
.. Text Sizes
==========
.. role:: huge
.. role:: big
.. role:: small
.. role:: tiny
.. Display in Slides (Presentation Mode) Only
==========================================
.. role:: slide
:class: slide-display
.. Display in Outline Mode Only
============================
.. role:: outline
.. Display in Print Only
=====================
.. role:: print
.. Display in Handout Mode Only
============================
.. role:: handout
.. Incremental Display
===================
.. role:: incremental
.. default-role:: incremental

View file

@ -0,0 +1,102 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |Aacute| unicode:: U+000C1 .. LATIN CAPITAL LETTER A WITH ACUTE
.. |aacute| unicode:: U+000E1 .. LATIN SMALL LETTER A WITH ACUTE
.. |Acirc| unicode:: U+000C2 .. LATIN CAPITAL LETTER A WITH CIRCUMFLEX
.. |acirc| unicode:: U+000E2 .. LATIN SMALL LETTER A WITH CIRCUMFLEX
.. |acute| unicode:: U+000B4 .. ACUTE ACCENT
.. |AElig| unicode:: U+000C6 .. LATIN CAPITAL LETTER AE
.. |aelig| unicode:: U+000E6 .. LATIN SMALL LETTER AE
.. |Agrave| unicode:: U+000C0 .. LATIN CAPITAL LETTER A WITH GRAVE
.. |agrave| unicode:: U+000E0 .. LATIN SMALL LETTER A WITH GRAVE
.. |Aring| unicode:: U+000C5 .. LATIN CAPITAL LETTER A WITH RING ABOVE
.. |aring| unicode:: U+000E5 .. LATIN SMALL LETTER A WITH RING ABOVE
.. |Atilde| unicode:: U+000C3 .. LATIN CAPITAL LETTER A WITH TILDE
.. |atilde| unicode:: U+000E3 .. LATIN SMALL LETTER A WITH TILDE
.. |Auml| unicode:: U+000C4 .. LATIN CAPITAL LETTER A WITH DIAERESIS
.. |auml| unicode:: U+000E4 .. LATIN SMALL LETTER A WITH DIAERESIS
.. |brvbar| unicode:: U+000A6 .. BROKEN BAR
.. |Ccedil| unicode:: U+000C7 .. LATIN CAPITAL LETTER C WITH CEDILLA
.. |ccedil| unicode:: U+000E7 .. LATIN SMALL LETTER C WITH CEDILLA
.. |cedil| unicode:: U+000B8 .. CEDILLA
.. |cent| unicode:: U+000A2 .. CENT SIGN
.. |copy| unicode:: U+000A9 .. COPYRIGHT SIGN
.. |curren| unicode:: U+000A4 .. CURRENCY SIGN
.. |deg| unicode:: U+000B0 .. DEGREE SIGN
.. |divide| unicode:: U+000F7 .. DIVISION SIGN
.. |Eacute| unicode:: U+000C9 .. LATIN CAPITAL LETTER E WITH ACUTE
.. |eacute| unicode:: U+000E9 .. LATIN SMALL LETTER E WITH ACUTE
.. |Ecirc| unicode:: U+000CA .. LATIN CAPITAL LETTER E WITH CIRCUMFLEX
.. |ecirc| unicode:: U+000EA .. LATIN SMALL LETTER E WITH CIRCUMFLEX
.. |Egrave| unicode:: U+000C8 .. LATIN CAPITAL LETTER E WITH GRAVE
.. |egrave| unicode:: U+000E8 .. LATIN SMALL LETTER E WITH GRAVE
.. |ETH| unicode:: U+000D0 .. LATIN CAPITAL LETTER ETH
.. |eth| unicode:: U+000F0 .. LATIN SMALL LETTER ETH
.. |Euml| unicode:: U+000CB .. LATIN CAPITAL LETTER E WITH DIAERESIS
.. |euml| unicode:: U+000EB .. LATIN SMALL LETTER E WITH DIAERESIS
.. |frac12| unicode:: U+000BD .. VULGAR FRACTION ONE HALF
.. |frac14| unicode:: U+000BC .. VULGAR FRACTION ONE QUARTER
.. |frac34| unicode:: U+000BE .. VULGAR FRACTION THREE QUARTERS
.. |Iacute| unicode:: U+000CD .. LATIN CAPITAL LETTER I WITH ACUTE
.. |iacute| unicode:: U+000ED .. LATIN SMALL LETTER I WITH ACUTE
.. |Icirc| unicode:: U+000CE .. LATIN CAPITAL LETTER I WITH CIRCUMFLEX
.. |icirc| unicode:: U+000EE .. LATIN SMALL LETTER I WITH CIRCUMFLEX
.. |iexcl| unicode:: U+000A1 .. INVERTED EXCLAMATION MARK
.. |Igrave| unicode:: U+000CC .. LATIN CAPITAL LETTER I WITH GRAVE
.. |igrave| unicode:: U+000EC .. LATIN SMALL LETTER I WITH GRAVE
.. |iquest| unicode:: U+000BF .. INVERTED QUESTION MARK
.. |Iuml| unicode:: U+000CF .. LATIN CAPITAL LETTER I WITH DIAERESIS
.. |iuml| unicode:: U+000EF .. LATIN SMALL LETTER I WITH DIAERESIS
.. |laquo| unicode:: U+000AB .. LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
.. |macr| unicode:: U+000AF .. MACRON
.. |micro| unicode:: U+000B5 .. MICRO SIGN
.. |middot| unicode:: U+000B7 .. MIDDLE DOT
.. |nbsp| unicode:: U+000A0 .. NO-BREAK SPACE
.. |not| unicode:: U+000AC .. NOT SIGN
.. |Ntilde| unicode:: U+000D1 .. LATIN CAPITAL LETTER N WITH TILDE
.. |ntilde| unicode:: U+000F1 .. LATIN SMALL LETTER N WITH TILDE
.. |Oacute| unicode:: U+000D3 .. LATIN CAPITAL LETTER O WITH ACUTE
.. |oacute| unicode:: U+000F3 .. LATIN SMALL LETTER O WITH ACUTE
.. |Ocirc| unicode:: U+000D4 .. LATIN CAPITAL LETTER O WITH CIRCUMFLEX
.. |ocirc| unicode:: U+000F4 .. LATIN SMALL LETTER O WITH CIRCUMFLEX
.. |Ograve| unicode:: U+000D2 .. LATIN CAPITAL LETTER O WITH GRAVE
.. |ograve| unicode:: U+000F2 .. LATIN SMALL LETTER O WITH GRAVE
.. |ordf| unicode:: U+000AA .. FEMININE ORDINAL INDICATOR
.. |ordm| unicode:: U+000BA .. MASCULINE ORDINAL INDICATOR
.. |Oslash| unicode:: U+000D8 .. LATIN CAPITAL LETTER O WITH STROKE
.. |oslash| unicode:: U+000F8 .. LATIN SMALL LETTER O WITH STROKE
.. |Otilde| unicode:: U+000D5 .. LATIN CAPITAL LETTER O WITH TILDE
.. |otilde| unicode:: U+000F5 .. LATIN SMALL LETTER O WITH TILDE
.. |Ouml| unicode:: U+000D6 .. LATIN CAPITAL LETTER O WITH DIAERESIS
.. |ouml| unicode:: U+000F6 .. LATIN SMALL LETTER O WITH DIAERESIS
.. |para| unicode:: U+000B6 .. PILCROW SIGN
.. |plusmn| unicode:: U+000B1 .. PLUS-MINUS SIGN
.. |pound| unicode:: U+000A3 .. POUND SIGN
.. |raquo| unicode:: U+000BB .. RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
.. |reg| unicode:: U+000AE .. REGISTERED SIGN
.. |sect| unicode:: U+000A7 .. SECTION SIGN
.. |shy| unicode:: U+000AD .. SOFT HYPHEN
.. |sup1| unicode:: U+000B9 .. SUPERSCRIPT ONE
.. |sup2| unicode:: U+000B2 .. SUPERSCRIPT TWO
.. |sup3| unicode:: U+000B3 .. SUPERSCRIPT THREE
.. |szlig| unicode:: U+000DF .. LATIN SMALL LETTER SHARP S
.. |THORN| unicode:: U+000DE .. LATIN CAPITAL LETTER THORN
.. |thorn| unicode:: U+000FE .. LATIN SMALL LETTER THORN
.. |times| unicode:: U+000D7 .. MULTIPLICATION SIGN
.. |Uacute| unicode:: U+000DA .. LATIN CAPITAL LETTER U WITH ACUTE
.. |uacute| unicode:: U+000FA .. LATIN SMALL LETTER U WITH ACUTE
.. |Ucirc| unicode:: U+000DB .. LATIN CAPITAL LETTER U WITH CIRCUMFLEX
.. |ucirc| unicode:: U+000FB .. LATIN SMALL LETTER U WITH CIRCUMFLEX
.. |Ugrave| unicode:: U+000D9 .. LATIN CAPITAL LETTER U WITH GRAVE
.. |ugrave| unicode:: U+000F9 .. LATIN SMALL LETTER U WITH GRAVE
.. |uml| unicode:: U+000A8 .. DIAERESIS
.. |Uuml| unicode:: U+000DC .. LATIN CAPITAL LETTER U WITH DIAERESIS
.. |uuml| unicode:: U+000FC .. LATIN SMALL LETTER U WITH DIAERESIS
.. |Yacute| unicode:: U+000DD .. LATIN CAPITAL LETTER Y WITH ACUTE
.. |yacute| unicode:: U+000FD .. LATIN SMALL LETTER Y WITH ACUTE
.. |yen| unicode:: U+000A5 .. YEN SIGN
.. |yuml| unicode:: U+000FF .. LATIN SMALL LETTER Y WITH DIAERESIS

View file

@ -0,0 +1,37 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |bdquo| unicode:: U+0201E .. DOUBLE LOW-9 QUOTATION MARK
.. |circ| unicode:: U+002C6 .. MODIFIER LETTER CIRCUMFLEX ACCENT
.. |Dagger| unicode:: U+02021 .. DOUBLE DAGGER
.. |dagger| unicode:: U+02020 .. DAGGER
.. |emsp| unicode:: U+02003 .. EM SPACE
.. |ensp| unicode:: U+02002 .. EN SPACE
.. |euro| unicode:: U+020AC .. EURO SIGN
.. |gt| unicode:: U+0003E .. GREATER-THAN SIGN
.. |ldquo| unicode:: U+0201C .. LEFT DOUBLE QUOTATION MARK
.. |lrm| unicode:: U+0200E .. LEFT-TO-RIGHT MARK
.. |lsaquo| unicode:: U+02039 .. SINGLE LEFT-POINTING ANGLE QUOTATION MARK
.. |lsquo| unicode:: U+02018 .. LEFT SINGLE QUOTATION MARK
.. |lt| unicode:: U+0003C .. LESS-THAN SIGN
.. |mdash| unicode:: U+02014 .. EM DASH
.. |ndash| unicode:: U+02013 .. EN DASH
.. |OElig| unicode:: U+00152 .. LATIN CAPITAL LIGATURE OE
.. |oelig| unicode:: U+00153 .. LATIN SMALL LIGATURE OE
.. |permil| unicode:: U+02030 .. PER MILLE SIGN
.. |quot| unicode:: U+00022 .. QUOTATION MARK
.. |rdquo| unicode:: U+0201D .. RIGHT DOUBLE QUOTATION MARK
.. |rlm| unicode:: U+0200F .. RIGHT-TO-LEFT MARK
.. |rsaquo| unicode:: U+0203A .. SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
.. |rsquo| unicode:: U+02019 .. RIGHT SINGLE QUOTATION MARK
.. |sbquo| unicode:: U+0201A .. SINGLE LOW-9 QUOTATION MARK
.. |Scaron| unicode:: U+00160 .. LATIN CAPITAL LETTER S WITH CARON
.. |scaron| unicode:: U+00161 .. LATIN SMALL LETTER S WITH CARON
.. |thinsp| unicode:: U+02009 .. THIN SPACE
.. |tilde| unicode:: U+002DC .. SMALL TILDE
.. |Yuml| unicode:: U+00178 .. LATIN CAPITAL LETTER Y WITH DIAERESIS
.. |zwj| unicode:: U+0200D .. ZERO WIDTH JOINER
.. |zwnj| unicode:: U+0200C .. ZERO WIDTH NON-JOINER

View file

@ -0,0 +1,130 @@
.. This data file has been placed in the public domain.
.. Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>.
.. |alefsym| unicode:: U+02135 .. ALEF SYMBOL
.. |Alpha| unicode:: U+00391 .. GREEK CAPITAL LETTER ALPHA
.. |alpha| unicode:: U+003B1 .. GREEK SMALL LETTER ALPHA
.. |and| unicode:: U+02227 .. LOGICAL AND
.. |ang| unicode:: U+02220 .. ANGLE
.. |asymp| unicode:: U+02248 .. ALMOST EQUAL TO
.. |Beta| unicode:: U+00392 .. GREEK CAPITAL LETTER BETA
.. |beta| unicode:: U+003B2 .. GREEK SMALL LETTER BETA
.. |bull| unicode:: U+02022 .. BULLET
.. |cap| unicode:: U+02229 .. INTERSECTION
.. |Chi| unicode:: U+003A7 .. GREEK CAPITAL LETTER CHI
.. |chi| unicode:: U+003C7 .. GREEK SMALL LETTER CHI
.. |clubs| unicode:: U+02663 .. BLACK CLUB SUIT
.. |cong| unicode:: U+02245 .. APPROXIMATELY EQUAL TO
.. |crarr| unicode:: U+021B5 .. DOWNWARDS ARROW WITH CORNER LEFTWARDS
.. |cup| unicode:: U+0222A .. UNION
.. |dArr| unicode:: U+021D3 .. DOWNWARDS DOUBLE ARROW
.. |darr| unicode:: U+02193 .. DOWNWARDS ARROW
.. |Delta| unicode:: U+00394 .. GREEK CAPITAL LETTER DELTA
.. |delta| unicode:: U+003B4 .. GREEK SMALL LETTER DELTA
.. |diams| unicode:: U+02666 .. BLACK DIAMOND SUIT
.. |empty| unicode:: U+02205 .. EMPTY SET
.. |Epsilon| unicode:: U+00395 .. GREEK CAPITAL LETTER EPSILON
.. |epsilon| unicode:: U+003B5 .. GREEK SMALL LETTER EPSILON
.. |equiv| unicode:: U+02261 .. IDENTICAL TO
.. |Eta| unicode:: U+00397 .. GREEK CAPITAL LETTER ETA
.. |eta| unicode:: U+003B7 .. GREEK SMALL LETTER ETA
.. |exist| unicode:: U+02203 .. THERE EXISTS
.. |fnof| unicode:: U+00192 .. LATIN SMALL LETTER F WITH HOOK
.. |forall| unicode:: U+02200 .. FOR ALL
.. |frasl| unicode:: U+02044 .. FRACTION SLASH
.. |Gamma| unicode:: U+00393 .. GREEK CAPITAL LETTER GAMMA
.. |gamma| unicode:: U+003B3 .. GREEK SMALL LETTER GAMMA
.. |ge| unicode:: U+02265 .. GREATER-THAN OR EQUAL TO
.. |hArr| unicode:: U+021D4 .. LEFT RIGHT DOUBLE ARROW
.. |harr| unicode:: U+02194 .. LEFT RIGHT ARROW
.. |hearts| unicode:: U+02665 .. BLACK HEART SUIT
.. |hellip| unicode:: U+02026 .. HORIZONTAL ELLIPSIS
.. |image| unicode:: U+02111 .. BLACK-LETTER CAPITAL I
.. |infin| unicode:: U+0221E .. INFINITY
.. |int| unicode:: U+0222B .. INTEGRAL
.. |Iota| unicode:: U+00399 .. GREEK CAPITAL LETTER IOTA
.. |iota| unicode:: U+003B9 .. GREEK SMALL LETTER IOTA
.. |isin| unicode:: U+02208 .. ELEMENT OF
.. |Kappa| unicode:: U+0039A .. GREEK CAPITAL LETTER KAPPA
.. |kappa| unicode:: U+003BA .. GREEK SMALL LETTER KAPPA
.. |Lambda| unicode:: U+0039B .. GREEK CAPITAL LETTER LAMDA
.. |lambda| unicode:: U+003BB .. GREEK SMALL LETTER LAMDA
.. |lang| unicode:: U+02329 .. LEFT-POINTING ANGLE BRACKET
.. |lArr| unicode:: U+021D0 .. LEFTWARDS DOUBLE ARROW
.. |larr| unicode:: U+02190 .. LEFTWARDS ARROW
.. |lceil| unicode:: U+02308 .. LEFT CEILING
.. |le| unicode:: U+02264 .. LESS-THAN OR EQUAL TO
.. |lfloor| unicode:: U+0230A .. LEFT FLOOR
.. |lowast| unicode:: U+02217 .. ASTERISK OPERATOR
.. |loz| unicode:: U+025CA .. LOZENGE
.. |minus| unicode:: U+02212 .. MINUS SIGN
.. |Mu| unicode:: U+0039C .. GREEK CAPITAL LETTER MU
.. |mu| unicode:: U+003BC .. GREEK SMALL LETTER MU
.. |nabla| unicode:: U+02207 .. NABLA
.. |ne| unicode:: U+02260 .. NOT EQUAL TO
.. |ni| unicode:: U+0220B .. CONTAINS AS MEMBER
.. |notin| unicode:: U+02209 .. NOT AN ELEMENT OF
.. |nsub| unicode:: U+02284 .. NOT A SUBSET OF
.. |Nu| unicode:: U+0039D .. GREEK CAPITAL LETTER NU
.. |nu| unicode:: U+003BD .. GREEK SMALL LETTER NU
.. |oline| unicode:: U+0203E .. OVERLINE
.. |Omega| unicode:: U+003A9 .. GREEK CAPITAL LETTER OMEGA
.. |omega| unicode:: U+003C9 .. GREEK SMALL LETTER OMEGA
.. |Omicron| unicode:: U+0039F .. GREEK CAPITAL LETTER OMICRON
.. |omicron| unicode:: U+003BF .. GREEK SMALL LETTER OMICRON
.. |oplus| unicode:: U+02295 .. CIRCLED PLUS
.. |or| unicode:: U+02228 .. LOGICAL OR
.. |otimes| unicode:: U+02297 .. CIRCLED TIMES
.. |part| unicode:: U+02202 .. PARTIAL DIFFERENTIAL
.. |perp| unicode:: U+022A5 .. UP TACK
.. |Phi| unicode:: U+003A6 .. GREEK CAPITAL LETTER PHI
.. |phi| unicode:: U+003D5 .. GREEK PHI SYMBOL
.. |Pi| unicode:: U+003A0 .. GREEK CAPITAL LETTER PI
.. |pi| unicode:: U+003C0 .. GREEK SMALL LETTER PI
.. |piv| unicode:: U+003D6 .. GREEK PI SYMBOL
.. |Prime| unicode:: U+02033 .. DOUBLE PRIME
.. |prime| unicode:: U+02032 .. PRIME
.. |prod| unicode:: U+0220F .. N-ARY PRODUCT
.. |prop| unicode:: U+0221D .. PROPORTIONAL TO
.. |Psi| unicode:: U+003A8 .. GREEK CAPITAL LETTER PSI
.. |psi| unicode:: U+003C8 .. GREEK SMALL LETTER PSI
.. |radic| unicode:: U+0221A .. SQUARE ROOT
.. |rang| unicode:: U+0232A .. RIGHT-POINTING ANGLE BRACKET
.. |rArr| unicode:: U+021D2 .. RIGHTWARDS DOUBLE ARROW
.. |rarr| unicode:: U+02192 .. RIGHTWARDS ARROW
.. |rceil| unicode:: U+02309 .. RIGHT CEILING
.. |real| unicode:: U+0211C .. BLACK-LETTER CAPITAL R
.. |rfloor| unicode:: U+0230B .. RIGHT FLOOR
.. |Rho| unicode:: U+003A1 .. GREEK CAPITAL LETTER RHO
.. |rho| unicode:: U+003C1 .. GREEK SMALL LETTER RHO
.. |sdot| unicode:: U+022C5 .. DOT OPERATOR
.. |Sigma| unicode:: U+003A3 .. GREEK CAPITAL LETTER SIGMA
.. |sigma| unicode:: U+003C3 .. GREEK SMALL LETTER SIGMA
.. |sigmaf| unicode:: U+003C2 .. GREEK SMALL LETTER FINAL SIGMA
.. |sim| unicode:: U+0223C .. TILDE OPERATOR
.. |spades| unicode:: U+02660 .. BLACK SPADE SUIT
.. |sub| unicode:: U+02282 .. SUBSET OF
.. |sube| unicode:: U+02286 .. SUBSET OF OR EQUAL TO
.. |sum| unicode:: U+02211 .. N-ARY SUMMATION
.. |sup| unicode:: U+02283 .. SUPERSET OF
.. |supe| unicode:: U+02287 .. SUPERSET OF OR EQUAL TO
.. |Tau| unicode:: U+003A4 .. GREEK CAPITAL LETTER TAU
.. |tau| unicode:: U+003C4 .. GREEK SMALL LETTER TAU
.. |there4| unicode:: U+02234 .. THEREFORE
.. |Theta| unicode:: U+00398 .. GREEK CAPITAL LETTER THETA
.. |theta| unicode:: U+003B8 .. GREEK SMALL LETTER THETA
.. |thetasym| unicode:: U+003D1 .. GREEK THETA SYMBOL
.. |trade| unicode:: U+02122 .. TRADE MARK SIGN
.. |uArr| unicode:: U+021D1 .. UPWARDS DOUBLE ARROW
.. |uarr| unicode:: U+02191 .. UPWARDS ARROW
.. |upsih| unicode:: U+003D2 .. GREEK UPSILON WITH HOOK SYMBOL
.. |Upsilon| unicode:: U+003A5 .. GREEK CAPITAL LETTER UPSILON
.. |upsilon| unicode:: U+003C5 .. GREEK SMALL LETTER UPSILON
.. |weierp| unicode:: U+02118 .. SCRIPT CAPITAL P
.. |Xi| unicode:: U+0039E .. GREEK CAPITAL LETTER XI
.. |xi| unicode:: U+003BE .. GREEK SMALL LETTER XI
.. |Zeta| unicode:: U+00396 .. GREEK CAPITAL LETTER ZETA
.. |zeta| unicode:: U+003B6 .. GREEK SMALL LETTER ZETA

View file

@ -0,0 +1,29 @@
# $Id: __init__.py 6423 2010-09-17 21:38:29Z milde $
# Author: David Goodger <goodger@python.org>
# Copyright: This module has been placed in the public domain.
# Internationalization details are documented in
# <http://docutils.sf.net/docs/howto/i18n.html>.
"""
This package contains modules for language-dependent features of
reStructuredText.
"""
__docformat__ = 'reStructuredText'
from docutils.utils import normalize_language_tag
_languages = {}
def get_language(language_code):
for tag in normalize_language_tag(language_code):
if tag in _languages:
return _languages[tag]
try:
module = __import__(tag, globals(), locals())
except ImportError:
continue
_languages[tag] = module
return module
return None

View file

@ -0,0 +1,106 @@
# $Id: af.py 7119 2011-09-02 13:00:23Z milde $
# Author: Jannie Hofmeyr <jhsh@sun.ac.za>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
Afrikaans-language mappings for language-dependent features of
reStructuredText.
"""
__docformat__ = 'reStructuredText'
directives = {
'aandag': 'attention',
'versigtig': 'caution',
'code (translation required)': 'code',
'gevaar': 'danger',
'fout': 'error',
'wenk': 'hint',
'belangrik': 'important',
'nota': 'note',
'tip': 'tip', # hint and tip both have the same translation: wenk
'waarskuwing': 'warning',
'vermaning': 'admonition',
'kantstreep': 'sidebar',
'onderwerp': 'topic',
'lynblok': 'line-block',
'math (translation required)': 'math',
'parsed-literal (translation required)': 'parsed-literal',
'rubriek': 'rubric',
'epigraaf': 'epigraph',
'hoogtepunte': 'highlights',
'pull-quote (translation required)': 'pull-quote',
u'compound (translation required)': 'compound',
u'container (translation required)': 'container',
#'vrae': 'questions',
#'qa': 'questions',
#'faq': 'questions',
'table (translation required)': 'table',
'csv-table (translation required)': 'csv-table',
'list-table (translation required)': 'list-table',
'meta': 'meta',
#'beeldkaart': 'imagemap',
'beeld': 'image',
'figuur': 'figure',
'insluiting': 'include',
'rou': 'raw',
'vervang': 'replace',
'unicode': 'unicode', # should this be translated? unikode
'datum': 'date',
'klas': 'class',
'role (translation required)': 'role',
'default-role (translation required)': 'default-role',
'title (translation required)': 'title',
'inhoud': 'contents',
'sectnum': 'sectnum',
'section-numbering': 'sectnum',
u'header (translation required)': 'header',
u'footer (translation required)': 'footer',
#'voetnote': 'footnotes',
#'aanhalings': 'citations',
'teikennotas': 'target-notes',
'restructuredtext-test-directive': 'restructuredtext-test-directive'}
"""Afrikaans name to registered (in directives/__init__.py) directive name
mapping."""
roles = {
'afkorting': 'abbreviation',
'ab': 'abbreviation',
'akroniem': 'acronym',
'ac': 'acronym',
u'code (translation required)': 'code',
'indeks': 'index',
'i': 'index',
'voetskrif': 'subscript',
'sub': 'subscript',
'boskrif': 'superscript',
'sup': 'superscript',
'titelverwysing': 'title-reference',
'titel': 'title-reference',
't': 'title-reference',
'pep-verwysing': 'pep-reference',
'pep': 'pep-reference',
'rfc-verwysing': 'rfc-reference',
'rfc': 'rfc-reference',
'nadruk': 'emphasis',
'sterk': 'strong',
'literal (translation required)': 'literal',
'math (translation required)': 'math',
'benoemde verwysing': 'named-reference',
'anonieme verwysing': 'anonymous-reference',
'voetnootverwysing': 'footnote-reference',
'aanhalingverwysing': 'citation-reference',
'vervangingsverwysing': 'substitution-reference',
'teiken': 'target',
'uri-verwysing': 'uri-reference',
'uri': 'uri-reference',
'url': 'uri-reference',
'rou': 'raw',}
"""Mapping of Afrikaans role names to canonical role names for interpreted text.
"""

View file

@ -0,0 +1,125 @@
# $Id: ca.py 7119 2011-09-02 13:00:23Z milde $
# Author: Ivan Vilata i Balaguer <ivan@selidor.net>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
Catalan-language mappings for language-dependent features of
reStructuredText.
"""
__docformat__ = 'reStructuredText'
directives = {
# language-dependent: fixed
u'atenci\u00F3': 'attention',
u'compte': 'caution',
u'code (translation required)': 'code',
u'perill': 'danger',
u'error': 'error',
u'suggeriment': 'hint',
u'important': 'important',
u'nota': 'note',
u'consell': 'tip',
u'av\u00EDs': 'warning',
u'advertiment': 'admonition',
u'nota-al-marge': 'sidebar',
u'nota-marge': 'sidebar',
u'tema': 'topic',
u'bloc-de-l\u00EDnies': 'line-block',
u'bloc-l\u00EDnies': 'line-block',
u'literal-analitzat': 'parsed-literal',
u'r\u00FAbrica': 'rubric',
u'ep\u00EDgraf': 'epigraph',
u'sumari': 'highlights',
u'cita-destacada': 'pull-quote',
u'compost': 'compound',
u'container (translation required)': 'container',
#'questions': 'questions',
u'taula': 'table',
u'taula-csv': 'csv-table',
u'taula-llista': 'list-table',
#'qa': 'questions',
#'faq': 'questions',
u'math (translation required)': 'math',
u'meta': 'meta',
#'imagemap': 'imagemap',
u'imatge': 'image',
u'figura': 'figure',
u'inclou': 'include',
u'incloure': 'include',
u'cru': 'raw',
u'reempla\u00E7a': 'replace',
u'reempla\u00E7ar': 'replace',
u'unicode': 'unicode',
u'data': 'date',
u'classe': 'class',
u'rol': 'role',
u'default-role (translation required)': 'default-role',
u'title (translation required)': 'title',
u'contingut': 'contents',
u'numsec': 'sectnum',
u'numeraci\u00F3-de-seccions': 'sectnum',
u'numeraci\u00F3-seccions': 'sectnum',
u'cap\u00E7alera': 'header',
u'peu-de-p\u00E0gina': 'footer',
u'peu-p\u00E0gina': 'footer',
#'footnotes': 'footnotes',
#'citations': 'citations',
u'notes-amb-destinacions': 'target-notes',
u'notes-destinacions': 'target-notes',
u'directiva-de-prova-de-restructuredtext': 'restructuredtext-test-directive'}
"""Catalan name to registered (in directives/__init__.py) directive name
mapping."""
roles = {
# language-dependent: fixed
u'abreviatura': 'abbreviation',
u'abreviaci\u00F3': 'abbreviation',
u'abrev': 'abbreviation',
u'ab': 'abbreviation',
u'acr\u00F2nim': 'acronym',
u'ac': 'acronym',
u'code (translation required)': 'code',
u'\u00EDndex': 'index',
u'i': 'index',
u'sub\u00EDndex': 'subscript',
u'sub': 'subscript',
u'super\u00EDndex': 'superscript',
u'sup': 'superscript',
u'refer\u00E8ncia-a-t\u00EDtol': 'title-reference',
u'refer\u00E8ncia-t\u00EDtol': 'title-reference',
u't\u00EDtol': 'title-reference',
u't': 'title-reference',
u'refer\u00E8ncia-a-pep': 'pep-reference',
u'refer\u00E8ncia-pep': 'pep-reference',
u'pep': 'pep-reference',
u'refer\u00E8ncia-a-rfc': 'rfc-reference',
u'refer\u00E8ncia-rfc': 'rfc-reference',
u'rfc': 'rfc-reference',
u'\u00E8mfasi': 'emphasis',
u'destacat': 'strong',
u'literal': 'literal',
u'math (translation required)': 'math',
u'refer\u00E8ncia-amb-nom': 'named-reference',
u'refer\u00E8ncia-nom': 'named-reference',
u'refer\u00E8ncia-an\u00F2nima': 'anonymous-reference',
u'refer\u00E8ncia-a-nota-al-peu': 'footnote-reference',
u'refer\u00E8ncia-nota-al-peu': 'footnote-reference',
u'refer\u00E8ncia-a-cita': 'citation-reference',
u'refer\u00E8ncia-cita': 'citation-reference',
u'refer\u00E8ncia-a-substituci\u00F3': 'substitution-reference',
u'refer\u00E8ncia-substituci\u00F3': 'substitution-reference',
u'destinaci\u00F3': 'target',
u'refer\u00E8ncia-a-uri': 'uri-reference',
u'refer\u00E8ncia-uri': 'uri-reference',
u'uri': 'uri-reference',
u'url': 'uri-reference',
u'cru': 'raw',}
"""Mapping of Catalan role names to canonical role names for interpreted text.
"""

View file

@ -0,0 +1,108 @@
# $Id: cs.py 7119 2011-09-02 13:00:23Z milde $
# Author: Marek Blaha <mb@dat.cz>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
Czech-language mappings for language-dependent features of
reStructuredText.
"""
__docformat__ = 'reStructuredText'
directives = {
# language-dependent: fixed
u'pozor': 'attention',
u'caution (translation required)': 'caution', # jak rozlisit caution a warning?
u'code (translation required)': 'code',
u'nebezpe\u010D\u00ED': 'danger',
u'chyba': 'error',
u'rada': 'hint',
u'd\u016Fle\u017Eit\u00E9': 'important',
u'pozn\u00E1mka': 'note',
u'tip (translation required)': 'tip',
u'varov\u00E1n\u00ED': 'warning',
u'admonition (translation required)': 'admonition',
u'sidebar (translation required)': 'sidebar',
u't\u00E9ma': 'topic',
u'line-block (translation required)': 'line-block',
u'parsed-literal (translation required)': 'parsed-literal',
u'odd\u00EDl': 'rubric',
u'moto': 'epigraph',
u'highlights (translation required)': 'highlights',
u'pull-quote (translation required)': 'pull-quote',
u'compound (translation required)': 'compound',
u'container (translation required)': 'container',
#'questions': 'questions',
#'qa': 'questions',
#'faq': 'questions',
u'table (translation required)': 'table',
u'csv-table (translation required)': 'csv-table',
u'list-table (translation required)': 'list-table',
u'math (translation required)': 'math',
u'meta (translation required)': 'meta',
#'imagemap': 'imagemap',
u'image (translation required)': 'image', # obrazek
u'figure (translation required)': 'figure', # a tady?
u'include (translation required)': 'include',
u'raw (translation required)': 'raw',
u'replace (translation required)': 'replace',
u'unicode (translation required)': 'unicode',
u'datum': 'date',
u't\u0159\u00EDda': 'class',
u'role (translation required)': 'role',
u'default-role (translation required)': 'default-role',
u'title (translation required)': 'title',
u'obsah': 'contents',
u'sectnum (translation required)': 'sectnum',
u'section-numbering (translation required)': 'sectnum',
u'header (translation required)': 'header',
u'footer (translation required)': 'footer',
#'footnotes': 'footnotes',
#'citations': 'citations',
u'target-notes (translation required)': 'target-notes',
u'restructuredtext-test-directive': 'restructuredtext-test-directive'}
"""Czech name to registered (in directives/__init__.py) directive name
mapping."""
roles = {
# language-dependent: fixed
u'abbreviation (translation required)': 'abbreviation',
u'ab (translation required)': 'abbreviation',
u'acronym (translation required)': 'acronym',
u'ac (translation required)': 'acronym',
u'code (translation required)': 'code',
u'index (translation required)': 'index',
u'i (translation required)': 'index',
u'subscript (translation required)': 'subscript',
u'sub (translation required)': 'subscript',
u'superscript (translation required)': 'superscript',
u'sup (translation required)': 'superscript',
u'title-reference (translation required)': 'title-reference',
u'title (translation required)': 'title-reference',
u't (translation required)': 'title-reference',
u'pep-reference (translation required)': 'pep-reference',
u'pep (translation required)': 'pep-reference',
u'rfc-reference (translation required)': 'rfc-reference',
u'rfc (translation required)': 'rfc-reference',
u'emphasis (translation required)': 'emphasis',
u'strong (translation required)': 'strong',
u'literal (translation required)': 'literal',
u'math (translation required)': 'math',
u'named-reference (translation required)': 'named-reference',
u'anonymous-reference (translation required)': 'anonymous-reference',
u'footnote-reference (translation required)': 'footnote-reference',
u'citation-reference (translation required)': 'citation-reference',
u'substitution-reference (translation required)': 'substitution-reference',
u'target (translation required)': 'target',
u'uri-reference (translation required)': 'uri-reference',
u'uri (translation required)': 'uri-reference',
u'url (translation required)': 'uri-reference',
u'raw (translation required)': 'raw',}
"""Mapping of Czech role names to canonical role names for interpreted text.
"""

View file

@ -0,0 +1,103 @@
# -*- coding: utf-8 -*-
# $Id: de.py 7223 2011-11-21 16:43:06Z milde $
# Authors: Engelbert Gruber <grubert@users.sourceforge.net>;
# Lea Wiemann <LeWiemann@gmail.com>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
German-language mappings for language-dependent features of
reStructuredText.
"""
__docformat__ = 'reStructuredText'
directives = {
'achtung': 'attention',
'vorsicht': 'caution',
'code': 'code',
'gefahr': 'danger',
'fehler': 'error',
'hinweis': 'hint',
'wichtig': 'important',
'notiz': 'note',
'tipp': 'tip',
'warnung': 'warning',
'ermahnung': 'admonition',
'kasten': 'sidebar',
'seitenkasten': 'sidebar',
'thema': 'topic',
'zeilen-block': 'line-block',
'parsed-literal (translation required)': 'parsed-literal',
'rubrik': 'rubric',
'epigraph': 'epigraph',
'highlights (translation required)': 'highlights',
u'pull-quote': 'pull-quote', # commonly used in German too
u'seitenansprache': 'pull-quote', # cf. http://www.typografie.info/2/wiki.php?title=Seitenansprache
'zusammengesetzt': 'compound',
'verbund': 'compound',
u'container': 'container',
#'fragen': 'questions',
'tabelle': 'table',
'csv-tabelle': 'csv-table',
'list-table (translation required)': 'list-table',
u'mathe': 'math',
u'formel': 'math',
'meta': 'meta',
#'imagemap': 'imagemap',
'bild': 'image',
'abbildung': 'figure',
u'unverändert': 'raw',
u'roh': 'raw',
u'einfügen': 'include',
'ersetzung': 'replace',
'ersetzen': 'replace',
'ersetze': 'replace',
'unicode': 'unicode',
'datum': 'date',
'klasse': 'class',
'rolle': 'role',
u'default-role (translation required)': 'default-role',
u'title (translation required)': 'title',
'inhalt': 'contents',
'kapitel-nummerierung': 'sectnum',
'abschnitts-nummerierung': 'sectnum',
u'linkziel-fußfnoten': 'target-notes',
u'header (translation required)': 'header',
u'footer (translation required)': 'footer',
#u'fußfnoten': 'footnotes',
#'zitate': 'citations',
}
"""German name to registered (in directives/__init__.py) directive name
mapping."""
roles = {
u'abkürzung': 'abbreviation',
'akronym': 'acronym',
u'code': 'code',
'index': 'index',
'tiefgestellt': 'subscript',
'hochgestellt': 'superscript',
'titel-referenz': 'title-reference',
'pep-referenz': 'pep-reference',
'rfc-referenz': 'rfc-reference',
'betonung': 'emphasis',
'fett': 'strong',
u'wörtlich': 'literal',
u'mathe': 'math',
'benannte-referenz': 'named-reference',
'unbenannte-referenz': 'anonymous-reference',
u'fußfnoten-referenz': 'footnote-reference',
'zitat-referenz': 'citation-reference',
'ersetzungs-referenz': 'substitution-reference',
'ziel': 'target',
'uri-referenz': 'uri-reference',
u'unverändert': 'raw',
u'roh': 'raw',}
"""Mapping of German role names to canonical role names for interpreted text.
"""

View file

@ -0,0 +1,110 @@
# $Id: en.py 7179 2011-10-15 22:06:45Z milde $
# Author: David Goodger <goodger@python.org>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
English-language mappings for language-dependent features of
reStructuredText.
"""
__docformat__ = 'reStructuredText'
directives = {
# language-dependent: fixed
'attention': 'attention',
'caution': 'caution',
'code': 'code',
'code-block': 'code',
'sourcecode': 'code',
'danger': 'danger',
'error': 'error',
'hint': 'hint',
'important': 'important',
'note': 'note',
'tip': 'tip',
'warning': 'warning',
'admonition': 'admonition',
'sidebar': 'sidebar',
'topic': 'topic',
'line-block': 'line-block',
'parsed-literal': 'parsed-literal',
'rubric': 'rubric',
'epigraph': 'epigraph',
'highlights': 'highlights',
'pull-quote': 'pull-quote',
'compound': 'compound',
'container': 'container',
#'questions': 'questions',
'table': 'table',
'csv-table': 'csv-table',
'list-table': 'list-table',
#'qa': 'questions',
#'faq': 'questions',
'meta': 'meta',
'math': 'math',
#'imagemap': 'imagemap',
'image': 'image',
'figure': 'figure',
'include': 'include',
'raw': 'raw',
'replace': 'replace',
'unicode': 'unicode',
'date': 'date',
'class': 'class',
'role': 'role',
'default-role': 'default-role',
'title': 'title',
'contents': 'contents',
'sectnum': 'sectnum',
'section-numbering': 'sectnum',
'header': 'header',
'footer': 'footer',
#'footnotes': 'footnotes',
#'citations': 'citations',
'target-notes': 'target-notes',
'restructuredtext-test-directive': 'restructuredtext-test-directive'}
"""English name to registered (in directives/__init__.py) directive name
mapping."""
roles = {
# language-dependent: fixed
'abbreviation': 'abbreviation',
'ab': 'abbreviation',
'acronym': 'acronym',
'ac': 'acronym',
'code': 'code',
'index': 'index',
'i': 'index',
'subscript': 'subscript',
'sub': 'subscript',
'superscript': 'superscript',
'sup': 'superscript',
'title-reference': 'title-reference',
'title': 'title-reference',
't': 'title-reference',
'pep-reference': 'pep-reference',
'pep': 'pep-reference',
'rfc-reference': 'rfc-reference',
'rfc': 'rfc-reference',
'emphasis': 'emphasis',
'strong': 'strong',
'literal': 'literal',
'math': 'math',
'named-reference': 'named-reference',
'anonymous-reference': 'anonymous-reference',
'footnote-reference': 'footnote-reference',
'citation-reference': 'citation-reference',
'substitution-reference': 'substitution-reference',
'target': 'target',
'uri-reference': 'uri-reference',
'uri': 'uri-reference',
'url': 'uri-reference',
'raw': 'raw',}
"""Mapping of English role names to canonical role names for interpreted text.
"""

View file

@ -0,0 +1,118 @@
# $Id: eo.py 7119 2011-09-02 13:00:23Z milde $
# Author: Marcelo Huerta San Martin <richieadler@users.sourceforge.net>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
Esperanto-language mappings for language-dependent features of
reStructuredText.
"""
__docformat__ = 'reStructuredText'
directives = {
# language-dependent: fixed
u'atentu': 'attention',
u'zorgu': 'caution',
u'code (translation required)': 'code',
u'dangxero': 'danger',
u'dan\u011dero': 'danger',
u'eraro': 'error',
u'spuro': 'hint',
u'grava': 'important',
u'noto': 'note',
u'helpeto': 'tip',
u'averto': 'warning',
u'admono': 'admonition',
u'flankteksto': 'sidebar',
u'temo': 'topic',
u'linea-bloko': 'line-block',
u'analizota-literalo': 'parsed-literal',
u'rubriko': 'rubric',
u'epigrafo': 'epigraph',
u'elstarajxoj': 'highlights',
u'elstara\u0135oj': 'highlights',
u'ekstera-citajxo': 'pull-quote',
u'ekstera-cita\u0135o': 'pull-quote',
u'kombinajxo': 'compound',
u'kombina\u0135o': 'compound',
u'tekstingo': 'container',
u'enhavilo': 'container',
#'questions': 'questions',
#'qa': 'questions',
#'faq': 'questions',
u'tabelo': 'table',
u'tabelo-vdk': 'csv-table', # "valoroj disigitaj per komoj"
u'tabelo-csv': 'csv-table',
u'tabelo-lista': 'list-table',
u'meta': 'meta',
'math (translation required)': 'math',
#'imagemap': 'imagemap',
u'bildo': 'image',
u'figuro': 'figure',
u'inkludi': 'include',
u'senanaliza': 'raw',
u'anstatauxi': 'replace',
u'anstata\u016di': 'replace',
u'unicode': 'unicode',
u'dato': 'date',
u'klaso': 'class',
u'rolo': 'role',
u'preterlasita-rolo': 'default-role',
u'titolo': 'title',
u'enhavo': 'contents',
u'seknum': 'sectnum',
u'sekcia-numerado': 'sectnum',
u'kapsekcio': 'header',
u'piedsekcio': 'footer',
#'footnotes': 'footnotes',
#'citations': 'citations',
u'celaj-notoj': 'target-notes',
u'restructuredtext-test-directive': 'restructuredtext-test-directive'}
"""Esperanto name to registered (in directives/__init__.py) directive name
mapping."""
roles = {
# language-dependent: fixed
u'mallongigo': 'abbreviation',
u'mall': 'abbreviation',
u'komenclitero': 'acronym',
u'kl': 'acronym',
u'code (translation required)': 'code',
u'indekso': 'index',
u'i': 'index',
u'subskribo': 'subscript',
u'sub': 'subscript',
u'supraskribo': 'superscript',
u'sup': 'superscript',
u'titola-referenco': 'title-reference',
u'titolo': 'title-reference',
u't': 'title-reference',
u'pep-referenco': 'pep-reference',
u'pep': 'pep-reference',
u'rfc-referenco': 'rfc-reference',
u'rfc': 'rfc-reference',
u'emfazo': 'emphasis',
u'forta': 'strong',
u'litera': 'literal',
'math (translation required)': 'math',
u'nomita-referenco': 'named-reference',
u'nenomita-referenco': 'anonymous-reference',
u'piednota-referenco': 'footnote-reference',
u'citajxo-referenco': 'citation-reference',
u'cita\u0135o-referenco': 'citation-reference',
u'anstatauxa-referenco': 'substitution-reference',
u'anstata\u016da-referenco': 'substitution-reference',
u'celo': 'target',
u'uri-referenco': 'uri-reference',
u'uri': 'uri-reference',
u'url': 'uri-reference',
u'senanaliza': 'raw',
}
"""Mapping of Esperanto role names to canonical role names for interpreted text.
"""

View file

@ -0,0 +1,125 @@
# -*- coding: utf-8 -*-
# $Id: es.py 7119 2011-09-02 13:00:23Z milde $
# Author: Marcelo Huerta San Martín <richieadler@users.sourceforge.net>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
Spanish-language mappings for language-dependent features of
reStructuredText.
"""
__docformat__ = 'reStructuredText'
directives = {
u'atenci\u00f3n': 'attention',
u'atencion': 'attention',
u'precauci\u00f3n': 'caution',
u'code (translation required)': 'code',
u'precaucion': 'caution',
u'peligro': 'danger',
u'error': 'error',
u'sugerencia': 'hint',
u'importante': 'important',
u'nota': 'note',
u'consejo': 'tip',
u'advertencia': 'warning',
u'exhortacion': 'admonition',
u'exhortaci\u00f3n': 'admonition',
u'nota-al-margen': 'sidebar',
u'tema': 'topic',
u'bloque-de-lineas': 'line-block',
u'bloque-de-l\u00edneas': 'line-block',
u'literal-evaluado': 'parsed-literal',
u'firma': 'rubric',
u'ep\u00edgrafe': 'epigraph',
u'epigrafe': 'epigraph',
u'destacado': 'highlights',
u'cita-destacada': 'pull-quote',
u'combinacion': 'compound',
u'combinaci\u00f3n': 'compound',
u'contenedor': 'container',
#'questions': 'questions',
#'qa': 'questions',
#'faq': 'questions',
u'tabla': 'table',
u'tabla-vsc': 'csv-table',
u'tabla-csv': 'csv-table',
u'tabla-lista': 'list-table',
u'meta': 'meta',
'math (translation required)': 'math',
#'imagemap': 'imagemap',
u'imagen': 'image',
u'figura': 'figure',
u'incluir': 'include',
u'sin-analisis': 'raw',
u'sin-an\u00e1lisis': 'raw',
u'reemplazar': 'replace',
u'unicode': 'unicode',
u'fecha': 'date',
u'clase': 'class',
u'rol': 'role',
u'rol-por-omision': 'default-role',
u'rol-por-omisi\u00f3n': 'default-role',
u'titulo': 'title',
u't\u00edtulo': 'title',
u'contenido': 'contents',
u'numseccion': 'sectnum',
u'numsecci\u00f3n': 'sectnum',
u'numeracion-seccion': 'sectnum',
u'numeraci\u00f3n-secci\u00f3n': 'sectnum',
u'notas-destino': 'target-notes',
u'cabecera': 'header',
u'pie': 'footer',
#'footnotes': 'footnotes',
#'citations': 'citations',
u'restructuredtext-test-directive': 'restructuredtext-test-directive'}
"""Spanish name to registered (in directives/__init__.py) directive name
mapping."""
roles = {
u'abreviatura': 'abbreviation',
u'ab': 'abbreviation',
u'acronimo': 'acronym',
u'acronimo': 'acronym',
u'ac': 'acronym',
u'code (translation required)': 'code',
u'indice': 'index',
u'i': 'index',
u'subindice': 'subscript',
u'sub\u00edndice': 'subscript',
u'superindice': 'superscript',
u'super\u00edndice': 'superscript',
u'referencia-titulo': 'title-reference',
u'titulo': 'title-reference',
u't': 'title-reference',
u'referencia-pep': 'pep-reference',
u'pep': 'pep-reference',
u'referencia-rfc': 'rfc-reference',
u'rfc': 'rfc-reference',
u'enfasis': 'emphasis',
u'\u00e9nfasis': 'emphasis',
u'destacado': 'strong',
u'literal': 'literal', # "literal" is also a word in Spanish :-)
u'math (translation required)': 'math',
u'referencia-con-nombre': 'named-reference',
u'referencia-anonima': 'anonymous-reference',
u'referencia-an\u00f3nima': 'anonymous-reference',
u'referencia-nota-al-pie': 'footnote-reference',
u'referencia-cita': 'citation-reference',
u'referencia-sustitucion': 'substitution-reference',
u'referencia-sustituci\u00f3n': 'substitution-reference',
u'destino': 'target',
u'referencia-uri': 'uri-reference',
u'uri': 'uri-reference',
u'url': 'uri-reference',
u'sin-analisis': 'raw',
u'sin-an\u00e1lisis': 'raw',
}
"""Mapping of Spanish role names to canonical role names for interpreted text.
"""

View file

@ -0,0 +1,98 @@
# -*- coding: utf-8 -*-
# $Id: fi.py 7119 2011-09-02 13:00:23Z milde $
# Author: Asko Soukka <asko.soukka@iki.fi>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
Finnish-language mappings for language-dependent features of
reStructuredText.
"""
__docformat__ = 'reStructuredText'
directives = {
# language-dependent: fixed
u'huomio': u'attention',
u'varo': u'caution',
u'code (translation required)': 'code',
u'vaara': u'danger',
u'virhe': u'error',
u'vihje': u'hint',
u't\u00e4rke\u00e4\u00e4': u'important',
u'huomautus': u'note',
u'neuvo': u'tip',
u'varoitus': u'warning',
u'kehotus': u'admonition',
u'sivupalkki': u'sidebar',
u'aihe': u'topic',
u'rivi': u'line-block',
u'tasalevyinen': u'parsed-literal',
u'ohje': u'rubric',
u'epigraafi': u'epigraph',
u'kohokohdat': u'highlights',
u'lainaus': u'pull-quote',
u'taulukko': u'table',
u'csv-taulukko': u'csv-table',
u'list-table (translation required)': 'list-table',
u'compound (translation required)': 'compound',
u'container (translation required)': 'container',
#u'kysymykset': u'questions',
u'meta': u'meta',
'math (translation required)': 'math',
#u'kuvakartta': u'imagemap',
u'kuva': u'image',
u'kaavio': u'figure',
u'sis\u00e4llyt\u00e4': u'include',
u'raaka': u'raw',
u'korvaa': u'replace',
u'unicode': u'unicode',
u'p\u00e4iv\u00e4ys': u'date',
u'luokka': u'class',
u'rooli': u'role',
u'default-role (translation required)': 'default-role',
u'title (translation required)': 'title',
u'sis\u00e4llys': u'contents',
u'kappale': u'sectnum',
u'header (translation required)': 'header',
u'footer (translation required)': 'footer',
#u'alaviitteet': u'footnotes',
#u'viitaukset': u'citations',
u'target-notes (translation required)': u'target-notes'}
"""Finnish name to registered (in directives/__init__.py) directive name
mapping."""
roles = {
# language-dependent: fixed
u'lyhennys': u'abbreviation',
u'akronyymi': u'acronym',
u'kirjainsana': u'acronym',
u'code (translation required)': 'code',
u'hakemisto': u'index',
u'luettelo': u'index',
u'alaindeksi': u'subscript',
u'indeksi': u'subscript',
u'yl\u00e4indeksi': u'superscript',
u'title-reference (translation required)': u'title-reference',
u'title (translation required)': u'title-reference',
u'pep-reference (translation required)': u'pep-reference',
u'rfc-reference (translation required)': u'rfc-reference',
u'korostus': u'emphasis',
u'vahvistus': u'strong',
u'tasalevyinen': u'literal',
'math (translation required)': 'math',
u'named-reference (translation required)': u'named-reference',
u'anonymous-reference (translation required)': u'anonymous-reference',
u'footnote-reference (translation required)': u'footnote-reference',
u'citation-reference (translation required)': u'citation-reference',
u'substitution-reference (translation required)': u'substitution-reference',
u'kohde': u'target',
u'uri-reference (translation required)': u'uri-reference',
u'raw (translation required)': 'raw',}
"""Mapping of Finnish role names to canonical role names for interpreted text.
"""

View file

@ -0,0 +1,103 @@
# $Id: fr.py 7119 2011-09-02 13:00:23Z milde $
# Authors: David Goodger <goodger@python.org>; William Dode
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
French-language mappings for language-dependent features of
reStructuredText.
"""
__docformat__ = 'reStructuredText'
directives = {
u'attention': 'attention',
u'pr\u00E9caution': 'caution',
u'code': 'code',
u'danger': 'danger',
u'erreur': 'error',
u'conseil': 'hint',
u'important': 'important',
u'note': 'note',
u'astuce': 'tip',
u'avertissement': 'warning',
u'admonition': 'admonition',
u'encadr\u00E9': 'sidebar',
u'sujet': 'topic',
u'bloc-textuel': 'line-block',
u'bloc-interpr\u00E9t\u00E9': 'parsed-literal',
u'code-interpr\u00E9t\u00E9': 'parsed-literal',
u'intertitre': 'rubric',
u'exergue': 'epigraph',
u'\u00E9pigraphe': 'epigraph',
u'chapeau': 'highlights',
u'accroche': 'pull-quote',
u'compound (translation required)': 'compound',
u'container (translation required)': 'container',
#u'questions': 'questions',
#u'qr': 'questions',
#u'faq': 'questions',
u'tableau': 'table',
u'csv-table (translation required)': 'csv-table',
u'list-table (translation required)': 'list-table',
u'm\u00E9ta': 'meta',
'math (translation required)': 'math',
#u'imagemap (translation required)': 'imagemap',
u'image': 'image',
u'figure': 'figure',
u'inclure': 'include',
u'brut': 'raw',
u'remplacer': 'replace',
u'remplace': 'replace',
u'unicode': 'unicode',
u'date': 'date',
u'classe': 'class',
u'role (translation required)': 'role',
u'default-role (translation required)': 'default-role',
u'titre (translation required)': 'title',
u'sommaire': 'contents',
u'table-des-mati\u00E8res': 'contents',
u'sectnum': 'sectnum',
u'section-num\u00E9rot\u00E9e': 'sectnum',
u'liens': 'target-notes',
u'header (translation required)': 'header',
u'footer (translation required)': 'footer',
#u'footnotes (translation required)': 'footnotes',
#u'citations (translation required)': 'citations',
}
"""French name to registered (in directives/__init__.py) directive name
mapping."""
roles = {
u'abr\u00E9viation': 'abbreviation',
u'acronyme': 'acronym',
u'sigle': 'acronym',
u'code': 'code',
u'index': 'index',
u'indice': 'subscript',
u'ind': 'subscript',
u'exposant': 'superscript',
u'exp': 'superscript',
u'titre-r\u00E9f\u00E9rence': 'title-reference',
u'titre': 'title-reference',
u'pep-r\u00E9f\u00E9rence': 'pep-reference',
u'rfc-r\u00E9f\u00E9rence': 'rfc-reference',
u'emphase': 'emphasis',
u'fort': 'strong',
u'litt\u00E9ral': 'literal',
'math (translation required)': 'math',
u'nomm\u00E9e-r\u00E9f\u00E9rence': 'named-reference',
u'anonyme-r\u00E9f\u00E9rence': 'anonymous-reference',
u'note-r\u00E9f\u00E9rence': 'footnote-reference',
u'citation-r\u00E9f\u00E9rence': 'citation-reference',
u'substitution-r\u00E9f\u00E9rence': 'substitution-reference',
u'lien': 'target',
u'uri-r\u00E9f\u00E9rence': 'uri-reference',
u'brut': 'raw',}
"""Mapping of French role names to canonical role names for interpreted text.
"""

View file

@ -0,0 +1,111 @@
# -*- coding: utf-8 -*-
# Author: David Goodger
# Contact: goodger@users.sourceforge.net
# Revision: $Revision: 4229 $
# Date: $Date: 2005-12-23 00:46:16 +0100 (Fri, 23 Dec 2005) $
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
Galician-language mappings for language-dependent features of
reStructuredText.
"""
__docformat__ = 'reStructuredText'
directives = {
# language-dependent: fixed
u'atenci\u00f3n': 'attention',
u'advertencia': 'caution',
u'code (translation required)': 'code',
u'perigo': 'danger',
u'erro': 'error',
u'pista': 'hint',
u'importante': 'important',
u'nota': 'note',
u'consello': 'tip',
u'aviso': 'warning',
u'admonici\u00f3n': 'admonition',
u'barra lateral': 'sidebar',
u't\u00f3pico': 'topic',
u'bloque-li\u00f1a': 'line-block',
u'literal-analizado': 'parsed-literal',
u'r\u00fabrica': 'rubric',
u'ep\u00edgrafe': 'epigraph',
u'realzados': 'highlights',
u'coller-citaci\u00f3n': 'pull-quote',
u'compor': 'compound',
u'recipiente': 'container',
#'questions': 'questions',
u't\u00e1boa': 'table',
u't\u00e1boa-csv': 'csv-table',
u't\u00e1boa-listaxe': 'list-table',
#'qa': 'questions',
#'faq': 'questions',
u'meta': 'meta',
'math (translation required)': 'math',
#'imagemap': 'imagemap',
u'imaxe': 'image',
u'figura': 'figure',
u'inclu\u00edr': 'include',
u'cru': 'raw',
u'substitu\u00edr': 'replace',
u'unicode': 'unicode',
u'data': 'date',
u'clase': 'class',
u'regra': 'role',
u'regra-predeterminada': 'default-role',
u't\u00edtulo': 'title',
u'contido': 'contents',
u'seccnum': 'sectnum',
u'secci\u00f3n-numerar': 'sectnum',
u'cabeceira': 'header',
u'p\u00e9 de p\u00e1xina': 'footer',
#'footnotes': 'footnotes',
#'citations': 'citations',
u'notas-destino': 'target-notes',
u'texto restruturado-proba-directiva': 'restructuredtext-test-directive'}
"""Galician name to registered (in directives/__init__.py) directive name
mapping."""
roles = {
# language-dependent: fixed
u'abreviatura': 'abbreviation',
u'ab': 'abbreviation',
u'acr\u00f3nimo': 'acronym',
u'ac': 'acronym',
u'code (translation required)': 'code',
u'\u00edndice': 'index',
u'i': 'index',
u'sub\u00edndice': 'subscript',
u'sub': 'subscript',
u'super\u00edndice': 'superscript',
u'sup': 'superscript',
u'referencia t\u00edtulo': 'title-reference',
u't\u00edtulo': 'title-reference',
u't': 'title-reference',
u'referencia-pep': 'pep-reference',
u'pep': 'pep-reference',
u'referencia-rfc': 'rfc-reference',
u'rfc': 'rfc-reference',
u'\u00e9nfase': 'emphasis',
u'forte': 'strong',
u'literal': 'literal',
'math (translation required)': 'math',
u'referencia-nome': 'named-reference',
u'referencia-an\u00f3nimo': 'anonymous-reference',
u'referencia-nota ao p\u00e9': 'footnote-reference',
u'referencia-citaci\u00f3n': 'citation-reference',
u'referencia-substituci\u00f3n': 'substitution-reference',
u'destino': 'target',
u'referencia-uri': 'uri-reference',
u'uri': 'uri-reference',
u'url': 'uri-reference',
u'cru': 'raw',}
"""Mapping of Galician role names to canonical role names for interpreted text.
"""

View file

@ -0,0 +1,108 @@
# Author: Meir Kriheli
# Id: $Id: he.py 7119 2011-09-02 13:00:23Z milde $
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
English-language mappings for language-dependent features of
reStructuredText.
"""
__docformat__ = 'reStructuredText'
directives = {
# language-dependent: fixed
u'\u05ea\u05e9\u05d5\u05de\u05ea \u05dc\u05d1': 'attention',
u'\u05d6\u05d4\u05d9\u05e8\u05d5\u05ea': 'caution',
u'code (translation required)': 'code',
u'\u05e1\u05db\u05e0\u05d4': 'danger',
u'\u05e9\u05d2\u05d9\u05d0\u05d4' : 'error',
u'\u05e8\u05de\u05d6': 'hint',
u'\u05d7\u05e9\u05d5\u05d1': 'important',
u'\u05d4\u05e2\u05e8\u05d4': 'note',
u'\u05d8\u05d9\u05e4': 'tip',
u'\u05d0\u05d6\u05d4\u05e8\u05d4': 'warning',
'admonition': 'admonition',
'sidebar': 'sidebar',
'topic': 'topic',
'line-block': 'line-block',
'parsed-literal': 'parsed-literal',
'rubric': 'rubric',
'epigraph': 'epigraph',
'highlights': 'highlights',
'pull-quote': 'pull-quote',
'compound': 'compound',
'container': 'container',
#'questions': 'questions',
'table': 'table',
'csv-table': 'csv-table',
'list-table': 'list-table',
#'qa': 'questions',
#'faq': 'questions',
'meta': 'meta',
'math (translation required)': 'math',
#'imagemap': 'imagemap',
u'\u05ea\u05de\u05d5\u05e0\u05d4': 'image',
'figure': 'figure',
'include': 'include',
'raw': 'raw',
'replace': 'replace',
'unicode': 'unicode',
'date': 'date',
u'\u05e1\u05d2\u05e0\u05d5\u05df': 'class',
'role': 'role',
'default-role': 'default-role',
'title': 'title',
u'\u05ea\u05d5\u05db\u05df': 'contents',
'sectnum': 'sectnum',
'section-numbering': 'sectnum',
'header': 'header',
'footer': 'footer',
#'footnotes': 'footnotes',
#'citations': 'citations',
'target-notes': 'target-notes',
'restructuredtext-test-directive': 'restructuredtext-test-directive'}
"""English name to registered (in directives/__init__.py) directive name
mapping."""
roles = {
# language-dependent: fixed
'abbreviation': 'abbreviation',
'ab': 'abbreviation',
'acronym': 'acronym',
'ac': 'acronym',
u'code (translation required)': 'code',
'index': 'index',
'i': 'index',
u'\u05ea\u05d7\u05ea\u05d9': 'subscript',
'sub': 'subscript',
u'\u05e2\u05d9\u05dc\u05d9': 'superscript',
'sup': 'superscript',
'title-reference': 'title-reference',
'title': 'title-reference',
't': 'title-reference',
'pep-reference': 'pep-reference',
'pep': 'pep-reference',
'rfc-reference': 'rfc-reference',
'rfc': 'rfc-reference',
'emphasis': 'emphasis',
'strong': 'strong',
'literal': 'literal',
'math (translation required)': 'math',
'named-reference': 'named-reference',
'anonymous-reference': 'anonymous-reference',
'footnote-reference': 'footnote-reference',
'citation-reference': 'citation-reference',
'substitution-reference': 'substitution-reference',
'target': 'target',
'uri-reference': 'uri-reference',
'uri': 'uri-reference',
'url': 'uri-reference',
'raw': 'raw',}
"""Mapping of English role names to canonical role names for interpreted text.
"""

View file

@ -0,0 +1,97 @@
# $Id: it.py 7119 2011-09-02 13:00:23Z milde $
# Authors: Nicola Larosa <docutils@tekNico.net>;
# Lele Gaifax <lele@seldati.it>
# Copyright: This module has been placed in the public domain.
# Beware: the italian translation of the reStructuredText documentation
# at http://docit.bice.dyndns.org/static/ReST, in particular
# http://docit.bice.dyndns.org/static/ReST/ref/rst/directives.html, needs
# to be synced with the content of this file.
"""
Italian-language mappings for language-dependent features of
reStructuredText.
"""
__docformat__ = 'reStructuredText'
directives = {
'attenzione': 'attention',
'cautela': 'caution',
'code (translation required)': 'code',
'pericolo': 'danger',
'errore': 'error',
'suggerimento': 'hint',
'importante': 'important',
'nota': 'note',
'consiglio': 'tip',
'avvertenza': 'warning',
'ammonizione': 'admonition',
'riquadro': 'sidebar',
'argomento': 'topic',
'blocco-di-righe': 'line-block',
'blocco-interpretato': 'parsed-literal',
'rubrica': 'rubric',
'epigrafe': 'epigraph',
'punti-salienti': 'highlights',
'estratto-evidenziato': 'pull-quote',
'composito': 'compound',
u'container (translation required)': 'container',
#'questions': 'questions',
#'qa': 'questions',
#'faq': 'questions',
'tabella': 'table',
'tabella-csv': 'csv-table',
'tabella-elenco': 'list-table',
'meta': 'meta',
'math (translation required)': 'math',
#'imagemap': 'imagemap',
'immagine': 'image',
'figura': 'figure',
'includi': 'include',
'grezzo': 'raw',
'sostituisci': 'replace',
'unicode': 'unicode',
'data': 'date',
'classe': 'class',
'ruolo': 'role',
'ruolo-predefinito': 'default-role',
'titolo': 'title',
'indice': 'contents',
'contenuti': 'contents',
'seznum': 'sectnum',
'sezioni-autonumerate': 'sectnum',
'annota-riferimenti-esterni': 'target-notes',
'intestazione': 'header',
'piede-pagina': 'footer',
#'footnotes': 'footnotes',
#'citations': 'citations',
'restructuredtext-test-directive': 'restructuredtext-test-directive'}
"""Italian name to registered (in directives/__init__.py) directive name
mapping."""
roles = {
'abbreviazione': 'abbreviation',
'acronimo': 'acronym',
u'code (translation required)': 'code',
'indice': 'index',
'deponente': 'subscript',
'esponente': 'superscript',
'riferimento-titolo': 'title-reference',
'riferimento-pep': 'pep-reference',
'riferimento-rfc': 'rfc-reference',
'enfasi': 'emphasis',
'forte': 'strong',
'letterale': 'literal',
'math (translation required)': 'math',
'riferimento-con-nome': 'named-reference',
'riferimento-anonimo': 'anonymous-reference',
'riferimento-nota': 'footnote-reference',
'riferimento-citazione': 'citation-reference',
'riferimento-sostituzione': 'substitution-reference',
'destinazione': 'target',
'riferimento-uri': 'uri-reference',
'grezzo': 'raw',}
"""Mapping of Italian role names to canonical role names for interpreted text.
"""

View file

@ -0,0 +1,119 @@
# -*- coding: utf-8 -*-
# $Id: ja.py 7119 2011-09-02 13:00:23Z milde $
# Author: David Goodger <goodger@python.org>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
Japanese-language mappings for language-dependent features of
reStructuredText.
"""
__docformat__ = 'reStructuredText'
# Corrections to these translations are welcome!
# 間違いがあれば、どうぞ正しい翻訳を教えて下さい。
directives = {
# language-dependent: fixed
u'注目': 'attention',
u'注意': 'caution',
u'code (translation required)': 'code',
u'危険': 'danger',
u'エラー': 'error',
u'ヒント': 'hint',
u'重要': 'important',
u'備考': 'note',
u'通報': 'tip',
u'警告': 'warning',
u'戒告': 'admonition',
u'サイドバー': 'sidebar',
u'トピック': 'topic',
u'ラインブロック': 'line-block',
u'パーズドリテラル': 'parsed-literal',
u'ルブリック': 'rubric',
u'エピグラフ': 'epigraph',
u'題言': 'epigraph',
u'ハイライト': 'highlights',
u'見所': 'highlights',
u'プルクオート': 'pull-quote',
u'合成': 'compound',
u'コンテナー': 'container',
u'容器': 'container',
u'': 'table',
u'csv表': 'csv-table',
u'リスト表': 'list-table',
#u'質問': 'questions',
#u'問答': 'questions',
#u'faq': 'questions',
u'math (translation required)': 'math',
u'メタ': 'meta',
#u'イメージマプ': 'imagemap',
u'イメージ': 'image',
u'画像': 'image',
u'フィグア': 'figure',
u'図版': 'figure',
u'インクルード': 'include',
u'含む': 'include',
u'組み込み': 'include',
u'': 'raw',
u'': 'raw',
u'換える': 'replace',
u'取り換える': 'replace',
u'掛け替える': 'replace',
u'ユニコード': 'unicode',
u'日付': 'date',
u'クラス': 'class',
u'ロール': 'role',
u'': 'role',
u'ディフォルトロール': 'default-role',
u'既定役': 'default-role',
u'タイトル': 'title',
u'': 'title', # 題名 件名
u'目次': 'contents',
u'節数': 'sectnum',
u'ヘッダ': 'header',
u'フッタ': 'footer',
#u'脚注': 'footnotes', # 脚註?
#u'サイテーション': 'citations',   # 出典 引証 引用
u'ターゲットノート': 'target-notes', # 的注 的脚注
}
"""Japanese name to registered (in directives/__init__.py) directive name
mapping."""
roles = {
# language-dependent: fixed
u'': 'abbreviation',
u'頭字語': 'acronym',
u'code (translation required)': 'code',
u'インデックス': 'index',
u'索引': 'index',
u'添字': 'subscript',
u'下付': 'subscript',
u'': 'subscript',
u'上付': 'superscript',
u'': 'superscript',
u'題参照': 'title-reference',
u'pep参照': 'pep-reference',
u'rfc参照': 'rfc-reference',
u'強調': 'emphasis',
u'強い': 'strong',
u'リテラル': 'literal',
u'整形済み': 'literal',
u'math (translation required)': 'math',
u'名付参照': 'named-reference',
u'無名参照': 'anonymous-reference',
u'脚注参照': 'footnote-reference',
u'出典参照': 'citation-reference',
u'代入参照': 'substitution-reference',
u'': 'target',
u'uri参照': 'uri-reference',
u'uri': 'uri-reference',
u'url': 'uri-reference',
u'': 'raw',}
"""Mapping of Japanese role names to canonical role names for interpreted
text."""

View file

@ -0,0 +1,109 @@
# -*- coding: utf8 -*-
# $Id: lt.py 7119 2011-09-02 13:00:23Z milde $
# Author: Dalius Dobravolskas <dalius.do...@gmail.com>
# Copyright: This module has been placed in the public domain.
# New language mappings are welcome. Before doing a new translation, please
# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
# translated for each language: one in docutils/languages, the other in
# docutils/parsers/rst/languages.
"""
Lithuanian-language mappings for language-dependent features of
reStructuredText.
"""
__docformat__ = 'reStructuredText'
directives = {
# language-dependent: fixed
u'dėmesio': 'attention',
u'atsargiai': 'caution',
u'code (translation required)': 'code',
u'pavojinga': 'danger',
u'klaida': 'error',
u'užuomina': 'hint',
u'svarbu': 'important',
u'pastaba': 'note',
u'patarimas': 'tip',
u'įspėjimas': 'warning',
u'perspėjimas': 'admonition',
u'šoninė-juosta': 'sidebar',
u'tema': 'topic',
u'linijinis-blokas': 'line-block',
u'išanalizuotas-literalas': 'parsed-literal',
u'rubrika': 'rubric',
u'epigrafas': 'epigraph',
u'pagridiniai-momentai': 'highlights',
u'atitraukta-citata': 'pull-quote',
u'sudėtinis-darinys': 'compound',
u'konteineris': 'container',
#'questions': 'questions',
u'lentelė': 'table',
u'csv-lentelė': 'csv-table',
u'sąrašo-lentelė': 'list-table',
#'qa': 'questions',
#'faq': 'questions',
u'meta': 'meta',
u'matematika': 'math',
#'imagemap': 'imagemap',
u'paveiksliukas': 'image',
u'iliustracija': 'figure',
u'pridėti': 'include',
u'žalia': 'raw',
u'pakeisti': 'replace',
u'unikodas': 'unicode',
u'data': 'date',
u'klasė': 'class',
u'rolė': 'role',
u'numatytoji-rolė': 'default-role',
u'titulas': 'title',
u'turinys': 'contents',
u'seknum': 'sectnum',
u'sekcijos-numeravimas': 'sectnum',
u'antraštė': 'header',
u'poraštė': 'footer',
#'footnotes': 'footnotes',
#'citations': 'citations',
u'nutaikytos-pastaba': 'target-notes',
u'restructuredtext-testinė-direktyva': 'restructuredtext-test-directive'}
"""Lithuanian name to registered (in directives/__init__.py) directive name
mapping."""
roles = {
# language-dependent: fixed
'santrumpa': 'abbreviation',
'sa': 'abbreviation',
'akronimas': 'acronym',
'ak': 'acronym',
u'code (translation required)': 'code',
'indeksas': 'index',
'i': 'index',
u'apatinis-indeksas': 'subscript',
'sub': 'subscript',
u'viršutinis-indeksas': 'superscript',
'sup': 'superscript',
u'antrašės-nuoroda': 'title-reference',
u'antraštė': 'title-reference',
'a': 'title-reference',
'pep-nuoroda': 'pep-reference',
'pep': 'pep-reference',
'rfc-nuoroda': 'rfc-reference',
'rfc': 'rfc-reference',
u'paryškinimas': 'emphasis',
u'sustiprintas': 'strong',
u'literalas': 'literal',
u'matematika': 'math',
u'vardinė-nuoroda': 'named-reference',
u'anoniminė-nuoroda': 'anonymous-reference',
u'išnašos-nuoroda': 'footnote-reference',
u'citatos-nuoroda': 'citation-reference',
u'pakeitimo-nuoroda': 'substitution-reference',
u'taikinys': 'target',
u'uri-nuoroda': 'uri-reference',
'uri': 'uri-reference',
'url': 'uri-reference',
'žalia': 'raw',}
"""Mapping of English role names to canonical role names for interpreted text.
"""

Some files were not shown because too many files have changed in this diff Show more