PDF-documentexport zet inlineformules als dollartekst in plaats van als formule #1716

Closed
opened 2026-08-22 09:28:50 +00:00 by brenno · 1 comment
Owner

Probleem

Een inlineformule zoals $E = mc^2$ wordt in de documentweergave als formule gezet. HTML doet hetzelfde via MathJax en LaTeX laat de formule native door. De ingebouwde document-PDF laat daarentegen de letterlijke dollartekens en TeX-bron in de lopende zin staan.

Displayformules ($$…$$) worden in diezelfde PDF al als vectorvorm gerenderd. Het verschil komt dus niet door een ontbrekende formulemotor, maar doordat alleen het blokpad bescherming en rendering heeft.

Reproductie

De massa-energierelatie is $E = mc^2$.

$$\int_0^1 x\,dx = \frac{1}{2}$$

Bekijk het document op het scherm en exporteer naar de ingebouwde PDF. De tweede formule wordt getekend; de eerste blijft $E = mc^2$.

Verwacht

Inlineformules worden als formule op de tekstbaseline gezet, met dezelfde lettergrootte en kleur als de omringende zin. Alleen wanneer renderen echt mislukt, blijft de veilige bron zichtbaar als expliciete terugval.

Technische aanwijzing

markdownToPdfBlocks beschermt alleen displaymath via _protectDisplayMath en maakt daarvan PdfVerbatimKind.math. Inline $…$ gaat als gewone tekst door de Markdown-AST naar PdfSpan; de renderer heeft daardoor geen aanwijzing dat het een formule is.

De bestaande MathSvgResolver en grafische PDF-route kunnen als renderbron worden hergebruikt, maar de tussenvorm heeft een inline formule-span nodig in plaats van een blok.

Regressie

  • Convertertest: een inlineformule wordt geen gewone PdfSpan met dollartekens.
  • Rendertest: formule en omringende tekst blijven op één regel/baseline waar ruimte is.
  • Fallbacktest: een ongeldige of niet-renderbare formule blijft zichtbaar en breekt de export niet.
  • Veiligheidstest: onbekende TeX-primitieven worden niet uitvoerbaar.

Scope

Alleen de ingebouwde document-PDF. Geen wijziging aan Markdown, HTML of LaTeX en geen nieuwe formule-syntaxis.

## Probleem Een inlineformule zoals `$E = mc^2$` wordt in de documentweergave als formule gezet. HTML doet hetzelfde via MathJax en LaTeX laat de formule native door. De ingebouwde document-PDF laat daarentegen de letterlijke dollartekens en TeX-bron in de lopende zin staan. Displayformules (`$$…$$`) worden in diezelfde PDF al als vectorvorm gerenderd. Het verschil komt dus niet door een ontbrekende formulemotor, maar doordat alleen het blokpad bescherming en rendering heeft. ## Reproductie ```markdown De massa-energierelatie is $E = mc^2$. $$\int_0^1 x\,dx = \frac{1}{2}$$ ``` Bekijk het document op het scherm en exporteer naar de ingebouwde PDF. De tweede formule wordt getekend; de eerste blijft `$E = mc^2$`. ## Verwacht Inlineformules worden als formule op de tekstbaseline gezet, met dezelfde lettergrootte en kleur als de omringende zin. Alleen wanneer renderen echt mislukt, blijft de veilige bron zichtbaar als expliciete terugval. ## Technische aanwijzing `markdownToPdfBlocks` beschermt alleen displaymath via `_protectDisplayMath` en maakt daarvan `PdfVerbatimKind.math`. Inline `$…$` gaat als gewone tekst door de Markdown-AST naar `PdfSpan`; de renderer heeft daardoor geen aanwijzing dat het een formule is. De bestaande `MathSvgResolver` en grafische PDF-route kunnen als renderbron worden hergebruikt, maar de tussenvorm heeft een inline formule-span nodig in plaats van een blok. ## Regressie - Convertertest: een inlineformule wordt geen gewone `PdfSpan` met dollartekens. - Rendertest: formule en omringende tekst blijven op één regel/baseline waar ruimte is. - Fallbacktest: een ongeldige of niet-renderbare formule blijft zichtbaar en breekt de export niet. - Veiligheidstest: onbekende TeX-primitieven worden niet uitvoerbaar. ## Scope Alleen de ingebouwde document-PDF. Geen wijziging aan Markdown, HTML of LaTeX en geen nieuwe formule-syntaxis.
Author
Owner

Opgepakt. Tak: fix/document-pdf-parity-1712-1716. Verwachte reikwijdte: lib/services/pdf/*, tests en bestaande documentatie.

Opgepakt. Tak: fix/document-pdf-parity-1712-1716. Verwachte reikwijdte: lib/services/pdf/*, tests en bestaande documentatie.
brenno 2026-08-22 11:01:10 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
LibreKAT/Ocideck#1716
No description provided.