APL Font: Difference between revisions

From NARS2000
Jump to navigationJump to search
 
(35 intermediate revisions by 4 users not shown)
Line 1: Line 1:
==Default Font==
==Default Font==


The default APL font for the site is '''SImPL medium''', '''SImPL''', or '''APL385 Unicode'''.
The default APL font for NARS2000 (its APL Interpreter session, function editing, screen display and printing purposes) and this wiki is (in order of preference) [https://abrudz.github.io/APL386/APL386.ttf|'''APL386 Unicode'''], [https://apl385.com/fonts/apl385.zip|'''APL385 Unicode'''], '''SImPL medium'''(Unicode based), or '''SImPL'''.


If the APL characters in the articles don't display correctly, you can obtain a copy of the '''SImPL medium''' font by downloading the current [http://www.nars2000.org/download/Download.html NARS2000 binary], or the '''SImPL''' font from [http://archive.vector.org.uk/resource/simpl02.zip here], or the '''APL385 Unicode''' font from [http://archive.vector.org.uk/resource/apl385.ttf here].
If the APL characters in the articles don't display correctly, you may obtain a copy of the [https://abrudz.github.io/APL386/APL386.ttf|'''APL386 Unicode'''] and '''SImPL medium''' font by downloading the current [http://www.nars2000.org/download/Download.html NARS2000 binary], or the '''APL385 Unicode''' font from [http://archive.vector.org.uk/resource/apl385.ttf here], or the '''SImPL''' font from [http://archive.vector.org.uk/resource/simpl02.zip here].  Normally these fonts may  be found in your downloaded NARS2000 program folder, e.g. '''C:\Program Files (x86)\NARS2000''' (for the 32-bit program) or '''C:\Program Files\NARS2000''' (for the 64-bit version).


If they still don't display correctly, [http://www.getfirefox.com/ download] FireFox.
==Default Keyboard Layout==


==Extra APL Glyphs==
NARS2000 default APL keyboard layout, based on the SImPL medium font, is found '''[http://www.sudleyplace.com/APL/Keyboard.ahtml here]''', on SudleyPlace.com.  Printing the keyboard layout and keeping it in front of you while using NARS2000 - provides a handy reference. Just as typists eventually memorize the QWERTY (oe AZERTY, etc.) keyboard layout, most APL'ers quickly memorize APL keyboard layouts.  A <u>printed keyboard reference</u> is good to <u>keep</u> however, if only for some of the lesser used APL symbols.  Several frequently used APL symbols are <u>very easily keyboard-memorized</u>: '''∊ (epsilon = Alt-e), ⍴ (rho = Alt-r), ∼ (tilde = Alt-t) and ⍳ (iota = Alt-i)''' since the beginning letter of the symbol is same-placed as its qwerty letter equivalent in the alphabet.  Also, all of the APL symbols may be found (and copied to the current session or function being edited) from the Language Bar at the top of the APL session window.  Cross ref. wiki page [[Keyboard|Keyboard and Language bar]].


While any Unicode APL font will display all of the standard APL glyphs, NARS2000 uses (or has plans to use) some extra glyphs not found in all Unicode APL fonts such as
==Font Issues==
Even if you have an APL font installed, that may not be the end of the story. Each font designer decides what glyphs to display and for which characters. Also, some implementations of supposedly Unicode fonts don't always display the same glyphs in the same places or in the same way. The '''SimPL Medium''' font, which comes with NARS2000, will display some characters with different glyphs than are displayed by the font '''APL385 Unicode'''.  For example, these are the underlined letters A to Z, which are valid identifiers in APL: <u>A</u> <u>B</u> <u>C</u> <u>D</u> <u>E</u> <u>F</u> <u>G</u> <u>H</u> <u>I</u> <u>J</u> <u>K</u> <u>L</u> <u>M</u> <u>N</u> <u>O</u> <u>P</u> <u>Q</u> <u>R</u> <u>S</u> <u>T</u> <u>U</u> <u>V</u> <u>W</u> <u>X</u> <u>Y</u> <u>Z</u>. Now, to display these characters in ''APL385 Unicode'', the characters use code positions 9398 through 9423, or 0x24B6 through 0x24CF, which show up as &#9398; &#9399; &#9400; &#9401; &#9402; &#9403; &#9404; &#9405; &#9406; &#9407; &#9408; &#9409; &#9410; &#9411; &#9412; &#9413; &#9414; &#9415; &#9416; &#9417; &#9418; &#9419; &#9420; &#9421; &#9422; &#9423;, which, while not the same, is very close.  When copying underlined APL characters to the clipboard, you may convert them to lowercase by first setting the user preference "Underbar alphabet converted to lowercase".


<table border="0" summary="" cellspacing="0">
The standard '''Arial''' font doesn't even have a built-in set of underlined characters, nor does SimPL. (Yet note some glyphs, as shown below, that are used by NARS2000, are not present in APL385.)
  <tr>
    <th style="border-bottom: solid black 1px;">Name</th>
    <th style="border-bottom: solid black 1px;">Symbol</th>
    <th style="border-bottom: solid black 1px;">Unicode<br />Code Point</th>
    <th style="border-bottom: solid black 1px;">Keystroke</th>
    <th style="border-bottom: solid black 1px;">Description</th>
  </tr>


  <tr>
Also, the settings for Unicode for APL symbols, which are listed as being 0x2300 - 0x23F3, do not necessarily appear - or appear the same - in all APL fonts.
    <td>Section</td>
    <td align="center"><apll>§</apll></td>
    <td align="center">0x00A7</td>
    <td align="center">'''Alt-S'''</td>
    <td>Multiset Symmetric Difference</td>
  </tr>


  <tr>
==Extra APL Glyphs==
    <td>Pi</td>
    <td align="center"><apll>π</apll></td>
    <td align="center">0x03C0</td>
    <td align="center">'''Alt-p'''</td>
    <td>Prime Decomposition and Number-theoretic</td>
  </tr>


  <tr>
While any Unicode APL font will display all of the standard APL glyphs, NARS2000 uses (or has plans to use) some extra glyphs not found in all Unicode APL fonts such as
    <td>Root</td>
    <td align="center"><apll>√</apll></td>
    <td align="center">0x221A</td>
    <td align="center">'''Alt-R'''</td>
    <td>Square Root and Nth Root</td>
  </tr>
 
  <tr>
    <td>Infinity</td>
    <td align="center"><apll>∞</apll></td>
    <td align="center">0x221E</td>
    <td align="center">'''Alt-f'''</td>
    <td>Infinity</td>
  </tr>
 
  <tr>
    <td>Mismatch</td>
    <td align="center"><apll>≢</apll></td>
    <td align="center">0x2262</td>
    <td align="center">'''Alt-@'''</td>
    <td>Mismatch</td>
  </tr>
 
  <tr>
    <td>Left-shoe-underbar</td>
    <td align="center"><apll>⊆</apll></td>
    <td align="center">0x2286</td>
    <td align="center">'''Alt-Z'''</td>
    <td>Subset of</td>
  </tr>
 
  <tr>
    <td>Right-shoe-underbar</td>
    <td align="center"><apll>⊇</apll></td>
    <td align="center">0x2287</td>
    <td align="center">'''Alt-X'''</td>
    <td>Superset of</td>
  </tr>
 
  <tr>
    <td>Circle-middle-dot</td>
    <td align="center"><apll>⊙</apll></td>
    <td align="center">0x2299</td>
    <td align="center">'''Alt-?'''</td>
    <td>Null operator</td>
  </tr>
 
  <tr>
    <td>Dieresis-downtack</td>
    <td align="center"><apll>⍡</apll></td>
    <td align="center">0x2361</td>
    <td align="center">'''Alt-N'''</td>
    <td>Convolution operator<b>&dagger;</b></td>
  </tr>
 
  <tr>
    <td>Dieresis-del</td>
    <td align="center"><apll>⍢</apll></td>
    <td align="center">0x2362</td>
    <td align="center">'''Alt-G'''</td>
    <td>Dual operator<b>&dagger;</b></td>
  </tr>
 
  <tr>
    <td>Dieresis-star</td>
    <td align="center"><apll>⍣</apll></td>
    <td align="center">0x2363</td>
    <td align="center">'''Alt-P'''</td>
    <td>Power operator<b>&dagger;</b></td>
  </tr>
 
  <tr>
    <td>Dieresis-jot</td>
    <td align="center"><apll>⍤</apll></td>
    <td align="center">0x2364</td>
    <td align="center">'''Alt-J'''</td>
    <td>Rank operator</td>
  </tr>
 
  <tr>
    <td>Dieresis-circle</td>
    <td align="center"><apll>⍥</apll></td>
    <td align="center">0x2365</td>
    <td align="center">'''Alt-O'''</td>
    <td>Composition operator</td>
  </tr>
 
  <tr>
    <td>Down-shoe-stile</td>
    <td align="center"><apll>⍦</apll></td>
    <td align="center">0x2366</td>
    <td align="center">'''Alt-m'''</td>
    <td>Multiset operator</td>
  </tr>
 
  <tr>
    <td>Dieresis-tilde</td>
    <td align="center"><apll>⍨</apll></td>
    <td align="center">0x2368</td>
    <td align="center">'''Alt-T'''</td>
    <td>Commute operator</td>
  </tr>
 
  <tr>
    <td>Zilde</td>
    <td align="center"><apll>⍬</apll></td>
    <td align="center">0x236C</td>
    <td align="center">'''Alt-}'''</td>
    <td>Empty simple numeric vector</td>
  </tr>


  <tr>
{| border="0" summary="" cellspacing="0"
    <td>Stile-tilde</td>
! style="border-bottom: solid black 1px;" |Name
    <td align="center"><apll></apll></td>
! style="border-bottom: solid black 1px;" |Symbol
    <td align="center">0x236D</td>
! style="border-bottom: solid black 1px;" |Unicode<br />Code Point
    <td align="center">'''Alt-M'''</td>
! style="border-bottom: solid black 1px;" |Keystroke
    <td>Partition operator<b>&dagger;</b></td>
! style="border-bottom: solid black 1px;" |Description
  </tr>
|-
</table>
||Section
| align="center" |<apll>§</apll>
| align="center" |&ensp;167 or U+00A7
| align="center" |'''Alt-t'''
| [[Multisets#Missing_Function|Multiset Symmetric Difference]]
|-
||Plus-or-Minus
| align="center" |<apll>±</apll>
| align="center" |&ensp;177 or U+00B1
| align="center" |'''Alt-q'''
|| [[Ball Arithmetic]]
|-
||Pi
| align="center"|<apll>π</apll>
| align="center"|&ensp;960 or U+03C0 
| align="center"|'''Alt-p'''
|| [[Primes|Prime Decomposition and Number-theoretic]]
|-
||Chi
| align="center"|<apll>χ</apll>
| align="center"|&ensp;967 or U+03C7
| align="center"|'''Alt-C'''
|| [[Anonymous Functions/Operators/Hyperators#Axis_Operator|Anonymous Functions/Operators/Hyperators]]
|-
||Double-Shriek
| align="center"|<apll>‼</apll>
| align="center"|8252 or U+203C
| align="center"|'''Alt-k'''
|| [[Combinatorial|Combinatorial Operator]]
|-
||Derivative
| align="center"|<apll>∂</apll>
| align="center"|8706 or U+2202
| align="center"|'''Alt-D'''
| [[Derivative]]
|-
||NaN
| align="center"|<apll>{nan}</apll>
| align="center"|8709 or U+2205
| align="center"|'''Alt-5'''
||[[NaN|NaN]]
|-
||Root
| align="center"|<apll>√</apll>
| align="center"|8730 or U+221A
| align="center"|'''Alt-R'''
|| [[Root|Square Root and Nth Root]]
|-
||Infinity
| align="center"|<apll>∞</apll>
| align="center"|8734 or U+221E 
| align="center"|'''Alt-f'''
|| [[Infinity]]
|-
||Integral
| align="center"|<apll><_sg/></apll>
| align="center"|8747 or U+222B
| align="center"|'''Alt-S'''
|| [[Integral]]
|-
||Double-Tilde
| align="center"|<apll>≈</apll>
| align="center"|8776 or U+2248
| align="center"|'''Alt-Q'''
|| [[Ball Arithmetic]]
|-
|| Mismatch
| align="center"|<apll>≢</apll>
| align="center"|8802 or U+2262
| align="center"|'''Alt-@'''
|| [[Mismatch]]
|-
||Left-shoe-underbar
| align="center"|<apll>⊆</apll>
| align="center"|8838 or U+2286
| align="center"|'''Alt-Z'''
|| [[Sets|Subset of]]
|-
|| Right-shoe-underbar
| align="center"|<apll>⊇</apll>
| align="center"|8839 or U+2287
| align="center"|'''Alt-X'''
|| [[Sets|Superset of]]
|-
||Circle-middle-dot
| align="center"|<apll>⊙</apll>
| align="center"|8857 or U+2299
| align="center"|'''Alt-?'''
|| [[Null|Null operator]]
|-
||Quad-jot
| align="center"|<apll>⌻</apll>
| align="center"|9019 or U+233B
| align="center"|'''Alt-F'''
|| [[Matrix|Matrix Operator]]
|-
||Downtack-overbar
| align="center"|<apll>⍑</apll>
| align="center"|9041 or U+2351
| align="center"|'''Alt-B'''
|| [https://www.sudleyplace.com/APL/A%20Transform%20Hyperator%20in%20APL.pdf Transform Operator]
|-
||Quad-colon
| align="center"|<apll>⍠</apll>
| align="center"|9056 or U+2360
| align="center"|'''Alt-_'''
|| [[Variant|Variant operator]]
|-
||Dieresis-downtack
| align="center"|<apll>⍡</apll>
| align="center"|9057 or U+2361
| align="center"|'''Alt-N'''
|| [[Convolution|Convolution operator]]
|-
||Dieresis-del
| align="center"|<apll></apll>
| align="center"|9058 or U+2362
| align="center"|'''Alt-G'''
|| [[Dual|Dual operator<b>]]&dagger;</b>
|-
||Dieresis-star
| align="center"|<apll>⍣</apll>
| align="center"|9059 or U+2363
| align="center"|'''Alt-P'''
|| [[Power|Power operator]]
|-
||Dieresis-jot
| align="center"|<apll></apll>
| align="center"|9060 or U+2364
| align="center"|'''Alt-J'''
|| [[Rank|Rank/Atop operator]]
|-
||Dieresis-circle
| align="center"|<apll>⍥</apll>
| align="center"|9061 or U+2365
| align="center"|'''Alt-O'''
|| [[Composition|Composition operator]]
|-
||Down-shoe-stile
| align="center"|<apll>⍦</apll>
| align="center"|9062 or U+2366
| align="center"|'''Alt-m'''
|| [[Multisets|Multiset operator]]
|-
||Dieresis-tilde
| align="center"|<apll>⍨</apll>
| align="center"|9064 or U+2368
| align="center"|'''Alt-T'''
|| [[Commute-Duplicate|Commute/Duplicate operator]]
|-
|| Del-tilde
| align="center"|<apll>⍫</apll>
| align="center"|9067 or U+236B
| align="center"|'''Alt-K'''
|| [[Commutator|Commutator operator]]<b>&dagger;</b>
|-
|| Zilde
| align="center"|<apll>⍬</apll>
| align="center"|9068 or U+236C
| align="center"|'''Alt-}'''
|| Empty simple numeric vector
|-
|| Stile-tilde
| align="center"|<apll>⍭</apll>
| align="center"|9069 or U+236D
| align="center"|'''Alt-M'''
|| [[Partition|Partition operator]]<b>&dagger;</b>
|-
|| Line Continuation
| align="center"|<apll>➥</apll>
| align="center"|10149 or U+27A5
| align="center"|&nbsp;&nbsp;&nbsp;'''Shift-Enter'''&nbsp;&nbsp;&nbsp;
|| [[Session_Manager_Editing|Line Continuation Marker]]
|}


<b>&dagger;</b> = Not currently implemented.
<b>&dagger;</b> = Not currently implemented.


All of the above glyphs may be found in '''SImPL medium''', all but the Infinity symbol in '''SImPL''', and all but the Null operator in '''APL385 Unicode'''.
<p>All but the Integral and Line Continuation symbols may be found in '''SImPL medium''' and all but the NaN, Derivative, Null, and Line Continuation symbols in '''APL385 Unicode'''.</p>
<p>All of the above symbols may be found in '''APL386 Unicode'''.</p>

Latest revision as of 16:11, 8 January 2024

Default Font

The default APL font for NARS2000 (its APL Interpreter session, function editing, screen display and printing purposes) and this wiki is (in order of preference) APL386 Unicode, APL385 Unicode, SImPL medium(Unicode based), or SImPL.

If the APL characters in the articles don't display correctly, you may obtain a copy of the APL386 Unicode and SImPL medium font by downloading the current NARS2000 binary, or the APL385 Unicode font from here, or the SImPL font from here. Normally these fonts may be found in your downloaded NARS2000 program folder, e.g. C:\Program Files (x86)\NARS2000 (for the 32-bit program) or C:\Program Files\NARS2000 (for the 64-bit version).

Default Keyboard Layout

NARS2000 default APL keyboard layout, based on the SImPL medium font, is found here, on SudleyPlace.com. Printing the keyboard layout and keeping it in front of you while using NARS2000 - provides a handy reference. Just as typists eventually memorize the QWERTY (oe AZERTY, etc.) keyboard layout, most APL'ers quickly memorize APL keyboard layouts. A printed keyboard reference is good to keep however, if only for some of the lesser used APL symbols. Several frequently used APL symbols are very easily keyboard-memorized: ∊ (epsilon = Alt-e), ⍴ (rho = Alt-r), ∼ (tilde = Alt-t) and ⍳ (iota = Alt-i) since the beginning letter of the symbol is same-placed as its qwerty letter equivalent in the alphabet. Also, all of the APL symbols may be found (and copied to the current session or function being edited) from the Language Bar at the top of the APL session window. Cross ref. wiki page Keyboard and Language bar.

Font Issues

Even if you have an APL font installed, that may not be the end of the story. Each font designer decides what glyphs to display and for which characters. Also, some implementations of supposedly Unicode fonts don't always display the same glyphs in the same places or in the same way. The SimPL Medium font, which comes with NARS2000, will display some characters with different glyphs than are displayed by the font APL385 Unicode. For example, these are the underlined letters A to Z, which are valid identifiers in APL: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z. Now, to display these characters in APL385 Unicode, the characters use code positions 9398 through 9423, or 0x24B6 through 0x24CF, which show up as Ⓐ Ⓑ Ⓒ Ⓓ Ⓔ Ⓕ Ⓖ Ⓗ Ⓘ Ⓙ Ⓚ Ⓛ Ⓜ Ⓝ Ⓞ Ⓟ Ⓠ Ⓡ Ⓢ Ⓣ Ⓤ Ⓥ Ⓦ Ⓧ Ⓨ Ⓩ, which, while not the same, is very close. When copying underlined APL characters to the clipboard, you may convert them to lowercase by first setting the user preference "Underbar alphabet converted to lowercase".

The standard Arial font doesn't even have a built-in set of underlined characters, nor does SimPL. (Yet note some glyphs, as shown below, that are used by NARS2000, are not present in APL385.)

Also, the settings for Unicode for APL symbols, which are listed as being 0x2300 - 0x23F3, do not necessarily appear - or appear the same - in all APL fonts.

Extra APL Glyphs

While any Unicode APL font will display all of the standard APL glyphs, NARS2000 uses (or has plans to use) some extra glyphs not found in all Unicode APL fonts such as

Name Symbol Unicode
Code Point
Keystroke Description
Section §  167 or U+00A7 Alt-t Multiset Symmetric Difference
Plus-or-Minus ±  177 or U+00B1 Alt-q Ball Arithmetic
Pi π  960 or U+03C0 Alt-p Prime Decomposition and Number-theoretic
Chi χ  967 or U+03C7 Alt-C Anonymous Functions/Operators/Hyperators
Double-Shriek 8252 or U+203C Alt-k Combinatorial Operator
Derivative 8706 or U+2202 Alt-D Derivative
NaN 8709 or U+2205 Alt-5 NaN
Root 8730 or U+221A Alt-R Square Root and Nth Root
Infinity 8734 or U+221E Alt-f Infinity
Integral 8747 or U+222B Alt-S Integral
Double-Tilde 8776 or U+2248 Alt-Q Ball Arithmetic
Mismatch 8802 or U+2262 Alt-@ Mismatch
Left-shoe-underbar 8838 or U+2286 Alt-Z Subset of
Right-shoe-underbar 8839 or U+2287 Alt-X Superset of
Circle-middle-dot 8857 or U+2299 Alt-? Null operator
Quad-jot 9019 or U+233B Alt-F Matrix Operator
Downtack-overbar 9041 or U+2351 Alt-B Transform Operator
Quad-colon 9056 or U+2360 Alt-_ Variant operator
Dieresis-downtack 9057 or U+2361 Alt-N Convolution operator
Dieresis-del 9058 or U+2362 Alt-G Dual operator
Dieresis-star 9059 or U+2363 Alt-P Power operator
Dieresis-jot 9060 or U+2364 Alt-J Rank/Atop operator
Dieresis-circle 9061 or U+2365 Alt-O Composition operator
Down-shoe-stile 9062 or U+2366 Alt-m Multiset operator
Dieresis-tilde 9064 or U+2368 Alt-T Commute/Duplicate operator
Del-tilde 9067 or U+236B Alt-K Commutator operator
Zilde 9068 or U+236C Alt-} Empty simple numeric vector
Stile-tilde 9069 or U+236D Alt-M Partition operator
Line Continuation 10149 or U+27A5    Shift-Enter    Line Continuation Marker

= Not currently implemented.

All but the Integral and Line Continuation symbols may be found in SImPL medium and all but the NaN, Derivative, Null, and Line Continuation symbols in APL385 Unicode.

All of the above symbols may be found in APL386 Unicode.