+ 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);
+ /**
+ * Convert the LaTeX command in \p cmd to the corresponding unicode
+ * point and set \p combining to true if it is a combining symbol
+ */
+ static char_type fromLaTeXCommand(docstring const & cmd, int cmdtype,
+ bool & combining, std::set<std::string> * req = 0);
+ ///
+ enum LatexCmd {
+ ///
+ MATH_CMD = 1,
+ ///
+ TEXT_CMD = 2
+ };
+ /**
+ * Convert the LaTeX commands in \p cmd and \return a docstring
+ * of corresponding unicode points. The conversion stops at the
+ * first command which could not be converted, and the remaining
+ * unconverted commands are returned in \p rem.
+ * The \p cmdtype parameter can be used to limit recognized
+ * commands to math or text mode commands only.
+ */
+ static docstring fromLaTeXCommand(docstring const & cmd, int cmdtype,
+ docstring & rem, std::set<std::string> * req = 0);