2026-10-07 03:00:40 +02:00
# Bedienungsanleitung formula_img2latex
Dieses Programm ersetzt Formelbilder in den Markdown-Dateien von epub2md und pdf2md durch echte
LaTeX-Formeln. Dadurch passen die Formeln beim Neubau als EPUB oder PDF in Größe und Schrift zum Text.
feat: 0.3.0 – pix2text zuerst, Qwen bestätigt, Gemma nur bei Uneinigkeit
Neue Standardregel p2t (GLM/Cloud wird nicht mehr benutzt):
- pix2text liest zuerst; übernommen wird immer seine Lesart, wenn Qwen sie
bestätigt oder – nur bei Uneinigkeit gefragt – Gemma. Qwen = Gemma gegen
pix2text geht an einen Menschen. Schlusspunkt muss bestätigt sein; Bild-Veto
und Pandoc auf pix2texts Lesart. Alte Regel als consensus_rule=vlm3 wählbar.
- pix2text auf der GPU (onnxruntime-gpu, FORMULA_P2T_DEVICE=auto/cpu/cuda:N)
- Ausgabe bereinigt: post_process aus pix2tex, Fettschreibweisen \boldmath/\bf
-> \boldsymbol/\mathbf; an 400 Lesarten gleiches gesetztes Bild
- Normalform: \mathop, \begin{array}[t]
- calibrate: --engines, Regel-Tabelle, --reuse; wahre Formeln aus dem alt-Text
bereinigt (aligned, \mathop{}\!, upgreek)
- tools/zeittest.py, tools/regeltest.py (--reuse, --exclude)
Messung: Göllmann Band 1 (2 x 150) 86 % / 85 % automatisch, 0 falsch
(bisher 78 % / 70 %); Band 2, zwei Stichproben zu 50: 78 % und 86 %, 0 falsch.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 03:45:18 +02:00
Es liest jede Formel zuerst mit dem Formel-OCR **pix2text ** und ersetzt sie nur, wenn das Bildmodell
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
**Qwen** dieselbe Formel liest (bei Uneinigkeit darf das zweite Bildmodell **Gemma ** pix2text bestätigen)
und das gerenderte LaTeX dem Bild grob ähnelt. Eingesetzt wird die Lesart von pix2text. Alles läuft lokal.
Bei Zweifeln fragt es dich in einer Review-Seite im Browser; ohne deine Zustimmung bleibt die Formel ein
Bild.
feat: 0.2.0 – Konsens Qwen = Gemma = GLM als Standard, Gehrke komplett verarbeitet
- Dritte Lesart (GLM-4.6V über OpenRouter, ohne Nachdenken) muss zustimmen;
keine 2:1-Annahme; fehlender Schlusspunkt der dritten Lesart zählt nicht
- run in Paketen zu 50 mit Statuszeile, beide lokalen Modelle parallel,
GLM nur für Einige; nur die übernommene Lesart wird gegen das Bild geprüft
- Bild-Veto: Ähnlichkeit >= 0,65, Schriftgrößen-Prüfung abgeschaltet
- Antworten auf 800 Tokens begrenzt; Prompt-Version und Nachdenk-Einstellung
im Cache-Schlüssel; Verfahrensversion für Prüfergebnisse
- Behoben: Gleichungsnummern aus alten Lesarten ("(3.7)"), gleichzeitiges
Speichern zweier Engines, Absturz bei Formeln ohne aktuelle Lesart
- apply: deutsches Dezimalkomma 3{,}6; Review-Galerie zeigt aktuelle Lesarten
- tools/vergleich.py auf Konsens-Ablauf umgestellt
- Doku: README, BEDIENUNGSANLEITUNG, neues CHANGELOG
Gehrke-Brückenkurs: 942 von 1505 Formelbildern automatisch ersetzt (63 %),
62 von 62 von Hand geprüften korrekt; Pandoc/MathML 945 von 945.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 07:58:16 +02:00
„Dieselbe Formel“ heißt: jedes Zeichen stimmt und steht an der richtigen Stelle. Abstände, Pfeillängen,
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
Schriftgröße, kursiv/aufrecht und Fettdruck dürfen abweichen. Wie das intern geprüft wird, steht in
[FUNKTIONSWEISE.md ](FUNKTIONSWEISE.md ).
2026-10-07 03:00:40 +02:00
---
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
## Inhalt
1. [Installation ](#1-installation )
2. [Modellserver starten und beenden ](#2-modellserver-starten-und-beenden )
3. [Ein Buch bearbeiten ](#3-ein-buch-bearbeiten )
4. [Einzelne Schritte und Optionen ](#4-einzelne-schritte-und-optionen )
5. [Konfiguration ](#5-konfiguration )
6. [Betrieb ](#6-betrieb )
7. [Werkzeuge zum Messen und Einstellen ](#7-werkzeuge-zum-messen-und-einstellen )
8. [Fehlersuche ](#8-fehlersuche )
9. [Häufige Fragen ](#9-häufige-fragen )
---
## 1. Installation
2026-10-07 03:00:40 +02:00
```bash
feat: 0.2.0 – Konsens Qwen = Gemma = GLM als Standard, Gehrke komplett verarbeitet
- Dritte Lesart (GLM-4.6V über OpenRouter, ohne Nachdenken) muss zustimmen;
keine 2:1-Annahme; fehlender Schlusspunkt der dritten Lesart zählt nicht
- run in Paketen zu 50 mit Statuszeile, beide lokalen Modelle parallel,
GLM nur für Einige; nur die übernommene Lesart wird gegen das Bild geprüft
- Bild-Veto: Ähnlichkeit >= 0,65, Schriftgrößen-Prüfung abgeschaltet
- Antworten auf 800 Tokens begrenzt; Prompt-Version und Nachdenk-Einstellung
im Cache-Schlüssel; Verfahrensversion für Prüfergebnisse
- Behoben: Gleichungsnummern aus alten Lesarten ("(3.7)"), gleichzeitiges
Speichern zweier Engines, Absturz bei Formeln ohne aktuelle Lesart
- apply: deutsches Dezimalkomma 3{,}6; Review-Galerie zeigt aktuelle Lesarten
- tools/vergleich.py auf Konsens-Ablauf umgestellt
- Doku: README, BEDIENUNGSANLEITUNG, neues CHANGELOG
Gehrke-Brückenkurs: 942 von 1505 Formelbildern automatisch ersetzt (63 %),
62 von 62 von Hand geprüften korrekt; Pandoc/MathML 945 von 945.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 07:58:16 +02:00
sudo apt install texlive-latex-extra texlive-fonts-extra texlive-science pandoc dvipng
2026-10-07 03:00:40 +02:00
cd ~/Python_Programs/formula_img2latex
pip install -r requirements.txt
python3 formula_img2latex.py --version
```
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
- **TeX Live** setzt die Formeln für den Bildabgleich (pdflatex, Schriften `lmodern` , `newtx` , `newpx` ,
`stix2` , `eulervm` , `txfonts` ).
- **Pandoc** prüft, dass jede Formel später als MathML gesetzt werden kann.
- **dvipng** braucht nur `calibrate --synthetic` .
### pix2text (Formel-OCR)
2026-10-07 03:00:40 +02:00
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
pix2text läuft ohne Server im Programm selbst. Einmalig:
2026-10-07 03:00:40 +02:00
```bash
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
pip install "pix2text[multilingual]"
pip install --no-deps pix2tex munch # nur für post_process (Leerzeichen)
pip uninstall -y onnxruntime && pip install onnxruntime-gpu # für die GPU
```
`pix2tex` wird ohne Abhängigkeiten installiert, weil es sonst eine alte `timm` -Version erzwingen würde.
Das Modell (~300 MB) wird beim ersten Lauf nach `~/.pix2text` geladen. pix2text nimmt die sichtbare
Grafikkarte mit dem meisten freien Speicher (unter 1 GB) und liest die Formeln gebündelt; ohne
`onnxruntime-gpu` läuft es auf der CPU, dann etwa 5× langsamer.
### Modelle für die Bildmodelle
| Modell | Datei | Ort |
|---|---|---|
| Qwen3-VL-30B-A3B-Instruct | `Qwen3-VL-30B-A3B-Instruct-Q4_K_M.gguf` + `mmproj-Qwen3-VL-30B-A3B-Instruct-F16.gguf` | `~/endeavour_home/lm_studio/models/lmstudio-community/Qwen3-VL-30B-A3B-Instruct-GGUF/` |
| Gemma-4-26B-A4B-it | `gemma-4-26B-A4B-it-Q4_0.gguf` + `mmproj-gemma-4-26B-A4B-it-BF16.gguf` (ggml-org, zusammen 15,8 GB) | `~/nvme2n1p7_home/huggingface/models/gemma4/` |
Gemma neu laden:
```bash
cd ~/nvme2n1p7_home/huggingface/models/gemma4
hf download ggml-org/gemma-4-26B-A4B-it-GGUF gemma-4-26B-A4B-it-Q4_0.gguf \
mmproj-gemma-4-26B-A4B-it-BF16.gguf --local-dir .
```
Optional, nur für den Strukturvergleich (aus): `pip install sympy lark` .
---
## 2. Modellserver starten und beenden
Zwei Bildmodelle laufen als llama.cpp-Server, je eines pro Grafikkarte. In zwei Terminals:
```bash
# Qwen3-VL auf GPU 1, Port 8011: 8 Plätze zu je 4096 Tokens, rund 22,6 GB
2026-10-07 03:00:40 +02:00
M=~/endeavour_home/lm_studio/models/lmstudio-community/Qwen3-VL-30B-A3B-Instruct-GGUF
CUDA_VISIBLE_DEVICES=1 ~/.local/bin/llama-server \
-m $M/Qwen3-VL-30B-A3B-Instruct-Q4_K_M.gguf --mmproj $M/mmproj-Qwen3-VL-30B-A3B-Instruct-F16.gguf \
docs: Formeln im Fließtext (pdf2md --formulas), Tempo, Qwen mit 8 Plätzen
- README: Ablauf für PDF-Bücher mit --formulas, Quelle pdf2md --formulas, Satzzeichen nach
eingebetteten Formeln, Stand Corral (10 %: 79 % automatisch, ~2 h ganzes Buch), Pilot 70 → ~24 min,
Einstellung pdftext, crops/ und bericht/ im Arbeitsordner, 8B-Modell gemessen und verworfen
- BEDIENUNGSANLEITUNG: llama-server --parallel 8 -c 32768, pix2text auf freiester GPU,
pdf2md --formulas, Statuszeile mit Zeiten je Stufe, Dauer, EPUB mit --from-md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 03:35:05 +02:00
--host 127.0.0.1 --port 8011 -ngl 99 -c 32768 --parallel 8
feat: 0.2.0 – Konsens Qwen = Gemma = GLM als Standard, Gehrke komplett verarbeitet
- Dritte Lesart (GLM-4.6V über OpenRouter, ohne Nachdenken) muss zustimmen;
keine 2:1-Annahme; fehlender Schlusspunkt der dritten Lesart zählt nicht
- run in Paketen zu 50 mit Statuszeile, beide lokalen Modelle parallel,
GLM nur für Einige; nur die übernommene Lesart wird gegen das Bild geprüft
- Bild-Veto: Ähnlichkeit >= 0,65, Schriftgrößen-Prüfung abgeschaltet
- Antworten auf 800 Tokens begrenzt; Prompt-Version und Nachdenk-Einstellung
im Cache-Schlüssel; Verfahrensversion für Prüfergebnisse
- Behoben: Gleichungsnummern aus alten Lesarten ("(3.7)"), gleichzeitiges
Speichern zweier Engines, Absturz bei Formeln ohne aktuelle Lesart
- apply: deutsches Dezimalkomma 3{,}6; Review-Galerie zeigt aktuelle Lesarten
- tools/vergleich.py auf Konsens-Ablauf umgestellt
- Doku: README, BEDIENUNGSANLEITUNG, neues CHANGELOG
Gehrke-Brückenkurs: 942 von 1505 Formelbildern automatisch ersetzt (63 %),
62 von 62 von Hand geprüften korrekt; Pandoc/MathML 945 von 945.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 07:58:16 +02:00
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
# Gemma 4 auf GPU 2, Port 8012: rund 17,5 GB
feat: 0.2.0 – Konsens Qwen = Gemma = GLM als Standard, Gehrke komplett verarbeitet
- Dritte Lesart (GLM-4.6V über OpenRouter, ohne Nachdenken) muss zustimmen;
keine 2:1-Annahme; fehlender Schlusspunkt der dritten Lesart zählt nicht
- run in Paketen zu 50 mit Statuszeile, beide lokalen Modelle parallel,
GLM nur für Einige; nur die übernommene Lesart wird gegen das Bild geprüft
- Bild-Veto: Ähnlichkeit >= 0,65, Schriftgrößen-Prüfung abgeschaltet
- Antworten auf 800 Tokens begrenzt; Prompt-Version und Nachdenk-Einstellung
im Cache-Schlüssel; Verfahrensversion für Prüfergebnisse
- Behoben: Gleichungsnummern aus alten Lesarten ("(3.7)"), gleichzeitiges
Speichern zweier Engines, Absturz bei Formeln ohne aktuelle Lesart
- apply: deutsches Dezimalkomma 3{,}6; Review-Galerie zeigt aktuelle Lesarten
- tools/vergleich.py auf Konsens-Ablauf umgestellt
- Doku: README, BEDIENUNGSANLEITUNG, neues CHANGELOG
Gehrke-Brückenkurs: 942 von 1505 Formelbildern automatisch ersetzt (63 %),
62 von 62 von Hand geprüften korrekt; Pandoc/MathML 945 von 945.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 07:58:16 +02:00
M=~/nvme2n1p7_home/huggingface/models/gemma4
CUDA_VISIBLE_DEVICES=2 ~/.local/bin/llama-server \
-m $M/gemma-4-26B-A4B-it-Q4_0.gguf --mmproj $M/mmproj-gemma-4-26B-A4B-it-BF16.gguf \
--host 127.0.0.1 --port 8012 -ngl 99 -c 16384 --parallel 4
2026-10-07 03:00:40 +02:00
```
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
Laufen auf GPU 2 Chatterbox-TTS und der STT-Server, reicht der Speicher für Gemma nicht. Dann vorher
stoppen und nach der Arbeit wieder starten:
2026-10-09 03:47:27 +02:00
```bash
systemctl --user stop chatterbox-tts.service open-notebook-stt.service
systemctl --user start chatterbox-tts.service open-notebook-stt.service # nach der Arbeit
```
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
Gemma wird nur für Formeln gefragt, bei denen pix2text und Qwen uneinig sind. Läuft Gemma nicht, meldet
`run` das einmal, und diese Formeln bleiben im Review. Beenden: Strg+C in beiden Terminals.
2026-10-07 03:00:40 +02:00
---
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
## 3. Ein Buch bearbeiten
2026-10-07 03:00:40 +02:00
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
### Schritt 1: Buch umwandeln
2026-10-07 03:00:40 +02:00
```bash
cd ~/Python_Programs/epub2md
python3 epub2md.py buch.epub output/buch
```
docs: Formeln im Fließtext (pdf2md --formulas), Tempo, Qwen mit 8 Plätzen
- README: Ablauf für PDF-Bücher mit --formulas, Quelle pdf2md --formulas, Satzzeichen nach
eingebetteten Formeln, Stand Corral (10 %: 79 % automatisch, ~2 h ganzes Buch), Pilot 70 → ~24 min,
Einstellung pdftext, crops/ und bericht/ im Arbeitsordner, 8B-Modell gemessen und verworfen
- BEDIENUNGSANLEITUNG: llama-server --parallel 8 -c 32768, pix2text auf freiester GPU,
pdf2md --formulas, Statuszeile mit Zeiten je Stufe, Dauer, EPUB mit --from-md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 03:35:05 +02:00
Bei PDFs mit pdf2md immer `--images` (oder `--epub` ) angeben, sonst gibt es keine Formelbilder. Für
Mathebücher * * `--formulas` ** verwenden: Dann findet pdf2md jede Formel auf der Seite, auch im Fließtext und
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
in Merkkästen, und schneidet sie als Bild aus (braucht pix2text):
docs: Formeln im Fließtext (pdf2md --formulas), Tempo, Qwen mit 8 Plätzen
- README: Ablauf für PDF-Bücher mit --formulas, Quelle pdf2md --formulas, Satzzeichen nach
eingebetteten Formeln, Stand Corral (10 %: 79 % automatisch, ~2 h ganzes Buch), Pilot 70 → ~24 min,
Einstellung pdftext, crops/ und bericht/ im Arbeitsordner, 8B-Modell gemessen und verworfen
- BEDIENUNGSANLEITUNG: llama-server --parallel 8 -c 32768, pix2text auf freiester GPU,
pdf2md --formulas, Statuszeile mit Zeiten je Stufe, Dauer, EPUB mit --from-md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 03:35:05 +02:00
```bash
cd ~/Python_Programs/pdf2md
python3 pdf2md.py --formulas --epub buch.pdf Output/buch/buch.md
```
Das dauert bei 350 Seiten gut 10 Minuten (Corral: 9239 Formeln).
2026-10-07 03:00:40 +02:00
### Schritt 2: Formeln erkennen und prüfen
```bash
cd ~/Python_Programs/formula_img2latex
python3 formula_img2latex.py run ~/Python_Programs/epub2md/output/buch
```
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
Bei pdf2md die Markdown-Datei angeben und die Original-PDF dazu; Box-Bilder werden dann scharf aus dem PDF
neu ausgeschnitten:
2026-10-07 03:00:40 +02:00
```bash
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
python3 formula_img2latex.py run ~/Python_Programs/pdf2md/Output/buch/buch.md --pdf buch.pdf
2026-10-07 03:00:40 +02:00
```
docs: Formeln im Fließtext (pdf2md --formulas), Tempo, Qwen mit 8 Plätzen
- README: Ablauf für PDF-Bücher mit --formulas, Quelle pdf2md --formulas, Satzzeichen nach
eingebetteten Formeln, Stand Corral (10 %: 79 % automatisch, ~2 h ganzes Buch), Pilot 70 → ~24 min,
Einstellung pdftext, crops/ und bericht/ im Arbeitsordner, 8B-Modell gemessen und verworfen
- BEDIENUNGSANLEITUNG: llama-server --parallel 8 -c 32768, pix2text auf freiester GPU,
pdf2md --formulas, Statuszeile mit Zeiten je Stufe, Dauer, EPUB mit --from-md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 03:35:05 +02:00
Das Programm arbeitet in Paketen zu 50 Formeln und meldet nach jedem Paket den Stand und die Zeiten je
Stufe (die Stufen laufen teils gleichzeitig, daher ist die Summe größer als die Paketzeit):
2026-10-07 03:00:40 +02:00
```text
docs: Formeln im Fließtext (pdf2md --formulas), Tempo, Qwen mit 8 Plätzen
- README: Ablauf für PDF-Bücher mit --formulas, Quelle pdf2md --formulas, Satzzeichen nach
eingebetteten Formeln, Stand Corral (10 %: 79 % automatisch, ~2 h ganzes Buch), Pilot 70 → ~24 min,
Einstellung pdftext, crops/ und bericht/ im Arbeitsordner, 8B-Modell gemessen und verworfen
- BEDIENUNGSANLEITUNG: llama-server --parallel 8 -c 32768, pix2text auf freiester GPU,
pdf2md --formulas, Statuszeile mit Zeiten je Stufe, Dauer, EPUB mit --from-md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 03:35:05 +02:00
100/940 verarbeitet: automatisch ersetzt 78 (78%), Review 20, bleibt Bild/keine Formel 2 [Paket 35 s; pix2text 3 s, Qwen 30 s, Prüfung 14 s, Gemma 21 s]
2026-10-07 03:00:40 +02:00
```
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
Am Ende steht eine Übersicht je Status, zum Beispiel:
feat: 0.2.0 – Konsens Qwen = Gemma = GLM als Standard, Gehrke komplett verarbeitet
- Dritte Lesart (GLM-4.6V über OpenRouter, ohne Nachdenken) muss zustimmen;
keine 2:1-Annahme; fehlender Schlusspunkt der dritten Lesart zählt nicht
- run in Paketen zu 50 mit Statuszeile, beide lokalen Modelle parallel,
GLM nur für Einige; nur die übernommene Lesart wird gegen das Bild geprüft
- Bild-Veto: Ähnlichkeit >= 0,65, Schriftgrößen-Prüfung abgeschaltet
- Antworten auf 800 Tokens begrenzt; Prompt-Version und Nachdenk-Einstellung
im Cache-Schlüssel; Verfahrensversion für Prüfergebnisse
- Behoben: Gleichungsnummern aus alten Lesarten ("(3.7)"), gleichzeitiges
Speichern zweier Engines, Absturz bei Formeln ohne aktuelle Lesart
- apply: deutsches Dezimalkomma 3{,}6; Review-Galerie zeigt aktuelle Lesarten
- tools/vergleich.py auf Konsens-Ablauf umgestellt
- Doku: README, BEDIENUNGSANLEITUNG, neues CHANGELOG
Gehrke-Brückenkurs: 942 von 1505 Formelbildern automatisch ersetzt (63 %),
62 von 62 von Hand geprüften korrekt; Pandoc/MathML 945 von 945.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 07:58:16 +02:00
```text
2026-10-09 03:47:27 +02:00
auto_accepted 942 ← Lesart bestätigt, wird ersetzt
feat: 0.2.0 – Konsens Qwen = Gemma = GLM als Standard, Gehrke komplett verarbeitet
- Dritte Lesart (GLM-4.6V über OpenRouter, ohne Nachdenken) muss zustimmen;
keine 2:1-Annahme; fehlender Schlusspunkt der dritten Lesart zählt nicht
- run in Paketen zu 50 mit Statuszeile, beide lokalen Modelle parallel,
GLM nur für Einige; nur die übernommene Lesart wird gegen das Bild geprüft
- Bild-Veto: Ähnlichkeit >= 0,65, Schriftgrößen-Prüfung abgeschaltet
- Antworten auf 800 Tokens begrenzt; Prompt-Version und Nachdenk-Einstellung
im Cache-Schlüssel; Verfahrensversion für Prüfergebnisse
- Behoben: Gleichungsnummern aus alten Lesarten ("(3.7)"), gleichzeitiges
Speichern zweier Engines, Absturz bei Formeln ohne aktuelle Lesart
- apply: deutsches Dezimalkomma 3{,}6; Review-Galerie zeigt aktuelle Lesarten
- tools/vergleich.py auf Konsens-Ablauf umgestellt
- Doku: README, BEDIENUNGSANLEITUNG, neues CHANGELOG
Gehrke-Brückenkurs: 942 von 1505 Formelbildern automatisch ersetzt (63 %),
62 von 62 von Hand geprüften korrekt; Pandoc/MathML 945 von 945.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 07:58:16 +02:00
needs_review 478 ← bitte im Browser ansehen
not_formula 93 ← laut Modellen keine Formel
pending 539 ← Abbildungen/Symbole, nicht geprüft
```
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
Neben dem Buchordner entsteht ein Arbeitsordner `buch.formulas/` mit allen Ergebnissen. Lösch ihn nicht,
2026-10-07 03:00:40 +02:00
solange du am Buch arbeitest.
### Schritt 3: Zweifelsfälle im Browser entscheiden
```bash
python3 formula_img2latex.py review ~/Python_Programs/epub2md/output/buch
```
Der Browser öffnet `http://127.0.0.1:8765/` . Für jede Formel siehst du:
- **Original:** das Bild aus dem Buch.
- **Overlay:** Original und LaTeX übereinander. Mit dem Regler blendest du zwischen beiden. Springt etwas,
stimmt etwas nicht (Exponent, Vorzeichen, Klammer).
- **Diff:** schwarz = beide gleich, rot = nur im Original, blau = nur im LaTeX, gelb = deutliche Abweichung.
2026-10-09 03:47:27 +02:00
- **LaTeX:** Text im Eingabefeld (die Lesart von pix2text), darunter die Lesarten der Modelle zum
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
Anklicken. Oben steht der Grund für das Review, z. B. „pix2text und Qwen uneinig“.
2026-10-07 03:00:40 +02:00
| Schaltfläche | Wirkung |
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
|---|---|
2026-10-07 03:00:40 +02:00
| LaTeX prüfen | rendert dein (korrigiertes) LaTeX neu und zeigt Overlay und Messwerte |
| LaTeX übernehmen | die Formel wird beim nächsten `apply` ersetzt |
| Bild behalten | die Formel bleibt ein Bild |
| Keine Formel | das Bild ist eine Abbildung oder ein Symbol |
| Zurücksetzen | Entscheidung zurücknehmen |
Jede Entscheidung wird sofort gespeichert. Du kannst jederzeit aufhören (Strg+C im Terminal) und später
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
weitermachen. `--all` zeigt auch die automatisch angenommenen Formeln, `--port` ändert den Port,
`--no-browser` öffnet keinen Browser.
2026-10-07 03:00:40 +02:00
### Schritt 4: Formeln ins Markdown schreiben
```bash
python3 formula_img2latex.py apply ~/Python_Programs/epub2md/output/buch --dry-run # nur zählen
python3 formula_img2latex.py apply ~/Python_Programs/epub2md/output/buch
```
Aus `` wird `$L = \{-\sqrt{2};\sqrt{2}\}$` im Text bzw. `$$…$$` als eigener
docs: Formeln im Fließtext (pdf2md --formulas), Tempo, Qwen mit 8 Plätzen
- README: Ablauf für PDF-Bücher mit --formulas, Quelle pdf2md --formulas, Satzzeichen nach
eingebetteten Formeln, Stand Corral (10 %: 79 % automatisch, ~2 h ganzes Buch), Pilot 70 → ~24 min,
Einstellung pdftext, crops/ und bericht/ im Arbeitsordner, 8B-Modell gemessen und verworfen
- BEDIENUNGSANLEITUNG: llama-server --parallel 8 -c 32768, pix2text auf freiester GPU,
pdf2md --formulas, Statuszeile mit Zeiten je Stufe, Dauer, EPUB mit --from-md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 03:35:05 +02:00
Absatz. Die Bilddateien bleiben liegen. Hat die Formelerkennung bei einer Formel im Text ein Satzzeichen
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
mit ausgeschnitten, steht es danach als normaler Text hinter der Formel (`$a^{x}$,` ). In deutschen
Büchern werden Dezimalzahlen zu `3{,}6` ; eine Gleichungsnummer steht als Text hinter der Formel.
2026-10-07 03:00:40 +02:00
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
**Danach das Buch neu bauen:**
2026-10-07 03:00:40 +02:00
```bash
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
# epub2md: Gesamtdatei neu, dann z. B. EPUB mit MathML
2026-10-07 03:00:40 +02:00
cd ~/Python_Programs/epub2md
python3 epub2md_merge.py output/buch --force
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
cd output/buch && P=~/Python_Programs/epub2md/pandoc
feat: 0.2.0 – Konsens Qwen = Gemma = GLM als Standard, Gehrke komplett verarbeitet
- Dritte Lesart (GLM-4.6V über OpenRouter, ohne Nachdenken) muss zustimmen;
keine 2:1-Annahme; fehlender Schlusspunkt der dritten Lesart zählt nicht
- run in Paketen zu 50 mit Statuszeile, beide lokalen Modelle parallel,
GLM nur für Einige; nur die übernommene Lesart wird gegen das Bild geprüft
- Bild-Veto: Ähnlichkeit >= 0,65, Schriftgrößen-Prüfung abgeschaltet
- Antworten auf 800 Tokens begrenzt; Prompt-Version und Nachdenk-Einstellung
im Cache-Schlüssel; Verfahrensversion für Prüfergebnisse
- Behoben: Gleichungsnummern aus alten Lesarten ("(3.7)"), gleichzeitiges
Speichern zweier Engines, Absturz bei Formeln ohne aktuelle Lesart
- apply: deutsches Dezimalkomma 3{,}6; Review-Galerie zeigt aktuelle Lesarten
- tools/vergleich.py auf Konsens-Ablauf umgestellt
- Doku: README, BEDIENUNGSANLEITUNG, neues CHANGELOG
Gehrke-Brückenkurs: 942 von 1505 Formelbildern automatisch ersetzt (63 %),
62 von 62 von Hand geprüften korrekt; Pandoc/MathML 945 von 945.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 07:58:16 +02:00
pandoc buch.md --toc --mathml --lua-filter $P/callouts.lua -o buch.epub
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
# pdf2md: EPUB mit allen Formeln als MathML
cd ~/Python_Programs/pdf2md && python3 pdf2md.py --from-md Output/buch/buch.md
```
2026-10-07 03:00:40 +02:00
### Rückgängig machen
```bash
python3 formula_img2latex.py revert ~/Python_Programs/epub2md/output/buch
```
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
Das stellt die Markdown-Dateien wie vor dem ersten `apply` wieder her. Hast du eine Datei seitdem von Hand
geändert, wird sie übersprungen; `--force` setzt sie trotzdem zurück, dann ist die Handänderung weg.
2026-10-07 03:00:40 +02:00
---
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
## 4. Einzelne Schritte und Optionen
2026-10-07 03:00:40 +02:00
```bash
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
python3 formula_img2latex.py scan AUSGABE # Bilder finden (immer neu)
python3 formula_img2latex.py recognize AUSGABE --engine p2t # pix2text
python3 formula_img2latex.py recognize AUSGABE --engine local # Qwen
2026-10-07 03:00:40 +02:00
python3 formula_img2latex.py verify AUSGABE # prüfen und entscheiden
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
python3 formula_img2latex.py recognize AUSGABE --engine local2 --only-unresolved # Gemma
2026-10-07 03:00:40 +02:00
python3 formula_img2latex.py verify AUSGABE
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
python3 formula_img2latex.py status AUSGABE # Zählung je Status (--json)
```
| Option | Befehle | Wirkung |
|---|---|---|
| `--limit 50` | run, recognize | nur die ersten 50 Bilder (zum Ausprobieren) |
| `--chunk 100` | run | Paketgröße (Standard 50) |
| `--pdf BUCH.pdf` | run, scan | pdf2md: Original-PDF für scharfe Neuausschnitte |
| `--preset cm` | run, verify | Schrift für den Bildabgleich fest vorgeben (`cm` , `times` , `txfonts` , `palatino` , `stix` , `euler` ); Standard: automatisch je Buch |
| `--include-figures` | run, recognize, verify | auch Bilder versuchen, die wie Abbildungen aussehen |
| `--model NAME` , `--url URL` | run, recognize | anderes Modell bzw. anderer Server |
| `--workers N` | run, recognize, verify | parallele Anfragen bzw. Prüfprozesse |
| `--redo` | verify | bereits geprüfte Formeln neu prüfen |
| `--workspace ORDNER` | alle außer calibrate | Arbeitsordner an anderem Ort |
| `--quiet` , `-q` | alle | nur Fehler ausgeben |
Alle Optionen: `python3 formula_img2latex.py BEFEHL --help` .
---
## 5. Konfiguration
### Umgebungsvariablen
| Variable | Standard | Wirkung |
|---|---|---|
| `FORMULA_LOCAL_URL` , `FORMULA_LOCAL_MODEL` | `http://127.0.0.1:8011/v1` , Modell des Servers | Qwen-Server |
| `FORMULA_LOCAL2_URL` , `FORMULA_LOCAL2_MODEL` | `http://127.0.0.1:8012/v1` , Modell des Servers | Gemma-Server |
| `FORMULA_LOCAL_API_KEY` , `FORMULA_LOCAL2_API_KEY` | – | falls der Server einen Schlüssel verlangt |
| `FORMULA_P2T_DEVICE` | `auto` | pix2text: `auto` , `cpu` oder `cuda:N` (`N` zählt innerhalb von `CUDA_VISIBLE_DEVICES` ) |
| `FORMULA_P2T_MODEL` | `mfr-1.5` | pix2text-Modell |
| `FORMULA_CLOUD_URL` , `FORMULA_CLOUD_MODEL` | `https://openrouter.ai/api/v1` , `z-ai/glm-4.6v` | nur Regel `vlm3` |
| `OPENROUTER_API_KEY` | – | nur Regel `vlm3` |
| `FORMULA_LOCAL_THINKING` , `FORMULA_LOCAL2_THINKING` , `FORMULA_CLOUD_THINKING` | `0` | `1` schaltet das „Nachdenken“ der Modelle wieder ein |
| `FORMULA_STRUCTURAL` | `0` | `1` schaltet den Strukturvergleich mit sympy ein |
### Einstellungen je Buch (`workspace.json`)
Im Arbeitsordner unter `settings` , zum Beispiel:
```json
{
"settings": {
"consensus_rule": "p2t",
"consensus_thresholds": {"veto_ncc": 0.65, "bold_relevant": 0}
}
}
2026-10-07 03:00:40 +02:00
```
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
| Schlüssel | Werte | Wirkung |
|---|---|---|
| `consensus_rule` | `p2t` (Standard), `vlm3` | Regel `vlm3` : Qwen = Gemma, bestätigt von GLM-4.6V über OpenRouter (bis 0.2.0) |
| `decide` | `consensus` (Standard), `pixel` | `pixel` : alter Pixel-Entscheider (bis 0.1.0) |
| `consensus_thresholds` | siehe [FUNKTIONSWEISE.md, Schwellen ](FUNKTIONSWEISE.md#schwellen-settingsconsensus_thresholds-in-workspacejson ) | Veto-Schwelle, Fettdruck, Schiedsrichter, PDF-Textebene … |
| `preset` | wird beim ersten Prüfen gesetzt | Schrift für den Bildabgleich |
2026-10-07 03:00:40 +02:00
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
Nach einer Änderung `verify` aufrufen; die Modelle werden nicht neu gefragt.
2026-10-07 03:00:40 +02:00
---
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
## 6. Betrieb
**Dauer:** etwa 0,8 s je Formel, also 35– 50 Sekunden je Paket (Corral mit `--formulas` : 940 Formeln in
13 Minuten, das ganze Buch mit 9239 Formeln rund 2 Stunden). Am längsten braucht die Bestätigung durch
Qwen. Der Scan liest beim ersten Mal alle Bilder ein (Corral: 6 Minuten); beim Fortsetzen entfällt er,
solange sich das Markdown nicht geändert hat.
**Abbrechen und fortsetzen:** Strg+C und erneut `run` ist kein Problem. Bereits gelesene Formeln werden
nicht noch einmal gefragt; fehlgeschlagene Anfragen werden wiederholt.
**Neu umgewandeltes Buch:** Nach `epub2md --force` erst `scan` , dann `apply` . Die Entscheidungen hängen am
Bildinhalt und bleiben erhalten.
**Arbeitsordner:** `<ausgabe>.formulas/` neben der Ausgabe. Er enthält die Datensätze, Ausschnitte,
Vergleichsbilder und die Sicherung von `apply` . Aufbau: [FUNKTIONSWEISE.md, Arbeitsordner ](FUNKTIONSWEISE.md#3-arbeitsordner-und-datensätze ).
**Datenschutz:** Mit der Standardregel verlässt nichts den Rechner. Die Regel `vlm3` schickt Formelbilder,
bei denen Qwen und Gemma einig sind, samt eines kurzen Textausschnitts um die Formel (höchstens 240
Zeichen) an OpenRouter; beim Gehrke-Brückenkurs waren das 967 Anfragen für zusammen rund 0,15– 0,20 $.
---
## 7. Werkzeuge zum Messen und Einstellen
Die Werkzeuge schreiben nach `vergleich/` bzw. in den Arbeitsordner; beides wird nicht ins Git übernommen
(Buchausschnitte).
| Werkzeug | Zweck |
|---|---|
| `tools/vergleich.py AUSGABE` | feste Stichprobe von 50 Formeln eines Buchs, verarbeitet wie `run` ; Seite `vergleich/<name>/index.html` mit Original, gerenderten Lesarten, Entscheidung und Bildabgleich |
| `tools/buch_bericht.py AUSGABE` | Ergebnisseite eines ganzen Buchs nach `run` , filterbar; liegt in `<arbeitsordner>/bericht/index.html` |
| `tools/regeltest.py EPUB [--n 50] [--reuse …] [--refresh local,local2]` | Standardregel an Formeln mit bekanntem TeX, wie `run` ; Seite mit wahrer Formel, allen Lesarten und Urteil |
| `tools/zeittest.py EPUB` | Zeit und Trefferquote je Erkenner, seriell an 15 Formeln mit bekanntem TeX |
| `tools/vergleich_bericht.py --regeltest VORHER:NACHHER` | Vorher/Nachher-Seite zweier Läufe auf denselben Lesarten |
| `tools/konsens_bericht.py BERICHT.json EPUB` | Übersichtsseite zu `calibrate --consensus --report` |
| `formula_img2latex.py calibrate --consensus --engines local,local2,cloud,p2t --report X.json EPUB` | alle Regeln an Formeln mit bekanntem TeX messen; `--reuse X.json` rechnet ohne Modellabfragen neu, `--synthetic` erzeugt zusätzlich Gehrke-ähnliche Nachbildungen |
Formeln mit bekanntem TeX liefern Springer-EPUBs, die das TeX jeder Formel im alt-Text tragen (z. B.
Göllmann).
---
## 8. Fehlersuche
| Meldung oder Beobachtung | Ursache | Abhilfe |
|---|---|---|
| `Lokaler Modellserver unter http://127.0.0.1:8011/v1 nicht erreichbar` | Qwen-Server läuft nicht | Server starten ([2 ](#2-modellserver-starten-und-beenden )) |
| `Stichwahl (Gemma) nicht möglich, strittige Formeln bleiben im Review` | Gemma-Server läuft nicht | Gemma starten und `run` erneut aufrufen |
| Gemma bricht beim ersten Bild mit „out of memory“ ab | GPU 2 ist belegt | Chatterbox-TTS und STT stoppen ([2 ](#2-modellserver-starten-und-beenden )) |
| `pix2text ist nicht installiert` / `pix2tex ist nicht installiert` | Pakete fehlen | Befehle aus [1 ](#pix2text-formel-ocr ) ausführen |
| `onnxruntime ohne CUDA – pip install onnxruntime-gpu` | nur die CPU-Version von onnxruntime | `pip uninstall -y onnxruntime && pip install onnxruntime-gpu` |
| pix2text sehr langsam | läuft auf der CPU | `onnxruntime-gpu` installieren oder `FORMULA_P2T_DEVICE=cuda:0` |
| `pdflatex nicht gefunden` / `pandoc nicht gefunden` | TeX Live bzw. Pandoc fehlen | `sudo apt install texlive-latex-extra pandoc` |
| `Kein Arbeitsordner gefunden … (zuerst 'scan' ausführen)` | `verify` , `apply` usw. vor dem ersten `scan` /`run` | `scan` oder `run` ausführen |
| `… ist weder eine epub2md-Ausgabe … noch eine pdf2md-Ausgabe` | falscher Pfad | epub2md-Ordner bzw. pdf2md-`.md` -Datei angeben |
| `Arbeitsordner existiert und ist kein formula_img2latex-Ordner` | Zielordner von `--workspace` belegt | anderen Ordner wählen |
| `Bildverweis nicht mehr gefunden: datei.md:123` | Markdown wurde neu erzeugt oder von Hand geändert | `scan` ausführen |
| `revert` überspringt Dateien | seit `apply` von Hand geändert | prüfen, dann `revert --force` |
| `OPENROUTER_API_KEY ist nicht gesetzt` | Regel `vlm3` oder `--engine cloud` ohne Schlüssel | Schlüssel setzen oder Regel `p2t` verwenden |
| Formel bleibt in EPUB/PDF als TeX-Text stehen | Pandoc konnte sie nicht umsetzen (sollte die Pandoc-Prüfung verhindern) | Formel im Review korrigieren, Fall melden |
**Rückgabecodes:**
| Code | Bedeutung |
|---|---|
| 0 | Erfolg |
| 1 | Bedienfehler: Parameter, Eingabe oder Arbeitsordner nicht lesbar oder belegt |
| 2 | Eingabe ist keine epub2md- oder pdf2md-Ausgabe |
| 3 | Externes Werkzeug fehlt oder versagt: pdflatex, pandoc, Modellserver, pix2text |
| 4 | Unerwarteter interner Fehler (Traceback wird ausgegeben) |
---
## 9. Häufige Fragen
2026-10-07 03:00:40 +02:00
**Das Buch wurde mit epub2md `--force` neu umgewandelt. Ist meine Arbeit weg?**
Nein. Die Entscheidungen hängen am Inhalt der Bilder, nicht an Dateinamen. `scan` , dann `apply` .
feat: 0.2.0 – Konsens Qwen = Gemma = GLM als Standard, Gehrke komplett verarbeitet
- Dritte Lesart (GLM-4.6V über OpenRouter, ohne Nachdenken) muss zustimmen;
keine 2:1-Annahme; fehlender Schlusspunkt der dritten Lesart zählt nicht
- run in Paketen zu 50 mit Statuszeile, beide lokalen Modelle parallel,
GLM nur für Einige; nur die übernommene Lesart wird gegen das Bild geprüft
- Bild-Veto: Ähnlichkeit >= 0,65, Schriftgrößen-Prüfung abgeschaltet
- Antworten auf 800 Tokens begrenzt; Prompt-Version und Nachdenk-Einstellung
im Cache-Schlüssel; Verfahrensversion für Prüfergebnisse
- Behoben: Gleichungsnummern aus alten Lesarten ("(3.7)"), gleichzeitiges
Speichern zweier Engines, Absturz bei Formeln ohne aktuelle Lesart
- apply: deutsches Dezimalkomma 3{,}6; Review-Galerie zeigt aktuelle Lesarten
- tools/vergleich.py auf Konsens-Ablauf umgestellt
- Doku: README, BEDIENUNGSANLEITUNG, neues CHANGELOG
Gehrke-Brückenkurs: 942 von 1505 Formelbildern automatisch ersetzt (63 %),
62 von 62 von Hand geprüften korrekt; Pandoc/MathML 945 von 945.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 07:58:16 +02:00
**Warum landet ein Teil im Review?**
2026-10-09 03:47:27 +02:00
Ersetzt wird nur, was pix2text liest und Qwen (oder bei Uneinigkeit Gemma) bestätigt. Sind Qwen und Gemma
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
gemeinsam anderer Meinung als pix2text, entscheidest du. Häufige Gründe: ein Modell liest ein Zeichen anders
(oft pix2text: `\nu` statt fettem v, Wörter wie „fir“ statt „für“), sehr kleine oder unscharfe Bilder,
mehrzeilige Rechnungen mit anderen Zeilenumbrüchen oder `\underbrace` . Im Review stehen die Lesarten
feat: 0.2.0 – Konsens Qwen = Gemma = GLM als Standard, Gehrke komplett verarbeitet
- Dritte Lesart (GLM-4.6V über OpenRouter, ohne Nachdenken) muss zustimmen;
keine 2:1-Annahme; fehlender Schlusspunkt der dritten Lesart zählt nicht
- run in Paketen zu 50 mit Statuszeile, beide lokalen Modelle parallel,
GLM nur für Einige; nur die übernommene Lesart wird gegen das Bild geprüft
- Bild-Veto: Ähnlichkeit >= 0,65, Schriftgrößen-Prüfung abgeschaltet
- Antworten auf 800 Tokens begrenzt; Prompt-Version und Nachdenk-Einstellung
im Cache-Schlüssel; Verfahrensversion für Prüfergebnisse
- Behoben: Gleichungsnummern aus alten Lesarten ("(3.7)"), gleichzeitiges
Speichern zweier Engines, Absturz bei Formeln ohne aktuelle Lesart
- apply: deutsches Dezimalkomma 3{,}6; Review-Galerie zeigt aktuelle Lesarten
- tools/vergleich.py auf Konsens-Ablauf umgestellt
- Doku: README, BEDIENUNGSANLEITUNG, neues CHANGELOG
Gehrke-Brückenkurs: 942 von 1505 Formelbildern automatisch ersetzt (63 %),
62 von 62 von Hand geprüften korrekt; Pandoc/MathML 945 von 945.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 07:58:16 +02:00
nebeneinander; oft genügt ein Blick und „LaTeX übernehmen“.
**Wie sicher ist „automatisch ersetzt“?**
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
An einigen hundert Formeln mit bekannter Lösung wurde keine falsche Formel angenommen (Fehlerquote sehr
wahrscheinlich unter 2 %). Fettdruck wird bewusst nicht geprüft: Ein fetter Vektor **v ** kann als normales
v übernommen werden. Messungen: [FUNKTIONSWEISE.md ](FUNKTIONSWEISE.md#12-messungen ).
feat: 0.2.0 – Konsens Qwen = Gemma = GLM als Standard, Gehrke komplett verarbeitet
- Dritte Lesart (GLM-4.6V über OpenRouter, ohne Nachdenken) muss zustimmen;
keine 2:1-Annahme; fehlender Schlusspunkt der dritten Lesart zählt nicht
- run in Paketen zu 50 mit Statuszeile, beide lokalen Modelle parallel,
GLM nur für Einige; nur die übernommene Lesart wird gegen das Bild geprüft
- Bild-Veto: Ähnlichkeit >= 0,65, Schriftgrößen-Prüfung abgeschaltet
- Antworten auf 800 Tokens begrenzt; Prompt-Version und Nachdenk-Einstellung
im Cache-Schlüssel; Verfahrensversion für Prüfergebnisse
- Behoben: Gleichungsnummern aus alten Lesarten ("(3.7)"), gleichzeitiges
Speichern zweier Engines, Absturz bei Formeln ohne aktuelle Lesart
- apply: deutsches Dezimalkomma 3{,}6; Review-Galerie zeigt aktuelle Lesarten
- tools/vergleich.py auf Konsens-Ablauf umgestellt
- Doku: README, BEDIENUNGSANLEITUNG, neues CHANGELOG
Gehrke-Brückenkurs: 942 von 1505 Formelbildern automatisch ersetzt (63 %),
62 von 62 von Hand geprüften korrekt; Pandoc/MathML 945 von 945.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 07:58:16 +02:00
**Ich will erst ein paar Formeln ansehen, bevor das ganze Buch läuft.**
docs: Dokumentation nach Projektstandard, MIT-Lizenz
- README knapp: Zweck, Schnellstart, Stand, Abschnitt "Documentation", Lizenz
- FUNKTIONSWEISE.md neu: Aufbau, Datenfluss (Mermaid), Entscheidungsregel,
Normalform, elastischer Bildvergleich, Quellen, Sicherheit, Messungen,
Designentscheidungen, Grenzen
- BEDIENUNGSANLEITUNG gegliedert: Installation, Modellserver, Benutzung,
Konfiguration (Umgebungsvariablen, workspace.json), Betrieb, Werkzeuge,
Fehlersuche mit echten Meldungen und Rückgabecodes
- CHANGELOG im Format Keep a Changelog mit "Beim Update zu tun"
- LICENSE (MIT)
- cli.py: Hilfetexte beschreiben die Regel p2t und z-ai/glm-4.6v statt des
Pixelvergleichs und gemini-2.5-flash
- requirements.txt: requests ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:26:49 +02:00
`python3 tools/vergleich.py AUSGABE` verarbeitet eine feste Stichprobe von 50 Formeln genau wie `run` und
schreibt `vergleich/<name>/index.html` .
2026-10-07 03:00:40 +02:00
**Geht die blaue Hinterlegung mancher Formeln verloren?**
Ja. Das Bild hatte die Farbe eingebaut, LaTeX-Formeln haben keinen Hintergrund.