Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Invisible operators #45

Open
MDLC01 opened this issue Feb 3, 2025 · 5 comments
Open

Invisible operators #45

MDLC01 opened this issue Feb 3, 2025 · 5 comments
Labels
proposal This may still need discussion

Comments

@MDLC01
Copy link
Collaborator

MDLC01 commented Feb 3, 2025

Context

Unicode defines multiple invisible operators, which are meant to disambiguate juxtaposition in mathematical text. This is primarily destined to be used by symbolic calculation softwares and screen readers. Their use is not mandatory but recommended to improve accessibility.

Invisible operators are the topic of section 2.14 of UTR #25 (the Technical Report on Unicode Support for Mathematics), and section 22.6 of the more recent, and authoritative Unicode 16.0.0 Core Specification.

Invisible operators were previously mentioned in typst/typst#721 (comment).

Formal proposal

Add the symbol variants from the following table under sym.

Character Name
U+2061 FUNCTION APPLICATION (Binary) ???1
U+2062 INVISIBLE TIMES (Binary) times.invisible
U+2063 INVISIBLE SEPARATOR (Punctuation) comma.invisible2
U+2024 INVISIBL PLUS (Special) plus.invisible

Alternative names

Other possible names include invisible.{application,times,comma,plus}.

Concerns

Invisible operators seem to not be handled properly by the default math font.

Footnotes

  1. TODO: Find a name.

  2. U+2063 has the Unicode informative alias "invisible comma."

@MDLC01 MDLC01 added the proposal This may still need discussion label Feb 3, 2025
@T0mstone
Copy link
Collaborator

T0mstone commented Feb 3, 2025

How about invis instead of invisible? Seems nicer and still totally unambiguous.

@MDLC01
Copy link
Collaborator Author

MDLC01 commented Feb 3, 2025

This is another option indeed, although I personally tend to prefer full names.

@Enivex
Copy link
Collaborator

Enivex commented Feb 4, 2025

Maybe they should all be under invisible instead, considering how special they are?

For the same reason I think the long name makes sense. This isn't something most people will use in a non-programmatic way

@T0mstone
Copy link
Collaborator

T0mstone commented Feb 4, 2025

Hm, probably true, though it makes more sense semantically to have them as variants of the operators they are.

@samimaat
Copy link

samimaat commented Feb 4, 2025

I can confirm that the invisible operators are definitely used by screen readers (as opposed 'presumably' in the first post).

MathCAT is an addon to NVDA (an open source screen reader). It will also be implemented to NVDA in the future. This is also true for JAWS, which is another screen reader. MathCAT intereprets the invisible operators.

Great that the invisible operator input and output would be supported!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
proposal This may still need discussion
Projects
None yet
Development

No branches or pull requests

4 participants