Compare commits

...

42 commits

Author SHA1 Message Date
Kirill Pertsev df78e71364
Merge pull request #30 from mikejzx/master
FSEX.ttx: Fix inconsistent date error
2023-03-05 19:08:33 -04:00
Kirill Pertsev 084b3db161
Merge pull request #31 from jengelh/master
Updates to the README
2021-08-01 11:45:27 -07:00
Jan Engelhardt ed932dc558 README: various clarifications 2021-08-01 11:25:01 +02:00
Jan Engelhardt 6496c15de6 README: replace link to issue 3 by explanation of the topic 2021-08-01 11:04:13 +02:00
Jan Engelhardt a9ef5b736e README: replace link to issue 21 by result of discussion
If and when GitHub is not available, it's good to have the
terms available locally.
2021-08-01 10:39:06 +02:00
Mike Skec 20d2684f1f
FSEX.ttx: Fix inconsistent date error 2021-04-12 11:07:41 +10:00
Kirill Pertsev 793437a8bc
Update README with the link to VSCode CSS editing gist 2019-10-31 21:14:30 -07:00
Kirill Pertsev 648e74cc04
Added link to the issue explaining -alt version 2019-10-19 17:07:38 -07:00
Kirill Pertsev d9df2f48f1
cosmetics 2019-07-13 11:35:59 -07:00
Kirill Pertsev 47263daac2
Added link to the issue with commercial use guidance 2019-07-13 11:35:33 -07:00
Kirill Pertsev 2ad7b7971d
Update README.md
Added a perl "patch" for VSCode on MacOS
2019-02-06 19:36:50 -08:00
Kirill Pertsev b7b970b4ee
Update README
1. Added link to MacVim issue
2. Added VSCode info about antialiasing
2019-02-04 19:53:33 -08:00
Kirill Pertsev efd6705f91
Revert previous commit 2019-01-25 16:25:16 -08:00
Kirill Pertsev f6b7d94cce
Update README wrt MacVim fix 2019-01-25 16:02:53 -08:00
Kirill Pertsev c7323b94f0
Merge pull request #17 from subylan/master
Update the README to reflect MacVim regression
2018-08-05 15:38:06 -07:00
Benjamin Crawford 27beb0cad8 Update the README to reflect MacVim regression 2018-07-31 16:51:11 +01:00
Kirill Pertsev 228a925305
Updated VSCODE instructions 2018-02-15 15:31:18 -08:00
Kirill Pertsev 59ed71e3b2
Merge pull request #13 from iiiGerardoiii/patch-1
Update README.md
2017-12-14 11:25:10 -08:00
Gerardo 7f192786f8
Update README.md
Added line to disable font smoothing on Sublime Text for better appearance.
2017-12-14 12:03:26 -06:00
Kirill Pertsev fb207ee395 Fixed #12; Fixed table versions to silence ttx warnings 2017-11-28 16:58:39 -08:00
Kirill Pertsev 54b115e5d8
Update README.md
added information about alternative versions of the font
2017-11-28 12:32:09 -08:00
Kirill Pertsev adbe348bf2 Fix the improper Sublime3 instructions position 2017-10-16 13:41:49 -07:00
Kirill Pertsev b4b311af0e Merge pull request #11 from davmillar/Sublime
Sublime
2017-10-16 13:38:28 -07:00
David Millar c3a1ec4fdc Added Sublime Text 3 info after testing font with it. 2017-10-16 11:52:33 -05:00
David Millar faf1a47c22 Tidied up code. 2017-10-16 11:52:08 -05:00
Kirill Pertsev bffb21c986 typo 2017-07-08 15:45:04 -07:00
Kirill Pertsev 97e31bc1b5 Adding credits where credits are due 2017-07-08 15:44:30 -07:00
Kirill Pertsev 489f71efbc Merge pull request #10 from adrianparvino/patch-1
Instructions for Emacs
2017-07-08 15:35:55 -07:00
Adrian Parvin D. Ouano cebe20c3d4 Update README.md 2017-07-08 15:10:29 +08:00
Kirill Pertsev 0642b4d599 Added VSCode instructions
Courtesy of https://github.com/tonsky/FiraCode/wiki/VS-Code-Instructions
Fixes #7
2017-05-19 10:48:44 -07:00
Kirill Pertsev 63cb83bc5e Added <== 2016-12-19 03:26:06 -08:00
Kirill Pertsev c3953cefa8 Updated list of (in)compatible software
Thanks @ForNeVeR
2016-11-21 19:15:03 -08:00
Kirill Pertsev 1620b3a9f0 Sample for 3.02.7 2016-11-21 19:06:49 -08:00
Kirill Pertsev 36b3334991 Added long right arrow --> (closes #4)
Added "less or equal" and "greater or equal" ligatures
Added support for conditional compilation using C preprocessor
  Default compilation enables =< and >= ligatures for the above
  Alt compilation enables <= (used to be fat arrow) and >= (closes #3)
2016-11-21 18:57:17 -08:00
Kirill Pertsev 805f6d44e9 Added alt (<|>) operator and Kleisli arrows (>=> and <=<) 2016-08-11 19:01:03 -07:00
Kirill Pertsev d63ad02959 v3.02.5 2016-07-29 19:51:30 -07:00
Kirill Pertsev dd04952c42 shortened >>= and =<< 2016-07-29 19:45:24 -07:00
Kirill Pertsev bdca086c9c Added /\ 2016-07-29 19:33:32 -07:00
Kirill Pertsev 5945cc3842 Added <^> 2016-07-29 19:21:27 -07:00
Kirill Pertsev a1c17f8f7f Added <~> 2016-07-29 18:58:05 -07:00
Kirill Pertsev 57692fa824 Merge branch 'master' of https://github.com/kika/fixedsys 2016-06-04 19:44:43 -07:00
Kirill Pertsev 91a3452666 Added <~ and ~> ligatures 2016-06-04 19:44:13 -07:00
5 changed files with 939 additions and 137 deletions

892
FSEX.ttx

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,20 @@
FSEX302.ttf: FSEX.ttx
ttx -f -o $@ $<
COMPILE=ttx -f --recalc-timestamp
CPP=cpp
all: FSEX302.ttf FSEX302-alt.ttf
FSEX302.ttf: FSEX-default.ttx
$(COMPILE) -o $@ $<
cp $@ ~/Library/Fonts
atsutil databases -remove
rm $<
FSEX302-alt.ttf: FSEX-alt.ttx
$(COMPILE) -o $@ $<
rm $<
FSEX-default.ttx: FSEX.ttx
$(CPP) $< |grep -v "^#" > $@
FSEX-alt.ttx: FSEX.ttx
$(CPP) -DALT_LESSEQUAL $< |grep -v "^#" > $@

154
README.md
View file

@ -1,64 +1,172 @@
# Fixedsys Excelsior font with programming ligatures
## Original copyright
Created by Darien Valentine
## Distribution terms
[Font website](http://www.fixedsysexcelsior.com)
The font was originally authored by Darien Valentine [@bathos](https://github.com/bathos) and provided via a now-defunct site at [fixedsysexcelsior.com](http://www.fixedsysexcelsior.com). This derivative's source code repository and issue tracker can be found at [github.com/kika/fixedsys](https://github.com/kika/fixedsys/).
The creator(s) of this content have released it to the public domain. For jurisdictions where this is not permitted, it is released under the terms of the Creative Commons Zero Dedication.
## It looks like this
<img src="./images/sample.png" />
## Where to get the result without compiling
The compiled TTF binary font is on the Releases page.
There are two versions provided:
1. Default has =< and >= ligated into "less or equal" and "greater or equal"
1. Alt version enables <= (replacing reverse fat arrow) and >= instead (closes #3)
### What is the ALT version in the releases about?
The fonts declare a set of ligatures that replace certain groups of adjacent characters by a combined glyph. The ALT variant has some of the ligature declarations swapped to facilitate code programming, where `<=` is almost always meant to be a less-or-equal operator, and also works for the general case too, based on the presumption that left fat arrows are seldomly used even in scientific texts.
| Input | Normal variant | ALT variant |
|------- | ---------------- | ---------------- |
| `<=` | left fat arrow | less-or-equal |
| `<==` | left fat arrow | left fat arrow |
| `=>` | right fat arrow | right fat arrow |
| `=<` | less-or-equal | (no ligature) |
| `>=` | greater-or-equal | greater-or-equal |
| `>==` | (no ligature) | (no ligature) |
## Rationale
I was always jealous for folks using [Fira Code](https://github.com/tonsky/FiraCode),
[Hasklig](https://github.com/i-tu/Hasklig) or [Monoid](https://github.com/larsenwork/monoid)
fonts, but my problem is that I have a hard time reading (not even mentioning writing)
a computer program in anything but 8x16 font. I probably spent too much time with older
I (Kirill Pertsev) was always jealous for folks using [Fira Code](https://github.com/tonsky/FiraCode),
[Hasklig](https://github.com/i-tu/Hasklig) or [Monoid](https://github.com/larsenwork/monoid)
fonts, but my problem is that I have a hard time reading (not even mentioning writing)
a computer program in anything but an 8x16 font. I probably spent too much time with older
computers. So after fighting and losing an uphill battle with Glyph2, Fontlab and Fontforge
I discovered [TTX](https://github.com/behdad/fonttools) and was able to finally stop being jealous.
I discovered [TTX](https://github.com/behdad/fonttools) and was able to finally stop being jealous.
This current release has almost everything I use regularly. Feel free to request in the issues. PRs are of course
This current release has almost everything I use regularly. Feel free to request in the issues. PRs are of course
more than welcome. I hope I'm not the only crazy guy on the internet using 8x16
font for consoles and text editing.
font for consoles and text editing.
## History
This font is a simulated 8x16 bitmap font from old Windows and DOS. It was
truly monospaced and really bitmapped and initially contained only Western ASCII
charset.
This font is a simulated 8x16 bitmap font from old Windows and DOS. It was
truly monospaced and really bitmapped and initially contained only
windows-1250, windows-1251, a subset of windows-1252, windows-1253
and windows-1254.
Darien simulated the bitmap with TrueType outlines by building the font from
10x10 squares ("pixels") and then joining the squares together. As such, this font
only works as intended in only one size and usually with antialiasing switched
off. The size is 16px or 12pt.
off. The size is 16px, or 12pt@96dpi.
He also added a lot of foreign characters and made the font Unicode.
He also added a lot of foreign characters and made the font Unicode.
## Tech trivia
The font is distributed in binary TTF format and I decompiled it with
[TTX](https://github.com/behdad/fonttools), added a few symbols inspired by
The font is distributed in binary TTF format and I decompiled it with
[TTX](https://github.com/behdad/fonttools), added a few symbols inspired by
[Fira Code](https://github.com/tonsky/FiraCode) and created necessary ligatures.
To design the symbols I used quad lined paper, pencil and rubber eraser. Like
in good old days, you know.
in good old days, you know.
<img src="./images/IMG_3506.jpg" />
The supported programming ligatures are listed in the `ligatures.txt` file.
To create a TTF file from TTX XML just run `ttx -f FSEX.ttx`
(`-f` means overwrite) or use OS X Makefile to also copy to the user Fonts
folder and update font cache.
To create a TTF file from TTX XML, just run `ttx -f FSEX.ttx`
(`-f` means overwrite) or use the OS X Makefile to also copy it to the user Fonts
folder and update the font cache.
## Supported software (incomplete list, send updates please)
I only tested in MacVim so far (this is the only editor I use). Comments and bug
reports welcome. MacVim should be quite recent for ligatures to work.
**Note**: Versions of MacVim above 8.1-146 seem to have a regression where ligatures are not displayed correctly. Use `brew pin` to maintain your MacVim version below this until this is fixed.
[Tracking issue and workaround](https://github.com/macvim-dev/macvim/issues/841)
Add the following to your `.vimrc`:
```
set guifont=Fixedsys\ Excelsior:h16
set noanti
set noanti
set macligatures
```
Courtesy of [@ForNeVeR](https://github.com/ForNeVeR):
- Windows + IDEA (Oracle JDK): renders ligatures, but have problems rendering latin `A` letter (it occupies no space in text and gets composed with a next character). There's a warning in IDEA interface telling about incompatibilities of Oracle JDK and fonts with ligatures.
- Windows + IDEA (JetBrains JDK): no problems noticed.
- Windows + VS Code:
```json
"editor.fontFamily": "Fixedsys Excelsior",
"editor.fontSize": 16,
"editor.fontLigatures": true
```
or, for newer versions (courtesy of [@Kaffiend](https://github.com/Kaffiend))
```json
"editor.fontFamily": "'Fixedsys Excelsior 3.01'",
"editor.fontSize": 15,
"editor.fontLigatures": true
```
**(The following is only for VSCode on MacOS)** For many people this may look ugly because Fixedsys is not designed to be used with antialiasing. Then you may add the following option
```json
"workbench.fontAliasing": "none"
```
Which will make code editor look nice, but everything else in the VSCode UI - ugly. The solution to that is to modify the CSS for the VSCode itself.
[Here is the script that I keep more or less updated when VSCode changes the CSS](https://gist.github.com/kika/2b5a3ccf065a251a6a8cbcdca7d823cc)
- Windows + Visual Studio 2015: works mostly okay, but `->` ligature doesn't work. That's a [known problem of WPF text renderer](https://github.com/tonsky/FiraCode/issues/259#issuecomment-243422144).
- Windows + ConEmu: no ligatures at all. Powerline stuff works okay though, so font is usable even without ligatures. I'd recommend to set font cell width manually to 8 (otherwise it'll have problems determining proper places for line wrapping and rendering Far Manager UI): **Settings****Main****Main console font** group → select **Cell: 8** from the selector.
### Emacs
Courtesy of [@adrianparvino](https://github.com/adrianparvino)
Requires you to move the U+10001 PUA block to the first PUA block
In this example, U+10001 was moved to U+efb0.
Based on https://github.com/tonsky/FiraCode/wiki/Setting-up-Emacs
```
(set-fontset-font t '(#Xefb0 . #Xefc5) "Fixedsys Excelsior")
(defconst fixedsys-excelsior-font-lock-keywords-alist
(mapcar (lambda (regex-char-pair)
`(,(car regex-char-pair)
(0 (prog1 ()
(compose-region (match-beginning 1)
(match-end 1)
;; The first argument to concat is a string containing a literal tab
,(concat " " (list (decode-char 'ucs (cadr regex-char-pair)))))))))
'(("\\(>>=\\)" #Xefb0)
("\\(=<<\\)" #Xefb1)
("\\(<\\*>\\)" #Xefb2)
("\\(<\\$>\\)" #Xefb3)
("\\(::\\)" #Xefb4)
("\\(:=\\)" #Xefb5)
("\\(<<<\\)" #Xefb6)
("\\(>>>\\)" #Xefb7)
("\\(<>\\)" #Xefb8)
("\\(/=\\)" #Xefb9)
("\\({-\\)" #Xefba)
("\\(-}\\)" #Xefbb)
("\\(<|\\)" #Xefbc)
("\\(|>\\)" #Xefbd)
("\\(~>\\)" #Xefbe)
("\\(<~\\)" #Xefbf)
("\\(<~>\\)" #Xefc0)
("\\(<^>\\)" #Xefc1)
("\\(/\\\\\\)" #Xefc2)
("\\(<|>\\)" #Xefc3)
("\\(>=>\\)" #Xefc4)
("\\(<=<\\)" #Xefc5))))
(defun add-fixedsys-excelsior-symbol-keywords ()
(font-lock-add-keywords nil fixedsys-excelsior-font-lock-keywords-alist))
(add-hook 'prog-mode-hook
#'add-fixedsys-excelsior-symbol-keywords)
```
### Sublime Text 3 (build 3146+)
Should be defined in the user settings as so:
```
"font_face": "Fixedsys Excelsior",
"font_size": 16,
"font_options": ["gray_antialias"]
```
## ToDo
<* *> <$ $>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View file

@ -24,3 +24,14 @@ a<|b
a|>b
a~>b
a<~b
a<~>b
b<^>b
a/\b
a<=<b
a>=>b
a<|>b
a-->b
a>=b
a=<b
a<==b