CommunityCodierung & Entwicklunggithub.com

LaTeX-PDF — Professionelle LaTeX-PDF-Produktion

Erstellt, repariert und prüft .tex-Dateien und PDFs, wenn der Benutzer explizit LaTeX wählt oder die Aufgabe Formeln, Referenzen oder andere LaTeX-spezifische Fähigkeiten erfordert. Normale Dokumente, Folien oder allgemeine PDF-Exporte werden nicht automatisch auf LaTeX umgestellt.

Was ist LaTeX-PDF — Professionelle LaTeX-PDF-Produktion?

Dieses Skill ist ein umfassender Leitfaden für die professionelle LaTeX-PDF-Produktion mit Fokus auf Lesbarkeit und Professionalität. Es unterstützt die Engine-Wahl (pdflatex, xelatex, lualatex) basierend auf Sprache und Schriftanforderungen und bietet optimierte Compile-Strategien mit latexmk. Der Skill legt großen Wert auf Layout-Prinzipien wie optimale Zeilenlänge, saubere Tabellen (booktabs), Abstandssysteme, Mikrotypografie und die Vermeidung von Hurenkindern und Schusterjungen. Er enthält eine Schritt-für-Schritt-Arbeitsanleitung (Umgebungsprüfung, Bedarfsanalyse, Engine-Wahl, .tex-Generierung, Kompilierung, Log-Inspektion und visuelle PDF-Prüfung vor der Auslieferung). Zusätzlich gibt es eine umfangreiche Referenz zu häufigen Problemen (Kompilierungsfehler, Zeichenkodierung, Tabellen, Schriftarten, Paketkonflikte, Umgebungsprobleme) und eine diagnostische Checkliste für die Fehlersuche. Das Skill arbeitet eigenständig, benötigt kein anderes Skill, und setzt auf statische Prüfung und isolierte Ausführung zur Sicherheit.

Funktioniert mit✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/YuShenLiu06/yushen-skills/tree/HEAD/skills/latex-pdf

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

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

Dokumentation

Was macht LaTeX-PDF — Professionelle LaTeX-PDF-Produktion?

Ziel ist nicht 'es kompiliert', sondern dass der Leser das PDF in die Hand nimmt und es professionell wirkt. Auslieferung erfolgt nach Inhalt und tatsächlicher Seite; erfolgreiches Kompilieren beweist nur den Abschluss der Kompilierung, nicht den visuellen Erfolg.

Inhaltsverzeichnis

  1. Kernprinzipien
  2. Engine-Wahl
  3. Kompilierungsstrategie
  4. Layout-Prinzipien für Lesbarkeit
  5. Arbeitsablauf
  6. Schnellcheck häufiger Fehler

Kernprinzipien

Das Layout folgt zwei Prüfzielen und benötigt kein anderes Skill, um zu funktionieren:

① Layout dient dem Lesen – Jede Layout-Entscheidung beantwortet die Frage 'Hilft das dem Leser, es besser zu verstehen?'. Wenn das Entfernen einer Einstellung das Leseerlebnis nicht verändert, dann existiert sie unnötig.

② Zurückhaltung ist Professionalität – Entfernen Sie alle visuellen Elemente, die keine Informationen vermitteln. Dekorative Linien, Hintergrundmuster, farbige Kästen – das meiste davon sollte weg. Professionelles Layout 'sieht mühelos aus', während Amateur-Layout oft 'sieht bemüht, aber chaotisch' wirkt.

Ausführliche Lesbarkeitsprinzipien finden Sie unter readability-principles.


Engine-Wahl

Die falsche Engine zu wählen ist der häufigste Fehler, insbesondere bei chinesischen Inhalten mit pdflatex.

Chinesisch/Japanisch/Koreanisch?
├─ Ja → xelatex (+ ctex Paket)
│        (lualatex geht auch, aber langsamer)
└─ Nein → Systemschriften benötigt?
         ├─ Ja → xelatex oder lualatex (+ fontspec)
         └─ Nein → pdflatex (schnellste, kompatibelste)

Bei neuen CJK-Dokumenten bevorzugen Sie XeLaTeX oder LuaLaTeX und überprüfen Sie die tatsächliche Schriftunterstützung. Vorhandene funktionierende pdfLaTeX/CJK-Vorlagen sollten nicht grundlos ersetzt werden; fandol ist im normalen pdfLaTeX-Pfad nicht geeignet.

