Glossar-Links: Fachbegriffe im Fließtext automatisch verlinken

Auto-Linking im Build: Glossar-Begriffe werden im Fließtext automatisch
erkannt und als Link auf den Glossar-Eintrag gesetzt — erste Nennung je
Begriff je Datei, dezent gestrichelte Unterstreichung im HTML, hyperref
im PDF. Kein manuelles Markieren bei Textänderungen nötig.

Neue Infrastruktur:
- glossar_eintraege_04.py: glossar_slug() + LINK_TEXTE-Map (automatisch
  generiert aus EINTRAEGEN + Abkürzungs-Extraktion)
- erzeuge_glossar_04.py: jeder Eintrag bekommt {#gloss:<slug>}-Anchor
- build_version_04.py: resolve_glossar() — Auto-Linking + {gl:}-Marke
- web_04/site.css: .glossar-link (dezent, nicht wie Navigationslink)

5 neue Glossar-Einträge (waren als Begriff im Text, aber nicht im Glossar):
Solver, Scheduling, Graphen, Backtest, DCP (Disciplined Convex Programming)

Schutzmechanismen:
- Code-Blöcke, Inline-Code, {idx:}/{ref:}-Marken, Markdown-Links und
  Überschriften werden nicht verlinkt
- Verschachtelung verhindert: 'CP-SAT-Solver' als Ganzes, nicht 'CP'+[
  -'SAT'+[-'Solver'
- 'OR' als 2-Zeichen-Abkürzung nicht auto-verlinkt (False Positive in
  'OR-Tools'); {gl:OR} als manuelle Marke
- Glossar selbst nicht auto-verlinkt (sonst Self-Links)
- reflow_markdown(): ::: als Block-Grenze (sonst kollabiert fenced div)

619 Glossar-Links im Gesamtdokument, 239 Anchor im Glossar, 34 im Vorwort.
This commit is contained in:
dschlueter 2026-09-10 17:40:29 +02:00
commit e8abb66d75
52 changed files with 4316 additions and 1921 deletions

View file

@ -133,7 +133,7 @@
</tr>
<tr class="even">
<td>Rüstkosten, Anfahrkosten</td>
<td>Transaktionskosten</td>
<td><a href="anhang-glossar.md#gloss:transaktionskosten" class="glossar-link">Transaktionskosten</a></td>
<td>Fixkosten mit Binärvariable (B1)</td>
</tr>
<tr class="odd">
@ -175,12 +175,12 @@
<td><a href="supplychain.html#kap-supplychain">Kapitel 17</a></td>
</tr>
<tr class="odd">
<td>„Der VaR sagt, wie riskant es ist.”</td>
<td>VaR <strong>1,86 %</strong>, CVaR <strong>2,99 %</strong> — und der schlechteste Tag der Stichprobe (<strong>23,0 %</strong>) ändert am VaR <strong>nichts</strong></td>
<td>„Der <a href="anhang-glossar.md#gloss:value-at-risk-var" class="glossar-link">VaR</a> sagt, wie riskant es ist.”</td>
<td>VaR <strong>1,86 %</strong>, <a href="anhang-glossar.md#gloss:conditional-value-at-risk-cvar" class="glossar-link">CVaR</a> <strong>2,99 %</strong> — und der schlechteste Tag der Stichprobe (<strong>23,0 %</strong>) ändert am VaR <strong>nichts</strong></td>
<td><a href="cvar.html#kap-cvar">Kapitel 20</a></td>
</tr>
<tr class="even">
<td>„Die Kovarianzmatrix ist eine Eingabe wie jede andere.”</td>
<td>„Die <a href="anhang-glossar.md#gloss:kovarianzmatrix" class="glossar-link">Kovarianzmatrix</a> ist eine Eingabe wie jede andere.”</td>
<td>Aus kurzen Reihen geschätzt ist sie schlecht konditioniert; die Optimierung setzt dann auf Schätzrauschen</td>
<td><a href="finanzdaten.html#kap-finanzdaten">Kapitel 18</a></td>
</tr>
@ -188,7 +188,7 @@
</table>
<h2 id="drei-fehler-die-dieser-teil-verhindert">Drei Fehler, die dieser Teil verhindert</h2>
<ol type="1">
<li><strong>Bei Markowitz einsteigen.</strong> Wer <a href="finanzdaten.html#kap-finanzdaten">Kapitel 18</a> überspringt, optimiert seine eigenen Schätzfehler und wundert sich über Gewichte, die niemand halten würde.</li>
<li><strong>Bei Markowitz einsteigen.</strong> Wer <a href="finanzdaten.html#kap-finanzdaten">Kapitel 18</a> überspringt, optimiert seine eigenen <a href="anhang-glossar.md#gloss:schaetzfehler" class="glossar-link">Schätzfehler</a> und wundert sich über Gewichte, die niemand halten würde.</li>
<li><strong>Den VaR für ein Risikomaß halten.</strong> Er sagt, <strong>ob</strong> die Schwelle gerissen wird, nicht <strong>wie schlimm</strong> es dahinter aussieht — und er ist nicht kohärent. Optimiert wird der CVaR.</li>
<li><strong>Trägheit unterschätzen.</strong> Im Kraftwerkspark ist nicht die Prognosegüte das Problem, sondern dass sich ein Block mit acht Stunden Mindestlaufzeit um 18 Uhr nicht mehr herbeirufen lässt. Dieselbe Trägheit heißt im Depot Transaktionskosten.</li>
</ol>