linebender / linebender/resvg

Letters overlap each other on specific font and combination of letters

Open
#635 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Rust
Stars
4.1k
Forks
348
Avg merge
1d 14h
Merged PRs (30d)
3

Description

Hey @RazrFalcon, I hope you're doing OK.

There is a weird issue with text resolving that was caught for one particular font and a combination of letters. Not sure exactly on which level that happens - either `usvg-text-layout` or `rustybuzz`. Maybe you have an idea?

SVG:
```

```
Font Fjalla One (https://fonts.google.com/specimen/Fjalla+One?noto.query=Roboto&preview.text=fit&preview.text_type=custom&query=fjalla)

Result of running `minimal.rs` example with added `fontdb.load_font_file("./examples/Fjalla One-regular.ttf").unwrap();`

Expected (rsvg-convert):
![rsvg](https://github.com/RazrFalcon/resvg/assets/17108334/cb249ca2-fab0-44c9-a134-88b032f6f9b5)

Actual (ReSVG):
![resvg](https://github.com/RazrFalcon/resvg/assets/17108334/26bb38bc-4b86-4ecf-a1f4-e0b47bd8281c)

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the minimal.rs example and the provided Fjalla One-regular.ttf font, reproducing the `fit` rendering from the issue. Trace text shaping through `usvg-text-layout` and `rustybuzz` to identify where the letter overlap is introduced. Done means the rendered SVG matches the expected reference for this font and letter combination.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
computer-graphics
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.