GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||||||||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||||||||||||||||||||||||||||||||
GeezerVison is showing github.com — Add language parameter to Text objects by QuLogic · Pull Request #29794 · matplotlib/matplotlib Conversation
Member
PR summaryAlong with #29695, this language parameter is an additional setting that may affect text layout. As with the other PR, this is not complete, but rather something to get the API decided upon (and likely will be rebased on raqm PR after it's done.) There are two parts to the API:
At the moment, for both, I have set these to PR checklist
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactions
|
There was an error while loading. Please reload this page.
|
re: adding language to draw_text: the general discussion about extensibility of renderer API applies, i.e.
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Side point regarding allowing |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
In the call a couple weeks ago, we decided to drop the new However, one followup is that |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
|
|
||
|
|
||
| def layout(string, font, *, kern_mode=Kerning.DEFAULT): | ||
| def layout(string, font, language, *, kern_mode=Kerning.DEFAULT): |
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
These params should be kwonly? (throughout most of the PR, I think)
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
3c188df to
931423b
Compare
|
|
||
| if (languages.has_value()) { | ||
| for (auto & [lang_str, start, end] : languages.value()) { | ||
| if (!raqm_set_language(rq, lang_str.c_str(), start, end)) { |
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
This function actually takes a length, not an end location; I'm not sure which one we should accept (Harfbuzz feature tags use start/end, so maybe that?), but I'll have to update this to the correct naming (the test is setup to match what libraqm says, but the docs say the opposite.)
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
start-stop looks normal as API to me?
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
I agree and have made that change.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
1858a56 to
6d35c9a
Compare
6fc2dee to
6ef55ed
Compare
There was an error while loading. Please reload this page.
|
Also extended the tests a bit to ensure that the results are as expected and fixed the fallback to the The test image is extracted to a separate commit as it should not be merged yet. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
d8051c2 to
886bf64
Compare
0485aee to
3ffce36
Compare
| fig.text(0, 0.1, f'English: {char}', fontsize=40, language='en') | ||
| fig.text(1, 0.1, f'Inari Sámi: {char}', fontsize=40, language='smn', |
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Super picky change to match the example ordering to the text ordering:
| fig.text(0, 0.1, f'English: {char}', fontsize=40, language='en') | |
| fig.text(1, 0.1, f'Inari Sámi: {char}', fontsize=40, language='smn', | |
| fig.text(0, 0.1, f'Inari Sámi: {char}', fontsize=40, language='smn') | |
| fig.text(1, 0.1, f'English: {char}', fontsize=40, language='en', |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
It looks like the appveyor tests hung. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
3ffce36 to
7ce8eae
Compare
|
OK, I fixed the doc note, and moved the test image to the |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Add language parameter to Text objects
This includes images changes for the following pull requests / commits: * [Fix center of rotation with rotation_mode='anchor'](matplotlib#29199) (c44db77) * [Remove ttconv backwards-compatibility code](matplotlib#30145) (8caff88) * [Remove kerning_factor from tests](matplotlib#29816) (7b4d725) * [Set text hinting to defaults](matplotlib#29816) (8255ae2) * [Update FreeType to 2.13.3](matplotlib#29816) (89c054d) * [Implement text shaping with libraqm](matplotlib#30000) (b0ded3a, 9813523) * [Add language parameter to Text objects](matplotlib#29794) (7ce8eae) * [Fix auto-sized glyphs with BaKoMa fonts](matplotlib#29936) (3ba2c13) * [pdf: Improve text with characters outside embedded font limits](matplotlib#30512) (b70fb88, 6cedcf7) * [Prepare `CharacterTracker` for advanced font features](matplotlib#30608) (8274e17, 70dc388, df670cf, ed5e074) * [Add font feature API to Text](matplotlib#29695) (972a688) * [Fix spacing in r"$\max f$"](matplotlib#30715) (4a99a83) * [Implement libraqm for vector outputs](matplotlib#30607) (bd17cd4) * [Drop the FT2Font intermediate buffer](matplotlib#30059) (9d7d7b4) * [Rasterize dvi files without dvipng](matplotlib#30039) (7627118) * [Update bundled FreeType and HarfBuzz libraries](matplotlib#30938) (a161658, 9619bcc) * [Fix positioning of wide mathtext accents](matplotlib#31069) (c2fa7ba) * [Refactor RendererAgg.draw_{mathtext,text,tex} to use same base algorithm](matplotlib#31085) (931bcf3) * [Implement TeX's fraction and script alignment](matplotlib#31046) (94ff452, 4bfa0f9, 1cd8510) * [Fix confusion between text height and ascent in metrics calculations](matplotlib#31107) (60f2310) * [mathtext: Fetch quad width & axis height from font metrics](matplotlib#31110) (692df3f, 383028b) * [mathtext: add mathnormal and distinguish between normal and italic family](matplotlib#31121) (a6913f3) * [ENH: Ignore empty text for tightbbox](matplotlib#31285) (d772043) * [Drop axis_artist tickdir image compat, due to text-overhaul merge](matplotlib#31281) (2057583) * [text: Use font metrics to determine line heights](matplotlib#31291) (3ab6a27, d961462, 97f4943) * [ps/pdf: Override font height metrics to support AFM files](matplotlib#31371) (e0913d4) * [TST: Cleanup back-compat code in tests touched by text overhaul](matplotlib#31295) (7c33379) * [TST: Set tests touched by text overhaul to mpl20 style](matplotlib#31300) (41c4d8d)
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.