NEUER_TITEL.md zu den Quellen, Kritik-Verzeichnis ganz heraus
Der erste Anlauf schloss Kritik_und_Verbesserungsvorschlaege/ mit einer
Gegenausnahme aus, weil NEUER_TITEL.md darin lag und der Bau ohne diese Datei
abbricht:
Kritik_und_Verbesserungsvorschlaege/*
!Kritik_und_Verbesserungsvorschlaege/NEUER_TITEL.md
Das funktionierte, war aber die schlechtere Loesung: Eine Bauquelle blieb in
einem Verzeichnis liegen, das aus dem Repository verschwinden soll. Jetzt
steht sie als Operations_Research_mit_Python_Version_04/NEUER_TITEL.md bei den
uebrigen Quellen, und .gitignore braucht nur noch eine Zeile.
Eine Stelle im Build musste mit: pruefe_dateien() meldet jede .md im
Quellverzeichnis, die weder in DATEIEN steht noch mit README beginnt, als
"nicht eingebundene Datei". Die bis dahin leere Menge KEINE_KAPITELDATEIEN
fuehrt jetzt NEUER_TITEL.md - eine Quelle, aber keine Kapiteldatei.
Der Nachweis, dass der Umzug nichts veraendert hat, brauchte einen Umweg: Die
Pruefsumme von titelseite.svg aenderte sich - aber nur, weil das Fussband das
Tagesdatum traegt und inzwischen der 9. September war. Mit dem Datum des
Vortags erzeugt, ist die Datei byte-identisch zum committeten Stand
(1b076697...). Dass der Text unveraendert ist, zeigt schon der
Strukturvergleich: 721 Glyphenverweise und 81 Pfaddefinitionen in beiden
Fassungen.
Gegengeprueft mit einem simulierten Klon (git checkout-index in ein leeres
Verzeichnis): Das Kritik-Verzeichnis fehlt dort vollstaendig, NEUER_TITEL.md
liegt im Quellverzeichnis, und --check liefert dieselben Zahlen wie lokal.
Was das NICHT leistet: Die fuenf Dateien verschwinden aus kuenftigen Klons,
nicht aus der Historie. Wer einen alten Commit auscheckt, bekommt sie
weiterhin.
Veroeffentlicht: 5 Dateien uebertragen, PDF unveraendert 781 Seiten.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
7f32ef3b8d
commit
509ce021da
17 changed files with 116 additions and 105 deletions
13
.gitignore
vendored
13
.gitignore
vendored
|
|
@ -30,11 +30,8 @@ produktionsmix_ergebnis.xlsx
|
||||||
|
|
||||||
# Die Arbeitsgrundlagen des Umbaus - Rezension und Verbesserungsvorschlaege.
|
# Die Arbeitsgrundlagen des Umbaus - Rezension und Verbesserungsvorschlaege.
|
||||||
# Sie haben ihren Zweck erfuellt und gehoeren nicht in die Veroeffentlichung.
|
# Sie haben ihren Zweck erfuellt und gehoeren nicht in die Veroeffentlichung.
|
||||||
#
|
# NEUER_TITEL.md lag frueher hier und musste per Gegenausnahme gerettet
|
||||||
# AUSNAHME: NEUER_TITEL.md bleibt versioniert. Es ist die einzige Quelle des
|
# werden; seit dem Umzug nach Operations_Research_mit_Python_Version_04/
|
||||||
# Titeltexts (siehe titeltexte_04.py); ohne diese Datei bricht der Bau ab,
|
# steht die Titelquelle bei den uebrigen Quellen, und das ganze Verzeichnis
|
||||||
# bevor er die erste Seite schreibt. Deshalb '/*' und Gegenausnahme statt
|
# kann ausgeschlossen werden.
|
||||||
# eines Verzeichnismusters - Git kann eine Datei nicht zurueckholen, deren
|
Kritik_und_Verbesserungsvorschlaege/
|
||||||
# Verzeichnis als Ganzes ausgeschlossen ist.
|
|
||||||
Kritik_und_Verbesserungsvorschlaege/*
|
|
||||||
!Kritik_und_Verbesserungsvorschlaege/NEUER_TITEL.md
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@ Dieses Verzeichnis ist die Wurzel; alle Skripte leiten ihre Pfade daraus ab
|
||||||
|
|
||||||
```
|
```
|
||||||
Operations_Research_mit_Python_Version_04/ Quelle: 37 Kapiteldateien + Build-Skripte
|
Operations_Research_mit_Python_Version_04/ Quelle: 37 Kapiteldateien + Build-Skripte
|
||||||
|
+ NEUER_TITEL.md (Titeltext)
|
||||||
bilder_04/ Quelle: Diagramme + erzeuge_*.py-Generatoren
|
bilder_04/ Quelle: Diagramme + erzeuge_*.py-Generatoren
|
||||||
web_04/ Quelle: site.css, site.js, icons.svg,
|
web_04/ Quelle: site.css, site.js, icons.svg,
|
||||||
plotly.min.js, katex/ - die statischen
|
plotly.min.js, katex/ - die statischen
|
||||||
|
|
@ -33,10 +34,6 @@ Operations_Research_mit_Python_Version_04.pdf generiert: PDF (xelatex)
|
||||||
OR_HTML_04/ generiert: Mehrseiten-Website
|
OR_HTML_04/ generiert: Mehrseiten-Website
|
||||||
Operations_Research_mit_Python_Version_04_Programme/ generiert: Beispielprogramme
|
Operations_Research_mit_Python_Version_04_Programme/ generiert: Beispielprogramme
|
||||||
Notebooks_04/ generiert: ein .ipynb je Kapitel
|
Notebooks_04/ generiert: ein .ipynb je Kapitel
|
||||||
Kritik_und_Verbesserungsvorschlaege/ NEUER_TITEL.md - die EINE Quelle des
|
|
||||||
Titeltexts (PDF-Titelseite + Startseite).
|
|
||||||
Nur diese Datei ist versioniert; Rezension und
|
|
||||||
Verbesserungsvorschläge stehen in .gitignore
|
|
||||||
pyproject.toml Quelle: Abhängigkeiten in Gruppen
|
pyproject.toml Quelle: Abhängigkeiten in Gruppen
|
||||||
Dockerfile, .dockerignore Quelle: Kurs-Image (Programme + JupyterLab)
|
Dockerfile, .dockerignore Quelle: Kurs-Image (Programme + JupyterLab)
|
||||||
LICENSE, LICENSE-TEXT.md MIT fuer Code, CC BY-SA 4.0 fuer den Text
|
LICENSE, LICENSE-TEXT.md MIT fuer Code, CC BY-SA 4.0 fuer den Text
|
||||||
|
|
@ -120,9 +117,7 @@ bewacht jede Familie. Konkret:
|
||||||
existieren, und kein Verweis darf auf das Glossar selbst zeigen. Begriffe, die es nur im
|
existieren, und kein Verweis darf auf das Glossar selbst zeigen. Begriffe, die es nur im
|
||||||
Glossar gibt, stehen ausdrücklich in `NUR_IM_GLOSSAR` — sonst ließe sich ein solcher Fall
|
Glossar gibt, stehen ausdrücklich in `NUR_IM_GLOSSAR` — sonst ließe sich ein solcher Fall
|
||||||
nicht von einem Tippfehler unterscheiden.
|
nicht von einem Tippfehler unterscheiden.
|
||||||
* **Der Titeltext steht in `Kritik_und_Verbesserungsvorschlaege/NEUER_TITEL.md`** — die
|
* **Der Titeltext steht in `Operations_Research_mit_Python_Version_04/NEUER_TITEL.md`** und
|
||||||
einzige versionierte Datei dieses Verzeichnisses, und zwar genau deshalb: Ohne sie bricht
|
|
||||||
der Bau ab, bevor er die erste Seite schreibt. Der Titel steht dort und
|
|
||||||
nirgends sonst. `titeltexte_04.py` liest ihn; die PDF-Titelseite
|
nirgends sonst. `titeltexte_04.py` liest ihn; die PDF-Titelseite
|
||||||
(`bilder_04/erzeuge_titelseite.py`) und der Hero-Block der Startseite
|
(`bilder_04/erzeuge_titelseite.py`) und der Hero-Block der Startseite
|
||||||
(`baue_landingpage()`) speisen sich daraus. Eine Titeländerung wird **einmal** dort
|
(`baue_landingpage()`) speisen sich daraus. Eine Titeländerung wird **einmal** dort
|
||||||
|
|
|
||||||
BIN
OR_HTML_04/Operations_Research_mit_Python_Version_04.pdf
generated
BIN
OR_HTML_04/Operations_Research_mit_Python_Version_04.pdf
generated
Binary file not shown.
67
OR_HTML_04/bilder_04/titelseite.svg
generated
67
OR_HTML_04/bilder_04/titelseite.svg
generated
|
|
@ -2603,46 +2603,37 @@ z
|
||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
<g id="text_16">
|
<g id="text_16">
|
||||||
<!-- Stand: 8. September 2026 -->
|
<!-- Stand: 9. September 2026 -->
|
||||||
<g style="fill: #c7d2fe" transform="translate(71.4528 818.05749) scale(0.12 -0.12)">
|
<g style="fill: #c7d2fe" transform="translate(71.4528 818.05749) scale(0.12 -0.12)">
|
||||||
<defs>
|
<defs>
|
||||||
<path id="DejaVuSans-38" d="M 2034 2216
|
<path id="DejaVuSans-39" d="M 703 97
|
||||||
Q 1584 2216 1326 1975
|
L 703 672
|
||||||
Q 1069 1734 1069 1313
|
Q 941 559 1184 500
|
||||||
Q 1069 891 1326 650
|
Q 1428 441 1663 441
|
||||||
Q 1584 409 2034 409
|
Q 2288 441 2617 861
|
||||||
Q 2484 409 2743 651
|
Q 2947 1281 2994 2138
|
||||||
Q 3003 894 3003 1313
|
Q 2813 1869 2534 1725
|
||||||
Q 3003 1734 2745 1975
|
Q 2256 1581 1919 1581
|
||||||
Q 2488 2216 2034 2216
|
Q 1219 1581 811 2004
|
||||||
|
Q 403 2428 403 3163
|
||||||
|
Q 403 3881 828 4315
|
||||||
|
Q 1253 4750 1959 4750
|
||||||
|
Q 2769 4750 3195 4129
|
||||||
|
Q 3622 3509 3622 2328
|
||||||
|
Q 3622 1225 3098 567
|
||||||
|
Q 2575 -91 1691 -91
|
||||||
|
Q 1453 -91 1209 -44
|
||||||
|
Q 966 3 703 97
|
||||||
z
|
z
|
||||||
M 1403 2484
|
M 1959 2075
|
||||||
Q 997 2584 770 2862
|
Q 2384 2075 2632 2365
|
||||||
Q 544 3141 544 3541
|
Q 2881 2656 2881 3163
|
||||||
Q 544 4100 942 4425
|
Q 2881 3666 2632 3958
|
||||||
Q 1341 4750 2034 4750
|
Q 2384 4250 1959 4250
|
||||||
Q 2731 4750 3128 4425
|
Q 1534 4250 1286 3958
|
||||||
Q 3525 4100 3525 3541
|
Q 1038 3666 1038 3163
|
||||||
Q 3525 3141 3298 2862
|
Q 1038 2656 1286 2365
|
||||||
Q 3072 2584 2669 2484
|
Q 1534 2075 1959 2075
|
||||||
Q 3125 2378 3379 2068
|
|
||||||
Q 3634 1759 3634 1313
|
|
||||||
Q 3634 634 3220 271
|
|
||||||
Q 2806 -91 2034 -91
|
|
||||||
Q 1263 -91 848 271
|
|
||||||
Q 434 634 434 1313
|
|
||||||
Q 434 1759 690 2068
|
|
||||||
Q 947 2378 1403 2484
|
|
||||||
z
|
|
||||||
M 1172 3481
|
|
||||||
Q 1172 3119 1398 2916
|
|
||||||
Q 1625 2713 2034 2713
|
|
||||||
Q 2441 2713 2670 2916
|
|
||||||
Q 2900 3119 2900 3481
|
|
||||||
Q 2900 3844 2670 4047
|
|
||||||
Q 2441 4250 2034 4250
|
|
||||||
Q 1625 4250 1398 4047
|
|
||||||
Q 1172 3844 1172 3481
|
|
||||||
z
|
z
|
||||||
" transform="scale(0.015625)"/>
|
" transform="scale(0.015625)"/>
|
||||||
<path id="DejaVuSans-32" d="M 1228 531
|
<path id="DejaVuSans-32" d="M 1228 531
|
||||||
|
|
@ -2728,7 +2719,7 @@ z
|
||||||
<use xlink:href="#DejaVuSans-64" transform="translate(227.34375 0)"/>
|
<use xlink:href="#DejaVuSans-64" transform="translate(227.34375 0)"/>
|
||||||
<use xlink:href="#DejaVuSans-3a" transform="translate(290.820312 0)"/>
|
<use xlink:href="#DejaVuSans-3a" transform="translate(290.820312 0)"/>
|
||||||
<use xlink:href="#DejaVuSans-20" transform="translate(324.511719 0)"/>
|
<use xlink:href="#DejaVuSans-20" transform="translate(324.511719 0)"/>
|
||||||
<use xlink:href="#DejaVuSans-38" transform="translate(356.298828 0)"/>
|
<use xlink:href="#DejaVuSans-39" transform="translate(356.298828 0)"/>
|
||||||
<use xlink:href="#DejaVuSans-2e" transform="translate(419.921875 0)"/>
|
<use xlink:href="#DejaVuSans-2e" transform="translate(419.921875 0)"/>
|
||||||
<use xlink:href="#DejaVuSans-20" transform="translate(451.708984 0)"/>
|
<use xlink:href="#DejaVuSans-20" transform="translate(451.708984 0)"/>
|
||||||
<use xlink:href="#DejaVuSans-53" transform="translate(483.496094 0)"/>
|
<use xlink:href="#DejaVuSans-53" transform="translate(483.496094 0)"/>
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 98 KiB |
2
OR_HTML_04/gesamtdokument.html
generated
2
OR_HTML_04/gesamtdokument.html
generated
|
|
@ -381,7 +381,7 @@
|
||||||
<p><strong>Personaleinsatz-, Schicht- und Vertretungspläne, Fahrtrouten, Logistik und Maschinen- und Netzwerkauslastung</strong> über <strong>Energieverteilung und Ressourcenplanung</strong> bis zur <strong>Portfoliooptimierung und besseren Entscheidungen an den Finanzmärkten</strong> – mit Python modellieren, optimieren und belegbar fundierte Entscheidungen treffen.</p>
|
<p><strong>Personaleinsatz-, Schicht- und Vertretungspläne, Fahrtrouten, Logistik und Maschinen- und Netzwerkauslastung</strong> über <strong>Energieverteilung und Ressourcenplanung</strong> bis zur <strong>Portfoliooptimierung und besseren Entscheidungen an den Finanzmärkten</strong> – mit Python modellieren, optimieren und belegbar fundierte Entscheidungen treffen.</p>
|
||||||
<p>Autor / Herausgeber: Dieter Schlüter</p>
|
<p>Autor / Herausgeber: Dieter Schlüter</p>
|
||||||
<p><dieter(dot)schlueter(atsign)linix(dot)de></p>
|
<p><dieter(dot)schlueter(atsign)linix(dot)de></p>
|
||||||
<p>Stand: 8. September 2026</p>
|
<p>Stand: 9. September 2026</p>
|
||||||
<hr />
|
<hr />
|
||||||
<nav id="TOC" role="doc-toc">
|
<nav id="TOC" role="doc-toc">
|
||||||
<ul>
|
<ul>
|
||||||
|
|
|
||||||
2
OR_HTML_04/index.html
generated
2
OR_HTML_04/index.html
generated
|
|
@ -115,7 +115,7 @@
|
||||||
<p class="hero-anwendungen">Personaleinsatz-, Schicht- und Vertretungspläne, Fahrtrouten, Logistik und Maschinen- und Netzwerkauslastung über Energieverteilung und Ressourcenplanung bis zur Portfoliooptimierung und besseren Entscheidungen an den Finanzmärkten – mit Python modellieren, optimieren und belegbar fundierte Entscheidungen treffen.</p>
|
<p class="hero-anwendungen">Personaleinsatz-, Schicht- und Vertretungspläne, Fahrtrouten, Logistik und Maschinen- und Netzwerkauslastung über Energieverteilung und Ressourcenplanung bis zur Portfoliooptimierung und besseren Entscheidungen an den Finanzmärkten – mit Python modellieren, optimieren und belegbar fundierte Entscheidungen treffen.</p>
|
||||||
<p class="hero-autor">Autor / Herausgeber: Dieter Schlüter<br>
|
<p class="hero-autor">Autor / Herausgeber: Dieter Schlüter<br>
|
||||||
<dieter(dot)schlueter(atsign)linix(dot)de><br>
|
<dieter(dot)schlueter(atsign)linix(dot)de><br>
|
||||||
Stand: 8. September 2026</p>
|
Stand: 9. September 2026</p>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<section class="einstieg">
|
<section class="einstieg">
|
||||||
|
|
|
||||||
2
OR_HTML_04/vorwort.html
generated
2
OR_HTML_04/vorwort.html
generated
|
|
@ -110,7 +110,7 @@
|
||||||
<p><strong>Personaleinsatz-, Schicht- und Vertretungspläne, Fahrtrouten, Logistik und Maschinen- und Netzwerkauslastung</strong> über <strong>Energieverteilung und Ressourcenplanung</strong> bis zur <strong>Portfoliooptimierung und besseren Entscheidungen an den Finanzmärkten</strong> – mit Python modellieren, optimieren und belegbar fundierte Entscheidungen treffen.</p>
|
<p><strong>Personaleinsatz-, Schicht- und Vertretungspläne, Fahrtrouten, Logistik und Maschinen- und Netzwerkauslastung</strong> über <strong>Energieverteilung und Ressourcenplanung</strong> bis zur <strong>Portfoliooptimierung und besseren Entscheidungen an den Finanzmärkten</strong> – mit Python modellieren, optimieren und belegbar fundierte Entscheidungen treffen.</p>
|
||||||
<p>Autor / Herausgeber: Dieter Schlüter</p>
|
<p>Autor / Herausgeber: Dieter Schlüter</p>
|
||||||
<p><dieter(dot)schlueter(atsign)linix(dot)de></p>
|
<p><dieter(dot)schlueter(atsign)linix(dot)de></p>
|
||||||
<p>Stand: 8. September 2026</p>
|
<p>Stand: 9. September 2026</p>
|
||||||
<hr />
|
<hr />
|
||||||
<h2 class="unnumbered" id="vorwort">Vorwort</h2>
|
<h2 class="unnumbered" id="vorwort">Vorwort</h2>
|
||||||
<p>Dieses Buch hat ein einziges Ziel: <strong>Sie sollen am Ende in der Lage sein, ein reales Entscheidungsproblem aus Ihrem eigenen Umfeld in ein mathematisches Modell zu übersetzen, es in Python zu lösen und das Ergebnis jemandem zu erklären, der kein Mathematiker ist.</strong></p>
|
<p>Dieses Buch hat ein einziges Ziel: <strong>Sie sollen am Ende in der Lage sein, ein reales Entscheidungsproblem aus Ihrem eigenen Umfeld in ein mathematisches Modell zu übersetzen, es in Python zu lösen und das Ergebnis jemandem zu erklären, der kein Mathematiker ist.</strong></p>
|
||||||
|
|
|
||||||
2
Operations_Research_mit_Python_Version_04.md
generated
2
Operations_Research_mit_Python_Version_04.md
generated
|
|
@ -26,7 +26,7 @@ Autor / Herausgeber: Dieter Schlüter
|
||||||
|
|
||||||
<dieter(dot)schlueter(atsign)linix(dot)de>
|
<dieter(dot)schlueter(atsign)linix(dot)de>
|
||||||
|
|
||||||
Stand: 8. September 2026
|
Stand: 9. September 2026
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -157,4 +157,4 @@ Details zu den Lernpfaden stehen in [`00_Vorwort_und_Lesehilfe.md`](00_Vorwort_u
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
*Autor / Herausgeber: Dieter Schlüter · Stand: 8. September 2026*
|
*Autor / Herausgeber: Dieter Schlüter · Stand: 9. September 2026*
|
||||||
|
|
|
||||||
|
|
@ -158,7 +158,12 @@ DATEIEN = [
|
||||||
# Zurzeit keine: Plan und Fortschritt liegen als PLAN.md/PROGRESS.md im
|
# Zurzeit keine: Plan und Fortschritt liegen als PLAN.md/PROGRESS.md im
|
||||||
# Repo-Wurzelverzeichnis, nicht hier. README-Dateien faengt pruefe_dateien()
|
# Repo-Wurzelverzeichnis, nicht hier. README-Dateien faengt pruefe_dateien()
|
||||||
# ueber das Namenspraefix ab.
|
# ueber das Namenspraefix ab.
|
||||||
KEINE_KAPITELDATEIEN: set[str] = set()
|
# Quellen im Kapitelverzeichnis, die KEINE Kapiteldatei sind und deshalb nicht
|
||||||
|
# in DATEIEN gehoeren. Ohne diesen Eintrag meldete pruefe_dateien() sie als
|
||||||
|
# "nicht eingebundene .md-Datei".
|
||||||
|
KEINE_KAPITELDATEIEN: set[str] = {
|
||||||
|
"NEUER_TITEL.md", # Quelle des Titeltexts, gelesen von titeltexte_04.py
|
||||||
|
}
|
||||||
|
|
||||||
# Das Inhaltsverzeichnis wird unmittelbar vor dieser Ueberschrift eingefuegt -
|
# Das Inhaltsverzeichnis wird unmittelbar vor dieser Ueberschrift eingefuegt -
|
||||||
# also direkt nach dem Titelblock, noch vor dem Vorwort.
|
# also direkt nach dem Titelblock, noch vor dem Vorwort.
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
# titeltexte_04.py
|
# titeltexte_04.py
|
||||||
#
|
#
|
||||||
# Liest den Titeltext des Buchs aus seiner EINEN Quelle:
|
# Liest den Titeltext des Buchs aus seiner EINEN Quelle:
|
||||||
# Kritik_und_Verbesserungsvorschlaege/NEUER_TITEL.md
|
# Operations_Research_mit_Python_Version_04/NEUER_TITEL.md
|
||||||
#
|
#
|
||||||
# Warum es dieses Modul gibt: Der Titeltext stand viermal im Repository - in
|
# Warum es dieses Modul gibt: Der Titeltext stand viermal im Repository - in
|
||||||
# NEUER_TITEL.md, in den Konstanten von bilder_04/erzeuge_titelseite.py (PDF),
|
# NEUER_TITEL.md, in den Konstanten von bilder_04/erzeuge_titelseite.py (PDF),
|
||||||
|
|
@ -23,8 +23,7 @@ import re
|
||||||
HIER = os.path.dirname(os.path.abspath(__file__))
|
HIER = os.path.dirname(os.path.abspath(__file__))
|
||||||
BASIS = os.path.dirname(HIER)
|
BASIS = os.path.dirname(HIER)
|
||||||
|
|
||||||
TITEL_QUELLE = os.path.join(BASIS, "Kritik_und_Verbesserungsvorschlaege",
|
TITEL_QUELLE = os.path.join(HIER, "NEUER_TITEL.md")
|
||||||
"NEUER_TITEL.md")
|
|
||||||
|
|
||||||
|
|
||||||
def _saeubern(text: str) -> str:
|
def _saeubern(text: str) -> str:
|
||||||
|
|
|
||||||
34
PROGRESS.md
34
PROGRESS.md
|
|
@ -2453,6 +2453,40 @@ angebotenen Treffer zu Sutton/Barto (eine Rezension der ersten Auflage von 1998)
|
||||||
Übernahme des besten Treffers hätte fünf falsche DOIs ins Buch geschrieben — sichtbar wurde
|
Übernahme des besten Treffers hätte fünf falsche DOIs ins Buch geschrieben — sichtbar wurde
|
||||||
es erst beim Abgleich von Typ, Verlag und Jahr.
|
es erst beim Abgleich von Typ, Verlag und Jahr.
|
||||||
|
|
||||||
|
### ✅ `NEUER_TITEL.md` zu den Quellen, Kritik-Verzeichnis ganz heraus
|
||||||
|
|
||||||
|
Rezension und Verbesserungsvorschläge haben ihren Zweck erfüllt und gehören nicht in die
|
||||||
|
Veröffentlichung. Der erste Anlauf schloss das Verzeichnis mit einer Gegenausnahme aus, weil
|
||||||
|
`NEUER_TITEL.md` darin lag und der Bau ohne diese Datei abbricht:
|
||||||
|
|
||||||
|
```
|
||||||
|
Kritik_und_Verbesserungsvorschlaege/*
|
||||||
|
!Kritik_und_Verbesserungsvorschlaege/NEUER_TITEL.md
|
||||||
|
```
|
||||||
|
|
||||||
|
Das funktionierte, war aber die schlechtere Lösung — eine Bauquelle blieb in einem
|
||||||
|
Verzeichnis liegen, das laut eigener Beschreibung aus dem Repository verschwinden soll. Jetzt
|
||||||
|
steht sie als `Operations_Research_mit_Python_Version_04/NEUER_TITEL.md` bei den übrigen
|
||||||
|
Quellen, und `.gitignore` braucht nur noch eine Zeile.
|
||||||
|
|
||||||
|
**Eine Stelle im Build musste mit.** `pruefe_dateien()` meldet jede `.md` im Quellverzeichnis,
|
||||||
|
die weder in `DATEIEN` steht noch mit `README` beginnt, als „nicht eingebundene Datei". Die
|
||||||
|
bis dahin leere Menge `KEINE_KAPITELDATEIEN` führt jetzt `NEUER_TITEL.md` — eine Quelle, aber
|
||||||
|
keine Kapiteldatei.
|
||||||
|
|
||||||
|
**Der Nachweis, dass der Umzug nichts verändert hat**, brauchte einen Umweg: Die Prüfsumme von
|
||||||
|
`titelseite.svg` änderte sich — aber nur, weil das Fußband das Tagesdatum trägt und
|
||||||
|
inzwischen der 9. September war. Mit dem Datum des Vortags erzeugt, ist die Datei
|
||||||
|
**byte-identisch** zum committeten Stand (`1b076697…`). Dass der Text unverändert ist, zeigt
|
||||||
|
schon der Strukturvergleich: 721 Glyphenverweise und 81 Pfaddefinitionen in beiden Fassungen.
|
||||||
|
|
||||||
|
Gegengeprüft mit einem simulierten Klon: Das Kritik-Verzeichnis fehlt dort vollständig,
|
||||||
|
`NEUER_TITEL.md` liegt im Quellverzeichnis, und `--check` liefert dieselben Zahlen wie lokal.
|
||||||
|
|
||||||
|
**Was das *nicht* leistet:** Die fünf Dateien verschwinden aus künftigen Klons, nicht aus der
|
||||||
|
Historie. Wer einen alten Commit auscheckt, bekommt sie weiterhin. Sie wirklich zu tilgen,
|
||||||
|
verlangte `git filter-repo` und einen erzwungenen Push — dafür ist der Anlass zu gering.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 8. Commit-Historie des V04-Strangs
|
## 8. Commit-Historie des V04-Strangs
|
||||||
|
|
|
||||||
|
|
@ -113,10 +113,9 @@ pip install -r Operations_Research_mit_Python_Version_04_Programme/requirements.
|
||||||
|
|
||||||
| Pfad | Rolle |
|
| Pfad | Rolle |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| `Operations_Research_mit_Python_Version_04/` | **Quelle**: 37 Kapiteldateien (inkl. 5 Teil-Synthesen) + Build-Skripte |
|
| `Operations_Research_mit_Python_Version_04/` | **Quelle**: 37 Kapiteldateien (inkl. 5 Teil-Synthesen), Build-Skripte und `NEUER_TITEL.md` — der Titeltext, aus dem PDF-Titelseite und Startseite entstehen |
|
||||||
| `bilder_04/` | **Quelle**: 33 Diagramme (SVG) + 16 `erzeuge_*.py`-Generatoren |
|
| `bilder_04/` | **Quelle**: 33 Diagramme (SVG) + 16 `erzeuge_*.py`-Generatoren |
|
||||||
| `web_04/` | **Quelle**: `site.css`, `site.js`, `icons.svg`, `plotly.min.js`, `katex/` — die statischen Bestandteile der Website |
|
| `web_04/` | **Quelle**: `site.css`, `site.js`, `icons.svg`, `plotly.min.js`, `katex/` — die statischen Bestandteile der Website |
|
||||||
| `Kritik_und_Verbesserungsvorschlaege/NEUER_TITEL.md` | **Quelle**: der Titeltext — daraus entstehen PDF-Titelseite und Startseite |
|
|
||||||
| `pyproject.toml`, `Dockerfile`, `.dockerignore` | **Quelle**: Abhängigkeitsgruppen und Kurs-Image |
|
| `pyproject.toml`, `Dockerfile`, `.dockerignore` | **Quelle**: Abhängigkeitsgruppen und Kurs-Image |
|
||||||
| `pandoc-defaults-*.yaml`, `pandoc/` | **Quelle**: Konfiguration des PDF-Baus |
|
| `pandoc-defaults-*.yaml`, `pandoc/` | **Quelle**: Konfiguration des PDF-Baus |
|
||||||
| `PLAN.md` / `PROGRESS.md` | **Quelle**: Ziel des Umbaus und erreichter Stand |
|
| `PLAN.md` / `PROGRESS.md` | **Quelle**: Ziel des Umbaus und erreichter Stand |
|
||||||
|
|
|
||||||
|
|
@ -198,7 +198,7 @@ def _setze_block(ax, zeilen, x, y0, groesse, durchschuss, **stil) -> float:
|
||||||
|
|
||||||
# --- Die Texte der Titelseite ----------------------------------------------
|
# --- Die Texte der Titelseite ----------------------------------------------
|
||||||
# Nur diese Zeichenketten aendern, wenn das Buch anders heissen soll. Der Text
|
# Nur diese Zeichenketten aendern, wenn das Buch anders heissen soll. Der Text
|
||||||
# stammt aus Kritik_und_Verbesserungsvorschlaege/NEUER_TITEL.md; die beiden
|
# stammt aus Operations_Research_mit_Python_Version_04/NEUER_TITEL.md; die beiden
|
||||||
# Absaetze KOMPENDIUM und ANWENDUNGEN
|
# Absaetze KOMPENDIUM und ANWENDUNGEN
|
||||||
# stehen gemeinsam in der grossen Solver-Karte.
|
# stehen gemeinsam in der grossen Solver-Karte.
|
||||||
#
|
#
|
||||||
|
|
|
||||||
|
|
@ -2603,46 +2603,37 @@ z
|
||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
<g id="text_16">
|
<g id="text_16">
|
||||||
<!-- Stand: 8. September 2026 -->
|
<!-- Stand: 9. September 2026 -->
|
||||||
<g style="fill: #c7d2fe" transform="translate(71.4528 818.05749) scale(0.12 -0.12)">
|
<g style="fill: #c7d2fe" transform="translate(71.4528 818.05749) scale(0.12 -0.12)">
|
||||||
<defs>
|
<defs>
|
||||||
<path id="DejaVuSans-38" d="M 2034 2216
|
<path id="DejaVuSans-39" d="M 703 97
|
||||||
Q 1584 2216 1326 1975
|
L 703 672
|
||||||
Q 1069 1734 1069 1313
|
Q 941 559 1184 500
|
||||||
Q 1069 891 1326 650
|
Q 1428 441 1663 441
|
||||||
Q 1584 409 2034 409
|
Q 2288 441 2617 861
|
||||||
Q 2484 409 2743 651
|
Q 2947 1281 2994 2138
|
||||||
Q 3003 894 3003 1313
|
Q 2813 1869 2534 1725
|
||||||
Q 3003 1734 2745 1975
|
Q 2256 1581 1919 1581
|
||||||
Q 2488 2216 2034 2216
|
Q 1219 1581 811 2004
|
||||||
|
Q 403 2428 403 3163
|
||||||
|
Q 403 3881 828 4315
|
||||||
|
Q 1253 4750 1959 4750
|
||||||
|
Q 2769 4750 3195 4129
|
||||||
|
Q 3622 3509 3622 2328
|
||||||
|
Q 3622 1225 3098 567
|
||||||
|
Q 2575 -91 1691 -91
|
||||||
|
Q 1453 -91 1209 -44
|
||||||
|
Q 966 3 703 97
|
||||||
z
|
z
|
||||||
M 1403 2484
|
M 1959 2075
|
||||||
Q 997 2584 770 2862
|
Q 2384 2075 2632 2365
|
||||||
Q 544 3141 544 3541
|
Q 2881 2656 2881 3163
|
||||||
Q 544 4100 942 4425
|
Q 2881 3666 2632 3958
|
||||||
Q 1341 4750 2034 4750
|
Q 2384 4250 1959 4250
|
||||||
Q 2731 4750 3128 4425
|
Q 1534 4250 1286 3958
|
||||||
Q 3525 4100 3525 3541
|
Q 1038 3666 1038 3163
|
||||||
Q 3525 3141 3298 2862
|
Q 1038 2656 1286 2365
|
||||||
Q 3072 2584 2669 2484
|
Q 1534 2075 1959 2075
|
||||||
Q 3125 2378 3379 2068
|
|
||||||
Q 3634 1759 3634 1313
|
|
||||||
Q 3634 634 3220 271
|
|
||||||
Q 2806 -91 2034 -91
|
|
||||||
Q 1263 -91 848 271
|
|
||||||
Q 434 634 434 1313
|
|
||||||
Q 434 1759 690 2068
|
|
||||||
Q 947 2378 1403 2484
|
|
||||||
z
|
|
||||||
M 1172 3481
|
|
||||||
Q 1172 3119 1398 2916
|
|
||||||
Q 1625 2713 2034 2713
|
|
||||||
Q 2441 2713 2670 2916
|
|
||||||
Q 2900 3119 2900 3481
|
|
||||||
Q 2900 3844 2670 4047
|
|
||||||
Q 2441 4250 2034 4250
|
|
||||||
Q 1625 4250 1398 4047
|
|
||||||
Q 1172 3844 1172 3481
|
|
||||||
z
|
z
|
||||||
" transform="scale(0.015625)"/>
|
" transform="scale(0.015625)"/>
|
||||||
<path id="DejaVuSans-32" d="M 1228 531
|
<path id="DejaVuSans-32" d="M 1228 531
|
||||||
|
|
@ -2728,7 +2719,7 @@ z
|
||||||
<use xlink:href="#DejaVuSans-64" transform="translate(227.34375 0)"/>
|
<use xlink:href="#DejaVuSans-64" transform="translate(227.34375 0)"/>
|
||||||
<use xlink:href="#DejaVuSans-3a" transform="translate(290.820312 0)"/>
|
<use xlink:href="#DejaVuSans-3a" transform="translate(290.820312 0)"/>
|
||||||
<use xlink:href="#DejaVuSans-20" transform="translate(324.511719 0)"/>
|
<use xlink:href="#DejaVuSans-20" transform="translate(324.511719 0)"/>
|
||||||
<use xlink:href="#DejaVuSans-38" transform="translate(356.298828 0)"/>
|
<use xlink:href="#DejaVuSans-39" transform="translate(356.298828 0)"/>
|
||||||
<use xlink:href="#DejaVuSans-2e" transform="translate(419.921875 0)"/>
|
<use xlink:href="#DejaVuSans-2e" transform="translate(419.921875 0)"/>
|
||||||
<use xlink:href="#DejaVuSans-20" transform="translate(451.708984 0)"/>
|
<use xlink:href="#DejaVuSans-20" transform="translate(451.708984 0)"/>
|
||||||
<use xlink:href="#DejaVuSans-53" transform="translate(483.496094 0)"/>
|
<use xlink:href="#DejaVuSans-53" transform="translate(483.496094 0)"/>
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 98 KiB |
Loading…
Reference in a new issue