Attached is a patch from Georg that fixes the regression bug 1942:
   Inconsistent look of integral symbols.

I tested it thoroughly will all combinations of the packages esint, wasysym, 
and amsmath.

A Mac user has reported a perhaps related problem that I and Georg couldn't reproduce as consequence of bug 1942. So before this can go in, I need an OK from a Mac user that this patch does only fix the bug and not introduces the problem reported in
http://bugzilla.lyx.org/show_bug.cgi?id=3902

Stefan, JMarc, could you please test this the following way:

Before you apply the patch: Check if bug 3902 is not already there.

With the patch applied:
- create a document with only \iint in a formula.
- check via the View Source window that the package esint is loaded by LyX in 
the preamble
- now disable the option "use esint automatically" in the document -> math 
settings
- in the View Source window you can that amsmath is loaded instead of the 
package esint

When this is the case and the patch doesn't change anything regarding bug 3902 the patch is OK and can go in.

thanks in advance and regards
Uwe
Index: src/mathed/MathFactory.cpp
===================================================================
--- src/mathed/MathFactory.cpp	(Revision 18837)
+++ src/mathed/MathFactory.cpp	(Arbeitskopie)
@@ -175,11 +175,12 @@ void initSymbols()
 			// create fallbacks if necessary
 
 			// store requirements as long as we can
-			if (tmp.requires.empty() &&
-			    (tmp.inset == "msa" || tmp.inset == "msb"))
-				tmp.requires = from_ascii("amssymb");
-			else if (tmp.inset == "wasy")
-				tmp.requires = from_ascii("wasysym");
+			if (tmp.requires.empty()) {
+				if (tmp.inset == "msa" || tmp.inset == "msb")
+					tmp.requires = from_ascii("amssymb");
+				else if (tmp.inset == "wasy")
+					tmp.requires = from_ascii("wasysym");
+			}
 
 			// symbol font is not available sometimes
 			docstring symbol_font = from_ascii("lyxsymbol");
Index: src/LaTeXFeatures.cpp
===================================================================
--- src/LaTeXFeatures.cpp	(Revision 18837)
+++ src/LaTeXFeatures.cpp	(Arbeitskopie)
@@ -445,8 +445,11 @@ string const LaTeXFeatures::getPackages(
 	// than those above.
 	//
 
-	if (mustProvide("amsmath")
-	    && params_.use_amsmath != BufferParams::package_off) {
+	// esint is preferred for esintoramsmath
+	if ((mustProvide("amsmath") &&
+	     params_.use_amsmath != BufferParams::package_off) ||
+	    (mustProvide("esintoramsmath") &&
+	     params_.use_esint == BufferParams::package_off)) {
 		packages << "\\usepackage{amsmath}\n";
 	}
 
@@ -539,8 +542,8 @@ string const LaTeXFeatures::getPackages(
 
 	// esint must be after amsmath and wasysym, since it will redeclare
 	// inconsistent integral symbols
-	if (mustProvide("esint")
-	    && params_.use_esint != BufferParams::package_off)
+	if ((mustProvide("esint") || mustProvide("esintoramsmath")) &&
+	    params_.use_esint != BufferParams::package_off)
 		packages << "\\usepackage{esint}\n";
 
 	// url.sty
Index: lib/symbols
===================================================================
--- lib/symbols	(Revision 18837)
+++ lib/symbols	(Arbeitskopie)
@@ -761,14 +761,20 @@ varoint            wasy         117    0
 # It is important that they have the same requirements in both cases,
 # otherwise the LaTeX output would depend on the availability of the esint10
 # font in the GUI
+# Note that we do _not_ require the wasysym package for any integral besides
+# \varint and \varoint. The reason is that the integrals of the wasysym
+# package do not match the standard \int and \intop. See
+# http://bugzilla.lyx.org/show_bug.cgi?id=1942 for details.
+# If the wasysym integrals are really wanted then one has to load the package
+# manually and disable automatic loading of amsmath and esint.
 iffont esint
 int                esint        001    0  mathop  &int;  esint
 intop              esint        001    0  mathop  &int;  esint
-iint               esint        003    0  mathop  x      esint
+iint               esint        003    0  mathop  x      esintoramsmath
 iintop             esint        003    0  mathop  x      esint
-iiint              esint        005    0  mathop  x      esint
+iiint              esint        005    0  mathop  x      esintoramsmath
 iiintop            esint        005    0  mathop  x      esint
-iiiint             esint        007    0  mathop  x      esint
+iiiint             esint        007    0  mathop  x      esintoramsmath
 iiiintop           esint        007    0  mathop  x      esint
 dotsint            esint        009    0  mathop  x      esint
 dotsintop          esint        009    0  mathop  x      esint
@@ -787,11 +793,11 @@ ointclockwiseop    esint        025    0
 else
 int                cmex          82  242  mathop  &int;  esint
 intop              cmex          82  242  mathop  &int;  esint
-iint               wasy         115    0  mathop  x      esint
+iint               wasy         115    0  mathop  x      esintoramsmath
 iintop             wasy         115    0  mathop  x      esint
-iiint              wasy         116    0  mathop  x      esint
+iiint              wasy         116    0  mathop  x      esintoramsmath
 iiintop            wasy         116    0  mathop  x      esint
-\def\iiiint{\int\kern-6mu\int\kern-6mu\int\kern-6mu\int}        esint
+\def\iiiint{\int\kern-6mu\int\kern-6mu\int\kern-6mu\int}        esintoramsmath
 \def\iiiintop{\int\kern-6mu\int\kern-6mu\int\kern-6mu\int}      esint
 \def\dotsint{\int\kern-3mu\cdots\kern-3mu\int}                  esint
 \def\dotsintop{\int\kern-3mu\cdots\kern-3mu\int}                esint

Reply via email to