name: latex-conference-template-organizer description: 将混乱的会议LaTeX模板.zip文件组织成干净的、适合Overleaf的结构。当用户要求“组织LaTeX模板”、“清理.zip模板”或“准备Overleaf提交模板”时使用。 version: 0.1.0
LaTeX 会议模板组织器
概述
将混乱的会议LaTeX模板.zip文件转化为干净的、适合Overleaf的提交模板。官方会议模板通常包含过多的示例内容、教学注释和混乱的文件结构。此技能将它们转换为可用于写作的模板。
工作模式
先分析后确认模式:首先分析问题并向用户展示,然后在确认后执行清理。
完整工作流程
接收 .zip 文件
↓
1. 提取并分析文件结构
↓
2. 识别主文件和依赖项
↓
3. 诊断问题(向用户展示)
↓
4. 请求会议信息(链接/名称)
↓
5. 等待用户确认清理计划
↓
6. 执行清理,创建输出目录
↓
7. 生成 README(包含官方网站信息)
↓
8. 输出完成
步骤 1:提取和分析
提取文件
提取 .zip 到临时目录:
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"
识别文件类型
| 文件类型 | 用途 |
|---|---|
.tex |
LaTeX 源文件 |
.sty / .cls |
样式文件 |
.bib |
参考文献数据库 |
.pdf / .png / .jpg |
图像文件 |
识别主文件
常见主文件名称:
main.texpaper.texdocument.texsample-sigconf.textemplate.tex
识别方法:
- 检查文件名是否匹配常见模式
- 搜索包含
\documentclass的文件 - 如果有多个候选文件,请用户确认
# 查找包含 \documentclass 的文件
grep -l "\\documentclass" *.tex
步骤 2:诊断问题
向用户展示发现的问题:
混乱的文件结构
- 多级目录嵌套
- .tex 文件散落在各个目录中
- 不清楚哪个文件是主文件
冗余内容
检测以下模式并标记为需要清理:
- 文件名包含:
sample、example、demo、test - 注释包含:
sample、example、template、delete this
依赖项问题
- 引用的
.sty/.cls文件缺失 - 图像/表格引用路径不正确
步骤 3:请求会议信息
向用户请求以下信息:
请提供以下信息(可选):
1. **会议提交链接**(推荐):用于提取官方提交要求
2. **会议名称**:如果没有链接可用
3. **其他特殊要求**:例如页面限制、匿名要求等
步骤 4:展示清理计划
向用户展示清理计划并等待确认:
## 清理计划
### 发现的问题
- [列出诊断出的问题]
### 清理方法
1. 主文件:main.tex(清理示例内容)
2. 部分分隔:text/ 目录
3. 资源目录:figures/、tables/、styles/
### 输出结构
[展示输出目录结构]
确认执行?[Y/n]
步骤 5:执行清理
创建输出目录结构
mkdir -p output/{text,figures,tables,styles}
清理主文件(main.tex)
保留:
\documentclass声明- 必需的包导入
- 核心配置(例如匿名模式)
移除:
- 示例部分内容
- 冗长的教学注释
- 示例作者/标题信息
添加:
- 使用
\input{text/XX-section}导入部分
示例 main.tex 结构(ACM 模板标准格式):
\documentclass[...]{...} % 保留原始模板文档类
% 必需的包(保留原始模板包声明)
%% ============================================================================
%% 前言:在 \begin{document} 之前
%% ============================================================================
%% 标题和作者信息
\title{您的论文标题}
\author{作者姓名}
\affiliation{...}
%% 摘要(在前言中,在 \maketitle 之前)
\begin{abstract}
% TODO: 编写摘要内容
\end{abstract}
%% CCS 概念和关键词(在前言中)
\begin{CCSXML}
<ccs2012>
<concept>
<concept_id>10010405.10010444.10010447</concept_id>
<concept_desc>应用计算~...</concept_desc>
<concept_significance>500</concept_significance>
</concept>
</ccs2012>
\end{CCSXML}
\ccsdesc[500]{应用计算~...}
\keywords{关键词1, 关键词2, 关键词3}
%% ============================================================================
%% 文档正文
%% ============================================================================
\begin{document}
\maketitle
%% 部分内容(从 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 匿名提交特殊配置
对于 KDD 2026(使用 ACM acmart 模板),添加 nonacm 选项到文档类以移除脚注:
%% ============================================================================
%% 文档类 - KDD 2026 匿名提交配置
%% 提交版本: \documentclass[sigconf,anonymous,review,nonacm]{acmart}
%% 最终版本: \documentclass[sigconf]{acmart}
%% ============================================================================
\documentclass[sigconf,anonymous,review,nonacm]{acmart}
%% ============================================================================
%% 禁用 ACM 元数据(仅提交版本)
%% ============================================================================
\settopmatter{printacmref=false} % 禁用 ACM 引用格式
\setcopyright{none} % 禁用版权声明
\acmConference[]{}{}{} % 清空会议信息(移除脚注)
\acmYear{} % 清空年份
\acmISBN{} % 清空 ISBN
\acmDOI{} % 清空 DOI
%% 在最终版本中恢复的内容:
%% \acmConference[KDD '26]{第 30 届 ACM SIGKDD 知识发现和数据挖掘会议论文集}{2026 年 8 月 09--13 日}{济州岛, 韩国}
%% \acmISBN{978-1-4503-XXXX-X/26/08}
%% \acmDOI{10.1145/nnnnnnn.nnnnnnn}
创建部分文件(text/)
为每个部分创建独立的 .tex 文件,仅包含部分内容,不含 \begin{document} 等:
text/01-introduction.tex:
\section{引言}
% TODO: 编写引言内容
text/02-related-work.tex:
\section{相关工作}
% TODO: 编写相关工作内容
text/03-method.tex:
\section{方法}
% TODO: 编写方法内容
text/04-experiments.tex:
\section{实验}
% TODO: 编写实验内容
text/05-conclusion.tex:
\section{结论}
% TODO: 编写结论内容
重要说明:
- 摘要应放在 main.tex 的前言中(在
\begin{document}之前),在\maketitle之后 - text/ 中的文件仅包含部分,以
\section{...}开头 - 不要在 text/ 文件中包含
\begin{document}或其他包装器
复制样式文件(styles/)
将所有 .sty 和 .cls 文件从原始模板复制到 styles/:
find /tmp/latex-template-temp -type f \( -name "*.sty" -o -name "*.cls" \) -exec cp {} output/styles/ \;
注意: 保持原始模板的目录结构(例如 acmart/),仅移动到 styles/。
处理图像和表格
# 复制图像文件
find /tmp/latex-template-temp -type f \( -name "*.png" -o -name "*.jpg" -o -name "*.jpeg" -o -name "*.pdf" \) -exec cp {} output/figures/ \;
# 复制表格文件(如果有)
find /tmp/latex-template-temp -type f -name "*.tex" | grep -i table | while read f; do cp "$f" output/tables/; done
创建示例表格文件
重要: Overleaf 会自动删除空目录。为防止 tables/ 目录被删除,创建一个示例表格文件:
# 创建示例表格文件
cat > output/tables/example-table.tex << 'EOF'
% 示例表格文件
% 可以删除或替换为您自己的表格
\begin{table}[h]
\centering
\caption{示例表格}
\label{tab:example}
\begin{tabular}{lccc}
\toprule
方法 & 指标 1 & 指标 2 & 指标 3 \\
\midrule
基准线 & 85.3 & 12.4 & 0.92 \\
方法 A & 87.1 & 11.8 & 0.95 \\
\textbf{我们的方法} & \textbf{89.4} & \textbf{10.2} & \textbf{0.97} \\
\bottomrule
\end{tabular}
\end{table}
EOF
说明:
- 如果原始模板已有表格文件,可跳过此步骤
- 示例表格仅用于防止目录删除;可以删除或替换
- 在论文中引用表格使用
\input{tables/example-table.tex}或将表格内容直接复制到部分文件中
复制参考文献
# 复制 .bib 文件
find /tmp/latex-template-temp -type f -name "*.bib" -exec cp {} output/ \;
步骤 6:生成 README
信息来源优先级
- 用户提供的会议链接 → 使用 WebFetch 提取
- 模板文件注释 → 从 .tex 文件中提取
- 默认推断 → 从
\documentclass推断
README 模板
# [会议名称] 提交模板
## 模板信息
- **会议**:[会议名称]
- **网站**:[会议链接]
- **模板版本**:[从模板或网站]
- **文档类**:[提取的文档类]
## 提交要求
### 页面和格式
- **页面限制**:[从网站或模板]
- **双栏/单栏**:[检测布局]
- **字体大小**:[10pt/11pt 等]
### 匿名要求
- **盲审要求**:[检测模板模式]
- **作者信息处理**:[说明]
### 编译要求
- **推荐编译器**:[XeLaTeX/pdfLaTeX/LuaLaTeX]
- **特殊包要求**:[如果有]
## Overleaf 使用
### 上传步骤
1. 在 Overleaf 上创建新项目
2. 上传整个 `output/` 目录
3. 设置编译器为 [指定编译器]
4. 点击重新编译以测试
### 文件描述
- `main.tex` - 主文件,从此开始
- `text/` - 部分内容,根据需要编辑
- `figures/` - 放置图像
- `tables/` - 放置表格
- `styles/` - 样式文件,无需修改
- `references.bib` - 参考文献数据库
## 常见操作
### 添加图像
```latex
\begin{figure}[h]
\centering
\includegraphics[width=0.8\linewidth]{figures/your-image.pdf}
\caption{图像标题}
\label{fig:your-label}
\end{figure}
添加表格
\begin{table}[h]
\centering
\begin{tabular}{|c|c|}
\hline
列 1 & 列 2 \\
\hline
内容 1 & 内容 2 \\
\hline
\end{tabular}
\caption{表格标题}
\label{tab:your-label}
\end{table}
添加参考文献
在 references.bib 中添加条目,在文本中使用 \cite{key} 引用。
注意事项
- [从模板注释提取的警告]
- [从网站提取的重要说明]
### 从网站提取信息(如果用户提供链接)
使用 WebFetch 获取会议提交页面内容并提取:
- 页面限制
- 匿名要求
- 格式要求
- 提交截止日期
## 步骤 7:清理和输出
```bash
# 清理临时文件
rm -rf /tmp/latex-template-temp
# 输出完成消息
echo "模板清理完成!输出目录:output/"
echo "请将 output/ 目录上传到 Overleaf 以测试编译。"
错误处理
| 错误场景 | 处理方法 |
|---|---|
| 主文件未找到 | 列出所有 .tex 文件,让用户选择 |
| 依赖文件缺失 | 警告用户,尝试从模板目录定位 |
| 无法提取会议信息 | 使用模板的默认信息,标记为 [待确认] |
| 网站不可访问 | 回退到模板注释,提示用户手动填写 |
| 提取失败 | 提示用户检查 .zip 文件完整性 |
常见会议模板类型
| 会议 | 文档类 | 说明 |
|---|---|---|
| KDD (ACM SIGKDD) | acmart |
匿名提交需要 nonacm 选项以移除脚注 |
| ACM 会议 | acmart |
需要匿名模式 \acmReview{anonymous} |
| CVPR/ICCV | cvpr |
双栏,严格的页面限制 |
| NeurIPS | neurips_2025 |
匿名评审,无页面限制 |
| ICLR | iclr2025_conference |
双栏,需要会话信息 |
| AAAI | aaai25 |
双栏,8 页 + 参考文献 |
KDD 匿名提交配置说明
KDD 2026 使用 ACM acmart 模板,匿名提交需要特殊配置:
提交版本(移除所有 ACM 元数据脚注):
\documentclass[sigconf,anonymous,review,nonacm]{acmart}
\settopmatter{printacmref=false}
\setcopyright{none}
\acmConference[]{}{}{}
\acmYear{}
\acmISBN{}
\acmDOI{}
最终版本(恢复 ACM 元数据):
\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}
快速参考
检测文档类型
# 检测文档类
grep "\\documentclass" main.tex
# 检测匿名模式
grep -i "anonymous\\|review\\|blind" main.tex
# 检测页面设置
grep "pagelimit\\|pageLimit\\|page_limit" main.tex
常见清理模式
# 移除示例文件
rm -f sample-* example-* demo-* test-*
# 移除临时文件
rm -f *.aux *.log *.out *.bbl *.blg