510 lines
14 KiB
Markdown
510 lines
14 KiB
Markdown
---
|
|
name: latex-conference-template-organizer
|
|
description: Organize messy conference LaTeX template .zip files into clean Overleaf-ready structure. Use when the user asks to "organize LaTeX template", "clean up .zip template", or "prepare Overleaf submission template".
|
|
version: 0.1.0
|
|
---
|
|
|
|
# LaTeX Conference Template Organizer
|
|
|
|
## Overview
|
|
|
|
Transform messy conference LaTeX template .zip files into clean, Overleaf-ready submission templates. Official conference templates often contain excessive example content, instructional comments, and disorganized file structures. This skill converts them into templates ready for writing.
|
|
|
|
## Working Mode
|
|
|
|
**Analyze-then-confirm mode**: First analyze issues and present them to the user, then execute cleanup after confirmation.
|
|
|
|
## Complete Workflow
|
|
|
|
```
|
|
Receive .zip file
|
|
↓
|
|
1. Extract and analyze file structure
|
|
↓
|
|
2. Identify main file and dependencies
|
|
↓
|
|
3. Diagnose issues (present to user)
|
|
↓
|
|
4. Ask for conference info (link/name)
|
|
↓
|
|
5. Wait for user confirmation of cleanup plan
|
|
↓
|
|
6. Execute cleanup, create output directory
|
|
↓
|
|
7. Generate README (with official website info)
|
|
↓
|
|
8. Output complete
|
|
```
|
|
|
|
## Step 1: Extract and Analyze
|
|
|
|
### Extract Files
|
|
|
|
Extract .zip to a temporary directory:
|
|
|
|
```bash
|
|
unzip -q template.zip -d /tmp/latex-template-temp
|
|
cd /tmp/latex-template-temp
|
|
find . -type f -name "*.tex" -o -name "*.sty" -o -name "*.cls" -o -name "*.bib"
|
|
```
|
|
|
|
### Identify File Types
|
|
|
|
| File Type | Purpose |
|
|
|-----------|---------|
|
|
| `.tex` | LaTeX source files |
|
|
| `.sty` / `.cls` | Style files |
|
|
| `.bib` | Bibliography database |
|
|
| `.pdf` / `.png` / `.jpg` | Image files |
|
|
|
|
### Identify Main File
|
|
|
|
**Common main file names:**
|
|
- `main.tex`
|
|
- `paper.tex`
|
|
- `document.tex`
|
|
- `sample-sigconf.tex`
|
|
- `template.tex`
|
|
|
|
**Identification methods:**
|
|
1. Check if filename matches common patterns
|
|
2. Search for files containing `\documentclass`
|
|
3. If multiple candidates exist, ask user to confirm
|
|
|
|
```bash
|
|
# Find files containing \documentclass
|
|
grep -l "\\documentclass" *.tex
|
|
```
|
|
|
|
## Step 2: Diagnose Issues
|
|
|
|
Present discovered issues to the user:
|
|
|
|
### Disorganized File Structure
|
|
|
|
- Multi-level directory nesting
|
|
- .tex files scattered across directories
|
|
- Unclear which file is the main file
|
|
|
|
### Redundant Content
|
|
|
|
Detect the following patterns and flag for cleanup:
|
|
- Filenames containing: `sample`, `example`, `demo`, `test`
|
|
- Comments containing: `sample`, `example`, `template`, `delete this`
|
|
|
|
### Dependency Issues
|
|
|
|
- Referenced `.sty`/`.cls` files missing
|
|
- Image/table reference paths incorrect
|
|
|
|
## Step 3: Ask for Conference Information
|
|
|
|
Ask the user for the following information:
|
|
|
|
```markdown
|
|
Please provide the following information (optional):
|
|
|
|
1. **Conference submission link** (recommended): Used to extract official submission requirements
|
|
2. **Conference name**: If no link available
|
|
3. **Other special requirements**: Such as page limits, anonymity requirements, etc.
|
|
```
|
|
|
|
## Step 4: Present Cleanup Plan
|
|
|
|
Present the cleanup plan to the user and wait for confirmation:
|
|
|
|
```markdown
|
|
## Cleanup Plan
|
|
|
|
### Issues Found
|
|
- [List diagnosed issues]
|
|
|
|
### Cleanup Approach
|
|
1. Main file: main.tex (clean example content)
|
|
2. Section separation: text/ directory
|
|
3. Resource directories: figures/, tables/, styles/
|
|
|
|
### Output Structure
|
|
[Show output directory structure]
|
|
|
|
Confirm execution? [Y/n]
|
|
```
|
|
|
|
## Step 5: Execute Cleanup
|
|
|
|
### Create Output Directory Structure
|
|
|
|
```bash
|
|
mkdir -p output/{text,figures,tables,styles}
|
|
```
|
|
|
|
### Clean Up Main File (main.tex)
|
|
|
|
**Keep:**
|
|
- `\documentclass` declaration
|
|
- Required package imports
|
|
- Core configuration (e.g., anonymous mode)
|
|
|
|
**Remove:**
|
|
- Example section content
|
|
- Verbose instructional comments
|
|
- Example author/title information
|
|
|
|
**Add:**
|
|
- Import sections with `\input{text/XX-section}`
|
|
|
|
**Example main.tex structure** (ACM template standard format):
|
|
```latex
|
|
\documentclass[...]{...} % Keep original template document class
|
|
|
|
% Required packages (keep original template package declarations)
|
|
|
|
%% ============================================================================
|
|
%% Preamble: Before \begin{document}
|
|
%% ============================================================================
|
|
|
|
%% Title and author information
|
|
\title{Your Paper Title}
|
|
\author{Author Name}
|
|
\affiliation{...}
|
|
|
|
%% Abstract (in preamble, before \maketitle)
|
|
\begin{abstract}
|
|
% TODO: Write abstract content
|
|
\end{abstract}
|
|
|
|
%% CCS Concepts and Keywords (in preamble)
|
|
\begin{CCSXML}
|
|
<ccs2012>
|
|
<concept>
|
|
<concept_id>10010405.10010444.10010447</concept_id>
|
|
<concept_desc>Applied computing~...</concept_desc>
|
|
<concept_significance>500</concept_significance>
|
|
</concept>
|
|
</ccs2012>
|
|
\end{CCSXML}
|
|
|
|
\ccsdesc[500]{Applied computing~...}
|
|
\keywords{keyword1, keyword2, keyword3}
|
|
|
|
%% ============================================================================
|
|
%% Document Body
|
|
%% ============================================================================
|
|
\begin{document}
|
|
|
|
\maketitle
|
|
|
|
%% Section content (imported from text/)
|
|
\input{text/01-introduction}
|
|
\input{text/02-related-work}
|
|
\input{text/03-method}
|
|
\input{text/04-experiments}
|
|
\input{text/05-conclusion}
|
|
|
|
\bibliographystyle{...}
|
|
\bibliography{references}
|
|
|
|
\end{document}
|
|
```
|
|
|
|
### KDD 2026 Anonymous Submission Special Configuration
|
|
|
|
For KDD 2026 (using ACM acmart template), add the `nonacm` option to the document class to remove footnotes:
|
|
|
|
```latex
|
|
%% ============================================================================
|
|
%% Document Class - KDD 2026 Anonymous Submission Configuration
|
|
%% Submission version: \documentclass[sigconf,anonymous,review,nonacm]{acmart}
|
|
%% Camera-ready: \documentclass[sigconf]{acmart}
|
|
%% ============================================================================
|
|
\documentclass[sigconf,anonymous,review,nonacm]{acmart}
|
|
|
|
%% ============================================================================
|
|
%% Disable ACM metadata (submission version only)
|
|
%% ============================================================================
|
|
\settopmatter{printacmref=false} % Disable ACM Reference Format
|
|
\setcopyright{none} % Disable copyright notice
|
|
\acmConference[]{}{}{} % Clear conference info (removes footnote)
|
|
\acmYear{} % Clear year
|
|
\acmISBN{} % Clear ISBN
|
|
\acmDOI{} % Clear DOI
|
|
|
|
%% Content to restore for camera-ready version:
|
|
%% \acmConference[KDD '26]{Proceedings of the 30th ACM SIGKDD Conference on Knowledge Discovery and Data Mining}{August 09--13, 2026}{Jeju, Korea}
|
|
%% \acmISBN{978-1-4503-XXXX-X/26/08}
|
|
%% \acmDOI{10.1145/nnnnnnn.nnnnnnn}
|
|
```
|
|
|
|
### Create Section Files (text/)
|
|
|
|
Create independent .tex files for each section, **containing only section content** without `\begin{document}` etc.:
|
|
|
|
**text/01-introduction.tex**:
|
|
```latex
|
|
\section{Introduction}
|
|
% TODO: Write introduction content
|
|
```
|
|
|
|
**text/02-related-work.tex**:
|
|
```latex
|
|
\section{Related Work}
|
|
% TODO: Write related work content
|
|
```
|
|
|
|
**text/03-method.tex**:
|
|
```latex
|
|
\section{Method}
|
|
% TODO: Write method content
|
|
```
|
|
|
|
**text/04-experiments.tex**:
|
|
```latex
|
|
\section{Experiments}
|
|
% TODO: Write experiments content
|
|
```
|
|
|
|
**text/05-conclusion.tex**:
|
|
```latex
|
|
\section{Conclusion}
|
|
% TODO: Write conclusion content
|
|
```
|
|
|
|
**Important notes:**
|
|
- **Abstract** should be placed in main.tex preamble (before `\begin{document}`), after `\maketitle`
|
|
- **Files in text/ contain only sections**, starting with `\section{...}`
|
|
- Do not include `\begin{document}` or other wrappers in text/ files
|
|
|
|
### Copy Style Files (styles/)
|
|
|
|
Copy all `.sty` and `.cls` files from the original template to `styles/`:
|
|
|
|
```bash
|
|
find /tmp/latex-template-temp -type f \( -name "*.sty" -o -name "*.cls" \) -exec cp {} output/styles/ \;
|
|
```
|
|
|
|
**Note:** Maintain the original template's directory structure (e.g., `acmart/`), only move to `styles/`.
|
|
|
|
### Handle Images and Tables
|
|
|
|
```bash
|
|
# Copy image files
|
|
find /tmp/latex-template-temp -type f \( -name "*.png" -o -name "*.jpg" -o -name "*.jpeg" -o -name "*.pdf" \) -exec cp {} output/figures/ \;
|
|
|
|
# Copy table files (if any)
|
|
find /tmp/latex-template-temp -type f -name "*.tex" | grep -i table | while read f; do cp "$f" output/tables/; done
|
|
```
|
|
|
|
### Create Example Table File
|
|
|
|
**Important:** Overleaf automatically deletes empty directories. To prevent the `tables/` directory from being deleted, create an example table file:
|
|
|
|
```bash
|
|
# Create example table file
|
|
cat > output/tables/example-table.tex << 'EOF'
|
|
% Example table file
|
|
% Can be deleted or replaced with your own tables
|
|
|
|
\begin{table}[h]
|
|
\centering
|
|
\caption{Example Table}
|
|
\label{tab:example}
|
|
\begin{tabular}{lccc}
|
|
\toprule
|
|
Method & Metric 1 & Metric 2 & Metric 3 \\
|
|
\midrule
|
|
Baseline & 85.3 & 12.4 & 0.92 \\
|
|
Method A & 87.1 & 11.8 & 0.95 \\
|
|
\textbf{Ours} & \textbf{89.4} & \textbf{10.2} & \textbf{0.97} \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\end{table}
|
|
EOF
|
|
```
|
|
|
|
**Notes:**
|
|
- If the original template already has table files, this step can be skipped
|
|
- The example table is only to prevent directory deletion; it can be deleted or replaced
|
|
- Reference tables in the paper using `\input{tables/example-table.tex}` or copy table content directly into section files
|
|
|
|
### Copy Bibliography
|
|
|
|
```bash
|
|
# Copy .bib files
|
|
find /tmp/latex-template-temp -type f -name "*.bib" -exec cp {} output/ \;
|
|
```
|
|
|
|
## Step 6: Generate README
|
|
|
|
### Information Source Priority
|
|
|
|
1. **Conference link provided by user** → Extract using WebFetch
|
|
2. **Template file comments** → Extract from .tex files
|
|
3. **Default inference** → Infer from `\documentclass`
|
|
|
|
### README Template
|
|
|
|
```markdown
|
|
# [Conference Name] Submission Template
|
|
|
|
## Template Information
|
|
- **Conference**: [Conference name]
|
|
- **Website**: [Conference link]
|
|
- **Template version**: [From template or website]
|
|
- **Document class**: [Extracted documentclass]
|
|
|
|
## Submission Requirements
|
|
|
|
### Page and Format
|
|
- **Page limit**: [From website or template]
|
|
- **Two-column/Single-column**: [Detect layout]
|
|
- **Font size**: [10pt/11pt etc.]
|
|
|
|
### Anonymity Requirements
|
|
- **Blind review required**: [Detect template mode]
|
|
- **Author information handling**: [Instructions]
|
|
|
|
### Compilation Requirements
|
|
- **Recommended compiler**: [XeLaTeX/pdfLaTeX/LuaLaTeX]
|
|
- **Special package requirements**: [If any]
|
|
|
|
## Overleaf Usage
|
|
|
|
### Upload Steps
|
|
1. Create a new project on Overleaf
|
|
2. Upload the entire `output/` directory
|
|
3. Set compiler to [specified compiler]
|
|
4. Click Recompile to test
|
|
|
|
### File Description
|
|
- `main.tex` - Main file, start here
|
|
- `text/` - Section content, edit as needed
|
|
- `figures/` - Place images here
|
|
- `tables/` - Place tables here
|
|
- `styles/` - Style files, no modification needed
|
|
- `references.bib` - Bibliography database
|
|
|
|
## Common Operations
|
|
|
|
### Adding Images
|
|
```latex
|
|
\begin{figure}[h]
|
|
\centering
|
|
\includegraphics[width=0.8\linewidth]{figures/your-image.pdf}
|
|
\caption{Image caption}
|
|
\label{fig:your-label}
|
|
\end{figure}
|
|
```
|
|
|
|
### Adding Tables
|
|
```latex
|
|
\begin{table}[h]
|
|
\centering
|
|
\begin{tabular}{|c|c|}
|
|
\hline
|
|
Column 1 & Column 2 \\
|
|
\hline
|
|
Content 1 & Content 2 \\
|
|
\hline
|
|
\end{tabular}
|
|
\caption{Table caption}
|
|
\label{tab:your-label}
|
|
\end{table}
|
|
```
|
|
|
|
### Adding References
|
|
Add entries to `references.bib` and cite in text using `\cite{key}`.
|
|
|
|
## Notes
|
|
- [Warnings extracted from template comments]
|
|
- [Important notes extracted from website]
|
|
```
|
|
|
|
### Extract Information from Website (if user provided a link)
|
|
|
|
Use WebFetch to get conference submission page content and extract:
|
|
- Page limits
|
|
- Anonymity requirements
|
|
- Format requirements
|
|
- Submission deadlines
|
|
|
|
## Step 7: Cleanup and Output
|
|
|
|
```bash
|
|
# Clean up temporary files
|
|
rm -rf /tmp/latex-template-temp
|
|
|
|
# Output completion message
|
|
echo "Template cleanup complete! Output directory: output/"
|
|
echo "Please upload the output/ directory to Overleaf to test compilation."
|
|
```
|
|
|
|
## Error Handling
|
|
|
|
| Error Scenario | Handling Approach |
|
|
|----------------|-------------------|
|
|
| Main file not found | List all .tex files, let user choose |
|
|
| Dependency file missing | Warn user, attempt to locate from template directory |
|
|
| Cannot extract conference info | Use default info from template, mark as [To be confirmed] |
|
|
| Website inaccessible | Fall back to template comments, prompt user to fill in manually |
|
|
| Extraction failed | Prompt user to check .zip file integrity |
|
|
|
|
## Common Conference Template Types
|
|
|
|
| Conference | Document Class | Notes |
|
|
|------------|---------------|-------|
|
|
| **KDD (ACM SIGKDD)** | `acmart` | **Anonymous submission requires `nonacm` option to remove footnotes** |
|
|
| ACM Conferences | `acmart` | Requires anonymous mode `\acmReview{anonymous}` |
|
|
| CVPR/ICCV | `cvpr` | Two-column, strict page limits |
|
|
| NeurIPS | `neurips_2025` | Anonymous review, no page limit |
|
|
| ICLR | `iclr2025_conference` | Two-column, requires session info |
|
|
| AAAI | `aaai25` | Two-column, 8 pages + references |
|
|
|
|
### KDD Anonymous Submission Configuration Notes
|
|
|
|
KDD 2026 uses the ACM acmart template and requires special configuration for anonymous submission:
|
|
|
|
**Submission version** (remove all ACM metadata footnotes):
|
|
```latex
|
|
\documentclass[sigconf,anonymous,review,nonacm]{acmart}
|
|
\settopmatter{printacmref=false}
|
|
\setcopyright{none}
|
|
\acmConference[]{}{}{}
|
|
\acmYear{}
|
|
\acmISBN{}
|
|
\acmDOI{}
|
|
```
|
|
|
|
**Camera-ready version** (restore ACM metadata):
|
|
```latex
|
|
\documentclass[sigconf]{acmart}
|
|
\settopmatter{printacmref=true}
|
|
\setcopyright{acmcopyright}
|
|
\acmConference[KDD '26]{...}{...}{...}
|
|
\acmYear{2026}
|
|
\acmISBN{978-1-4503-XXXX-X/26/08}
|
|
\acmDOI{10.1145/nnnnnnn.nnnnnnn}
|
|
```
|
|
|
|
## Quick Reference
|
|
|
|
### Detect Document Type
|
|
```bash
|
|
# Detect document class
|
|
grep "\\documentclass" main.tex
|
|
|
|
# Detect anonymous mode
|
|
grep -i "anonymous\|review\|blind" main.tex
|
|
|
|
# Detect page settings
|
|
grep "pagelimit\|pageLimit\|page_limit" main.tex
|
|
```
|
|
|
|
### Common Cleanup Patterns
|
|
```bash
|
|
# Remove example files
|
|
rm -f sample-* example-* demo-* test-*
|
|
|
|
# Remove temporary files
|
|
rm -f *.aux *.log *.out *.bbl *.blg
|
|
```
|