* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author Lars Gullik Bjønnes
+ * \author Lars Gullik Bjønnes
* \author Jean-Marc Lasgouttes
*
* Full author contact details are available in file CREDITS.
namespace support { class FileName; }
+class Buffer;
class LaTeXFeatures;
class EncodingException : public std::exception {
* LaTeX macro is known, a warning is given of lyxerr, and the
* character is returned.
*/
- docstring latexChar(char_type c, bool for_mathed = false) const;
+ docstring latexChar(char_type c, bool no_commands = false) const;
/// Which LaTeX package handles this encoding?
Package package() const { return package_; }
/// A list of all characters usable in this encoding
static bool isKnownScriptChar(char_type const c, std::string & preamble);
/**
* Do we have to output this character as LaTeX command in any case?
- * This is true if the "forced" flag is set.
+ * This is true if the "force" flag is set.
* We need this if the inputencoding does not support a certain glyph.
*/
static bool isForced(char_type c);
+ /**
+ * Do we have to display in italics this character when in mathmode?
+ * This is true if the "mathalpha" flag is set. We use this for
+ * letters and accented characters that are output as math commands.
+ */
+ static bool isMathAlpha(char_type c);
/**
* Register \p c as a mathmode command.
*/
/**
* Initialize mathcmd, textcmd, and mathsym sets.
*/
- static void initMathAndTextSets() { mathcmd.clear(); textcmd.clear(); mathsym.clear(); }
+ 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.
* 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, bool & combining);
+ 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
+ * 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, docstring & rem);
+ static docstring fromLaTeXCommand(docstring const & cmd, int cmdtype,
+ docstring & rem, std::set<std::string> * req = 0);
/**
* Add the preamble snippet needed for the output of \p c to
* \p features.