feat: Leerzeichen zwischen aneinanderstoßenden Feld-Spans (QA R4)

Zwei <span>-Geschwister mit unterschiedlichen Klassen, ohne Text
dazwischen und mit Großbuchstabe oder Ziffer rechts bekommen ein
trennendes Leerzeichen. Initialen (D|as) und Wortteile (Haupt|bahnhof)
bleiben unberührt. Im Mathebuch werden so 49 Stellen korrigiert, die
anderen drei Beispielbücher bleiben unverändert.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Dieter Schlüter 2026-10-05 20:47:40 +02:00
commit 5f58589c2e

View file

@ -152,3 +152,15 @@ def test_titles_derived_from_content_when_no_other_source(convert):
assert "cover" in types["chapters/001-cover.md"]
assert "titlepage" in types["chapters/002-titelseite.md"]
assert "colophon" in types["chapters/003-impressum.md"]
def test_adjacent_field_spans_get_a_separator(convert):
body = ('<h1>K</h1><div class="ContextInformation"><span class="Names">J. Liesen, V. Mehrmann</span>'
'<span class="BookTitles"><span class="BookTitle">Lineare Algebra</span></span>'
'<span class="Series">Springer Studium</span></div>'
'<p><span class="dropcap">D</span><span class="rest">as Wetter</span> war schlecht.</p>'
'<p><span class="a">Haupt</span><span class="b">bahnhof</span> und x<sub>i</sub>.</p>')
text = convert(Book(docs=[Doc("c.xhtml", body)])).chapter("001")
assert "J. Liesen, V. Mehrmann Lineare Algebra Springer Studium" in text
assert "Das Wetter war schlecht." in text
assert "Hauptbahnhof und x<sub>i</sub>." in text