+ static bool isMathAlpha(char_type c);
+ /**
+ * Register \p c as a mathmode command.
+ */
+ static void addMathCmd(char_type c) { mathcmd.insert(c); }
+ /**
+ * Register \p c as a textmode command.
+ */
+ static void addTextCmd(char_type c) { textcmd.insert(c); }
+ /**
+ * Register \p c as a mathmode symbol.
+ */
+ static void addMathSym(char_type c) { mathsym.insert(c); }
+ /**
+ * Tell whether \p c is registered as a mathmode command.
+ */
+ static bool isMathCmd(char_type c) { return mathcmd.count(c); }
+ /**
+ * Tell whether \p c is registered as a textmode command.
+ */
+ static bool isTextCmd(char_type c) { return textcmd.count(c); }
+ /**
+ * Tell whether \p c is registered as a mathmode symbol.
+ */
+ static bool isMathSym(char_type c) { return mathsym.count(c); }
+ /**
+ * Initialize mathcmd, textcmd, and mathsym sets.
+ */
+ static void initUnicodeMath(Buffer const & buffer, bool for_master = true);
+ /**
+ * If \p c cannot be encoded in the given \p encoding, convert
+ * it to something that LaTeX can understand in mathmode.
+ * \return whether \p command is a mathmode command
+ */
+ static bool latexMathChar(char_type c, bool mathmode,
+ Encoding const * encoding, docstring & command);