]> git.lyx.org Git - features.git/commitdiff
Fix bug #6389: Make columns RTL in RTL document
authorVincent van Ravesteijn <vfr@lyx.org>
Sat, 22 Sep 2012 21:14:34 +0000 (23:14 +0200)
committerVincent van Ravesteijn <vfr@lyx.org>
Sat, 22 Sep 2012 21:15:53 +0000 (23:15 +0200)
src/BufferParams.cpp
src/LaTeXFeatures.cpp

index 2c96da3c06311e2384fdd9081811f0483bb13a7b..c53d0ec9212c110a80ac8a938ae2f77c6b6cae9e 100644 (file)
@@ -1163,6 +1163,9 @@ void BufferParams::validate(LaTeXFeatures & features) const
 {
        features.require(documentClass().requires());
 
+       if (columns > 1 && language->rightToLeft())
+               features.require("rtloutputdblcol");
+
        if (outputChanges) {
                bool dvipost    = LaTeXFeatures::isAvailable("dvipost");
                bool xcolorulem = LaTeXFeatures::isAvailable("ulem") &&
index a4955f197b2e074fd8e4223ec6796e19af748d95..169f4e68737d616ce1d63b023eaa4ebc2b802ef5 100644 (file)
@@ -277,6 +277,42 @@ static docstring const lyxref_def = from_ascii(
                "  {\\def\\RSlemtxt{lemma~}\\newref{lem}{name = \\RSlemtxt}}\n" 
                "  {}\n");
 
+// Make sure the columns are also outputed as rtl
+static docstring const rtloutputdblcol_def = from_ascii(
+       "\\def\\@outputdblcol{%\n"
+       "  \\if@firstcolumn\n"
+       "    \\global \\@firstcolumnfalse\n"
+       "    \\global \\setbox\\@leftcolumn \\box\\@outputbox\n"
+       "  \\else\n"
+       "    \\global \\@firstcolumntrue\n"
+       "    \\setbox\\@outputbox \\vbox {%\n"
+       "      \\hb@xt@\\textwidth {%\n"
+       "      \\kern\\textwidth \\kern-\\columnwidth %**\n"
+       "      \\hb@xt@\\columnwidth {%\n"
+       "         \\box\\@leftcolumn \\hss}%\n"
+       "      \\kern-\\textwidth %**\n"
+       "      \\hfil\n"
+       "      {\\normalcolor\\vrule \\@width\\columnseprule}%\n"
+       "      \\hfil\n"
+       "      \\kern-\\textwidth  %**\n"
+       "      \\hb@xt@\\columnwidth {%\n"
+       "         \\box\\@outputbox \\hss}%\n"
+       "      \\kern-\\columnwidth \\kern\\textwidth %**\n"
+       "    }%\n"
+       "  }%\n"
+       "  \\@combinedblfloats\n"
+       "  \\@outputpage\n"
+       "  \\begingroup\n"
+       "  \\@dblfloatplacement\n"
+       "  \\@startdblcolumn\n"
+       "  \\@whilesw\\if@fcolmade \\fi\n"
+       "  {\\@outputpage\n"
+       "    \\@startdblcolumn}%\n"
+       "  \\endgroup\n"
+       "  \\fi\n"
+       "}\n"
+       "\\@mparswitchtrue\n");
+
 
 /////////////////////////////////////////////////////////////////////
 //
@@ -1072,6 +1108,9 @@ docstring const LaTeXFeatures::getMacros() const
        if (mustProvide("ct-none"))
                macros << changetracking_none_def;
 
+       if (mustProvide("rtloutputdblcol"))
+               macros << rtloutputdblcol_def;
+
        return macros.str();
 }