Skip to main content

Kern determiner

Work out how far apart things should be (very quickly)

kerndeterminer is a Rust-based library for determining a kern value between two glyphs of a font source file.

(Don't use it for Latin kerning; it won't work. But it works fine for many other scripts)

Given a font, two glyphs, and a target distance (and a few other parameters), kerndeterminer will return the kern value which places the contours of the two glyphs the given distance apart at their closest point. The graphic below explains the main parameters and the effect of kerndeterminer:

parameters.png

How to use

First, create a KernDeterminer object. This loads the font, since you'll probably be making quite a few calls to determine_kern and won't want to load the font each time:

from kerndeterminer import KernDeterminer

kerner = KernDeterminer("MyFont.glyphs")

The font source can be any source loadable by the Rust version of Babelfont (currently Glyphs version 3 files, UFO, and Designspace files).

Next, call the determine_kern method on that object:

kern = kerner.determine_kern(
    "JIMi10",  # Left glyph
    "REu1",    # Right glyph
    "Regular", # Master name
    120,       # Target distance
    200,       # Height
    0.8,       # Max tuck
)

This will return the optimal kerning value for that pair at the given parameters. Note:

  • The height parameter is used to translate the left glyph vertically befor kerning. This is used in Arabic fonts with cursive attachment.
  • The max_tuck parameter is a ratio of the left glyph's width which forms an upper limit on the kerning value. For example, if max_tuck is 0.5, the leftmost point on the right glyph can only be placed so that it is 50% of the way underneath the left glyph:

maxtuck.png

Metadata

Release files for kerndeterminer 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kerndeterminer 0.0.1
File Size Uploaded Provenance Actions
kerndeterminer-0.0.1.tar.gz 199.2 kB Without provenance Details for kerndeterminer-0.0.1.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for kerndeterminer 0.0.1
File Actions
kerndeterminer-0.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details for kerndeterminer-0.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
kerndeterminer-0.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details for kerndeterminer-0.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
kerndeterminer-0.0.1-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details for kerndeterminer-0.0.1-cp310-cp310-macosx_11_0_arm64.whl
kerndeterminer-0.0.1-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64, macOS 10.9+ universal2 (ARM64, x86-64), macOS 10.9+ x86-64 Details for kerndeterminer-0.0.1-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
kerndeterminer-0.0.1-cp310-cp310-macosx_10_7_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.7+ x86-64 Details for kerndeterminer-0.0.1-cp310-cp310-macosx_10_7_x86_64.whl
kerndeterminer-0.0.1-cp39-none-win_amd64.whl CPython 3.9 none Windows x86-64 Details for kerndeterminer-0.0.1-cp39-none-win_amd64.whl
kerndeterminer-0.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details for kerndeterminer-0.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
kerndeterminer-0.0.1-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl CPython 3.9 CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64), macOS 10.9+ x86-64, macOS 11.0+ ARM64 Details for kerndeterminer-0.0.1-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
kerndeterminer-0.0.1-cp39-cp39-macosx_10_7_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.7+ x86-64 Details for kerndeterminer-0.0.1-cp39-cp39-macosx_10_7_x86_64.whl
kerndeterminer-0.0.1-cp38-none-win_amd64.whl CPython 3.8 none Windows x86-64 Details for kerndeterminer-0.0.1-cp38-none-win_amd64.whl
kerndeterminer-0.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details for kerndeterminer-0.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
kerndeterminer-0.0.1-cp38-cp38-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl CPython 3.8 CPython 3.8 macOS 11.0+ ARM64, macOS 10.9+ universal2 (ARM64, x86-64), macOS 10.9+ x86-64 Details for kerndeterminer-0.0.1-cp38-cp38-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
kerndeterminer-0.0.1-cp38-cp38-macosx_10_7_x86_64.whl CPython 3.8 CPython 3.8 macOS 10.7+ x86-64 Details for kerndeterminer-0.0.1-cp38-cp38-macosx_10_7_x86_64.whl
kerndeterminer-0.0.1-cp37-none-win_amd64.whl CPython 3.7 none Windows x86-64 Details for kerndeterminer-0.0.1-cp37-none-win_amd64.whl
kerndeterminer-0.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64 Details for kerndeterminer-0.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
kerndeterminer-0.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.17+ x86-64 Details for kerndeterminer-0.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Total release size: 33.5 MB