EngineVorteileNachteileAnwendungsbereich
pdflatexSchnellste, stabilste, größtes ÖkosystemKein natives Unicode, keine SystemsestenReine englische Dokumente
xelatexNatives Unicode, Systemschriften, CJK-freundlichLangsamerStandardwahl für chinesische Dokumente
lualatexLeistungsstärkste Schriftverarbeitung, Lua integrierbarLangsamsteFortgeschrittene Layout-Funktionen

Kompilierungsstrategie

Zuerst Quelle und Ausführungsgrenzen prüfen

Vor der Kompilierung statisch .tex, eingebundene .sty/.cls, Build-Konfiguration und Anhangspfade prüfen, dabei auf Datei-I/O, externe Befehle und Lua-Ausführungsfähigkeiten achten. Statische Prüfung ist kein Sicherheitsnachweis. Für nicht vertrauenswürdige Projekte eine isolierte Umgebung ohne private Dateien, ohne Netzwerk und mit eingeschränkter Schreib-, Laufzeit- und Ressourcennutzung verwenden; bei fehlender geeigneter Isolation die Kompilierung stoppen und melden, nicht in persönlicher Umgebung probieren.

Shell-Escape standardmäßig deaktivieren, nicht automatisch für minted oder externe Grafiken aktivieren. Bei Verwendung von latexmk -norc verwenden, um automatisches Laden von System-, Benutzer- oder Projekt-rc zu vermeiden; andere Build-Skripte und externe Hilfsprogramme separat prüfen. Installation, Netzwerkzugriff oder Änderung von Umgebungen nur innerhalb vorhandener Autorisierung; bei fehlender Abdeckung vorher Genehmigung einholen.

Wiederverwendung geeigneter Kompilierungsketten

Bestehende Projekte übernehmen geeignete Build-Methoden; bei Bedarf an automatischer Mehrfachkompilierung und Bibliografie kann latexmk verwendet werden. Die folgenden Beispiele beziehen sich nur auf bereits geprüfte Eingaben und laufen im erlaubten Arbeitsverzeichnis:

# xelatex Dokument (Standard für Chinesisch)
latexmk -norc -xelatex -latexoption=-no-shell-escape -interaction=nonstopmode -halt-on-error main.tex

# pdflatex Dokument
latexmk -norc -pdf -latexoption=-no-shell-escape -interaction=nonstopmode -halt-on-error main.tex

# Hilfsdateien bereinigen
latexmk -norc -c

Parametererklärung:

  • -interaction=nonstopmode: Bei Fehlern nicht anhalten und auf Eingabe warten (für Skript-Umgebungen erforderlich)
  • -halt-on-error: Beim ersten Fehler stoppen, erleichtert die Fehlersuche

biber (Bibliografie)

Bei Bedarf an Bibliografie prüfen, ob latexmk biber/BibTeX und die Eingaben plant; nach Freigabe ausführen; automatische Erkennung nicht als zusätzliche Ausführungsberechtigung betrachten.


Layout-Prinzipien für Lesbarkeit

Im Folgenden eine Zusammenfassung der Kernprinzipien. Die detaillierte Zuordnung und Code-Beispiele finden Sie unter readability-principles.

Seiten-Geometrie

Ziel: 50-75 Zeichen pro Zeile (66 ist ideal, TeX-Standard liegt genau dort).

\usepackage{geometry}
\geometry{a4paper, margin=2.5cm}
% Chinesische Zeichen sind ca. 2x so breit wie englische, 35 chinesische Zeichen/Zeile ≈ 70 englische Zeichen/Zeile

Tabellen

Für gewöhnliche Datentabellen bevorzugen Sie den booktabs-Stil ohne vertikale Linien; bei Vorlagen von Benutzern, Zeitschriften oder Institutionen, die andere Anforderungen haben, deren Spezifikationen beibehalten:

\usepackage{booktabs}
\begin{tabular}{lrr}
    \toprule
    Kennzahl & 2024 & 2025 \\
    \midrule
    Umsatz & 120 & 150 \\
    \bottomrule
\end{tabular}

booktabs ist konzeptionell ohne vertikale Linien ausgelegt – mit vertikalen Linien brechen die horizontalen Linienabstände; das ist kein Bug, sondern ein Feature.

