Fonts: Difference between revisions

Jump to navigation Jump to search
typos
(typos)
 
(6 intermediate revisions by one other user not shown)
Line 137: Line 137:
The [[wikipedia:Blink browser engine|Blink browser engine]] instructs the [[wikipedia:HarfBuzz|HarfBuzz]] text shaping engine to prefer fidelity in typeface over fidelity in glyph shape. As a consequence, text using a font that lacks the <syntaxhighlight lang=apl inline>≢</syntaxhighlight> glyph ([[Tally]], [[Not Match]]) often ends up looking like <syntaxhighlight lang=apl inline>≡/</syntaxhighlight> (Match reduction), causing great confusion. The issue affects diverse things like Android WebView, Chromium Embedded Framework, all [[wikipedia:Electron (softwareframework)|Electron]] apps, [[wikipedia:Qt software)|Qt software]]), as well as many popular web browsers, like Amazon Silk, Google Chrome, Microsoft Edge, Brave, Opera, Vivaldi, and the Yandex Browser.
The [[wikipedia:Blink browser engine|Blink browser engine]] instructs the [[wikipedia:HarfBuzz|HarfBuzz]] text shaping engine to prefer fidelity in typeface over fidelity in glyph shape. As a consequence, text using a font that lacks the <syntaxhighlight lang=apl inline>≢</syntaxhighlight> glyph ([[Tally]], [[Not Match]]) often ends up looking like <syntaxhighlight lang=apl inline>≡/</syntaxhighlight> (Match reduction), causing great confusion. The issue affects diverse things like Android WebView, Chromium Embedded Framework, all [[wikipedia:Electron (softwareframework)|Electron]] apps, [[wikipedia:Qt software)|Qt software]]), as well as many popular web browsers, like Amazon Silk, Google Chrome, Microsoft Edge, Brave, Opera, Vivaldi, and the Yandex Browser.


In browsers, it is possible to mitigate the problem by overriding the used font, for example using a user style manager like [[wikipedia:Stylus (browser extension)|Stylus]] or [[wikipedia:Stylish|Stylish]], adding the following rule for chat.stackexchange.com:
In browsers, it is possible to mitigate the problem by overriding the used font, either by configuring the browser to override all font specifications, or via a user style manager like [[wikipedia:Stylus (browser extension)|Stylus]] or [[wikipedia:Stylish|Stylish]], which gives more fine-grained control.
<syntaxhighlight lang=css>
 
div.message pre,div.message code{font-family:"APL385 Unicode"}
Here are examples of appropriate user style rules for some common websites:
</syntaxhighlight>
 
Alternatively, one can set the browser to override fonts.
{|class=wikitable
! Domain !! Rule
|-
| chat.stackexchange.com || <syntaxhighlight lang=css inline>div.message pre,div.message code{font-family:"APL385 Unicode"}</syntaxhighlight>
|-
| stackexchange.com || <syntaxhighlight lang=css inline>.s-prose code,.comment-copy code{font-family:"APL385 Unicode"}</syntaxhighlight>
|-
| discord.com || <syntaxhighlight lang=css inline>code{font-family:"APL385 Unicode"!important}</syntaxhighlight>
|-
| github.com || <syntaxhighlight lang=css inline>textarea,.cm-line,.blob-code-inner{font-family:"APL385 Unicode"}</syntaxhighlight>
|}


