X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FEncoding.h;h=704e3ed6113afdfd6fc8b1f0b92b6685c2e24864;hb=2455bc258f3b62c29ec4a41cb88070ff8518e842;hp=83fe2ca552654f8ea6a0eaf5b9d1e1c8bed00eb6;hpb=a694de895effa49df79cb9b2fd00d6dce03fd0b2;p=lyx.git diff --git a/src/Encoding.h b/src/Encoding.h index 83fe2ca552..704e3ed611 100644 --- a/src/Encoding.h +++ b/src/Encoding.h @@ -51,7 +51,8 @@ public: Encoding() {} /// Encoding(std::string const & n, std::string const & l, - std::string const & i, bool f, Package p); + std::string const & g, std::string const & i, + bool f, Package p); /// void init() const; /// @@ -59,11 +60,15 @@ public: /// std::string const & latexName() const { return latexName_; } /// + std::string const & guiName() const { return guiName_; } + /// std::string const & iconvName() const { return iconvName_; } + /// + bool const & hasFixedWidth() const { return fixedwidth_; } /** * Convert \p c to something that LaTeX can understand. * This is either the character itself (if it is representable - * in this encoding and \p for_mathed is false), or a LaTeX macro. + * in this encoding), or a LaTeX macro. * If the character is not representable in this encoding, but no * LaTeX macro is known, a warning is given of lyxerr, and the * character is returned. @@ -79,6 +84,8 @@ private: /// std::string latexName_; /// + std::string guiName_; + /// std::string iconvName_; /// Is this a fixed width encoding? bool fixedwidth_; @@ -166,6 +173,31 @@ public: * \p c is a known character matching the preamble entry. */ 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. + * We need this if the inputencoding does not support a certain glyph. + */ + static bool isForced(char_type c); + /** + * If \p c cannot be encoded in the given \p encoding, convert + * it to something that LaTeX can understand in math mode. + * \return whether \p command is a math mode command + */ + static bool latexMathChar(char_type c, 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, bool & combining); + /** + * 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 + */ + static docstring fromLaTeXCommand(docstring const & cmd, docstring & rem); /** * Add the preamble snippet needed for the output of \p c to * \p features. @@ -173,7 +205,7 @@ public: * package only maps the code point \p c to a command, it does not * make this command available. */ - static void validate(char_type c, LaTeXFeatures & features); + static void validate(char_type c, LaTeXFeatures & features, bool for_mathed = false); private: ///