juliamono icon indicating copy to clipboard operation
juliamono copied to clipboard

Missing size difference between binary operators and their N-ary counterparts

Open cionx opened this issue 3 years ago • 5 comments

Many mathematical operators come in two versions: a binary one and and an N-ary one. The symbol for the N-ary operator is typically a larger version of the symbol for the binary operator.

However, there is often no such distinction in the current version of JuliaMono, as can be seen from the following comparison.¹

juliamono

In the first group, there is only a small difference between U+2294 (Square Cup) and U+2A06 (N-Ary Square Union Operator), but otherwise no difference, which makes it impossible to tell the two versions apart.

In the second group, we have a good visible difference between U+2A3F (Amalgamation or Coproduct) and U+2210 (N-Ary Coproduct), but the distinciton between U+00D7 (Multiplication Sign) and U+2A09 (N-Ary Times Operator) seems somewhat small.

In the third group, the N-ary versions appear slightly smaller than the binary versions.

I’d assume that for the symbols in the first group it should be possible to make the N-Ary version noticably larger than the binary version by simply extending/vertically stretching the N-ary versions to the same height as the summation sign, i.e., U+2211 (N-Ary Summation).

I’m not sure how to deal with U+2A09 (N-Ary Times Operator) from the second group and the symbols from the third group.

It would be, in my opinion, acceptable to give the N-Ary Times Operator some vertical stretching. This would probably make the symbol less symmetric looking, but I’d find this acceptable since we are dealing with a monospace font.

But for the third group this approach is probably not possible because of the circle. (One could stretch these circles into ellipses, but that would probably be somewhat of an acquired taste… Maybe a stylistic set?) But I think that the N-ary versions should at least not appear smaller than their binary counterparts.


¹ The comparison was created with LaTeX via XeLaTeX and the code below. Dashes represent symbols that seem to be missing from Unicode.

Code for generating the comparison.
\documentclass{scrartcl}

\usepackage{array}
\usepackage{booktabs}
\usepackage{fontspec}

\setmainfont{Libertinus Serif}
\setsansfont{Libertinus Sans}
\setmonofont{JuliaMono}


\begin{document}
\begin{tabular}{l>{\ttfamily}c>{\ttfamily}c}
	\toprule
	\textbf{description} &
	\textrm{\textbf{binary}} &
	\textrm{\textbf{$N$-ary}} \\
	\midrule
	intersection          & ∩ & ⋂ \\
	union                 & ∪ & ⋃ \\
	square union          & ⊔ & ⨆ \\
	square intersection   & — & ⨅ \\
	union with dot        & — & ⨃ \\
	intersection with dot & ⩀ & — \\
	logical and           & ∧ & ⋀ \\
	logical or            & ∨ & ⋁ \\
	\midrule
	sum                   & + & ∑ \\
	times                 & × & ⨉ \\
	product               & — & ∏ \\
	coproduct             & ⨿ & ∐ \\
	\midrule
	circled plus          & ⊕ & ⨁ \\
	circled times         & ⊗ & ⨂ \\
	circled dot           & ⊙ & ⨀ \\
	\bottomrule
\end{tabular}
\end{document}

cionx avatar Feb 16 '22 17:02 cionx

I'll have a look sometime. The main restriction here of course is the width; unlike typical LATEX fonts, we can't spread ourselves wider, bring monospaced.

cormullion avatar Feb 16 '22 18:02 cormullion

As for the first group, personally I would like if the binary versions were made a bit smaller—I would like more whitespace around the operators in, for example, the following: Screen Shot 2022-02-22 at 14 03 10

anderslundstedt avatar Feb 22 '22 13:02 anderslundstedt

I'm going to go for slight size and weight differences:

Screenshot 2022-02-23 at 11 43 49

although these will probably look terrible on low-resolution Windows terminals, but you can't win, really... :)

cormullion avatar Feb 23 '22 11:02 cormullion

As for the first group, personally I would like if the binary versions were made a bit smaller—I would like more whitespace around the operators in, for example, the following: Screen Shot 2022-02-22 at 14 03 10

I think my example definitely looks better in the latest version (0.046):

Screen Shot 2022-09-15 at 17 55 51

Thanks @cormullion!

anderslundstedt avatar Sep 15 '22 15:09 anderslundstedt

This issue has been open for 30 days with no activity.

github-actions[bot] avatar Dec 07 '23 02:12 github-actions[bot]