Commit graph

2142 commits

Author SHA1 Message Date
Fini Jastrow
8cd3ae0c80 Fix: Rename Bitstream Vera
[why]
The intend was to drop 'Sans Mono' in the renaming process, because the
name is just too long.

ERROR: VeraMono-Italic.ttf ====-< Shortening too long PS family name: BitstromWeraSansM Nerd Font Mono -> BitstromWeraSansM Nerd Font Mon
ERROR: VeraMono-Italic.ttf ====-< Family (ID 1)      too long (32 > 31): BitstromWeraSansM Nerd Font Mono

[how]
Include the whole name in the replacement pattern.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-27 20:35:36 +02:00
Finii
334e287333 [ci] Update FontPatcher.zip 2023-04-27 17:03:33 +00:00
Fini Jastrow
efe57c44fd Fix: Merge pull request #1179
[why]
The font-patcher check workflow fails because the font used for testing
is gone (replaced by differently named one).

[how]
Correct file names.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-27 18:59:32 +02:00
Fini Jastrow
4642ab095c Rename Bitstream Vera (due to RFN)
[why]
The license of Bitstream Vera requires patched fonts to contain neither
"Bitstream" nor "Vera" in the name. It explicitly requires that also
for fonts that (only) add some glyphs.

Yes, we are rather late to notice this :-( Sorry.

[how]
Rename Bitstream Vera to BitstromWera, and also drop the Sans Mono part
of the name. The new name looks and sounds similar enough to get the
reference, while being shorter and somewhat logical.

Fixes: #1173

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-27 18:59:32 +02:00
Fini
7ebb44349e
Merge pull request #1179 from ryanoasis/feature/rehint-cascadiacode
CascadiaCode: Rehint and use ttf
2023-04-27 15:25:40 +02:00
Fini Jastrow
d4f49c7e2c Update Iosevka to 22.1.0
ttf-iosevka-22.1.0.zip
ttf-iosevka-term-22.1.0.zip

[how]
Download relevant archives and put both into ~/Downloads/iosevka
Run copyall.sh on both dirs.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-27 14:16:24 +02:00
Fini Jastrow
b6301e590d CascadiaCode: Rehint and use ttf
[why]
A lot people (read: People on Windows) have the variable font (VF) version of
Cascadia Code installed - it comes bundled with Windows Terminal.

The static Cascadia Code instances that we use for patching are hinted
with ttfautohint which creates small sized glyphs that are visibly very
different. People compare the static Caskaydia Cove with the VF Cascadia
Code and are surprised.

[how]
First switch from the CFF outlines to TTF outlines - that is the
original version (i.e. otf -> ttf). It is unknown why we created patched
CFF fonts instead of the TTFs. To get as close as possible to the
intended look of the glyphs we should stick with the outline type.

Then we need to re-hint all the fonts, to get hints that are comparable
to the VF hints. We can not use the hints of the VF because the outlines
are different: The VF has (of course) overlapping outlines, while the
static ones (as usual) have not.

The re-hinting can be done with VTT or TTH - both showed results that
are more like the original VF font. The usual ttfautohint has been used
of the static fonts in the font release and can not be used. It is the
reason for this whole problem.

* Used VTT 6.35
* Open font file in VTT
* Import all programs
* Generate 'VTT talk' via Tools -> AutoHint -> LightLatinAutoHint
* Save font file as ...

References:
https://github.com/microsoft/cascadia-code/issues/371
https://learn.microsoft.com/en-us/typography/tools/vtt/

Closes: #998

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-27 11:41:37 +02:00
Fini
d88d7bdea2
Merge pull request #1178 from ryanoasis/feature/rework-readmes
Rework readmes
2023-04-27 10:36:34 +02:00
Fini Jastrow
96cd985b58 Drop counting variations stuff and unify readme creation
[why]
The variation lists are very long and noone will ever look at them.
Instead we have a font-info.md file, for what reasons?

[how]
Replace the function the font-info.md file had with README.md.

Drop all the variation lists.

Automatically call the readme creation in the gotta-patch-em instead of
just hinting that one should call that (standardize-and-complete-readmes.sh).
2023-04-27 10:30:48 +02:00
Fini Jastrow
529532d897 standardize: Retab with ts=2
[why]
The file is a mix auf indentation via two blanks and single tabs.
Tabs usually render as 8 positions.
Also it is strange to not-stick to one indent style.

[how]
<vi>:
:set ts=2
:set et
:retab
:wq

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-27 10:22:29 +02:00
Fini Jastrow
0d27d3cf52 Correct readme template
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-27 10:22:29 +02:00
Fini Jastrow
c9ba9f88df Unify all source READMEs
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-27 10:22:29 +02:00
Fini Jastrow
977c680d71 Remove spurious .gitignore file
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-27 10:22:29 +02:00
Fini Jastrow
850b8b422f standardize: Use fonts.json as RFN info source
[why]
When creating the readmes the config.cfg are checked for details on a
possible RFN renaming. There are specific variables that need to be
filled in these cases: config_rfn and config_rfn_substitue.

The same RFN information is already stored in the fonts.json database.
Having the information stored in two locations is always problematic and
can easily lead to inconsistencies.

[how]
Remove information from config.cfg file and use data stored in
fonts.json instead.

Drop config.cfg files that are empty afterwards.

Also fix some patchedName in fonts.json en passant.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-25 17:03:05 +02:00
Fini Jastrow
4be86d4d60 Fix standardize-and-complete-readmes
[why]
A lot of fonts have a wrong RFN statement and name substitude in their
created info file, for example IBM3270:

```
--- a/patched-fonts/3270/Condensed/font-info.md
+++ b/patched-fonts/3270/Condensed/font-info.md
@@ -1,6 +1,20 @@
 # 3270

+## Why `Anonymice Pro` and not `Anonymous Pro`?
+
+What's in a name? The reason for the name change is to comply with the SIL Ope
```

[how]
The rfn information is stored in the config.cfg files - i.e. variables.
They are reset if the next font does not have a config.cfg file; but
they are not reset if the next font DOES have a config.cfg file but does
not set anything.

Reset the values before reading the config.cfg file.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-25 10:31:43 +02:00
Fini Jastrow
f56f97d4e1 Remove Hack postprocessing
[why]
The special Hack postprocessing does this:
 * Add a dummy signature
 * Set fsType to zero
 * run ttfautohint on the font

There once has been reason to do this (probably), but on currently
supported fontforges this is not needed anymore.

 * Fonts run fine without the signature
 * fsType is anyhow zero, set by fontforge
 * the preexisting hinting is kept by fontforge
   (furthermore: We do not want hints for the symbols usually)

Double-checked source and patched font with ttx, instructions (hints)
are definitively existing and equal in the patched font.

So we do not need any of this special postprocessing anymore.

See also commit
  e9d84b6c0  Adds WIP scripts and logic for post processing patched fonts (WIP for fixing #70)

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-25 09:39:03 +02:00
Fini
5922a6bab9
Merge pull request #1177 from ryanoasis/feature/remove-unused-fonts
Remove unused fonts
2023-04-24 21:43:07 +02:00
Finii
0c7423404b [ci] Update FontPatcher.zip 2023-04-24 19:35:05 +00:00
Fini Jastrow
1bb681473b Drop obsolete MDI, update Octicons
[why]
The old MDI are kept, just disabled. Maybe we need them or someone else,
for backward compatibility. Can be dropped sometime in the future.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-24 21:32:13 +02:00
Fini Jastrow
7764e05764 Create new octicons.ttf (update to v18.3.0) (2/2)
This commit does the actual update of the octicons.ttf font file.
The script to update is 'generate'. It uses the mapping file from the
previous commit to create a new compatible font.

Some icons have meanwhile been dropped. We use their codepoints for new
icons.

Also fix a little bug in the GlyphInfo writer.

Following the output of the actual script run.

$ ./generate                                                                                                                                                                                                                                        feature/update-octicons ● 1 … 5 ⚑ 5 

Reading mapping file
Found 172 entries
Fetching octicons archive "v18.3.0.tar.gz"

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  550k    0  550k    0     0   504k      0 --:--:--  0:00:01 --:--:--  919k

Unpacking octicons archive
Found 576 svgs
Found 309 icons after de-duplicating

Renamed cloud-download -> download
Renamed cloud-upload -> upload
Renamed clippy -> paste
Renamed mail-read -> read
Renamed primitive-dot -> dot-fill
Renamed primitive-square -> square-fill
Renamed settings -> sliders
Renamed dashboard -> meter
Renamed trashcan -> trash
Renamed paintcan -> paintbrush

Missing octoface
Missing keyboard
Missing gist
Missing file-text
Missing file-pdf
Missing jersey
Missing radio-tower
Missing repo-force-push
Missing mail-reply
Missing arrow-small-right
Missing gist-secret
Missing no-newline
Missing arrow-small-up
Missing arrow-small-down
Missing arrow-small-left
Missing file-symlink-directory
Missing circuit-board
Missing watch
Missing text-size
Missing ellipses
Missing plus-small

Found 151 (of 172, missing 21) and new 158
Filled in missing, remaining new 137
Appended remaining new, total new mapping 309
Generating octicons.ttf with 309 glyphs
Generating GlyphInfo i_oct.sh
Finished

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-24 21:32:13 +02:00
Fini Jastrow
91953e2de7 Create new octicons.ttf (1/2)
[why]
The octicons got a lot updates.
But they do not have a font anymore.

[how]
Keep our old codepoints constant, but add the new icons thereafter.

This commit just moves all the mechanics in and moves the (old) font.
No actual update here.

The mapping file has been created with the analyze_octicons script.

Fixes: #490

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-24 21:32:13 +02:00
Fini Jastrow
49aeae0df1 Remove ProFont pcf
[why]
We do not patch or release them in any way.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-24 20:00:41 +02:00
Fini Jastrow
4dc639175e Remove otf version of Inconsolata
[why]
We need only one version, and having both in the release package will
lead people to install both ... which is not good.
And there is not really a reason to have the otf version.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-24 20:00:41 +02:00
Fini Jastrow
4c41c82c75 Remove otf version of IBM3270
[why]
We need only one version, and having both in the release package will
lead people to install both ... which is not good.
And there is not really a reason to have the otf version.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-24 20:00:41 +02:00
Fini Jastrow
0ee3d49632 BigBlueTerminal lowercase ttf extension
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-24 20:00:41 +02:00
Fini Jastrow
70f6c9b7f9 Remove InconsolataGo sfd files
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-24 20:00:41 +02:00
Finii
c68d1d57be [ci] Update FontPatcher.zip 2023-04-24 17:56:55 +00:00
Fini Jastrow
ab18a8135a font-patcher: Raise loglevel of VF message
[why]
When we expect the result to be trash we should say it's critical
(fatal).

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-24 19:52:27 +02:00
Fini Jastrow
a96006a681 font-patcher: Add option to allow italic-less fonts with oblique
[why]
Because we do not know if a complete family of fonts has an italic face
we must always assume it does. To get clean RIBBI families in ID1/2 we
create a different family for the oblique slant.
But that is not needed if the font does not have an italic slant, but
just an oblique one (like Bitstream Vera and descendants).

[how]
Add new command line option for font-patcher that specifies if the
family of fonts should be patched under the assumption that there might
be an italic face (default), or if we are sure there is none (and we can
leave oblique in the RIBBI group).

This is then applied to the config.cfg files.

Note that this does not take into account any other of the known_slants.
But they are not encountered in any of our prepatched fonts.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-24 19:52:27 +02:00
Fini Jastrow
f603633536 name-parser: Fix Oblique handling
[why]
Oblique is not detected correctly anymore.

[how]
With commit
  ae656bad8 name-parser: Further formalize style handling

'Oblique' has been taken out of the direct 'known_names' which has been
replaced by a more detailed list of known name parts. It ended up in
known_slopes.

But known_sloped is not taken into consideration as 'weight' when parsing
the font name - no it ends up in 'rest'.

This has been obviously overlooked.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-24 19:52:27 +02:00
Finii
fd416d480d [ci] Update FontPatcher.zip 2023-04-24 16:45:32 +00:00
Fini
20e7a8e390
Merge pull request #1028 from ryanoasis/feature/reorganize-naming
Pull 'Mono' to front in names and other naming changes
2023-04-24 18:42:33 +02:00
Fini Jastrow
2af746a135 name-parser: Do not shorten PS-name more than PS-family-name
[why]
It's not nessecary to shorten the PSname so much when no shortening is
in place otherwise. This has been thought of as a good idea, because
noone really cares about the PSname and we can avoid any problems. But
checking with the current set of sourcefonts and using the current
shortening options, keeping it longer is never a problem.

It would be a problem for the Fullname ID4 before, and so we always
shorten more.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-24 13:01:27 +02:00
Fini Jastrow
a044611194 Remove name_parser_test scripts
[why]
The systematic evaluation of all fonts is finished and we do not need
any comparison with the old naming anymore.

This can partially replaced by something like

NERDFONTS='--debug --dry --makegroups 1' ./gotta-patch-em-all-font-patcher\!.sh -cv /iA-Writer | grep '==='

[note]
Also update query_names helper to what I used recently with length
indicators.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-23 13:44:14 +02:00
Fini
deecea3dbd
Merge pull request #1175 from ryanoasis/feature/AnonymousPro
Update Anonymous Pro
2023-04-22 07:57:46 +02:00
Fini Jastrow
4921e59554 Drop iA Writer Duospace
[why]
We have both
 iA Writer Duospace
 iA Writer Duo S

These are the same fonts, Duospace is just the former name of Duo S.

Duospace is version 1.005
Duo S (and Mono and Quattro) is version 2.000

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-21 19:55:57 +02:00
Fini Jastrow
e27f39593e font-patcher: Add debug mode
[why]
Some messages are not useful in all cases, and we want to hide them.
On the other hand there are messages that we want to only hide in
--shutup mode. Hmm.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-21 19:55:57 +02:00
Fini Jastrow
54da3a5860 font-patcher: Add dry run mode
[why]
To check just the naming and other stuff it is good to not patch (and
not store) the resultant font.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-21 19:55:57 +02:00
Fini Jastrow
b290dbf612 font-patcher: Fix logging messages while startup
[why]
When we still process the arguments we do not have a real logger object.

[how]
Use the default (root) logger in these cases.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-21 19:55:57 +02:00
Fini Jastrow
921fadaad9 name-parser: Unify name related error message format
[why]
It is hard to grep for all naming related errors, because there is no
common format.

[how]
Make them also visually similar and error cases easily spotted.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-21 19:55:57 +02:00
Fini Jastrow
5c3bfbc2e0 font-patcher: Fix creation of Propo font with old naming
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-21 19:55:57 +02:00
Fini Jastrow
b9a4b2ebbd gotta-patch-em: Add Nerd Font Propo
[why]
After skipping the creation of 'Windows Compatible' fonts we have room
to finally add 'Nerd Font Propo' to the release patch sets as first
class citizen.

[note]
Also add undocumented feature that environment variable $NERDFONTS can be
used to supply additional or differing options (last option wins).

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-21 19:55:57 +02:00
Fini Jastrow
7c62c71267 font-patcher: Drop "Windows Compatible"
[why]
The fonts generated with --makegroups work on all platforms, so there is
no need for options --windows and --also-windows anymore.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-21 19:55:57 +02:00
Fini Jastrow
17c835c630 Select specific shortening mode for some fonts
[why]
Most fonts can run with the full naming (--makegroups 1).

But for some (especially with full fledged subfamilies) the names become
too long. Here we need to select more shortening.

[how]
This can be either done/stored in the font-patcher script, but if you
need shortening (and which) still depends on what set of fonts you want
to patch.
So instead we make it a config.cfg option of the unpatched-fonts.

[note]
Findings:

3270                   2
Agave                  1
AnonymousPro           1
Arimo                  1
Aurulent               1
BigBlueTerminal        1
BitstreamVera          too long, and has RFM
CascadiaCove           4
CodeNewRoman           1
Cousine                1
DaddyTimeMono          1
DejaVuSansMono         1
DroidSansMono          1
FantasqueSansMono      1
FiraCode               2
FiraMono               1
Gohu                   1
Go-Mono                1
Hack                   1
Hasklig                2
HeavyData              1
Hermit                 1
iA-Writer              PROBLEM Quattro / Duospace
IBMPlexMono            1
Inconsolata            1
InconsolataGo          1
InconsolataLGC         1
Iosevka                4 (would also work with 3, but keep same with Term)
IosevkaTerm            4
JetBrainsMono          4
Lekton                 1
LiberationMono         1
Lilex                  1
Meslo                  1
Monofur                1
Monoid                 1
Mononoki               1
MPlus                  2, latX -> 3
NerdFontsSymbolsOnly   1
Noto                   5, but!! "ExtraCondensed ExtraLight Italic"
OpenDyslexic           1
Overpass               2
ProFont                1
ProggyClean            1
RobotoMono             3
ShareTechMono          1
SourceCodePro          4
SpaceMono              1
Terminus               1
Tinos                  1
Ubuntu                 2
UbuntuMono             2
VictorMono             4

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-21 19:55:57 +02:00
Fini Jastrow
e2abaaf53f font-patcher: Correct usage hint
[why]
As we introduces a default --makegroups value of 1 the solution to a
problem can not be omitting the option but the user needs to
specifically call it with value 0 instead.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-21 19:55:57 +02:00
Fini Jastrow
bd5c74b5c9 font-patcher: Use makegroups per default
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-21 19:55:57 +02:00
Fini Jastrow
0ffb095ffe name-parser: Add more renaming rules
[why]
Some fonts have so long base names that we can not, even very
abbreviated as 'NF', add the Nerd Font designator anymore.

In this case we need to rename the font even if it has no RFN just to
make it shorter.

[note]
As '(TTF)' is dropped now from Terminus we do not need to handle it
specifically anymore.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-21 19:55:57 +02:00
Fini Jastrow
190732b5fd Anonymous Pro: Add missing renaming info
This is used by standardize-and-complete-readmes.sh

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-21 18:38:47 +02:00
Fini Jastrow
fd7773c092 Update Anonymous Pro
[why]
We use a prepatched font not the original Anonymous Pro.
The prepatched font contains no bitmaps and is thus like
Anonymous Pro Minus. Also some font internals that fontforge does not
copy out of the box are differing.

And we miss the Bold and Italic variants.

[how]
Crossgrade to original Anonymous Pro as source and add the missing
weight/style.

Add Anonymous to SIL.
Handle 'Pro' naming parts (do not detect 'r' as short for 'Regular').

[note]
Maybe related: #1174

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-21 13:07:50 +02:00
Fini Jastrow
848ed2500a name-parser: Fix SIL replacements
[why]
If the font name is changed in a way where it now ends in a blank (for
example because 'Name Momo' got 'Momo' dropped: 'Name '), that blank is
not removed immediately.
Well, it is later on, but anyhow.
This can only happen on malformed SIL entries. But we want to have a
correct replacement anyhow.

[how]
Remove trailing whitespace after replacements.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-20 15:52:19 +02:00