Release files / kerndeterminer-0.0.1.tar.gz

Download URL kerndeterminer-0.0.1.tar.gz
Size 199.2 kB
Tags Source
SHA-256 checksum
How to use checksums
acafd1a95331720d969a02dfc8778d8d8b52258e391fdb5c35121a7d4bdb21f9
BLAKE2b-256 checksum
How to use checksums
33d1be01d922be4f393c0a9415858dae9d1589d9fdf120d1d9999a028b899ae7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/0.13.5

Release files / kerndeterminer-0.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL kerndeterminer-0.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.5 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
4d3009b7b6f56a8a53eb344649dcab0729ff8293ea66fe0d94c7d3374f4a29d2
BLAKE2b-256 checksum
How to use checksums
7a05a78e55be11c0a1eaf09157be4b8ae3e533e29145935657ea45276fefbdb5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.15

Release files / kerndeterminer-0.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL kerndeterminer-0.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.5 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
0da1086f454c8c4b3f3fafaf737159333cfe3ca9ee988aba8b765938f6f68500
BLAKE2b-256 checksum
How to use checksums
11e94e40a617a6a20645c492b7228d507fcc088501dc6c4f8e02ad47978137cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.15

Release files / kerndeterminer-0.0.1-cp310-cp310-macosx_11_0_arm64.whl

Download URL kerndeterminer-0.0.1-cp310-cp310-macosx_11_0_arm64.whl
Size 1.2 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ca7442e9d65676bdf64ee124bb3db465cf1f966510b2d87cb2f7a66c18127998
BLAKE2b-256 checksum
How to use checksums
f67e07d0d30bb8ca60289bb4a94561976836abb94749f1ccd3873bf606c17084
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/0.13.5

Release files / kerndeterminer-0.0.1-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl

Download URL kerndeterminer-0.0.1-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Size 2.9 MB
Tags CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5e25c15301d5ab9a070b9b5422c5bb5760708322717fba0f1dd77fe55aff9b16
BLAKE2b-256 checksum
How to use checksums
99a8cef693bef710315b1db99097a9eebde2a0c22205131c54b43dab4bf9c380
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.15

Release files / kerndeterminer-0.0.1-cp310-cp310-macosx_10_7_x86_64.whl

Download URL kerndeterminer-0.0.1-cp310-cp310-macosx_10_7_x86_64.whl
Size 1.5 MB
Tags CPython 3.10 macOS 10.7+ x86-64
SHA-256 checksum
How to use checksums
3ecec3b9214f483af3e6d32d511824f5513959c482c1cb0b068a6fcb1630b858
BLAKE2b-256 checksum
How to use checksums
8fbefb5bd3e60e3d0e7fd6a9a87d9805926ae6a8651360bca470a5b5b185b7bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.15

Release files / kerndeterminer-0.0.1-cp39-none-win_amd64.whl

Download URL kerndeterminer-0.0.1-cp39-none-win_amd64.whl
Size 1.3 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
45a56b3b071d5388ea5ea0fcd0ef71cf9ca0d844217b291e812dbd22d8587996
BLAKE2b-256 checksum
How to use checksums
3200e142eb02ce847d8e971918fadae328f6d941e1c75cdf7c0e2cecd2b1ec7c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.15

Release files / kerndeterminer-0.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL kerndeterminer-0.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.5 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
a109b6fe6cb001a8b25f0e308a5998fd5ddae288a6fbc4a9b2b146b1fdbbbffd
BLAKE2b-256 checksum
How to use checksums
1772f709bb9d9e76cd057b3062bf4b4f4101fdaa144be71ddc94cc56d5072395
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.15

Release files / kerndeterminer-0.0.1-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl

