]> 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 4813fa240d9e8444b1c5ed8e9031d86327936ee4..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;
@@ -780,8 +787,13 @@ int Font::latexWriteStartChanges(odocstream & os, BufferParams const & bparams,
                }
        }
 
-       if (number() == ON && prev.number() != ON &&
-           language()->lang() == "hebrew") {
+       // When the current language is Hebrew, Arabic, or Farsi
+       // 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;
        }
@@ -908,8 +920,13 @@ int Font::latexWriteEndChanges(odocstream & os, BufferParams const & bparams,
                }
        }
 
-       if (number() == ON && next.number() != ON &&
-           language()->lang() == "hebrew") {
+       // When the current language is Hebrew, Arabic, or Farsi
+       // 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;
        }