X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FEncoding.h;h=bed6aa3810dfb80270e7eaf7488d7bc4840b1e05;hb=653376087d4107e127d577d6a4f29351a9d46b05;hp=df446805271a709b80b9da2ee3c452200882ec48;hpb=b5dcdbc9606e04171bd089f90a34ad86edda60b8;p=lyx.git diff --git a/src/Encoding.h b/src/Encoding.h index df44680527..bed6aa3810 100644 --- a/src/Encoding.h +++ b/src/Encoding.h @@ -4,7 +4,7 @@ * 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. @@ -24,6 +24,7 @@ namespace lyx { namespace support { class FileName; } +class Buffer; class LaTeXFeatures; class EncodingException : public std::exception { @@ -74,7 +75,7 @@ public: * 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 @@ -182,10 +183,16 @@ public: 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. */ @@ -213,7 +220,7 @@ public: /** * 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. @@ -226,13 +233,23 @@ public: * point and set \p combining to true if it is a combining symbol */ static char_type fromLaTeXCommand(docstring const & cmd, bool & combining); + /// + 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, + docstring & rem, int cmdtype = MATH_CMD | TEXT_CMD); /** * Add the preamble snippet needed for the output of \p c to * \p features.