Communitygithub.com

VesperaZephyr/LaTeX-Mathematikbuch-Neusatz

Dieses Skill bündelt bewährte Methoden und Fallstricke für den hochwertigen Neusatz (Re-typeset, keine Übersetzung) von LaTeX-Mathematikbüchern. Es deckt vier Buchtypen ab: westliche GTM-Bücher, chinesische Mathematikbücher, mehrbändige Werke mit kapitelweiser Seitennummerierung und einbändige Monografien mit fortlaufender Seitennummerierung.

Was ist LaTeX-Mathematikbuch-Neusatz?

Dieses Skill, VesperaZephyr/agent-skills, ist ein spezialisiertes Werkzeug für KI-Agenten (Claude Code, Cursor, Codex), um den hochwertigen Neusatz von LaTeX-Mathematikbüchern durchzuführen. Es konzentriert sich auf den Neusatz (keine Übersetzung) von vier spezifischen Buchtypen: westliche GTM-Bücher, chinesische Mathematikbücher, mehrbändige Werke mit kapitelweiser Seitennummerierung und einbändige Monografien mit fortlaufender Seitennummerierung. Das Skill enthält strenge Regeln (z. B. CRLF-Zeilenenden, UTF-8 ohne BOM, 0 Kompilierungsfehler, 0 Overfull-Boxen), eine detaillierte Fallstrickdatenbank (z. B. OCR-Probleme, geteilte Zähler für Gleichungen, überlaufende Seitenzahlen), Strategien für Querverweise und eine Reihe von Prüfskripten für die Qualitätssicherung. Es erfordert, dass der Agent die Zielsetzung klar definiert, die spezifischen Fallstricke des Buchtyps beachtet und die mitgelieferten Skripte zur Validierung der Querverweise, Seitenzahlen und Linkfarben verwendet. Das Skill ist nicht für reine Übersetzungsprojekte geeignet.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/VesperaZephyr/agent-skills/tree/HEAD/latex-book-retypeset

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

LaTeX Mathematikbuch-Neusatz (Re-typeset) Engineering Skill

Zielsetzung und Anwendungsbereich

Ziel ist die Methodik und Fallstrickdatenbank für den hochwertigen Neusatz von gescannten/PDF-Mathematik-Monografien in kompilierbare, durchsuchbare und navigierbare LaTeX-Quellen. Praktische Quellen:

  • Westlich: Conway's "A Course in Functional Analysis" GTM 96, vollständiger Neusatz (436 Seiten, 11 Kapitel + 3 Anhänge, 0 Kompilierungsfehler / 0 tote Links / 1606 interne Sprünge).

  • Chinesisch: Xu Senlin, Xue Chunhua's "Mathematical Analysis (Band 1)", vollständiger Neusatz (551 Seiten, 6 Kapitel + Vorwort + Literaturverzeichnis, 40 Kapitelquelldateien, 23 native TikZ, 0 Fehler / 0 fehlende Zeichen / 0 undefinierte Referenzen / 0 Overfull / PDF-Ebene ?? 0).

  • Westlich mit kapitelweiser Seitennummerierung: Serre's "Abelian l-Adic Representations and Elliptic Curves", vollständiger Neusatz (203 Originalseiten → 129 Seiten, Vorwort + 4 Kapitel + zwei Literaturverzeichnisse + Index, kapitelweise Seitennummerierung I-1/II-42/B-5/Index-3, 0 Fehler / 0 undefiniert / 0 doppelte Labels, manuell nummerierte Aussagenumgebungen + biblatex sortkey für Originalnummern).

  • Westlich mit fortlaufender Seitennummerierung: Samuel's "Algebraic Theory of Numbers", vollständiger Neusatz (110 Originalseiten → 104 Seiten, abschnittsweise Nummerierung Theorem 1/(1), Literaturverweise [1]–[9], Übungen nach Kapiteln nummeriert, Index-Links V.2; 371 labels / 846 interne Link-Ziele / 922 PDF-Link-Kommentare / 110 Q.E.D., 0 Fehler / 0 tote Links / Linkfarbe gemessen (0,0,178)).

  • Anwendbar: Neusatz von Originalbüchern (keine Übersetzung). Vier Routen: ① Springer GTM-Format mit gemeinsamem Zähler (gtmitem-Zähler, Nummer \thesection.\arabic{gtmitem}); ② Chinesische Bücher mit eigenem cls (xeCJK + Fandol, nach Kapiteln getrennte Dateien + Generator-Ausgabe); ③ Mehrbändige Werke mit kapitelweiser Seitennummerierung (eigenes cls mit \chapcode + Neudefinition von \thepage, manuell nummerierte Aussagenumgebungen); ④ Einbändige Monografien mit fortlaufender Seitennummerierung und abschnittsweise Nummerierung (eigenes cls mit Zählern nach Schlüsselwörtern + Zurücksetzung pro Abschnitt, \folio nur am Start von Teilen). Grafiken folgen der Anleitung unter "Allgemeine mathematische Abbildungen": Bearbeitbare Neuerstellung mit nativem TikZ; originaltreue Wiederverwendung kann das Vektor-PDF des Originals behalten.

  • Nicht anwendbar: Reine Übersetzungsprojekte der Klasse mathtranslation (gehören zum Skill mathtranslation).

