LaTeXify Skill
A specialized skill for processing and formatting LaTeX documents. This skill normalizes LaTeX code to follow best practices for mathematical and general documents.
Features
LaTeX Structure Organization
- Normalizes theorem, lemma, definition, and proof environments
- Configurable theorem styles (classic, simple, boxed)
- Consistent numbering and formatting
Math Expression Formatting
- Converts
$$...$$toalign/align*environments - Normalizes
\(...\)to$...$inline math - Removes
\boxed{}commands with sensible alternatives
Page Layout Configuration
- Adjustable paper size (a4, letter, b5)
- Configurable margins
- Line spacing control
- Font size options
Safety Features
- Automatic backups before modification
- Dry-run mode for previewing changes
- Rollback capability (keeps last 3 backups)
Installation
This skill is part of the Compound Engineering plugin collection. No additional installation required.
Usage
Command Line Interface
# Process a file with default settings
latexify input.tex
# Preview changes without saving
latexify input.tex --dry-run
# Use specific theorem style
latexify input.tex --style simple
# Remove \boxed commands
latexify input.tex --no-boxed
# Specify paper size and margins
latexify input.tex --paper a4 --margin 2.5cm
# Rollback to previous version
latexify input.tex --rollback
Arguments
| Argument | Description | Default |
|---|---|---|
input |
Input LaTeX file | Required |
-o, --output |
Output file path | Overwrite input |
--style |
Theorem style (classic/simple/boxed) | classic |
--paper |
Paper size (a4/letter/b5) | a4 |
--margin |
Margin size | 2.5cm |
--line-spacing |
Line spacing multiplier | 1.5 |
--font-size |
Font size in pt | 10 |
--no-inline-fix |
Skip inline math fixes | False |
--no-display-fix |
Skip display math fixes | False |
--no-boxed |
Keep \boxed commands | False |
--dry-run |
Preview changes only | False |
--rollback |
Restore from backup | False |
--verbose |
Verbose output | False |
Theorem Styles
Classic Style (Default)
Traditional formatting:
- Bold theorem titles
- Chinese full-width colon (:) as separator
- Standard LaTeX numbering
- Example:
定理 1.1:内容...
Simple Style
Minimal formatting for clean appearance:
- No special title formatting
- Standard body text
- Clean, uncluttered look
- Example:
Theorem 1.1: Content...
Boxed Style
Enhanced visual separation:
- Shaded background
- Border boxes
- Clear visual hierarchy
- Requires
framedormdframedpackage
Examples
Before and After
Before:
Document was created with inconsistent math formatting.
\(a + b = c\)
$$
x^2 + y^2 = z^2
$$
\begin{theorem}
\label{th1}
给定 \(a, b, c\),则...
\end{theorem}
Answer: \boxed{42}
After (classic style):
Document was created with inconsistent math formatting.
$a + b = c$
\begin{align}
x^2 + y^2 = z^2
\end{align}
\begin{theorem}[定理 1]
给定 $a, b, c$,则...
\end{theorem}
Answer: $42$
Integration
As a Python Module
from latex_math_competition import (
LaTeXParser,
LaTeXTransformer,
InlineMathRule,
DisplayMathRule,
BoxedRemovalRule,
TheoremEnvRule
)
# Parse document
parser = LaTeXParser()
parsed = parser.parse(content)
# Transform document
transformer = LaTeXTransformer(parser)
rules = [
InlineMathRule(),
DisplayMathRule(),
BoxedRemovalRule(),
TheoremEnvRule(style='classic')
]
result = transformer.transform(content, rules)
Preview Changes
preview = transformer.preview_changes(content, rules)
print(preview['preview'])
print(f"Changes: {len(preview['changes'])} lines")
Configuration Files
Theorem Styles (references/theorem-styles.json)
Predefined theorem style configurations.
Best Practices (references/latex-best-practices.md)
Comprehensive guide for LaTeX document formatting.
Templates (assets/templates/)
Ready-to-use theorem templates:
classic-theorem.tex- Classic Chinese stylesimple-theorem.tex- Minimal styleboxed-theorem.tex- Boxed style
Best Practices
Inline Math
- Use
$...$instead of\(...\) - Add space after punctuation before math:
,$x$not,$x$
Display Math
- Use
alignfor multi-line equations - Use
equationfor single-line equations - Avoid
$$...$$(deprecated)
Theorem Environments
- Use consistent naming (定理, 定义, 例, 练习)
- Include numbering by section
- Use Chinese punctuation in titles
Avoid
\boxed{}for inline math- Mixed delimiters (
$$vs\[...\]) - Unicode characters in math mode
- Overusing display math for simple expressions
Error Handling
Common Issues
- File not found: Check the input path
- Invalid style: Use classic, simple, or boxed
- Backup errors: Check file permissions
Rollback
# List available backups
ls *.tex.*.bak
# Rollback to specific backup
latexify document.tex --rollback
Performance
- Handles files up to 10MB efficiently
- Linear time complexity for transformations
- Memory efficient for large documents
Dependencies
- Python 3.7+
- Standard library only (no external dependencies)
License
Part of the Compound Engineering plugin collection.
Contributing
Part of the Compound Engineering plugin collection. Issues and contributions welcome through the main repository.