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 ∫ esint
intop esint 001 0 mathop ∫ 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 ∫ esint
intop cmex 82 242 mathop ∫ 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