Fonts

With the prevalence of Unicode, many systems render APL legibly out-of-the-box. However, for a uniform appearance, the font should be designed with APL in mind. This article lists some fonts that are suited for APL, and shows how to use them.

Historical anecdote
Using IBM's APL\360 required the use of the IBM 2741 or IBM 1050 printing terminal with an APL type ball. The APL2741 font is based directly on this type ball.

Rendering APL on websites
For APL code to be rendered well on a website, three conditions must be fulfilled: All these things can be achieved by inserting the following into the  element of the page. Replace font name and file name with values corresponding to the desired font: The  font file must be placed in the same directory as the HTML file, and all APL code must be wrapped in   or   elements.
 * 1) The page has to use a proper encoding
 * 2) The APL code has to be formatted with an appropriate APL font
 * 3) The APL font has to be made available for those users that do not have it installed

Bad rendering
The Blink browser engine instructs the HarfBuzz text shaping engine to prefer fidelity in typeface over fidelity in glyph shape. As a consequence, text using a font that lacks the  glyph (Tally, Not Match) often ends up looking like   (Match reduction), causing great confusion. The issue affects diverse things like Android WebView, Chromium Embedded Framework, all Electron apps, 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 Stylus or Stylish, adding the following rule for chat.stackexchange.com: Alternatively, one can set the browser to override fonts.

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:
 * Open ride-base.css*
 * Find the line that says
 * Insert  immediately after , for example
 * Restart RIDE

* The full path to ride-base.css varies (examples for RIDE 4.4 and Dyalog 18.2):
 * Stand-alone installation:
 * Windows: %LOCALAPPDATA%\Programs\Dyalog\Ride-4.4\resources\app\style\ride-base.css
 * Linux: /opt/ride-4.4/resources/app/style/ride-base.css
 * macOS: /Applications/Ride-4.4.app/resources/app/style/ride-base.css
 * Zero-footprint RIDE (served by the interpreter and normally accessed through a browser):
 * Linux or AIX: /opt/mdyalog/18.2/64/unicode/Contents/Resources/Dyalog/RIDEapp/resources/app/style/ride-base.css
 * macOS: /Applications/Dyalog-18.2.app/Contents/Resources/Dyalog/RIDEapp/resources/app/style/ride-base.css