[why]
With commit
b6301e590 CascadiaCode: Rehint and use ttf
we replaced the hints done upstream by ttfautohint with hints done via
Visual TrueType, because they render the text more similar to the
variable fonts (hints).
But the version string still mentions 'ttfautohint' because we did not
touch the font files at all except opening, hinting, closing in VTT.
This can be confusing.
[how]
Change the version string to "Version 2111.001; VTT 6.35" via:
* `ttx -i *.ttf`
* Edit `ttx` files and replace version, see above
* `ttx -b *.ttx`
* Move new fonts over old fonts
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The CI process produces a different font than running the
generate-original-source script locally.
Several thing have been checked, to no avail, see #1227.
Turned out the affected SVGs all are somehow ... questionable in their
construction.
[how]
Open SVGs in inkscape, select all (points) and generate new, clean
outline with Path->Union.
Save as optimized SVG.
The (CI) created font file now looks good.
But the cause is still unknown, maybe some sub-library that is used has
changed? I have no clue. Meaning it runs ok locally seems to be no
guarantee it will look the same when run by the CI :-(
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The Ubuntu Condensed font is special because it is designed to be not
part of the `Ubuntu` font family but a self standing `Ubuntu Condensed`
family with just one member.
We want the `Ubuntu Condensed` to be part of `Ubuntu`, as it is usual
for fonts with different widths.
The problem then arises that the width class in the font metadata is set
to 'Normal', while it has to be 'Condensed'. That fact does not become
apparent when the font is in its own one member family, but even there
it is wrong.
[how]
To keep all the other information in the font untouched we just directly
patch that one byte where the width-class is stored - and repair the
checksums afterwards. Nothing more.
The code to do this is the Font Tweaker code in font-patcher, just
copied here for one time use.
Fixes: #1228
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
Just run ./generate.
Compare commit
7764e05 Create new octicons.ttf (update to v18.3.0) (2/2)
Fixes: 1213
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Some people, for example the `lsd` project, need an icon with a symlink
directory. That has been dropped by Octicons. Our repacking put some
unrelated bookmark icon on that codepoint; but even an empty glyph would
be not ideal.
[how]
Design a file-symlink-directory from file-symlink-file and
file-directory. In this way it fits nicely into the current design of
Octicons.
Sneak that into the unpacked Octicons archive.
Adapt mapping manually to keep as much as possible constant.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Some sourcefonts, even that are monospaced, have a `fi` and/or `fl`
ligature that maps into one cell. That looks very strange.
[how]
Partially revert commit
148b0c445 Sunset ligature removal
for the cases that have a one-cell `fi`, `fl`, etc ligature, or a `ldot`
related ligature - that is active by default. Discretionary ligatures or
Stylistic Sets are not changed.
Do the removal on all patched fonts for consistency, not just `Nerd Font Mono`.
[note]
On Noto different subtables are needed for Sans, Serif and Sans-Mono. We
can not set up different configs for each, so all are tried in all fonts
and might fail (this is normal).
Same holds for OpenDyslexic Alta, Regular, Mono, Bold...
Fixes: #1187
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The Bold font is bad?
The repo is not maintained?
[how]
The ComicShannsMono is not monospaced ... fix it.
It has Overlapping contours ... fix it.
Create a useful BOLD face.
This was originally PR #1004
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
There is really no reason to have two identical fonts that just have a
different EM.
The family name changed to the previous release from
"Symbols Nerd Font" to "Symbols2048Em Nerd Font"
[why]
As this is a ttf font we choose to keep 2048, and drop the 1000.
When we drop the number the family name is also correct again.
The family name is used by the fontconfig that people probably have
installed, so we should not change that familyname.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Of course it is nice to have blanks in the pathnames, because that means
the filename handling has to be very correct everywhere, quoting the
names and so on.
But it is also a nuisance. And it does not look too good on the command
line.
[how]
Like Meslo, JetBrains Mono, Noto, and Overpass we do not repeat the base
font name in the directory name. (Counterexample MPlus...)
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Since we do not have any other variations anymore it does not make sense
to keep that directory. The renaming with 3.0.0 is a good point in time
to drop it as the filename scheme changes anyhow.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
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>
[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/371https://learn.microsoft.com/en-us/typography/tools/vtt/Closes: #998
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[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).
[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>
[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>
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>
[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>
[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>
[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>
[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>
[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>
[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>
[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>
[why]
The old naming is the reason for a lot problems. It creates a lot of
duplicate names and breaks bigger font families.
[how]
After introducing --makegroups we now enable it for all fonts.
Remove special cases from config.cfg files.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Both are full fledged families, one specifically for terminal, the other
not. Although it might be that people want both there is a likelyhood
that some just need one set.
Splitting these makes the individual release packages smaller and more
handable, and improves release workflow run time.
[note]
Also fix RFN of mononoki en passant :-}
See comment on mononoki's RFN with the mononoki 1.6 update commit.
See also #803
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
Also drop all the bitmap fonts that we have in src/unpatched-fonts/ but
we do not do anything with them.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
They started with new version numbering and have different version on
each subset.
The complete naming set changed. See their website to find the font you
used before.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>