Wann verwenden

  • Benutzer sagt: "Buch X neu setzen", "PDF als LaTeX setzen", "Querverweise ergänzen", "Overfull reparieren", "Gleichungsnummern verschoben", "OCR-Müll".
  • Übernahme eines Neusatz-Projekts, zuerst die disziplinarischen Regeln festlegen, dann beginnen.
  • Kompilierung zeigt multiply defined / undefined references / Nummerierungsfehler / viele Overfull-Boxen.

Harte Disziplin (rote Linien, vor Arbeitsbeginn bestätigen)

PunktAnforderung
ZeilenendenCRLF, UTF-8 ohne BOM (alle .tex/.cls/.py)
Buildxelatex -interaction=batchmode main.tex × 3 (nach Label-Änderung Aux × 4 leeren)
Qualitätskriterien0 Kompilierungsfehler, 0 undefinierte Referenzen, 0 fehlende Zeichen, 0 Overfull in neuen Abschnitten
InhaltsquelleOriginal-PDF-Bild als Referenz, OCR nur als Suchindex
InhaltsänderungNur den Generator (make_chNN_secM.py) ändern → dann zusammenstellen; NIEMALS chapters/*.tex direkt bearbeiten
NummerierungZuerst nach Original die Route wählen: GTM mit gemeinsamem gtmitem-Zähler; Manuell nummerierte Monografien oder Prüfungen können die originale Anzeigenummer + versteckten Ankerzähler verwenden. KEINE Änderung der Originalnummern aus Gründen der Kontinuität
FormelnUngleichungen mit nackten \[\] / align*, oder equation\notag; streng verboten sie zu nummerieren
GrafikenNeuerstellung bevorzugt mit nativem TikZ/PGFPlots; bei zuverlässigen Vektorgrafiken im Original können diese direkt als Vektor-PDFs beibehalten werden. Verboten, Vektorgrafiken zuerst in PNG umzuwandeln und dann als verlustfrei zu bezeichnen; bei Rastergrafiken im Original müssen die ursprünglichen Einschränkungen dokumentiert werden

Seitenzahl-Mapping des Originals

Physische Seite = Buchseite + Offset (GTM96 Offset = 15). Zuerst den Offset messen, dann alle "Überprüfung im Original"-Aktionen anhand der physischen Seite durchführen.

Allgemeine mathematische Abbildungen: Originaltreue, Lesbarkeit und Einzelprüfung

Dieser Abschnitt gilt für Kurven, Flächen, Vektorfelder, Koordinatengitter, Orientierung/Grenzen, facettenartige Geometrie usw.; Kommutative Diagramme folgen weiterhin dem nächsten Abschnitt mit Kantenprüfung. Verwenden Sie den gemeinsam genutzten Illustrations-Workflow, nicht mechanisch Beschnitt oder Skalierung eines bestimmten Buches übernehmen.

Erstellen Sie zuerst unabhängig eine Liste der Abbildungen im Original und in der Build-Kette, dann eine Einzeltabelle mit physischer Seite/Beschnitt, Abbildungsnummer, allen Unterabbildungen, Labels, Pfeilen/Orientierung, Quell-Assets, endgültiger PDF-Seite und Überprüfungsbeweis. Gleiche Anzahl oder gleiche Dateinamen schließen nicht aus, dass "die falsche Abbildung die richtige ersetzt hat"; vergleichen Sie benachbarte Abbildungen, insbesondere bei mehreren Abbildungen auf einer Seite und seitlich angeordneten Bildunterschriften.

Bevorzugen Sie die Beibehaltung zuverlässiger Vektorgrafiken aus dem Original; wenn eine Sinisierung, einheitliche Schriftart oder geometrische Reparatur erforderlich ist, zeichnen Sie mit nativem TikZ/PGFPlots neu. Listen Sie vor dem Neuzeichnen die sichtbaren mathematischen Fakten auf: Koordinaten/Kurvenbeziehungen, Vektor-Endpunkte, Anzahl der Niveaulinien und Werte, Orientierung, Grenzsymbole, Überlappungen und Projektionen. Ändern Sie diese Fakten nicht aus ästhetischen Gründen. Komplexe Oberflächen- und Felddiagramme sollten nicht zu bedeutungsähnlichen Schemata degradiert werden. Eine Neuanordnung von Unterabbildungen muss die Lesereihenfolge, proportionale Bedeutung und Verbindungen beibehalten.

Rendering mit 400 DPI ist nur ein Raster; echte Vektornutzung erfordert die Beibehaltung von PDF-Pfaden/Glyphen/Transparenz und eine Überprüfung des Outputs. Der Pfad-Bounding-Box eines Zeichenpakets kann Kurvenkontrollpunkte enthalten oder durch internen Beschnitt begrenzt sein; man kann weder blind die Vereinigung nehmen noch es direkt mit dem Beschnitt rechteckig als Beweis für das Ausschneiden verwenden. Automatischer Bildzuschnitt erzeugt nur Kandidaten; erfordert eine visuelle Überprüfung der vollständigen Originalseite, des Kandidaten und der endgültigen Buchseite. Behalten Sie dünne Pfeile, entfernte Labels, Unterabbildungsnummern und angemessene Sicherheitsabstände bei.

Die Bildgröße wird durch die endgültige Schriftgröße und den Seitenplatz bestimmt; es gibt keine feste untere/obere Breitengrenze für das gesamte Buch; die Breite verwendet lokales \linewidth, wobei das Seitenverhältnis beibehalten wird. Dicht gedrängte Unterabbildungen können vergrößert oder neu angeordnet werden, aber nicht durch Beschneiden von Rändern/Labels verkleinert. Die Auslieferung des gesamten Buches erfordert eine Zuordnung jeder Abbildung zur endgültigen Seite; Kompilierung, 256 Abbildungsnummern für 256 Dateien, hohe Pixelähnlichkeit, all dies ersetzt nicht den Inhalt, die Abdeckung und die visuelle Prüfung.

Kommutative Diagramme und Pfeil-Treue-Überprüfung

Dieser Abschnitt bezieht sich speziell auf kommutative Diagramme, exakte Sequenzgitter, Pullback/Pushout-Diagramme usw., die aus Knoten und Morphismen bestehen; allgemeine geometrische Abbildungen, Kurvendiagramme und Formelmatrizen folgen weiterhin ihren jeweiligen Regeln. Verwenden Sie beim Zeichnen oder Überprüfen tikzcd, nicht standardmäßig array für Pfeildiagramme. Wenn Sie alte Manuskripte finden, suchen Sie nicht nur nach tikzcd: Führen Sie das Skript scripts/inventory_diagrams.py des zugehörigen Audit-Skills aus, das alle tatsächlich am Build beteiligten Quelldateien, Eingabedateien, Fußnoten/Anhänge und Makrodefinitionen abdeckt; klassifizieren Sie Kandidaten einzeln als kommutative Diagramme, Formeln/Tabellen, noch zu expandierende Makros oder ungelöst. Pfeildiagramme in array/aligned/matrix/CD/xymatrix werden ebenfalls einbezogen; gewöhnliche Matrizen werden nicht mechanisch aufgrund des Vorhandenseins einer Matrixumgebung migriert.

Erstellen Sie für jedes Diagramm separat Knotengitter und Kantenlisten aus dem Original-PDF und der neu gesetzten Version, dann vergleichen Sie Kante für Kante: Start, Ende, Pfeilspitze, Hakenenden für Injektion, Doppelpfeile/Gleichheitszeichen/pfeillose Linien, durchgezogene/gestrichelte Linien, Labels und deren Seiten, leere Knoten und Nullzeilen/Spalten. r/l/u/d sind geometrische Verschiebungen und ersetzen nicht die Beurteilung der Abbildungsrichtung. Überprüfen Sie explizite from/to, Optionen für umgekehrte Pfeile, benannte Knoten und tatsächlich expandierte Makros. Injektionen müssen im endgültigen PDF tatsächlich einen Haken zeigen, Surjektionen einen Doppelpfeil. hook' ändert nur die Seite des Hakens, kehrt den Pfeil nicht um; \hookrightarrow im Label ändert ebenfalls nicht den Kantenstil. Überprüfen Sie die Überlagerung von lokalen Optionen, \tikzcdset, every arrow/.style und benutzerdefinierten Makros; spätere rightarrow-Einstellungen können vorherige hook überschreiben. Erfolgreiche Kompilierung und das Vorkommen von hook im Quellcode ersetzen nicht die Endkontrolle.

Bestimmen Sie die sichtbaren Fakten von Knoten und Kanten anhand der veröffentlichten Buchbilder des Originals; Original-TeX, OCR und mathematische Semantik dienen nur als unterstützende Beweise. Bilden Sie die physischen Seiten des Originals und der Neusetzung separat ab; leiten Sie die Seite eines Diagramms nicht direkt aus der Seitenzahl eines Theorems/Beweises ab. Betrachten Sie zuerst die gesamte Diagrammstruktur, dann zoomen Sie hinein, um Haken, Doppelpfeile, Pfeilspitzen und Beschnitt zu überprüfen; überprüfen Sie gleichzeitig isolierte kleine Proben und die endgültige Buchseite.

Wenn eine direkte Bildanzeige nicht möglich ist, bestätigen Sie zuerst den lokalen Bildpfad und das Anzeigeprogramm, dann versuchen Sie es erneut; ein Pfad-/Programmfehler ist nicht gleichbedeutend damit, dass das Modell keine visuellen Fähigkeiten hat. Falls immer noch keine visuelle Überprüfung möglich ist, folgen Sie dem Ablauf für die Überprüfung ohne Sicht des zugehörigen Skills: Expandieren Sie das Gitter anhand der obersten Ebene &/\\ aus dem Quellcode (leere Knoten beibehalten und verschachtelte Makros verarbeiten), überprüfen Sie Kantenrichtungen und effektive Stile; im bestätigten PDF-Beschnittbereich überprüfen Sie Textspannweiten und Vektorpfade/Glyphen, unterscheiden Sie zwischen Quellcode-Topologie, PDF-Geometrie und direkter visueller Evidenz. Wenn der PDF keinen Pfeilspitzenstrich extrahiert hat, beweist das nicht, dass die Originalabbildung keinen Pfeil hatte. Behalten Sie nicht bestätigbare spezifische Abbildungen, Kanten, Zeilennummern, Originalseiten/Beschnittpositionen; diese Details müssen als ungelöst gekennzeichnet werden, Kompilierungserfolg oder OCR → ersetzen nicht die visuelle Prüfung.

Schnellreferenz der wichtigsten Fallstricke

Die vollständige Tabelle finden Sie in references/pitfalls.md. Die häufigsten:

  • PDF-Doppelschicht-Text-Falle: Das Originalbuch enthält eine versteckte Textebene HiddenHorzOCR, get_text() mischt Ausgabe und produziert Zeichensalat (Jf = ℋ, &i( = ℬ). Formeln müssen mit get_pixmap gerendert und visuell bestätigt werden.
  • Gleichungsnummern mit gemeinsamem Zähler: Nummerierte Displays mit gtmeq (Zähler erhöhen); links leere Nummern mit equation\notag (nicht erhöhen). Nacktes equation fällt in den Gleichungszähler und rendert mit Kapitelnummer.
  • Claim nach Kapitel nummeriert: Kapitel 1/2 claim* ohne Nummer, Kapitel 3/4/9 claim mit Nummer.
  • Keine Umgebungs-Labels aufgrund semantischer Annahmen: Viele nackte Absätze im Original, fälschlich in remark verpackt, frisst die Nummerierung und erhöht alle nachfolgenden Einträge.
  • Querverweise A–E (Details in references/crossref.md): \item vor \gtmtarget falsch positioniert, zwei Arten von Übungsblöcken, regulärer Ausdruck \\S falsch, Batch-Ergänzung von Leerzeichen doppelt ersetzt + veraltete .aux-Scheinfehler, ergänzende Kapitelnummer / leeres \ref{}.
  • \pagestyle{empty} Leck (gesamte Seitenkopfzeile/-nummer verloren): Titelblätter setzen \pagestyle{empty}, stellen es aber nie zurück, wodurch alle nachfolgenden Seiten keine Kopfzeile und keine Seitennummer haben. \thispagestyle betrifft nur die Startseite; in Kapitel-/Vorspann-/Literatur-/Index-Kopfmakros explizit \pagestyle{fancy} wiederherstellen (Details unten im Abschnitt "Selbstständige Kapitel").

Spezielle Hinweise für Bücher mit kapitelweiser Seitennummerierung (\chapcode-Layout)

Bücher wie Serre haben jedes Kapitel mit eigener Seitennummerierung und Kapitelpräfix (I-1…I-30, II-1…II-42, B-1…B-8, Index-1…Index-3). Das eigene cls hat gegenüber der GTM-Route eine ganze zusätzliche Klasse von Fallstricken. Die vollständige Version finden Sie in references/chapcode-retypeset.md. Die fünf häufigsten:

SymptomRichtige Lösung
Alle nachfolgenden Seiten ohne Kopfzeile und SeitennummerLeck von \pagestyle{empty} in front/titlepages.tex; in jedem Kopfmakro (\chapterhead/\fmhead/bib/index) explizit \pagestyle{...} wiederherstellen, nicht nur \thispagestyle (betrifft nur die Startseite)
Seitenzahlformat durch \pagenumbering zurückgesetztKernel \pagenumbering{roman} definiert \thepage neu; "Druckformat" von "Zählwert" trennen, nach jedem \pagenumbering \thepage/\theHpage neu aufbauen (letzteres = gedruckte Seitenzahl, sodass der Anker mit der Seitenzahl übereinstimmt)
Vorspann folio springt wiederholt / wird zweimal gedruckt\fmhead[folio#] erhöht nur, wenn das Ziel-folio > aktueller Wert ist (nur vorwärts, nie rückwärts), um vorwärts gerichtete Seitensprünge zu vermeiden
Aussagenummerierung stimmt nicht mit dem Original übereinOriginal manuell nummeriert (mit/ohne Nummern gemischt, oft neu gestartet): Verwenden Sie "manuellen Nummernparameter + versteckten Ankerzähler", z. B. \begin{stmt}{LEMMA}{3}, bei fehlender Nummer den zweiten Parameter leer lassen
biblatex-Nummerierung zerstört die Original-ReihenfolgeBenutzerdefinierte Sortiervorlage + sortkey-Feld für jeden Eintrag, refnumber auf die originale [1]–[88] festlegen
Drucken nach Kategorie lässt genau den letzten Eintrag jeder Kategorie weg\addtocategory mit der abschließenden } in einer neuen Zeile → TeX liest den Zeilenumbruch als Leerzeichen, der letzte Schlüssel wird zu xxx␠, biblatex findet nach .aux keinen passenden Eintrag. Lösung: Am Ende der letzten Schlüsselzeile % einfügen, um den Zeilenumbruch zu unterdrücken. Zuerst .aux auf \abx@aux@category{...} mit Leerzeichen am Ende prüfen (defernumbers=true repariert das nicht)
Seitenzahlen im Inhaltsverzeichnis sind tote Linkshyperref generiert für einige Seiten kein page.<folio>-Ziel; stattdessen \hyperref[<Label des Eintrags>] verwenden (Kapitel chap:I/Abschnitt sec:I.2/Literatur bib:main), mit \@ifundefined{r@…} als Fallback auf \hyperlink{page.<folio>}

Vier Konventionen für Kopfzeilen in Büchern mit kapitelweiser Seitennummerierung (nach Original überprüfen, vollständige Tabelle in references/chapcode-retypeset.md): Haupttext (gerade Seiten: Buchtitel/ungerade Seiten: Kurzkapiteltitel), Vorspann (Abschnittsname ersetzt Buchtitel), Haupt- und ergänzendes Literaturverzeichnis, Index (beide Seiten nur äußere nackte Seitenzahl).

Spezielle Hinweise für Bücher ohne Abschnitte mit fortlaufender Nummerierung (Samuel-Typ)

Einbändige, fortlaufende arabische Seitennummerierung, Aussagen nach Schlüsselwörtern getrennte Zähler und abschnittsweise zurückgesetzt mit nackter Nummer, Formeln abschnittsweise zurückgesetzt mit (1), Literaturverweise [n], Übungen nach Kapiteln nummeriert. Vollständige Version in references/samuel-style-retypeset.md. Die neun häufigsten:

SymptomRichtige Lösung
Nummerierung nach benannter Aussage verschoben (Proposition 3 gedruckt als 2)Statement-Wrapper muss bedingungslos \refstepcounter ausführen, optionales Argument dient nur zum Drucken des Namens
Passt Seite für Seite nicht zum ScanNicht Seite für Seite erzwingen; nur am Start von Kapitel/Supplement/Exercises/Bib/Index \folio{n} aufrufen (nur vorwärts)
Kopfzeile soll den Abschnittsnummernbereich auf dieser Seite anzeigen\pagefirstsec + \afterpage für den ersten Abschnitt der vorherigen Seite; recto Abschnittsnummer|Titel|§§ c.a–c.b, verso umgekehrt
Externe Literatur-Kapitelnummer wird fälschlich verlinkt ([1], Algèbre, Chapter VI, Chapter V of [9])Nach [n] und Chapter-Nähe, of [n], \emph{Algèbre} drei Regeln ausschließen, zuerst \divhead{Chapter X} schützen
Literaturverweise [n] sind nicht klickbar\item[\textbf{[n]}] \phantomsection\label{bib:n}; im Text \hyperref[bib:n]{[n]} (Anzeigetext fixiert)
Übungsreferenzen sind nicht verlinktInnerhalb \exitem \refstepcounter{exno} + \label{exer:kapitel.n}; jedes Kapitel \exchap{X} zurücksetzen; Review Problems mit R1/R2/R3, um Duplikate mit dem letzten Kapitel zu vermeiden
Listeneinträge (1)(2) ohne Anker\item\label{prop:c.s.i}; im Text trotzdem \hyperref[...]{(1)}, da \ref von enumerate keine Klammern enthält
Prüfung auf nackte Referenzen voller falscher PositiveMuss ganze Blöcke von \hyperref[...]{...} maskieren (geschweifte Klammern ausgleichen); \[...]-Maskierung erfordert re.S
.aux meldet Label existiert nicht / Quellcode-Farbe stimmt nicht mit PDF\newlabel mit ausgeglichener Analyse (Eintragswert ist {{(1)}}); Farbe mit 300 dpi Sampling über dem Link-Rechteck als (0,0,178) bestätigen

Build: Wenn cls fontspec verwendet, schlägt pdflatex fehl (fontspec requires XeTeX or LuaTeX); lualatex/xelatex verwenden; latexmk kann immer noch in der fdb pdflatex ziehen, bei Bedarf direkt aufrufen.

Spezielle Hinweise für chinesische Bücher (xeCJK)

Der Neusatz chinesischer Mathematikbücher hat eine ganze Klasse von Fallstricken, die bei westlichen Büchern nicht auftreten. Vollständige Version in references/cjk-retypeset.md. Die fünf häufigsten:

SymptomRichtige Lösung
TikZ \draw/\fill/\path[domain=…] plot (…) Analyse fehlgeschlagenÄndern zu plot[smooth] coordinates{…}, Koordinaten werden in Python von scripts/gen_tikz_curve.py berechnet und eingefügt
Missing character: … (U+6685) in font FandolSongFandol-Schriftfamilie fehlen seltene Zeichen; cls \newCJKfontfamily\zmbhan{SimSun} als Fallback-Familie hinzufügen, im Text 祖{\zmbhan 暅}
Reine CJK-Zeile 2–3pt Overfull, \hspace{0pt plus 3pt} wirkungslos, plus 1fil erzeugt großen Abstand\tracingparagraphs zuerst zur Diagnose; richtige Lösung ist lokales \begingroup\xeCJKsetup{CJKglue={\hskip 0pt plus 1pt}}…\endgroup für gleichmäßige Lockerung
Dichte Skalenlabels überlappen (2n / 2n+1 / 2n+2)Gemäß Original mit "versetzter Absenkung" oder "schrägen Führungslinien" zwei Layouts verwenden, nicht erzwingen in einer Zeile
Textverweis \extref{6.3.2} im gesamten BuchNach Abschluss des Zielabschnitts auffüllen zu Theorem~\ref{thm:6.3.2}, und nur den Generator-Quellcode ändern und erneut generieren

Chinesische Bücher haben drei weitere "normale Phänomene", die leicht als Fehler fehlinterpretiert werden: xelatex fatal: memory exhausted (kurzer Speicherüberlastung, erneuter Build behebt es), leere Seite am Ende des Haupttexts (\makebibliography enthält \cleardoublepage, wenn die Parität mit dem Original übereinstimmt, ist es das erwartete Layout), unterer OCR-Abschnitt über Seiten hinweg abgeschnitten (muss gegen die gescannte Seite für jede Aufgabe gezählt werden).

Vervollständigung von Querverweisen (sieben aufeinanderfolgende Schritte)

Hartcodierte Verweise im Text (Theorem X.Y / (2.3) / Exercise N / Section N) → vollständige Strategie für Hyperlinks \ref/\eqref, siehe references/crossref.md: Zuerst Label-Namen standardisieren (art:c.s.i), sec:/exercise:-Labels ergänzen, dann abschnittsweise konvertieren: Kapitelübergreifend → Klammern im Kapitel → nackte Nummern im Kapitel, jeder Schritt mit Kompilierungsvalidierung.

Bücher mit fortlaufender Nummerierung haben drei weitere Objekte, die nicht in crossref.md abgedeckt sind: Literaturverweise [n] (Anker in der Eintragszeile, im Text \hyperref[bib:n]{[n]}), Übungsnummern nach Kapitel (exer:c.n, Review Problems verwenden R-Präfix), Listeneinträge (1)(2) in Aussagen (\item\label{...}). Zwei Arten müssen als reiner Text beibehalten werden: Eigene Kapitelnummern externer Werke und Schreibfehler im Original (z. B. "§4, Proposition 2" während der Abschnitt nur Proposition 1 hat – gedruckte Zeichen beibehalten, Link auf das tatsächliche Ziel setzen und in STATE.md notieren). Siehe references/samuel-style-retypeset.md.

Zugehörige Audit-Skills (bereits installiert, nach Bedarf aufrufen)

  • latex-eq-numbering-audit — Einzeln mit Original vergleichen
  • latex-display-layout-audit — Display-Formel-Layout (over-wrap / falsche Ausrichtung)
  • latex-footnote-fidelity-audit — Alle Fußnoten fallen
  • latex-ocr-math-defect-audit — OCR beschädigte Mathematik
  • Kommutatives Diagramm-Audit-Skill — Bestandsaufnahme alter Diagramm-Kandidaten, Kanten-Richtung/Haken/Doppelpfeil-Prüfung, Stil-Override-Überprüfung und Verfahren ohne visuelle Evidenz
  • latex-bookmark-anchor-audit — PDF-Lesezeichen-Anker
  • mathtranslation — xelatex/biber Kompilierung und visuelle Validierung (references/build-verify.md)

Abnahmekriterien

Siehe references/verification.md: Nach leeren aux 4 Durchläufe exit=0; 0 Fehler / 0 Duplikate / 0 undefiniert / 0 tote Links; Übungsnummerierung abschnittsweise fortlaufend; CRLF/BOM konform; Inkonsistenzen in der Originalnummerierung als reinen Text belassen und Anzahl prüfen.

Zusätzliche drei Punkte für chinesische Bücher (einmalig mit scripts/verify_cjk_book.py main.pdf --log main.log --bib-page N ausführen): 0 Vorkommen von ?? in der PDF-Textebene, 0 Vorkommen von Missing character, nachgefüllte Referenzen werden im PDF tatsächlich als Nummern aufgelöst (nicht als Originaltext).

Zusätzlicher Punkt für Bücher mit kapitelweiser Seitennummerierung: Mit scripts/dump_page_heads.py main.pdf Seite für Seite den Kopf-/Fußtextbereich ausgeben, behaupten: Jede nachfolgende Seite hat Kopfzeile und Seitenzahl, Jede Startseite hat keine Kopfzeile, aber mittige nackte Seitenzahl unten, und das Seitenzahlformat (I-2 / B-5 / Index-3 / römisch) ist korrekt. Für Seitenzahlen-Hyperlinks im Inhaltsverzeichnis zusätzlich mit --check-toc-links behaupten, dass alle page.*-benannten Ziele aufgelöst werden.

Zusätzliche zwei Punkte für Bücher mit fortlaufender Nummerierung: scripts/audit_internal_links.py behauptet, dass alle Ziele von \ref/\eqref/\pageref/\hyperref 0 fehlen (nicht nur \ref prüfen); scripts/check_link_color.py main.pdf --expect 0,0,178 verwendet Pixel-Sampling, um die Linkfarbe zu bestätigen (colorlinks im Quellcode ist kein Beweis). Die Prüfung auf nackte Verweise erfolgt mit scripts/audit_bare_xrefs.py; verbleibende Einträge müssen einzeln als "Listen-Labels/externe Literatur" und nicht als Verweise identifiziert werden.

Wichtige Skripte

  • scripts/audit_text_refs.py: Scannt .tex nach hartcodierten Referenzen, die noch nicht \ref-ifiziert wurden (Arbeitsliste, ändert keine Dateien).
  • scripts/rebuild_exercise_labels.py: Sichere Neuerstellung von exercise:c.s.i (Standardmäßig dry-run, behandelt korrekt \gtmtarget und manuelle Übungsblöcke in derselben Zeile).
  • scripts/gen_tikz_curve.py: In xeCJK cls ist plot[domain=…] nicht verwendbar; verwendet es, um parametrische/kartesische/polare Kurven in plot[smooth] coordinates{…}-Literale zu berechnen (--wrap gibt direkt ein vollständiges \draw aus).
  • scripts/verify_cjk_book.py: Gesamtprüfung für chinesische Bücher (??-Reste / Lesezeichen-Anzahl / nachgefüllte Referenzen / Literaturverzeichniseinträge / fehlende Zeichen), exit=1, wenn auch nur eine harte Hürde nicht bestanden wird; muss vor Auslieferung ausgeführt werden.
  • scripts/dump_page_heads.py: Prüfung von Kopfzeilen/Seitenzahlen für Bücher mit kapitelweiser Seitennummerierung. Gibt Seite für Seite den Kopf-/Fußtextbereich aus, meldet für jede Seite die Kopfzeile und die Seitenzahl; --check-toc-links behauptet zusätzlich, dass alle page.*-benannten Ziele im Inhaltsverzeichnis aufgelöst werden.
  • scripts/audit_internal_links.py: Überprüft alle \ref/\eqref/\pageref/\hyperref[...] gegen main.aux (geschweifte Klammern in \newlabel ausgleichen; überspringt automatisch Backup-Verzeichnisse work/bak/render/build), exit=1 bei Fehlern.
  • scripts/audit_bare_xrefs.py: Maskiert zuerst ganze Blöcke von verlinktem Text, Mathematik, optionalen Argumenten wie \item[...]/\pdfbookmark[...], zählt dann nackte Theorem 3 / (4) / [3] / exercise 8 und gibt STMT/PAREN/FORM/BIB/EXERC-Zählungen aus.
  • scripts/check_link_color.py: Rendert das PDF, erstellt ein Histogramm nicht-weißer Pixel für jedes Link-Rechteck, behauptet die Textfarbe des Links; --expect 0,0,178 entspricht blue!70!black, um ein Überschreiben durch spätere \hypersetup zu verhindern.

Ressourcen

  • references/discipline.md — Dokumentklassen / Zähler-Schnellreferenz, Seiten-Mapping, Parameter für Literaturverzeichnis-Satz
  • references/pitfalls.md — Alle Fallstricke für westliche Bücher (OCR / Gleichungsnummern / Claim / Umgebungs-Labels / overfull / Querverweise A–E)
  • references/cjk-retypeset.md — Spezielle Hinweise für chinesische Bücher (TikZ-Kurven / fehlende Zeichen Fallback / CJKglue Lockerung / Label-Überlappung / extref nachfüllen / memory exhausted / biber Literaturverzeichnis / einzelner Ausgabe-Pfad)
  • references/chapcode-retypeset.md — Spezielle Hinweise für Bücher mit kapitelweiser Seitennummerierung (\chapcode-Seitenzahlmechanismus / \pagestyle{empty} Leck / vier Kopfzeilen-Konventionen / manuelle Aussagen-Nummerierung / biblatex sortkey Fixierung / Seitenzahlen-Hyperlinks im Inhaltsverzeichnis)
  • references/samuel-style-retypeset.md — Spezielle Hinweise für Bücher mit fortlaufender Nummerierung (Zähler nach Schlüsselwörtern / abschnittsweise zurückgesetzt, \folio nur am Start von Teilen, Kopfzeilen-Abschnittsnummernbereich, Ausschluss externer Kapitelnummern aus Literaturverweisen, bib:n und exer:-Anker, Listeneintrags-Referenzen, .aux-Klammerausgleich, Link-Farb-Pixel-Abnahme)
  • references/crossref.md — Sieben-Schritte-Strategie für Querverweise + Algorithmus zur Wiederherstellung von Übungen + Liste der als Text zu belassenden Elemente
  • references/verification.md — Build-Befehle, Abnahmeliste, CRLF/BOM-Prüfung
  • scripts/audit_text_refs.py — Scanner für hartcodierte Referenzen
  • scripts/rebuild_exercise_labels.py — Sichere Wiederherstellung von Übungs-Labels
  • scripts/gen_tikz_curve.py — Parametrische/kartesische/polare Kurven → plot[smooth] coordinates{…}-Fragmente
  • scripts/verify_cjk_book.py — Gesamtprüfung für chinesische Bücher (PDF-Ebene ?? / Lesezeichen / nachgefüllte Referenzen / Literaturverzeichniseinträge / fehlende Zeichen)
  • scripts/dump_page_heads.py — Prüfung von Kopfzeilen/Seitenzahlen + Seitenzahlen-Hyperlinks im Inhaltsverzeichnis für Bücher mit kapitelweiser Seitennummerierung
  • scripts/audit_internal_links.py — Überprüfung aller internen Link-Ziele (\ref/\eqref/\pageref/\hyperref) gegen aux
  • scripts/audit_bare_xrefs.py — Zählung nackter Referenzen nach Maskierung verlinkten Texts (STMT/PAREN/FORM/BIB/EXERC)
  • scripts/check_link_color.py — Pixel-Sampling über PDF-Link-Rechtecken, Behauptung der Linkfarbe (Standard 0,0,178)

Chinesische Gedächtnisprotokoll-Prüfungssammlungen

Bei mehreren Prüfungen mehrerer Universitäten über viele Jahre, mit eigenen Aufgabennummern und Punktwerten, während des Neusatzes auch Prüfungskorrektur, lesen Sie Spezielle Hinweise für Gedächtnisprotokoll-Prüfungen. Unterscheiden Sie unbedingt zwischen eigenen Fehlern und Fehlern der Originalaufgabe; überprüfen Sie, ob durch OCR verworfene Kopf-/Fußzeilen Aufgabennummern enthalten; schreiben Sie nicht, dass die erste Durchsicht das gesamte Problem als korrekt bestätigt hat, solange nicht jede Aufgabe bewiesen ist.

Begrenzte Parallelisierung und OCR-Quellen auf Seitenebene

Wenn für eine Gesamtaufgabe der Kontext eines einzelnen Agenten reduziert werden muss, lesen Sie Begrenzte Sub-Agenten, OCR-Seiten-Quellen und Index-Mapping. Enthält Dateieigentum, Agenten-Unterbrechungsübergabe, Duplikatsprüfung von Revisionstabellen, mathematische Schriftarten und Aussagenumfang, PDF-Hash-Bindungsvalidierung sowie validierte Methoden aus Ahlfors-Entwürfen für absatzübergreifende Verschiebungen, lokale Seitenzahlneustarts in Bänden, eine Abbildung mit mehreren Diagrammen, Index-Suchgruppen-Endprüfung, Klärung von Zweifeln, seitenübergreifende Überprüfung von Fußnoten und redaktionelle Korrekturspuren.

Verwandte Skills