/UnicodeMath

Plugin for Sublime for inserting unicode math symbols and emoji

Primary LanguagePython

UnicodeMath

Package Control Join the chat at https://gitter.im/UnicodeMath/UnicodeMath PayPal Flattr this git repo

Plugin for Sublime for inserting unicode math symbols

Installation

Install via PackageControl or git clone in your Packages directory (Select Preferences → Browse Packages... to open right packages directory).

Usage

Input

Input backslash and name of unicode symbol (for example \forall) then insert space and text will be automatically converted to ∀
To insert space use shift+space
You can disable conversion on space by setting convert_on_space to false.

Emoji

Emoji's names starts with colon (:)

Emoji

Special

There are also special way to convert subscripts and superscripts with several symbols, just input several symbols after \_ or \^:

S\^1+2k → S¹⁺²ᵏ
S\_1+2k → S₁₊₂ₖ

Script

You can also convert list of chars with special prefix via \\prefix\abc, which will be equivalent to \prefixa \prefixb and \prefixc, for example:

\\Bbb\ABCabc → 𝔸𝔹ℂ𝕒𝕓𝕔

Hex-code

Hex-code of unicode symbol can be also used in one of these formats:

\u12ba
\U0001d7be
\U+1F1D1

To explicitly convert (or convert back) use commands UnicodeMath: Convert, UnicodeMath: Convert Back, UnicodeMath: Convert Back (Code). Selection convert is also available:

SelectionConvert

To select symbols from list, use command UnicodeMath: Insert

Instant conversion

Instant conversion allows eager conversion of symbols in the following situations:

  1. When \name is typed, there is a symbol called name, and no other symbol starts with name;
  2. When \nameX is typed (for X any character), there is a symbol called name, but none that starts with nameX.

The intent is to remove control keystrokes and get the same result as when typing LaTeX code; for instance typing \delta \subseteq \pi(f) with instant conversion enabled will input δ ⊆ π(f).

When using instant conversion it is recommended to disable accept_prefixes. convert_on_space can also be disabled to make a space after a symbol name use case 2 above instead of activating the conversion command.

Settings

You can add custom symbols into symbol-table in UnicodeMath settings (Preferences → Package Settings → UnicodeMath → Settings — User or command "Preferences: UnicodeMath Settings — User")

(Note: don't use characters fom word_separators, see #19 issue for details)

	"symbols": {
		"mysymbol": "\u0021",
		"myothersymbol": "\u2080",
		"shortcode": "\\u0021", // code within string
		"longcode": "\\U00000021",
		"pluscode": "\\U+12345",
		"manycodes": "\\U+12345\\u0020",
		"codes-and-text": "Foo\\U+12345"
	}

Synonyms for existing symbols can also be set:

	"synonyms": {
		"mys": "mysymbol"
	}

Now \mys will insert the same symbol as \mysymbol.

Disable plugin for specific syntaxes (most common and default is 'latex'):

	"ignore_syntax": ["latex"]

Enable (default) or disable converting hex-codes:

	"convert_codes": true

Enable (default) or disable converting multichar sub- and superscripts:

	"convert_sub_super": true

Enable (default) or disable converting list of chars with prefix:

	"convert_list": true

Enable or disable (default) instant conversion:

	"convert_instantly": true

Enable or disable (default) treating a non-ambiguous prefix of a symbol name as the full name:

	"accept_prefixes": true

Font settings

I prefer using Lucida Sans Unicode, it contains many unicode symbols.

	"font_face": "Lucida Sans Unicode"

I also recommend to set directwrite font option on Windows to allow font-substitution for unknown unicode symbols

	"font_options": ["directwrite"]

Symbols table

You can see all predefined emoji, symbols and synonyms