- From: Neil Soiffer <soiffer@alum.mit.edu>
- Date: Tue, 3 Aug 2021 21:27:31 -0700
- To: "www-math@w3.org" <www-math@w3.org>
- Message-ID: <CAESRWkA5fUamEFS1ugpbZ=-ckVsg4RUY3VmnDiqD_XWSvSiojA@mail.gmail.com>
We've mentioned how ambiguous "|" can be, but I don't remember seeing anyone mentioning this example: { x ∣ x ∣ 10} The set of all x such that x divides 10. In one expression are both the low priority separator "such that" and the medium priority relational operator "divides" (both are infix). There are two characters that *could *be used: vertical bar (U+007C) and divides (U+2223). The Unicode Standard indicates that both should be U+2223 (I'm not sure that equivalence is correct) In TeX, there seems to be agreement that the first bar is be \mid. However, there seems to be disagreement for what to use for the second bar. <https://tex.stackexchange.com/questions/498/mid-vertical-bar-vert-lvert-rvert-divides> Some people suggest \mid, others "|", and still others \divides (which only exists in the MnSymbol package AFAIK). There are spacing differences and maybe height differences. Using different macros means there is a potential semantic distinction if the author actually uses them as opposed to using the ASCII "|". A reason TeX distinguishes them is that the spacing around the vertical bar differs a little. Someone will surely correct me on this if I'm wrong, but the spacing of these two uses is opposite their contextual meaning. TeX considers \mid to be a relational operator, but relational operators return boolean values -- \mid is really a separator/punctuation. On the other hand, \divides really is a relation (m divides n is either true or false), but it is spaced as a binary operator (at least in this context). Typographically, this is what is supposed to happen, but it seems counter-intuitive. Very strange. What does this mean for MathML? One thing is that in practice, software can't be sure the correct symbol is used in MathML (I leave it to someone else to report what TeX, ASCIIMath, and WYSIWYG editors use). The other issue is what the operator dictionary should say about the spacing and priority for these two symbols. Currently they both have the same spacing and priority, but that seems wrong. Thoughts? Neil
Received on Wednesday, 4 August 2021 04:27:46 UTC