Glossar von 92 auf 234 Eintraege

Auftrag: alle Markdown-Dateien lesen, jeden Fachbegriff, jede Abkuerzung, jeden
Algorithmus- und Bibliotheksnamen extrahieren, das Glossar vollstaendig neu
aufsetzen.

Die Begriffsliste wurde geerntet, nicht erfunden. Grundlage sind die 219
{idx:}-Marken des Buchs - die bereits kuratierte Begriffsliste des Autors. 92
davon hatten einen Glossareintrag, 143 nicht. Dazu Abkuerzungen und
Bibliotheken aus dem Fliesstext ohne Indexmarke: GIL, GLOP, MIQP, MSE, MAPE,
DTO, Solver-Status, NumPy, SciPy, pandas, scikit-learn, yfinance, pydantic,
pymoo, Matplotlib, Plotly.

Auch die Querverweise sind gemessen: Fuer jeden Indexbegriff wurde die erste
Fundstelle bestimmt und daraus der umgebende {#sec:}-Abschnitt abgeleitet.
Damit steht am Ende jedes Eintrags ein {ref:}, das der Build zur richtigen
Nummer aufloest - eine harte "siehe Kapitel 5" haette gegen die Grundregel des
Projekts verstossen.

Zwei Funde beim Gegenpruefen:

* 23 Eintraege haetten auf sich selbst verwiesen. Ihr Begriff ist im ganzen
  Buch nur im Glossar mit {idx:} markiert - die "erste Fundstelle" war also
  diese Datei. Im PDF stand dann "-> Anhang E" mitten in Anhang E.
* Die erste Fundstelle ist nicht immer die erklaerende. "Schattenpreis"
  landete beim LP-Schnellstart statt beim Abschnitt ueber Dualitaet. Fuer alle
  92 Altbestandseintraege gelten jetzt die von Hand gesetzten Ziele der
  Vorgaengerfassung; der Erzeuger bricht ab, wenn ein Verweis ins Glossar
  selbst zeigt.

Zwei Formatfragen entschied die Probe am echten Build:

* "## A" als Buchstabengruppe funktioniert und wird NICHT nummeriert -
  ABSCHNITT_RE verlangt ein {#sec:}-Label, das hier fehlt.
* Pandoc-Definitionslisten ueberleben den Bau nicht: reflow_markdown() zieht
  die ":"-Fortsetzungszeile in den Begriffsabsatz, der Doppelpunkt bleibt
  sichtbar stehen. Die Absatzform rendert sauber in HTML und PDF.

Der Beleg, dass die Schreibweisen stimmen: Das Stichwortregister waechst von
219 auf 220 Hauptbegriffe - genau ein neuer Begriff (Solver-Status). Alle
uebrigen 218 Indexmarken trafen buchstabengetreu auf bestehende Eintraege.

Nebenbei: Die 25 Buchstabenueberschriften waeren als 25 Treffer in den
Suchindex geraten und bei jedem eingetippten Buchstaben oben gestanden.
_erfasse_suchindex() ueberspringt jetzt einbuchstabige Ueberschriften; der
Index bleibt bei 631 Eintraegen.

PDF von 759 auf 772 Seiten. Veroeffentlicht: 4 Dateien uebertragen, alle
dreizehn HTTP-Proben richtig, 234 Eintraege auf dem Server gegengeprueft.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
dschlueter 2026-09-08 21:17:20 +02:00
commit 7835cf322d
9 changed files with 2216 additions and 731 deletions

View file

@ -2303,6 +2303,52 @@ bewacht jetzt **beide** Markenarten auf Existenz der Datei.
Gegenrechnung an vier Strecken: `Depot → K1` misst auf der Karte 27,20 km, die Distanzmatrix
sagt 27 — die Differenz stammt aus deren `int()`, nicht aus der Geographie.
### ✅ Glossar von 92 auf 234 Einträge
Auftrag: alle Markdown-Dateien lesen, jeden Fachbegriff, jede Abkürzung, jeden
Algorithmus- und Bibliotheksnamen extrahieren und das Glossar vollständig neu aufsetzen.
**Die Begriffsliste wurde geerntet, nicht erfunden.** Grundlage sind die **219
`{idx:}`-Marken** des Buchs — die vom Autor bereits kuratierte Begriffsliste. 92 davon hatten
einen Glossareintrag, 143 nicht. Dazu kamen Abkürzungen und Bibliotheken aus dem Fließtext,
die keine Indexmarke tragen (GIL, GLOP, MIQP, MSE, MAPE, DTO, Solver-Status, NumPy, SciPy,
pandas, scikit-learn, yfinance, pydantic, pymoo, Matplotlib, Plotly).
**Auch die Querverweise sind gemessen.** Für jeden Indexbegriff wurde die erste Fundstelle im
Buch bestimmt und daraus der umgebende `{#sec:}`-Abschnitt abgeleitet — 217 von 219 hatten
einen. Damit steht am Ende jedes Eintrags ein `{ref:}`, das der Build zur richtigen Nummer
auflöst; eine harte „siehe Kapitel 5“ hätte gegen die Grundregel des Projekts verstoßen.
**Zwei Funde beim Gegenprüfen:**
* **23 Einträge hätten auf sich selbst verwiesen.** Ihr Begriff ist im ganzen Buch nur im
Glossar mit `{idx:}` markiert — die „erste Fundstelle“ war also diese Datei. Im PDF stand
dann „→ Anhang E“ mitten im Anhang E.
* **Die erste Fundstelle ist nicht immer die erklärende.** „Schattenpreis“ landete beim
LP-Schnellstart statt beim Abschnitt über Dualität. Für alle 92 Altbestandseinträge gelten
jetzt die von Hand gesetzten Ziele der Vorgängerfassung; der Erzeuger bricht ab, wenn ein
Verweis ins Glossar selbst zeigt.
**Zwei Formatfragen entschied die Probe am echten Build**, nicht die Vermutung:
* `## A` als Buchstabengruppe **funktioniert** und wird *nicht* nummeriert —
`ABSCHNITT_RE` verlangt ein `{#sec:}`-Label, das hier fehlt.
* **Pandoc-Definitionslisten überleben den Bau nicht.** `reflow_markdown()` zieht die
`:`-Fortsetzungszeile in den Begriffsabsatz, der Doppelpunkt bleibt sichtbar stehen. Die
Absatzform (fetter Begriff, Gedankenstrich, Fließtext) rendert dagegen sauber in HTML
**und** PDF.
**Der Beleg, dass die Schreibweisen stimmen:** Das Stichwortregister wuchs von 219 auf **220**
Hauptbegriffe — genau ein neuer Begriff (`Solver-Status`). Alle übrigen 218 Indexmarken trafen
buchstabengetreu auf bestehende Einträge, sonst hätte es Dubletten geregnet.
**Nebenbei:** Die 25 Buchstabenüberschriften wären als 25 Treffer in den Suchindex geraten und
bei jedem eingetippten Buchstaben oben gestanden. `_erfasse_suchindex()` überspringt
einbuchstabige Überschriften; der Index bleibt bei 631 Einträgen.
Kosten: PDF von 759 auf **772 Seiten**. Jede Definition hat zwei bis drei Sätze, alphabetisch
nach deutschem Alphabet mit Umlauten als Grundbuchstabe.
---
## 8. Commit-Historie des V04-Strangs