== Changing font in Dyalog RIDE ==
== Changing font in Dyalog RIDE ==
[[Dyalog Ltd]]'s cross-platform RIDE interface, which is the default GUI interface on all non-Windows platforms, does not expose a font setting. However, it is trivial to change font:
[[Dyalog Ltd]]'s cross-platform RIDE interface, which is the default GUI interface on all non-Windows platforms, did not expose a font setting until version 4.5. However, it is trivial to change font:
* Open ride-base.css[[#loc|*]]
* Open ride-base.css[[#loc|*]]
* Find the line that says <syntaxhighlight lang=css inline>src: url('./fonts/Apl385.woff') format('woff'), url('./fonts/Apl385.ttf') format('truetype');</syntaxhighlight>
* Find the line that says <syntaxhighlight lang=css inline>src: url('./fonts/Apl385.woff') format('woff'), url('./fonts/Apl385.ttf') format('truetype');</syntaxhighlight>
Line 160: Line 170:


==Designing a font==
==Designing a font==
Making a good APL font is no small task. Since many [[glyph]]s share sub-glyphs due to the history of [[overstrike|overstriking]], multiple dimensions of commonality needs to be aligned. The following table can help:
Making a good APL font is no small task. Since many [[glyph]]s share sub-glyphs due to the history of [[overstrike|overstriking]], multiple dimensions of commonality need to be aligned. The following table can help:
{|class=wikitable
{|class=wikitable
!Class !! Glyphs
!Class !! Glyphs
|-
|-
| alphas || <code>⍺⍶</code>
| alphas || <code>⍺⍶@</code>
|-
|-
| arrows-down || <code>↓⍗⍖</code>
| arrows-down || <code>↓⍗⍖</code>
Line 192: Line 202:
| diamonds || <code>⋄⌺⍚</code>
| diamonds || <code>⋄⌺⍚</code>
|-
|-
| diereses || <code>¨⍨⍥⍤⍣⍢⍡⍩</code>
| diereses || <code>¨⍨⍥⍤⍣⍢⍡⍩∵</code>
|-
|-
| dots || <code>.:,;?!</code>
| dots || <code>.:;?!⍰∵‼</code>
|-
|-
| epsilons || <code>∊⍷</code>
| epsilons || <code>∊⍷</code>
|-
|-
| equals || <code>=≠⌸⍯</code>
| equals || <code>=≠⌸⍯</code>
|-
| greeks || <code>⍺⍶∆⍙∂∊⍷⍳⍸λπ⍴ϼχ</code>
|-
|-
| iotas || <code>⍳⍸</code>
| iotas || <code>⍳⍸</code>
|-
|-
| jots || <code>∘⍤⍛⍝⍎⍕¤⌾⟃⟄</code>
| jots || <code>∘⍤⍛⍝⍎⍕¤⌾⟃⟄</code>
|-
| letters || <code>⍺⍶∆⍙∂∊⍷⍳⍸λπ⍴ϼχ⍵⍹∫</code>
|-
|-
| omegas || <code>⍵⍹</code>
| omegas || <code>⍵⍹</code>
|-
|-
| quads || <code>⎕⌸⌹⌺⌻⌼⍁⍂⍃⍄⍇⍈⍌⍍⍐⍓⍯⍰</code>
| quads || <code>⎕⌸⌹⌺⌻⌼⍁⍂⍃⍄⍇⍈⍌⍍⍐⍓⍯⍰</code>
|-
| quotes || <code>'!⍘⍞"‼</code>
|-
|-
| shoes-down || <code>∪⍦</code>
| shoes-down || <code>∪⍦</code>
Line 218: Line 230:
| shoes-up || <code>∩⋔</code>
| shoes-up || <code>∩⋔</code>
|-
|-
| slashes || <code>/⌿⍁%</code>
| slashes || <code>/⌿⍁%</code>
|-
|-
| slashes-back || <code>\⍀⍉⍂</code>
| slashes-back || <code>\⍀⍉⍂⑊</code>
|-
|-
| stiles || <code><nowiki>|</nowiki>⌽⍒⍋∥⍭⍦⍧$</code>
| stiles || <code><nowiki>|</nowiki>⌽⍒⍋∥⍭⍦⍧$</code>
Line 230: Line 242:
| tildes || <code>~⍬⍭⍱⍲</code>
| tildes || <code>~⍬⍭⍱⍲</code>
|-
|-
| underscores || <code>_⍙⍷⍛⍸⊆⊇⍊⍜⍶⍹⍮⍚⍘</code>
| underscores || <code>_⍙⍷⍛⍸⊆⊇⍊⍜⍶⍹⍮⍚⍘ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ</code>*
|-
|-
| wedges-down || <code>∨⍱⍌</code>
| wedges-down || <code>∨⍱⍌</code>
|-
|-
| wedges-left || <code><≤⍃ᑈ</code>
| wedges-left || <code><≤⍃ᑈ«</code>
|-
|-
| wedges-right || <code>>≥⍄⍩ᐵ</code>
| wedges-right || <code>>≥⍄⍩ᐵ»</code>
|-
|-
| wedges-up || <code>∧⍲⍓</code>
| wedges-up || <code>∧⍲⍓</code>
|-
| miscellaneous || <code>➥∞√˝⇐</code>
|}
|}
:<nowiki>*</nowiki> [[Dyalog APL]] maps the traditional APL underscored alphabet to [[Unicode]]'s circled uppercase letters.


== References ==
== References ==
<references/>
<references/>
{{APL development}}[[Category:APL character set]][[Category:Lists]]
{{APL development}}[[Category:APL character set]][[Category:Lists]]

Navigation menu