Titeltext: eine Quelle fuer PDF-Titelseite und Startseite
Die Startseite zeigte einen anderen Titeltext als das PDF. Der Text stand
VIERMAL im Repository: NEUER_TITEL.md, die Konstanten in
bilder_04/erzeuge_titelseite.py, der Titelblock des Vorworts - und noch einmal
fest einprogrammiert im Hero-Block von baue_landingpage().
Die Ursache ist messbar: Die drei Commits, die den Titel ueberarbeitet haben
(ca5621f, 199dd3b, 1659fb9 im Ursprungs-Repository), fassten jedes Mal
dieselben drei Dateien an. build_version_04.py war in keinem davon, und
OR_HTML_04/index.html taucht in ihren Dateilisten gar nicht auf. Online stand
deshalb:
Unterzeile "Von den mathematischen Grundlagen zur quantitativen
Portfolio-Optimierung an den Finanzmaerkten."
Kompendium "Ein vollstaendiges Kompendium mit Algorithmen ..."
Anwendungen fehlte ganz
Behandlung wie bei den neun Nummern-Funden zuvor: nicht die Kopie korrigieren,
sondern die Kopie abschaffen. Das neue titeltexte_04.py zerlegt NEUER_TITEL.md
in Titel, Untertitel, Kompendium- und Anwendungen-Absatz; PDF-Titelseite und
Startseite lesen dieselbe Funktion. Der Autor bleibt bewusst Konstante im
Generator - die Vorlage beschreibt das Buch, nicht sein Impressum.
Der entscheidende Beleg: Die neu erzeugte titelseite.svg ist BYTE-IDENTISCH
(97fb40d7...) zur vorherigen - der Umbau hat am PDF nachweislich nichts
veraendert. Auch nicht am Umbruch: Die frueher handgesetzten drei Zeilen
entstehen jetzt automatisch aus _umbrechen(), und zwar exakt so. Ein
Textvergleich ueber das SVG war uebrigens nicht moeglich - es enthaelt kein
einziges <text>-Element, matplotlib zeichnet alle 726 Buchstaben als Kurven.
Das Vorwort bleibt von Hand gepflegter Buchtext, wird aber von
pruefe_titeltexte() bei jedem --check gegen die Quelle gestellt. Gleich beim
ersten Lauf fand es einen echten Unterschied: Das Vorwort setzte einen
Geviertstrich, die Vorlage einen Halbgeviertstrich. Im Deutschen ist der
Halbgeviertstrich der richtige - das Vorwort folgt jetzt der Quelle.
Veroeffentlicht: 5 Dateien uebertragen, alle vierzehn HTTP-Proben richtig.
Gegenprobe vom Server: alle drei Absaetze der Startseite sind zeichengenau
identisch mit NEUER_TITEL.md.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
47d63dfe9c
commit
022bd4eaca
15 changed files with 250 additions and 37 deletions
|
|
@ -28,8 +28,18 @@ Aufruf:
|
|||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
from datetime import datetime
|
||||
|
||||
# Der Titeltext kommt aus NEUER_TITEL.md, gelesen von titeltexte_04.py. Das
|
||||
# Modul liegt im Quellverzeichnis des Buchs, dieses Skript in bilder_04/ -
|
||||
# daher der Pfadeintrag. Ein zweiter Parser hier waere genau die Dopplung,
|
||||
# die dieses Modul beseitigt.
|
||||
_BASIS = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
sys.path.insert(0, os.path.join(_BASIS,
|
||||
"Operations_Research_mit_Python_Version_04"))
|
||||
from titeltexte_04 import lies_titeltexte
|
||||
|
||||
import matplotlib
|
||||
matplotlib.use("Agg")
|
||||
import matplotlib.pyplot as plt
|
||||
|
|
@ -192,26 +202,25 @@ def _setze_block(ax, zeilen, x, y0, groesse, durchschuss, **stil) -> float:
|
|||
# Absaetze KOMPENDIUM und ANWENDUNGEN
|
||||
# stehen gemeinsam in der grossen Solver-Karte.
|
||||
#
|
||||
# Im TITEL steht ein \n: An dieser Stelle wird bewusst umbrochen. Ohne ihn
|
||||
# wuerde automatisch umbrochen und "mit Python" auseinandergerissen. Die Breite
|
||||
# jeder Zeile wird in beiden Faellen geprueft.
|
||||
# Sie stehen NICHT hier, sondern in NEUER_TITEL.md - derselben Datei, aus der
|
||||
# auch die Startseite der Website ihren Hero-Block speist. Vorher trug dieses
|
||||
# Skript eigene Konstanten, und die Startseite noch einmal eigene; drei
|
||||
# Titelueberarbeitungen zogen diese hier nach und liessen jene stehen.
|
||||
#
|
||||
# Warum drei Zeilen und nicht zwei: "Entscheidungsfindung" ist bei 34 pt schon
|
||||
# 429 pt breit und damit fast so breit wie der ganze Satzspiegel (453 pt). Jede
|
||||
# zweizeilige Aufteilung braeuchte mindestens 649 pt - das passt bei keiner
|
||||
# lesbaren Schriftgroesse.
|
||||
TITEL = "Optimierte\nEntscheidungsfindung\nmit Python"
|
||||
UNTERTITEL = ("Von der mathematischen Modellierung zu praktischen "
|
||||
"intelligenten Lösungen für Betrieb, Technik und Finanzmärkte")
|
||||
KOMPENDIUM = ("Ein praxisorientiertes Kompendium für Entscheider mit "
|
||||
"Constraint Programming, Vektor- und Matrixmethoden sowie "
|
||||
"HiGHS, SciPy, Google OR-Tools und CVXPY.")
|
||||
ANWENDUNGEN = ("Von Personaleinsatz-, Schicht- und Vertretungsplänen, "
|
||||
"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.")
|
||||
# Der TITEL kommt einzeilig an und wird von _umbrechen() auf den Satzspiegel
|
||||
# verteilt. Das ergibt dieselben drei Zeilen wie die frueher handgesetzten
|
||||
# ("Optimierte" / "Entscheidungsfindung" / "mit Python") - und das ist kein
|
||||
# Zufall: "Entscheidungsfindung" ist bei 34 pt schon 429 pt breit und damit
|
||||
# fast so breit wie der ganze Satzspiegel (453 pt). Jede zweizeilige Aufteilung
|
||||
# braeuchte mindestens 649 pt und passt bei keiner lesbaren Schriftgroesse.
|
||||
_TEXTE = lies_titeltexte()
|
||||
TITEL = _TEXTE["titel"]
|
||||
UNTERTITEL = _TEXTE["untertitel"]
|
||||
KOMPENDIUM = _TEXTE["kompendium"]
|
||||
ANWENDUNGEN = _TEXTE["anwendungen"]
|
||||
|
||||
# Der Autor steht nicht in der Titelvorlage - sie beschreibt das Buch, nicht
|
||||
# sein Impressum.
|
||||
AUTOR = "Autor / Herausgeber: Dieter Schlüter"
|
||||
|
||||
# Satzspiegel: linker Rand und rechte Kante wie Trennlinie und Kartenreihe.
|
||||
|
|
|
|||
Loading…
Reference in a new issue