Abstandssystem

Wählen Sie eine von zwei Methoden für Absatztrennung, nicht mischen:

% Option A: Erstzeileneinzug (wissenschaftliche Dokumente, ctex-Standard)
\setlength{\parindent}{2em}

% Option B: Absatzabstand (technische Dokumente, Berichte)
\setlength{\parindent}{0pt}
\setlength{\parskip}{0.5\baselineskip}

Schriftarten

Für Fließtext Serifenschrift (lesekomfortabel), für Code monospaced. Für xelatex/lualatex Systemschriften mit fontspec setzen:

\usepackage{fontspec}
\setmainfont{TeX Gyre Termes}[Ligatures=TeX]
\setmonofont{TeX Gyre Cursor}

microtype

Eine nahezu kostenlose Qualitätssteigerung – Mikrotypografie-Korrekturen lassen den Text gleichmäßiger wirken:

\usepackage{microtype}
% Hinweis: Unter xelatex nur protrusion (kein font expansion), aber dennoch lohnenswert

Hurenkinder / Schusterjungen

Verhindern, dass erste oder letzte Zeile eines Absatzes allein am Seitenrand erscheint:

\widowpenalty=10000
\clubpenalty=10000

Code-Hervorhebung

Standardmäßig listings (keine externen Abhängigkeiten). minted liefert höhere Qualität, benötigt aber Python + Pygments/latexminted:

\usepackage{listings}
\usepackage{xcolor}

\lstset{
    basicstyle=\ttfamily\small,
    keywordstyle=\color{blue!70!black},
    commentstyle=\color{gray},
    stringstyle=\color{green!50!black},
    numbers=left,
    numberstyle=\tiny\color{gray},
    frame=none,
    breaklines=true,
    showstringspaces=false,
}

Arbeitsablauf

Für jemanden, der diesen Arbeitsablauf zum ersten Mal verwendet.

Schritt 0: Umgebungsprüfung

Nur prüfen, wenn eine lokale Kompilierung erforderlich ist und vorhandene Werkzeuginformationen nicht ausreichen. Lesen Sie zuerst das Prüfskript und bestätigen Sie, dass es vertrauenswürdige PATH-Programme aufruft und den aktuellen Berechtigungen entspricht; es meldet nur, installiert oder ändert nichts.

Ermitteln Sie skill_root aus dem absoluten übergeordneten Verzeichnis der tatsächlich gelesenen SKILL.md, nehmen Sie nicht an, dass das aktuelle Arbeitsverzeichnis das Skill-Verzeichnis ist, und führen Sie dann aus:

bash "$skill_root/scripts/check_latex_env.sh"

Fehlende Komponenten und fehlgeschlagene Erkennungen getrennt melden. Installieren Sie nur die für die Aufgabe tatsächlich benötigten und bereits autorisierten Abhängigkeiten; ohne Autorisierung geben Sie die Lücken oder vorhandene Alternativen an. Details zu den Schritten bei Bedarf unter Umgebungsprüfungs-Leitfaden.

Schritt 1: Anforderungen verstehen

Bestätigen Sie:

  • Dokumenttyp: Aufsatz / Bericht / Lebenslauf / Folien / Allgemein
  • Sprache: Chinesisch / Englisch / Gemischt
  • Leser: Wissenschaftlich / Geschäftlich / Technisch / Allgemein
  • Besondere Anforderungen: Bibliografie / Codeblöcke / Mathematische Formeln / Daten-Diagramme

Schritt 2: Engine-Wahl

Wählen Sie gemäß obigem Engine-Entscheidungsbaum. Chinesisch → xelatex ist die häufigste Wahl.

Schritt 3: .tex erzeugen

Wenden Sie die Layout-Prinzipien für Lesbarkeit an und folgen Sie der Standard-Ladereihenfolge-Vorlage in package-guide.

Schritt 4: Kompilierung

latexmk -norc -xelatex -latexoption=-no-shell-escape -interaction=nonstopmode -halt-on-error main.tex

Schritt 5: Log prüfen

