IBM / plex

The package of IBM’s typeface, IBM Plex.
SIL Open Font License 1.1
9.71k stars 576 forks source link

Full Math Symbols? #250

Closed tecosaur closed 5 days ago

tecosaur commented 5 years ago

Hello,

Out of impatience, I see that in 2017 @mjabbink said "Extended Math symbols will come in 2019" and then in 2018 "We will design a version of Plex with full mathematical glyphs next year". Now that it's 2019 I was wondering how much longer we'll have to wait?

Also I'm curious as to how extensive addition will be; specificly, which of the following blocks are planning on being included?

thanks!

tecosaur.

BoldMonday commented 5 years ago

Math support for IBM Plex is still on the roadmap. But how many glyphs – out of the thousands of glyphs that are in those blocks – are sufficient for a first release is still being determined. A full Math character set comparable to the likes of STIX easily surpasses 5,000 glyphs.

For what kind of purpose would you use a font like this?

tecosaur commented 5 years ago

Most of the documents I produce are made in LaTeX. I have found the design choices made in plex to match quite well and so have adopted it as part of my default template. However, a significant irritation comes from the difficulty in finding a good math font to match.

What I am hoping to see is sufficient Maths support for a LaTeX package to be produced, and for it to be able to satisfy the range of symbols I use day to day. Of the top of my head, these are the character sets I use most frequently, i.e. the 99% from most used to least.

  1. Letters a-z, true italic — 52 characters
  2. Greek letters, italic - 48 characters
  3. Common operations (+-×±∓ etc.) — ~20? characters
  4. Deliminators, large deliminators ([{⟨ etc. — ~10 characters + mirrored
  5. Sum / Product (∑ ∏) — 2 characters
  6. Arrows — ~30 characters
  7. Relation symbols (∩∪⊂⊇≠≫ etc.) — ~40 characters
  8. Special sets, i.e. blackboard letters (ℤ ℚ ℝ ℂ etc.) - 26 characters (uppercase only)
  9. Special operators, using Caligraphic Variants (𝓛 𝓟 etc.) - 26 to 52 characters (have yet to use lower case)
  10. A few miscellaneous others, let's say ~50

Total: ~300 characters, but you already have the italic letters and (I think) greek, so Total New: ~200 characters

200 ≪ 5,000 so that's good.

This is what I'd consider a bare minimum to be potentially viable.

In order to actualy be an clear choice though, I'd imagine one would really need all the symbols listed here https://www.caam.rice.edu/~heinken/latex/symbols.pdf which is around 500 symbols.

I'm afraid that maths people such as myself seem to really like their symbols, but at least there's a fair bit or re-use that goes on, e.g. with equals sign combined with: dot, dash, strike, two dots in middle, two dots on ends, circle above, triangle above etc.

This goes a bit beyond your question "For what kind of purpose would you use a font like this?" but hopefuly it may be of help in working out what glyphs to include.

mjabbink commented 5 years ago

Behind schedule on this due to budget constraints and focus on CJK (Chinese, Japanese, Korean). It will certainly be moving into 2020.

tecosaur commented 5 years ago

@mjabbink thanks for the update. If you don't mind I have two more questions

mjabbink commented 5 years ago

@tecosaur I would not look for this until end of 2020. We are in the middle of CJK and I hope to get this going now in the beginning of Q1 2020. There is a slight chance for sooner but it’s looking slim.

Arcitec commented 5 years ago

Ping @inferno986return (https://github.com/IBM/plex/issues/122).

Arcitec commented 5 years ago

By the way @mjabbink, with the math symbol set, it would be possible to create a IBM Plex Mono Code variant which is literally just Mono but with certain mappings from character sequences to single math characters. Such as <= into and >> into . A fan could create that after the math set exists. Just throwing the idea out there.

For an example of such a sequence transformation, see https://github.com/tonsky/FiraCode.

PS: IBM Plex is gorgeous. Great job, everyone involved!

abrudz commented 4 years ago

As mentioned [here](), APL symbols are now part of this project. It can be tricky to get the various APL symbols to look good together, especially as many are shared with the general mathematical symbols. The below table and samples from IBM's existing APL fonts, Courier APL2 Unicode and APL2 Unicode may be helpful here.

Table of related symbols

          stars: *⍣⍟⋆
        circles: ⍥○⍟⌽⍉⊖⍜⊙⌾⌼
        slashes: /⌿⍁≠≢
    backslashes: \⍀⍂
        uptacks: ⍊⍎⊥
      downtacks: ⍡⍑⍕⊤
       epsilons: ∊⍷
           jots: ∘⍤⍛⍎⍕⍝⌻⌾
         commas: ,⍪;⍮
       diamonds: ⋄⌺⍚
           dels: ⍫∇⍢⍒
         stiles: ⍒⍋∥⍭|⍦⍧⍅⍆
         deltas: ∆⍙⍋
      up arrows: ↑⍐⍏
    down arrows: ↓⍗⍖
   right arrows: →⍈⍆
    left arrows: ←⍇⍅
          shoes: ⊂⊆⊇⊃∪∩⍝⍦⋔⍧
      diaeresis: ¨⍡⍢⍨⍣⍤⍩
    comparisons: <≤>≥⍩⍃⍄
         wedges: ∧⍲∨⍱⍓⍌
     equalities: =⌸≠≡≢
          tacks: ⊢⊣⊥⌶⊤⍎⍕
          quads: ⍠⌹⌸⍯⌺⎕⍁⍂⌼⌻⍃⍄⍓⍌⍔⍍⍞⍰⍐⍗⍇⍈
      underbars: ⊆⊇⍊⍘⍙⍚⍛⍜⍮⍶⍷⍸⍹
         alphas: ⍺⍶
         omegas: ⍵⍹
         dashes: -⌿⍀⍪⊖÷
       overbars: ¯⍑
         tildes: ~⍲⍱⍬⍫⍭⍨
         colons: ⍠:⌹÷
       brackets: ⌷[]

Courier APL2 Unicode

Courier APL2 Unicode

APL2 Unicode

APL2 Unicode

mjabbink commented 4 years ago

When we get to finally do the math font We can cover APL2. Might be able to phase out project and cover APL2 first, box glyphs (since we’re developing those for Korean release in February 2020), then tackle the rest of the beast.

JimEBlevins commented 4 years ago

I informed the StackExchange:TeX community about the announced 2020 mathematics extension of IBM Plex. Which OpenType math-fonts are available?.

The Tex.StackExchange page's focused discussion of existing mathematical fonts may interest developers.

Two asides:

JimEBlevins commented 4 years ago

For what kind of purpose would you use a font like this?

The mathematics extension of IBM Plex should aspire to be a free, open-source (SIL OTF) competitor to the mathematics extension of Microsoft's Cambria, which has already been adopted as the font for ISO manuals. Cambria aspires to replace Times New Roman as the workhorse for printed text, while being more legible for on-screen use. Both Cambria and IBM Plex Serif have distinct and independent designs, so a friendly rivalry should drive improvements in both fonts.

Plex's free and open attributes simplify the sharing of documents and code with others, especially for the joint editing of documents when a collaborator may use Macs or UNIX / GNU Linux.

For on-screen use, the Plex family is more legible than Cambria, e.g., because of its higher x-height (while Cambria has an x-height that is greater than Times New Roman's but that is less than Microsoft's fonts for on-screen documents (Verdana, Tahoma, and Trebuchet). The Plex family is more coherent than Microsoft's ClearType C-fonts, which were quickly designed.

With an excellent Math extension, IBM Plex could become the leading font for on-line scientific and technical documents and for drafting and proof-reading such printed documents. It should also appeal to businesses, schools, universities, and governments for producing documents for on-screen reading.

Users of LaTeX may try this invocation of Plex: ` \usepackage{luatexbase} \usepackage{microtype} \usepackage{luatextra} \usepackage{luaotfload} \usepackage{fontspec}

\setmainfont[ Extension=.otf, UprightFont={IBM Plex Serif-Text}, BoldFont={IBM Plex Serif-Bold}, ItalicFont={IBM Plex Serif-Italic}, BoldItalicFont={IBM Plex Serif-BoldItalic} ]{IBM Plex Serif}[Ligatures=TeX,Scale=MatchUppercase] % Scales Plex to default size, e.g., to Helvetica´s size.

\setmonofont{IBM Plex Mono Text}[Scale=MatchLowercase, Ligatures=TeX] \setsansfont{IBM Plex Sans Text}[Scale=MatchUppercase, Ligatures=TeX] `

abrudz commented 4 years ago

With an excellent Math extension, IBM Plex could become the leading font for on-line scientific and technical documents and for drafting and proof-reading such printed documents. It should also appeal to businesses, schools, universities, and governments for producing documents for on-screen reading.

I really like Plex, but actually, my biggest problem with it, is that it is just too successful in achieving its goal of being "distinctly IBM"; it is too IBM. I don't feel like I can use it for my own generic things because I'll give the false impression of my project being endorsed by IBM!

mjabbink commented 4 years ago

Looks like 2021. Need funding.

abrudz commented 4 years ago

@mjabbink I read through the entire ibm.com/plex and noticed:

The unexpected and expressive tone of the Selectric typeface, Italic 12 was a major influence in Plex Mono Italic.

The accompanying Italic 12 type sample looked remarkably familiar. Turns out I recently created a modern clone of its derivative which includes all APL symbol and (thus) many mathematical symbols. Feel free to use for inspiration/guidance.

abrudz commented 4 years ago

Need funding.

How much?

mjabbink commented 4 years ago

@abrudz Cool project and yes it looks like Italic 12. The funding is not small. Doing the entire Math character set we’re looking to achieve is a lot of work and I think we’re doing with the Serif but need to make a decision there (sans or serif?). I lean on serif as use case is typically within white papers and heavy documentation.

inferno986return commented 4 years ago

@abrudz Cool project and yes it looks like Italic 12. The funding is not small. Doing the entire Math character set we’re looking to achieve is a lot of work and I think we’re doing with the Serif but need to make a decision there (sans or serif?). I lean on serif as use case is typically within white papers and heavy documentation.

When I think of mathematical fonts, I think of Computer Modern Roman which is the standard of LaTeX.

IBM Plex Serif would be a good basis.

tecosaur commented 4 years ago

@mjabbink if you don't mind me chiming in:

JimEBlevins commented 3 years ago

@abrudz Cool project and yes it looks like Italic 12. The funding is not small. Doing the entire Math character set we’re looking to achieve is a lot of work and I think we’re doing with the Serif but need to make a decision there (sans or serif?). I lean on serif as use case is typically within white papers and heavy documentation.

Serif is standard in mathematics because readers need instantly to distinguish isolated glyphs, e.g., c from C (without being familiar with e.g., IBM Plex).

Earlier, you asked about desiderata for mathematical typography:

Mathematics fonts have been designed for greater legibility under repeated photocopying and under coarse printing and displays and to help readers with visual impairments (e.g., age). Typography designers may find inspiration in these typefaces:

Small caps are used in LaTeX and in the most important LaTeX style files by major mathematical publishers, e.g, the American Mathematical Society (AMS) and the Society for Industrial and Applied Mathematics (SIAM) --- perhaps unwisely! IBM Plex has already increased the goodwill towards IBM among students of engineering and science. It would be difficult to overstate the desire of such students for a typeface that would have the breadth of typefaces of the Computer Modern family, e.g., with small caps.

kenmcd commented 3 years ago

Also useful: Designing Math Fonts, presentation by Johannes Küster of Typoma (he made Minion Math) Designing.Math.Fonts.20040430-bachotex.pdf

mjabbink commented 3 years ago

Thanks for all the info @StatisticalProgrammer

@tecosaur — We plan on using Plex Serif as the basis but will explore your recommendation for the Sans for Mathematical Operators block (U+2200 – U+22FF)

JimEBlevins commented 3 years ago

@tecosaur — We plan on using Plex Serif as the basis but will explore your recommendation for the Sans for Mathematical Operators block (U+2200 – U+22FF)

In mathematics, sans serif is used for e.g., the transposition operator that is a superscript T or t. Sans fonts are especially useful for symmetric matrices and symmetric operators (following Parlett's use of only symmetric letters such as A, B, C for symmetric matrices). Parlett also typeset such letters in sans serif, for increased symmetry. (I is surprising how often my child's homework asks her to draw lines of symmetry in a serif letter, which is close to symmetric!)

Parlett's The Symmetric Eigenvalue Problem has been reprinted by SIAM, which makes its front matter freely available, including the thoughtful table of notation.

mjabbink commented 3 years ago

@StatisticalProgrammer Yes, IBM Plex Math will be open source as is the entire Plex family (if we manage to get this project going!)

Extended Latin

Arabic Cyrillic Devanagari Greek Hebrew Japanese Korean Thai

mjabbink commented 3 years ago

Fingers crossed we begin Q1 2022. It’s looking good so I’m very optimistic.

kauesena commented 3 years ago

Developing the IBM Plex Sans Math font would be also a great thing since currently we only have one OpenType Math sans serif font: Fira Math.

I would also very much like to suggest the design of lowercase script alphabet.

mjabbink commented 3 years ago

@abrudz We’ll gladly accept anything you’re willing to donate to the Plex Math cause!

abrudz commented 3 years ago

@mjabbink There's no donation button on this repo. How might we donate, and how much would be reasonable? If you prefer, you can contact me directly on adam@ with the same domain as www.dyalog.com

SieDa commented 2 years ago

@mjabbink After raising the request #124 (more than 300 tickets and 4 years ago) I'm little disappointed about the speed this takes related to the announcements for math. Math is really connecting all scientists around the world, while other languages are "just" locally relevant. So starting with little math gets awareness around the whole world.

I would appreciate, if you start with any set of math symbols and improve stepwise, just to get it going. Looking into the key-Infrastructure of scientific math-workers is LaTeX, may be you try kicking of very reduced with the Computer Modern Font Elements for Math, Symbols and extended Symbols (Knuth D.E., Computers & Typesetting, Volume E, 1986). Then you can benefit of the strong community having discusses the advantages of those initial works over the years and they let you know in comparison on tons of documents, when or where you might or need to improve to make it better by Plex. Waiting more years will not help to improve acceptance in scientific areas and as you don't start small, you will get no feedback on how it works for scientific writing and publishing.

On the other hand, as you get to the point, that it has no impact to improve existing math fonts by IBM Plex, let us know. Or ask your community ahead, for more tickets to make aware, why math is needed in the IBM Plex Font Family.

As there is a group working on LaTeX3 future releases, you might benefit of that team, getting influenced and improving, what they are aware of, related to math font handling.

JimEBlevins commented 2 years ago

I would like to express gratitude for the excellent typeface family that IBM has given to the world. I am grateful to the team at IBM and their collaborators for their great work. I appreciate that IBM has tried to support a mathematics font.

SieDa commented 2 years ago

@JimEBlevins I fully agree to the first two points and really work with Plex on a daily bases for different targets since the first days (4+ years - #124). Getting such 3x 64 font elements to start working with LaTeX as in early days (35+ years), would really make my day. Even if other fonts like Lucida provide more elements, there is a rupture in style regarding the rest of the text set in IBM Plex and more worth as you mix it inline, take it into charts or integrate it into web-sites.
To keep in line with IBM Plexness [] IBM Poster, design Paul Rand, 1985: "He who stops beeing better, stops beeing good". That just fits into those early years of TeX by Donald E. Knuth.

mjabbink commented 2 years ago

@SieDa We’re disappointed too. We can’t do anything without a budget and we more than anyone would like to create IBM Plex Math. IBM Research as you may know very much needs it for all the reasons described above.

We also prioritized CJK which I don’t think I need to explain. Math will hopefully be approved to begin in Q2. I will post here when I know more.

sharadhr commented 1 year ago

It is almost 2023; I presume IBM Plex maths fonts have been postponed. A real pity, because Plex is a really nice typeface...

BoldMonday commented 1 year ago

Delayed but not postponed. Preparations are taking place now.

mpsmath commented 1 year ago

Delayed but not postponed. Preparations are taking place now.

If you need testing, I am willing to do so. I've been working a lot with different OpenType math fonts lately, looking at font parameters and so on, in the setting of ConTeXt and the new luametatex engine (that I would say is probably the most complete system today to typeset unicode math, also with lots of helpers for debugging).

apoorvpotnis commented 1 year ago

Is this just going to be a font with unicode math characters or an OpenType math font with a math table?

BoldMonday commented 1 year ago

It will be an OpenType math font with a math table.

apoorvpotnis commented 1 year ago

Btw, this is not going to be a font with serif and sans serif glyphs mixed haphazardly, is it? This shall be a proper sans serif font, like fira sans math, and not the abomination that noto "sans" math is, right?

BoldMonday commented 1 year ago

Plex Math is based on Plex Serif. Similar to how STIX and Cambria are serif typefaces.

apoorvpotnis commented 1 year ago

Plex Math is based on Plex Serif. Similar to how STIX and Cambria are serif typefaces.

Thanks for the info. Request: Is it possible to have a true sans serif math typeface, if work has not already started? I can put forth two reasons.

  1. There is a dearth of sans serif math fonts; only Fira Sans Math, GFS Neohellenic Math (almost sans), Lato Math (incomplete) come to mind. There is a pressing need of them as sans serif typefaces are often used in diagrams and figures, and section or chapter titles. Using sans for the text and serif for math symbols looks really bad. A lot of websites which use sans serif fonts, have to resort to using serif math.
  2. IBM's own quantum computing site (Qiskit) uses IBM Plex Sans fonts for everything. The documentation has math. An IBM Plex Sans Math font would happily match the (now serif due to lack of Plex sans math) math used there. I am sure scientists and engineers at IBM need to use math in their documentation.
BoldMonday commented 1 year ago

Work on IBM Plex Math has already been underway since the end of last year. It is intended for a broad usage in scientific and academic papers. To cater in the best way for those applications we decided that a serif font is better suited than sans.

apoorvpotnis commented 1 year ago

Just one more thing, is there going to be a bold weight as well, for use in section/chapter titles?

BoldMonday commented 1 year ago

@apoorvpotnis Plex Math is one weight only (Regular) but Plex Serif has a range of eight weights.

mjabbink commented 1 year ago

@mpsmath We will soon have some testing for files and if you’re a willing tester, we would certainly appreciate it.

sharadhr commented 1 year ago

I'm happy to test Plex Maths, too! I have a fair few TeX documents that I would really like to re-type in Plex Serif and Plex Maths.

apoorvpotnis commented 1 year ago

I can offer assistance for testing as well, by testing on LaTeX.

mjabbink commented 1 year ago

@sharadhr @apoorvpotnis Attached find an IBM Plex Math Alpha file. Give it a whirl.

IBMPlexMath-Alpha230918.otf.zip

apoorvpotnis commented 1 year ago

@sharadhr @apoorvpotnis Attached find an IBM Plex Math Alpha file. Give it a whirl.

IBMPlexMath-Alpha230918.otf.zip

Does this contain only the glyphs as of now, and not a math table? Because I can see the glyphs in fontforge, but LuaLaTeX (with unicode-math) complains that the font does not contain the requested Script "Math". Thus, no LaTeX typesetting as of now.

mpsmath commented 1 year ago

@sharadhr @apoorvpotnis Attached find an IBM Plex Math Alpha file. Give it a whirl.

IBMPlexMath-Alpha230918.otf.zip

Thank you very much for the post, it looks like there are a lot of nice math glyphs inside.

As already mentioned, though, the font posted is lacking the necessary tables to make it into a "real" math font.

To add a bit more: Some slots usually come with variants and extensibles. Take the left parenthesis U+0028 for example. As of now I find extensibles (U+239B, U+239C, U+239D). But the base glyph U+0028 does not have a recipe that tells when these should kick in. Also, it will likely look a bit non-optimal if there are no variants that can be chosen step wise, before the extensible kicks in.

Once the necessary tables are added and extensible recipes are there, we can start the testing. (If you need help or more ideas regarding variants, extensibles and the many parameters to set, just tell.)

abrudz commented 1 year ago

@sharadhr @apoorvpotnis Attached find an IBM Plex Math Alpha file. Give it a whirl.

IBMPlexMath-Alpha230918.otf.zip

The APL glyphs should be more consistent: image

BoldMonday commented 1 year ago

@sharadhr @apoorvpotnis Attached find an IBM Plex Math Alpha file. Give it a whirl. IBMPlexMath-Alpha230918.otf.zip

Does this contain only the glyphs as of now, and not a math table? Because I can see the glyphs in fontforge, but LuaLaTeX (with unicode-math) complains that the font does not contain the requested Script "Math". Thus, no LaTeX typesetting as of now.

This is a first Alpha build -- there is no Math table yet.