ekp-protrusion enables microtype-style character protrusion at the right edge: a line ending in fullwidth punctuation (。、」…) hangs the whitespace half of the glyph past the flush edge — visually identical to CLREQ line-end punctuation compression — and latin periods/commas/quotes and soft hyphens protrude by their configured ratios (ekp-protrusion-ratios). Mechanics: per-box tail protrusion, folded through trailing space boxes into a per-gap array; each DP candidate widens its effective target (lw = width + release), mirrored exactly in the renderer's per-line effective width and in the C-result reconstruction, so DP, rendering and both engines stay coherent. Left-edge protrusion is documented as out of scope (Emacs cannot render before the line origin). ekp-region reserves the protrusion width in auto layouts (ekp-region-protrusion-reserve). Off by default; all-zero arrays make it a no-op on the shared path. C module 1.4: break-with-arrays 12→14 args (tail-protrudes array, hyphen-protrude scalar), batch vectors 14 elements. Tests: 59 ERT green (deterministic hang check, flush-when-off, protrusion C parity); fuzz 300/300. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| ekp-bench.el | ||
| ekp-demo.el | ||
| ekp-fuzz.el | ||
| ekp-region-tests.el | ||
| ekp-tests.el | ||
| run-tests.sh | ||
| text-de_DE.txt | ||
| text-en_US.txt | ||
| text-fr.txt | ||
| text-zh2-en_US.txt | ||
| text-zh-en_US.txt | ||
| text-zh.txt | ||