Öffnen Sie main.log und suchen Sie nach Warning und Overfull/Underfull:

  • Overfull hbox → Überlaufenden Text, Formeln oder Spaltenbreiten lokalisieren, die tatsächliche Seite prüfen und lokal reparieren; Problem nicht mit globalem \sloppy überdecken
  • Underfull hbox → Zeilen zu locker, normalerweise harmlos
  • Font shape warning → Schriftartform nicht verfügbar, fontspec-Einstellungen prüfen
  • Undefined references → Nochmal kompilieren (latexmk sollte das automatisch erledigt haben)

Reparieren Sie Warnungen, die die Auslieferung beeinträchtigen, z.B. fehlende Zeichen, unaufgelöste Verweise und sichtbare Überläufe; bei harmlosen oder durch Vorlagen eingeschränkten Warnungen begründen Sie die Entscheidung, ohne dass alle Warnungen auf Null gehen müssen.

Schritt 6: Tatsächliche Seitenprüfung und Auslieferung

Rendern oder öffnen Sie das tatsächliche PDF und prüfen Sie Seitenzahl, fehlende Zeichen, Beschnitt, Tabellen/Formeln/Code, Links, Lesezeichen und entsprechende Barrierefreiheitsanforderungen; prüfen Sie bei Bedarf Schriftarteinbettung und kopierbaren Text. Nach Reparaturen erneut kompilieren und betroffene Seiten nachprüfen. Wenn Rendern nicht möglich ist, deutlich als 'visuell nicht verifiziert' markieren; erfolgreiche Kompilierung nicht als Seitenabnahme verbuchen.

Ausgeben der tatsächlich erstellten und geprüften Dateien:

  1. PDF — Endgültiges Auslieferungsobjekt
  2. .tex-Quelldateien und benötigte lokale Ressourcen — Reproduzierbarkeit erhalten: tatsächlicher Befehl, Kompilierungsergebnis und nicht verifizierte Punkte.

evals/evals.json sind Evaluierungsdaten, keine Ausführungsanweisungen; nur beim Testen dieses Skills lesen.


Schnellcheck häufiger Fehler

Bei Problemen nach Typ nachschlagen:

ProblemtypDateiHäufige Symptome
Kompilierungsfehlercommon-pitfalls §Kompilierungsfehler Top 10Undefined control sequence, Missing $, hängt
Kodierung/Zeichencommon-pitfalls §Kodierung und ZeichenNicht-ASCII-Fehler, typografische Anführungszeichen, chinesische Interpunktion
Gleitobjektecommon-pitfalls §GleitobjekteAbbildungen/Tabellen landen am Dokumentende
Tabellencommon-pitfalls §TabellenSpaltenbreitenüberlauf, Seitenwechsel
Schriftartencommon-pitfalls §SchriftartenSystemschrift nicht gefunden, CJK funktioniert nicht
Paketkonfliktepackage-guide §Paketkonflikt-MatrixOption clash, Funktionsstörungen
Ladereihenfolgepackage-guide §Ladereihenfolge-RegelnLesezeichen durcheinander, Linkbrüche
Layout-Qualitätreadability-principlesDokument sieht 'amateurhaft' aus
Umgebungsproblemeenvironment-checkBefehl nicht gefunden, Berechtigungsfehler
ctex-Schriftartenenvironment-check §Häufige Umgebungsprobleme §6fontset 'fandol' is unavailable

Schnelle Diagnose-Checkliste

Bei Kompilierungsfehlern in dieser Reihenfolge vorgehen:

  1. ✅ Richtige Engine verwendet? (Chinesisch → xelatex)
  2. ✅ latexmk verwendet? (Automatische Mehrfachkompilierung und biber)
  3. ✅ -interaction=nonstopmode verwendet? (Wird nicht im interaktiven Modus hängen)
  4. ✅ Paket-Ladereihenfolge entspricht den tatsächlichen Einschränkungen von Dokumentklasse und Paketen? (Normalerweise hyperref später, cleveref danach)
  5. ✅ Alle \begin{...} haben ein entsprechendes \end{...}?
  6. ✅ Alle { haben ein entsprechendes }?
  7. ✅ Bildpfade korrekt? (\graphicspath Suchpfade gesetzt)
  8. ✅ Alle Pakete installiert? (kpsewhich <pkg>.sty prüfen)
  9. ✅ Chinesisches Dokument verwendet ctex und korrektes fontset?
  10. ✅ Ende des Logs ansehen – LaTeX-Fehlermeldungen zeigen normalerweise auf die tatsächliche Problemzeile.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

Verwandte Skills