]> git.lyx.org Git - lyx.git/blobdiff - src/Font.cpp
Do not use \&@#^_~$ as lstinline delimiter, as suggested by Herbert
[lyx.git] / src / Font.cpp
index ccbc937e797573360c7d62f41bd81295cc7ba8ef..697471a75a3e3ef638b3b484b6cd0628270cbdb7 100644 (file)
@@ -674,7 +674,7 @@ Font & Font::lyxRead(Lexer & lex)
                        } else if (ttok == "noun") {
                                setNoun(ON);
                        } else {
-                               lex.printError("Illegal misc type `$$Tokenยด");
+                               lex.printError("Illegal misc type `$$Token'");
                        }
                } else if (tok == "color") {
                        lex.next();
@@ -749,7 +749,14 @@ int Font::latexWriteStartChanges(odocstream & os, BufferParams const & bparams,
        int count = 0;
        if (language()->babel() != base.language()->babel() &&
            language() != prev.language()) {
-               if (isRightToLeft() != prev.isRightToLeft()) {
+               if (language()->lang() == "farsi") {
+                       os << "\\textFR{";
+                       count += 8;
+               } else if (!isRightToLeft() && 
+                           base.language()->lang() == "farsi") {
+                       os << "\\textLR{";
+                       count += 8;
+               } else if (isRightToLeft() != prev.isRightToLeft()) {
                        if (isRightToLeft()) {
                                os << "\\R{";
                                count += 3;
@@ -781,8 +788,12 @@ int Font::latexWriteStartChanges(odocstream & os, BufferParams const & bparams,
        }
 
        // When the current language is Hebrew, Arabic, or Farsi
-       // the numbers are written Left-to-Right.
-       if (number() == ON && prev.number() != ON && isRightToLeft()) {
+       // the numbers are written Left-to-Right. ArabTeX package 
+       // reorders the number automatically but the packages used
+       // for Hebrew and Farsi (Arabi) do not.
+       if (number() == ON && prev.number() != ON 
+               && (language()->lang() == "hebrew" 
+                       || language()->lang() == "farsi")) {
                os << "{\\beginL ";
                count += 9;
        }
@@ -910,8 +921,12 @@ int Font::latexWriteEndChanges(odocstream & os, BufferParams const & bparams,
        }
 
        // When the current language is Hebrew, Arabic, or Farsi
-       // the numbers are written Left-to-Right.
-       if (number() == ON && next.number() != ON && isRightToLeft()) {
+       // the numbers are written Left-to-Right. ArabTeX package 
+       // reorders the number automatically but the packages used
+       // for Hebrew and Farsi (Arabi) do not.
+       if (number() == ON && next.number() != ON 
+               && (language()->lang() == "hebrew" 
+                       || language()->lang() == "farsi")) {
                os << "\\endL}";
                count += 6;
        }