Download URL kerndeterminer-0.0.1-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Size 2.9 MB
Tags CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
fd4fbc7b0289787a3235d8719072a7693763cc6434d2d51e40b9e757091d3805
BLAKE2b-256 checksum
How to use checksums
fb518df37aedb62272fefbf6ecc2224188dd2cf71af3d2aa82a8247c575b3dad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.15

Release files / kerndeterminer-0.0.1-cp39-cp39-macosx_10_7_x86_64.whl

Download URL kerndeterminer-0.0.1-cp39-cp39-macosx_10_7_x86_64.whl
Size 1.5 MB
Tags CPython 3.9 macOS 10.7+ x86-64
SHA-256 checksum
How to use checksums
646490c7929edc686327af105f7539e084b6ac81b3bc79ac3db4a207f3cac627
BLAKE2b-256 checksum
How to use checksums
3a5d0b49557367a874c7ccce73c84285ceba88c99ab8dcc3a770fe78c9e8b378
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.15

Release files / kerndeterminer-0.0.1-cp38-none-win_amd64.whl

Download URL kerndeterminer-0.0.1-cp38-none-win_amd64.whl
Size 1.3 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
ef5f33dbd1a7be963b328a7f33c2c2cc5b337e312e91235f70e2b8804fc391db
BLAKE2b-256 checksum
How to use checksums
01fa3b916db104021af3eaf2402d8be12804166236c94daef1dc45d4c8d0d810
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.15

Release files / kerndeterminer-0.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL kerndeterminer-0.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.5 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
c3231602bf7114e6151b0a02d84db18337e5e903c6a59a6cca7ec29356ae18f9
BLAKE2b-256 checksum
How to use checksums
7ef2c6bd34659e7255ddfc0a337241abb2bc69e8600448e58e2d08a7db2dac42
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.15

Release files / kerndeterminer-0.0.1-cp38-cp38-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl

Download URL kerndeterminer-0.0.1-cp38-cp38-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Size 2.9 MB
Tags CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
fbd26c3228207f587585be961b494f24e7389b334b0dd59504b317d54e983f12
BLAKE2b-256 checksum
How to use checksums
42b3ace52661132790838d79fb0edf5fe9d1b2213f372d7d20532d774682c9a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.15

Release files / kerndeterminer-0.0.1-cp38-cp38-macosx_10_7_x86_64.whl

Download URL kerndeterminer-0.0.1-cp38-cp38-macosx_10_7_x86_64.whl
Size 1.5 MB
Tags CPython 3.8 macOS 10.7+ x86-64
SHA-256 checksum
How to use checksums
7126d5c40e3500149a330e9aebac5c69c85ee8a93b0409baec2258a328900819
BLAKE2b-256 checksum
How to use checksums
e9cef218ef3249abbcbc532b93bddb995f179a5f128e1ce91bde944412dffef5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.15

Release files / kerndeterminer-0.0.1-cp37-none-win_amd64.whl

Download URL kerndeterminer-0.0.1-cp37-none-win_amd64.whl
Size 1.3 MB
Tags CPython 3.7 Windows x86-64
SHA-256 checksum
How to use checksums
f4cdaef1eeb1f3d8bbd9a171ec0c27bdebbbee77631bda647f629f776fb19b50
BLAKE2b-256 checksum
How to use checksums
c37afec58fa4c7cfebf5f7b7521ee31f1c72221bf608f19577112d921a0f1510
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.15

Release files / kerndeterminer-0.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL kerndeterminer-0.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.5 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
8e7666a584f8f8987c8fae536af01c18aecc6e72994f5883ac1700fe5a513a38
BLAKE2b-256 checksum
How to use checksums
6c70444bcd140664e561d3d7e4d73dc28fa350611b61f9833736374969c2efba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.15

Release files / kerndeterminer-0.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL kerndeterminer-0.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.5 MB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
50c2928b654eebaafb371e1889b2e1f66c8bb07a81a1308ed65c1abff477d9cd
BLAKE2b-256 checksum
How to use checksums
c775d0b9b32b3e01011be17fe5fb853f6f71e0974b4e279757c04df161ca3e6d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.15

Security for kerndeterminer 0.0.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.0.1 This release

17 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page