\not\in doesn't work properly
![](https://secure.gravatar.com/avatar/ecffc5c1eb6692198d091ee98e921822.jpg?s=120&d=mm&r=g)
Hi, After updating ConTeXt, math command '\not\in' is not shown properly. For example, $a \not\eq b$ is good. but $a \not\in A$ shows two symbols separately. I am using Mac OS X 10.8 and the versions of LuaTex and ConTeXt are This is LuaTeX, Version beta-0.70.2-2012052309 (TeX Live 2012) ConTeXt ver: 2012.11.23 17:35 MKIV fmt: 2012.11.26 int: english/english Thank you. Best regards, Dalyoung
![](https://secure.gravatar.com/avatar/49e63acb01f2ca80efce7eed08310ce8.jpg?s=120&d=mm&r=g)
On 11/30/2012 10:26 AM, Jeong Dal wrote:
Hi,
After updating ConTeXt, math command '\not\in' is not shown properly.
For example,
$a \not\eq b$ is good.
but $a \not\in A$ shows two symbols separately.
I am using Mac OS X 10.8 and the versions of LuaTex and ConTeXt are
This is LuaTeX, Version beta-0.70.2-2012052309 (TeX Live 2012) ConTeXt ver: 2012.11.23 17:35 MKIV fmt: 2012.11.26 int: english/english
I assume that you use lm ... before I start looking into it I'd like to know Khaleds point of view on this. Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
![](https://secure.gravatar.com/avatar/5faea8b4fa0adb143383811dc94f0d22.jpg?s=120&d=mm&r=g)
Hi Hans, Hi Jeong Dal,
On November 21st I reported this issue and others with the new versions of mkiv where math characters are treated with a new method.
Indeed the issue appears with Latin Modern and their new implementation.
However with some fonts the behaviour is correct but the size of some signs (such as \int, \sum, \prod) is incorrect even with those fonts.
As I understood it if one adds
\enablemode[lmmath]
at the beginning of the file then mkiv uses the good old implementation, at least when using Latin Modern.
The minimal test file is this:
%%%%%%% begin bug-lm.tex
\starttext
The commands \type{\imply} is not anymore defined.
\type{\iff}, \type{\Longrightarrow}, \type{\mapsto} and some other arrows do not appear.
\startformula
(\pi \notin {\Bbb Q} \Longrightarrow \pi^2 + \pi \not\in {\Bbb Q}) \iff \pi^2 \not\in {\Bbb Q}
\stopformula
\startformula
x \mapsto ax+b
\stopformula
\stoptext
%%%%%%% end bug-lm.tex
and the PDF output is attached to my previous message.
Best regards: OK
On 3 déc. 2012, at 21:07, Hans Hagen
On 11/30/2012 10:26 AM, Jeong Dal wrote:
Hi,
After updating ConTeXt, math command '\not\in' is not shown properly.
For example,
$a \not\eq b$ is good.
but $a \not\in A$ shows two symbols separately.
I am using Mac OS X 10.8 and the versions of LuaTex and ConTeXt are
This is LuaTeX, Version beta-0.70.2-2012052309 (TeX Live 2012) ConTeXt ver: 2012.11.23 17:35 MKIV fmt: 2012.11.26 int: english/english
I assume that you use lm ... before I start looking into it I'd like to know Khaleds point of view on this.
Hans
----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl ----------------------------------------------------------------- ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
![](https://secure.gravatar.com/avatar/49e63acb01f2ca80efce7eed08310ce8.jpg?s=120&d=mm&r=g)
On 12/3/2012 10:26 PM, Otared Kavian wrote:
Hi Hans, Hi Jeong Dal,
On November 21st I reported this issue and others with the new versions of mkiv where math characters are treated with a new method. Indeed the issue appears with Latin Modern and their new implementation. However with some fonts the behaviour is correct but the size of some signs (such as \int, \sum, \prod) is incorrect even with those fonts.
indeed, so thi sis why we need to know what the official lm behaviour should be so that - if lm is wrong - we can communicate it to the lm/gyre team it is unlikely that i will repair this in context if it's a bug in the font (it could be that the lm unicode math font is currently modelled after tex and not cf cambria) Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
![](https://secure.gravatar.com/avatar/ecffc5c1eb6692198d091ee98e921822.jpg?s=120&d=mm&r=g)
Dear Hans,
I thought that it is not delivered to the list because I didn't see it, but you read the mail.
I also found that it is already reported by Otared before.
I checked the latest beta, ConTeXt ver: 2012.12.03 20:57 MKIV, and it is fixed.
Thank you for your concern.
Best regards,
Dalyoung
2012. 12. 4., 오전 5:07, Hans Hagen
On 11/30/2012 10:26 AM, Jeong Dal wrote:
Hi,
After updating ConTeXt, math command '\not\in' is not shown properly.
For example,
$a \not\eq b$ is good.
but $a \not\in A$ shows two symbols separately.
I am using Mac OS X 10.8 and the versions of LuaTex and ConTeXt are
This is LuaTeX, Version beta-0.70.2-2012052309 (TeX Live 2012) ConTeXt ver: 2012.11.23 17:35 MKIV fmt: 2012.11.26 int: english/english
I assume that you use lm ... before I start looking into it I'd like to know Khaleds point of view on this.
Hans
----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
![](https://secure.gravatar.com/avatar/7325514c8a7b377b86d86ad29d35e8ef.jpg?s=120&d=mm&r=g)
On Mon, Dec 03, 2012 at 09:07:43PM +0100, Hans Hagen wrote:
On 11/30/2012 10:26 AM, Jeong Dal wrote:
Hi,
After updating ConTeXt, math command '\not\in' is not shown properly.
For example,
$a \not\eq b$ is good.
but $a \not\in A$ shows two symbols separately.
I am using Mac OS X 10.8 and the versions of LuaTex and ConTeXt are
This is LuaTeX, Version beta-0.70.2-2012052309 (TeX Live 2012) ConTeXt ver: 2012.11.23 17:35 MKIV fmt: 2012.11.26 int: english/english
I assume that you use lm ... before I start looking into it I'd like to know Khaleds point of view on this.
The main issue here is that \not in was largely a hack in CM fonts, the glyph was specially crafted so that it overlays the next symbol by having zero width and -ve right side bearing and it was centered over equal and similar symbols, anything with different width would not look good. This can't be relied on with OpenType fonts mainly because we don't control all the fonts and since U+0338 is a combining mark it tends to have -ve left side bearing (the opposite of CM). Previously I thought it should be handled as special math accent that don't get shifted above, but this didn't work because accent noads do not inherit the spacing of their nuclei, and changing this is not simple AFAICT. When I checked Word it had no notion of negations either, you can only use pre-composed negated symbols (but accents respect the spacing of its accentee, BTW). The solution currently used by unicode-math package is to look ahead and see if the next symbol after \not has a precomposed negated form and use it (such a list can be obtained by checking Unicode characters that decompose to something + U+0338), else just output U+0338. This probably can be even enhanced by inserting a kern between \not and the next symbol that would center their bounding boxes together, to handle cases why no precomposed symbol exists. My be we need a new primitive \Unegation that would do this in the engine? Regards, Khaled
![](https://secure.gravatar.com/avatar/386a116d129cdc597f2bb6210bbaff7a.jpg?s=120&d=mm&r=g)
On Tue, Dec 4, 2012 at 4:18 PM, Khaled Hosny
On Mon, Dec 03, 2012 at 09:07:43PM +0100, Hans Hagen wrote:
On 11/30/2012 10:26 AM, Jeong Dal wrote:
Hi,
After updating ConTeXt, math command '\not\in' is not shown properly.
For example,
$a \not\eq b$ is good.
but $a \not\in A$ shows two symbols separately.
I am using Mac OS X 10.8 and the versions of LuaTex and ConTeXt are
This is LuaTeX, Version beta-0.70.2-2012052309 (TeX Live 2012) ConTeXt ver: 2012.11.23 17:35 MKIV fmt: 2012.11.26 int: english/english
I assume that you use lm ... before I start looking into it I'd like to know Khaleds point of view on this.
The main issue here is that \not in was largely a hack in CM fonts, the glyph was specially crafted so that it overlays the next symbol by having zero width and -ve right side bearing and it was centered over equal and similar symbols, anything with different width would not look good. If I recall correctly, a glyph with zero width give an invalid pdf/a-1.
-- luigi
![](https://secure.gravatar.com/avatar/49e63acb01f2ca80efce7eed08310ce8.jpg?s=120&d=mm&r=g)
On 12/4/2012 4:33 PM, luigi scarso wrote:
If I recall correctly, a glyph with zero width give an invalid pdf/a-1.
yes, and we took (take) care of that ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
![](https://secure.gravatar.com/avatar/49e63acb01f2ca80efce7eed08310ce8.jpg?s=120&d=mm&r=g)
On 12/4/2012 4:18 PM, Khaled Hosny wrote:
The main issue here is that \not in was largely a hack in CM fonts, the glyph was specially crafted so that it overlays the next symbol by having zero width and -ve right side bearing and it was centered over equal and similar symbols, anything with different width would not look good.
ok, so officially it has zero width
This can't be relied on with OpenType fonts mainly because we don't control all the fonts and since U+0338 is a combining mark it tends to have -ve left side bearing (the opposite of CM).
ah, ok
Previously I thought it should be handled as special math accent that don't get shifted above, but this didn't work because accent noads do not inherit the spacing of their nuclei, and changing this is not simple AFAICT. When I checked Word it had no notion of negations either, you can only use pre-composed negated symbols (but accents respect the spacing of its accentee, BTW).
The solution currently used by unicode-math package is to look ahead and see if the next symbol after \not has a precomposed negated form and use it (such a list can be obtained by checking Unicode characters that decompose to something + U+0338), else just output U+0338. This probably can be even enhanced by inserting a kern between \not and the next symbol that would center their bounding boxes together, to handle cases why no precomposed symbol exists. My be we need a new primitive \Unegation that would do this in the engine?
we already have some mechanisms that deal with such issues so some kind of support is doable (if really needed) concerning the bug reports ... % \setupbodyfont[dejavu] % uses xits \enablemode[lmmath] \starttext % \imply : undefined % \notin : no virtual char \startformula \hbox{not = :} \not= \stopformula \startformula \hbox{notin :} \notin \stopformula \startformula \hbox{longrightarrow :} \Longrightarrow \stopformula \startformula \hbox{not in :} \not\in \stopformula \startformula \hbox{iff :} \iff \stopformula \startformula \hbox{mapsto :} \mapsto \stopformula \stoptext afaik \imply was never defined to start with; \notin needs a virtual glyph in the lm definitions; the rest seems to work ok I'll add a vf \notin and also \imply Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
![](https://secure.gravatar.com/avatar/5faea8b4fa0adb143383811dc94f0d22.jpg?s=120&d=mm&r=g)
On 4 déc. 2012, at 17:38, Hans Hagen
concerning the bug reports …
Hi Hans, Thank you for the fixes and adding the commands \notin and \imply: I did some testing with your examples and others of my own, and it seems that some of the issues are fixed. However with \enablemode[lmmath] the command \notin does not work as expected, while when the above command is commented out it does. Another issue is that the size of integrals when using palatino, times or termes is the almost the same as the ones in inline maths, and I think that this is not the correct behaviour. The examples I tested are essentially yours: %%%%%% %\enablemode[lmmath] %\setupbodyfont[xits] %\setupbodyfont[palatino] %\setupbodyfont[dejavu] %\setupbodyfont[times] %\setupbodyfont[termes] \starttext \startformula \hbox{not = :} \not= \stopformula \startformula \hbox{notin :} \notin \stopformula \startformula \hbox{Longrightarrow :} \Longrightarrow \stopformula \startformula \hbox{not in :} \not\in \stopformula \startformula \hbox{iff :} \iff \stopformula \startformula \hbox{mapsto :} \mapsto \stopformula \startformula \hbox{int :} \int_{0}^\pi f(x)dx \stopformula \startformula \hbox{iint :} \iint_{\Omega} f(x)dx \stopformula \startformula \hbox{iiint :} \iiint_{{\Bbb R}^3} f(x)dx \stopformula \stoptext %%%%%%%% Best regards: OK
![](https://secure.gravatar.com/avatar/49e63acb01f2ca80efce7eed08310ce8.jpg?s=120&d=mm&r=g)
On 12/4/2012 10:01 PM, Otared Kavian wrote:
On 4 déc. 2012, at 17:38, Hans Hagen
wrote: concerning the bug reports …
Hi Hans,
Thank you for the fixes and adding the commands \notin and \imply: I did some testing with your examples and others of my own, and it seems that some of the issues are fixed. However with \enablemode[lmmath] the command \notin does not work as expected, while when the above command is commented out it does.
Afaik \notin works okay.
Another issue is that the size of integrals when using palatino, times or termes is the almost the same as the ones in inline maths, and I think that this is not the correct behaviour.
I think that depends on how the font defines the steps (if xits does it right, then palatino/termes are wrong). Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
participants (5)
-
Hans Hagen
-
Jeong Dal
-
Khaled Hosny
-
luigi scarso
-
Otared Kavian