diff --git a/BEDIENUNGSANLEITUNG.md b/BEDIENUNGSANLEITUNG.md index e4026eb..d6737d7 100644 --- a/BEDIENUNGSANLEITUNG.md +++ b/BEDIENUNGSANLEITUNG.md @@ -28,6 +28,8 @@ pip install -r requirements.txt - `tesseract-ocr` + `tesseract-ocr-deu` braucht man nur für gescannte PDFs. - `pandoc` braucht man nur für das EPUB. +- `pix2text` braucht man nur für `--formulas` (Mathebücher, siehe Abschnitt 6): + `pip install "pix2text[multilingual]"`. Prüfen, ob alles da ist: @@ -308,7 +310,8 @@ Kolumnentitel und Seitenzahlen gedruckter Bücher werden automatisch entfernt, g | `--images` | Bilder in `_images/` speichern und im Markdown verlinken | | `--image-format jpg\|png` | Bildformat (Standard `jpg`; `png` verlustfrei, aber ca. 3× größer) | | `--jpeg-quality 1-100` | JPEG-Qualität (Standard 85; 95 fast verlustfrei, Bilder ca. 1,7× größer) | -| `--epub` | zusätzlich EPUB erzeugen (schaltet `--images` ein) | +| `--epub` | zusätzlich EPUB erzeugen (schaltet `--images` ein); Formeln `$…$`/`$$…$$` werden MathML | +| `--formulas` | Mathebücher: jede Formel auf der Seite finden, auch im Fließtext und in Merkkästen, und als Bild ausschneiden; Liste `formulas-*.json` für formula_img2latex (schaltet `--images` ein, braucht pix2text) | | `--epub-file PFAD` | anderer Pfad für das EPUB | | `--split teile\|kapitel\|seiten` | Teile, Kapitel oder Seitenbereiche als Einzeldateien (Abschnitt 4) | | `--pages-per-file N`, `--page-ranges BEREICHE` | Seiten je Datei bzw. feste Bereiche für `--split seiten` | @@ -356,7 +359,7 @@ Kolumnentitel und Seitenzahlen gedruckter Bücher werden automatisch entfernt, g | Link führt ins Leere oder ist abgeschnitten | URL in der PDF nachsehen und in `<…>` korrigieren; manche PDFs enthalten selbst abgeschnittene Linkziele | | Register, Verse oder Code zu einem Absatz verklebt | Zeilen in Weg B mit `\` am Ende trennen bzw. Code in ```` ``` ```` einschließen; das Programm erkennt nur Umbrüche, bei denen das nächste Wort noch in die Zeile gepasst hätte | | Fließtext zerfällt in einzelne Zeilen mit `\` | in Weg B die `\` am Zeilenende entfernen | -| Formeln erscheinen als Bilder | bei Mathebüchern normal; dafür ist das Programm nicht gebaut | +| Formeln erscheinen als Bilder oder als Zeichensalat (`x4n`) | `--formulas` verwenden und die Formeln danach mit formula_img2latex in LaTeX übersetzen; anschließend `--from-md` baut das EPUB mit MathML | | Alter Scan: falsche Überschriften, viele Lesefehler | `--ocr always` (vorhandene OCR-Ebene ignorieren) | | Gedicht wird zu Fließtext (Verse zusammengefügt) | `--keep-lines` | | Auf Scans fehlen Leerzeichen („deutetin“) | OCR-Fehler; höhere Auflösung versuchen (`--ocr-dpi 400`) oder von Hand korrigieren | diff --git a/README.md b/README.md index d4ee350..f0cd476 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,8 @@ sudo apt install tesseract-ocr tesseract-ocr-deu pandoc pip install -r requirements.txt # pymupdf4llm, pymupdf-layout, pytest ``` -`tesseract-ocr` wird nur für Scans gebraucht, `pandoc` nur für `--epub`. Für Fraktur-Scans das +`tesseract-ocr` wird nur für Scans gebraucht, `pandoc` nur für `--epub`, `pix2text` nur für +`--formulas` (`pip install "pix2text[multilingual]"`, siehe formula_img2latex). Für Fraktur-Scans das Modell `deu_latf` aus [tessdata_best](https://github.com/tesseract-ocr/tessdata_best) nach `/usr/share/tesseract-ocr/5/tessdata/` laden und `--ocr-language deu_latf` angeben (besser als das Ubuntu-Paket `tesseract-ocr-frk`). @@ -64,7 +65,8 @@ python3 pdf2md.py --epub --ocr-language eng --ocr always scan.pdf scan.md # EP | `--images` | Grafiken in `_images/` speichern und verlinken | | `--image-format jpg\|png` | Bildformat (Standard jpg; png verlustfrei, aber ca. 3× größer) | | `--jpeg-quality 1-100` | JPEG-Qualität (Standard 85; 95 fast verlustfrei, Bilder ca. 1,7× größer) | -| `--epub`, `--epub-file PFAD` | EPUB 3 mit pandoc erzeugen (schaltet `--images` ein) | +| `--epub`, `--epub-file PFAD` | EPUB 3 mit pandoc erzeugen (schaltet `--images` ein); `$…$`/`$$…$$` werden MathML | +| `--formulas` | Mathebücher: jede Formel auf der Seite finden (pix2text, auch im Fließtext und in Merkkästen), zeichengenau aus dem Text schneiden und als Bild `--f.png` speichern, Liste in `_images/formulas-*.json`; für [formula_img2latex](https://kitux.de/forgejo/dschlueter/formula_img2latex), das sie in LaTeX übersetzt (schaltet `--images` ein) | | `--split teile\|kapitel\|seiten` | Teile, Kapitel oder PDF-Seitenbereiche als Einzeldateien in einem Ordner `/` mit `index.md` (Reihenfolge) und `images/`; Anhang/Autor/Impressum nach dem letzten Kapitel als „Nachspann“ | | `--pages-per-file N` | mit `--split seiten`: etwa N PDF-Seiten je Datei (Standard 20), Schnitt an Absatzgrenzen, bevorzugt an einer Überschrift bis zu einer Seite neben der Grenze | | `--page-ranges 1-12,13-40,41-` | mit `--split seiten`: feste Seitenbereiche (streng, ohne Ausrichten); Seiten außerhalb werden eigene Dateien | @@ -155,8 +157,11 @@ synthetisch erzeugt. - Gedicht-Scans ohne `--keep-lines`: Die Layout-Analyse von pymupdf4llm kann eng stehende Verse verschränken („UndDon tauchteweißen …“) – mit `--keep-lines` werden Scans direkt aus Tesseract gelesen. -- **Mathematische Formeln** werden als Bilder übernommen; für Mathebücher ist ein anderes - Werkzeug besser geeignet (z. B. Marker, Nougat). +- **Mathematische Formeln** werden ohne `--formulas` als Bilder übernommen (abgesetzte Formeln) bzw. als + Glyphensalat im Fließtext (`x4n` statt x⁴ⁿ). Mit `--formulas` wird jede Formel ein eigenes Bild, das + formula_img2latex in LaTeX übersetzt (Corral, *Elementary Calculus*: 9239 Formeln, Stichprobe 79 % + automatisch). Formeln in Tabellen erfasst die Erkennung noch nicht; „Formel“-Boxen mit viel Text werden + zu Text, solche mit Kurven bleiben Grafik. - **Was am PDF liegt, bleibt:** fehlende Ligaturen ohne Textzuordnung („Offzielle“), gesperrt gesetzte Überschriften („M e i n k l e i nes …“), flache PDF-Gliederungen (alle Kapitel auf einer Ebene).