- name
- thesis-md-to-tex
- description
- 将本科毕业论文 Markdown 严格转换为 LaTeX .tex 的专用 skill。用户要求把 .md、论文 Markdown、AIGC_down 最终稿、毕业论文最终稿、thesis.md 转成 tex/TeX/LaTeX/Overleaf/GDUT LaTeX 模板格式时必须使用。转换前必须先询问用户是否需要上传或指定新的 LaTeX 模板;如果用户不需要新模板,则使用默认模板 `/g:/My_code/Agent_atuo_graduation_project_of_GDUT/模板/GDUT-Undergraduate-Thesis-LaTeX-Template-main/模板.tex`。本 skill 负责模板选择、Markdown 到 LaTeX 的结构映射、输出 .tex 路径和复查项,不负责重写论文正文。
# 毕业论文 Markdown 转 LaTeX
把已经写好并经用户确认的毕业论文 `.md` 转换为基于 LaTeX 模板的 `.tex` 文件。该 skill 不负责重新写论文正文,重点是确认模板、转换正文结构、保留模板工程约束并交付可继续编辑的 `.tex`。
## 模板规则
转换前必须先询问用户是否需要上传或指定新的 LaTeX 模板。
- 如果用户指定新的模板文件,优先使用用户提供的模板。
- 如果用户只提供模板目录,要求用户确认主入口 `.tex` 文件。
- 如果用户明确不需要新模板,使用默认模板:`/g:/My_code/Agent_atuo_graduation_project_of_GDUT/模板/GDUT-Undergraduate-Thesis-LaTeX-Template-main/模板.tex`。
- 如果模板文件缺失、不可读或入口不明确,先暂停并要求用户补充,不要假设模板结构。
默认模板可能依赖同目录下的 `.cls`、`.sty`、图片、参考文献样式或其他资源;转换时应保留模板工程的相对路径关系,不要把正文输出成与模板资源脱离的孤立文件。
## 启动流程
1. 确认输入 Markdown 文件路径。
- 如果用户提供单个 `.md` 文件,转换该文件。
- 如果用户提供目录,询问是转换目录下所有顶层 `.md`,还是只转换某一个文件。
2. 询问用户是否需要上传或指定新的 LaTeX 模板。
3. 根据用户回答确定模板:
- 用户提供模板文件:使用该文件。
- 用户提供模板目录:要求确认主入口 `.tex`。
- 用户不需要新模板:使用默认模板路径。
4. 检查模板文件是否存在,并确认它是可作为入口或正文承载模板使用的 `.tex` 文件。
5. 将 Markdown 正文转换为 LaTeX 内容,并按模板结构整合:
- 若模板有明确正文占位或 `\input{}` 结构,优先把正文放入对应位置或章节文件。
- 若模板是单文件入口,保留导言区、文档类、宏包和封面配置,只替换或插入正文区域。
- 若无法判断正文插入点,先询问用户,不要破坏模板。
6. 转换后检查明显问题:图片路径、公式、表格、参考文献、特殊字符、标题编号、未闭合环境和模板资源引用。
7. 输出最终 `.tex` 路径,并简要说明使用了哪个 Markdown、哪个 LaTeX 模板和哪些内容需要人工复查。
## Markdown 预处理要求
转换前检查并必要时提醒用户修正:
- 标题层级应清晰,Markdown 中可使用 `# 1 绪论`、`## 1.1 研究背景` 等带编号标题帮助识别层级;转换为 LaTeX 时要去掉标题文本中的编号,让 LaTeX 自动编号,例如输出 `\section{绪论}`、`\subsection{研究背景}`,不要输出 `\section{1 绪论}` 或 `\subsection{1.1 研究背景}`。
- 摘要、Abstract、目录、正文、结论、参考文献、致谢、附录应结构完整;生成 LaTeX 时摘要标题应居中显示,中文摘要与英文 Abstract 都要按模板的居中标题样式处理。
- 转换为 LaTeX 章节结构时,每个大章节应独立另起一页;在章级标题、摘要、Abstract、目录、参考文献、致谢、附录等主要部分前使用模板推荐的分页方式,必要时插入 `\clearpage` 或 `\newpage`。
- 图表应有规范题注:`图X.Y 图名`、`表X.Y 表名`。
- 图片路径应相对 Markdown 文件、项目根目录或模板工程可访问。
- 数学公式应使用 Pandoc/LaTeX 可识别的 `$...$`、`$$...$$` 或 LaTeX 环境。
- 参考文献不要使用虚构信息;若模板使用 BibTeX/BibLaTeX,应说明需要用户确认 `.bib` 或文献条目映射。
- LaTeX 特殊字符如 `%`、`_`、`&`、`#`、`{}` 可能需要转义,避免破坏编译。
- Mermaid、HTML、Obsidian 特殊语法、复杂表格和代码块可能无法 1:1 映射,应列为人工复查项。
## 本次问题复盘与强制检查项
以下规则来自一次实际 Markdown 转 GDUT LaTeX 模板时暴露的问题,后续执行本 skill 时必须主动检查,不能只依赖编译通过。
### 封面插入
- 默认 GDUT 模板的 `\makecover` 只检查当前编译工作目录中是否存在 `论文封面.pdf`,如果最终 `.tex` 输出在 `test/`,而封面 PDF 仍在模板目录,则不会自动生成封面。
- 使用默认模板时,必须显式处理封面路径:
- 优先在最终 `.tex` 中直接使用 `\includepdf[pages=-]{模板目录/论文封面.pdf}`;或
- 保持模板工程相对路径,让编译工作目录能访问封面 PDF。
- 生成后必须检查最终 `.tex` 是否实际包含封面插入命令,并提醒用户人工核对封面中的姓名、学号、学院、专业、指导教师、日期等信息。
### 摘要段落格式
- 不能只把摘要内容紧跟在 `\begin{abstractcn}` 或 `\begin{abstracten}` 后面,否则首段可能看起来没有另起一段或缺少首行缩进。
- 中文摘要和英文摘要正文开始前应显式加入段落起始,例如 `\par\indent`,并保留摘要内部自然段之间的空行。
- 生成后必须抽查最终 `.tex` 中 `abstractcn` 和 `abstracten` 环境开头,确认第一段单独成段。
### 行内代码和技术名词样式
- 用户要求自然段内出现模块名、信号名、语法名、命令名或接口名时,不做任何额外修饰,应按普通英文/文本显示。
- 仅单独成段的代码块才使用 `lstlisting`、`verbatim` 或模板代码块样式。
- Pandoc 可能把 Markdown 行内反引号转换为 `\lstinline`、`\passthrough{\lstinline!...!}` 或类似结构;转换后必须清理这些行内代码样式,将其恢复为普通文本。
- 清理后要检查最终 `.tex`,确认自然段内不残留 `\lstinline`、`\passthrough{\lstinline...}` 等行内代码命令。
### 标题重复编号
- Markdown 标题常写作 `## 5.4 Wishbone 封装模块实现`,LaTeX 又会自动编号;如果没有去掉 Markdown 标题文本中的编号,会出现 `5.45.4 Wishbone 封装模块实现` 这类重复编号。
- 不能只处理 `\section{1 标题}`,还必须处理 `\subsection{5.4 标题}`、`\subsubsection{5.4.1 标题}` 等所有章节层级。
- Pandoc 可能把标题中的点转义为 `\.`,也可能在标题中插入换行;编号清理规则必须同时兼容 `5.4`、`5\.4`、`5.4.1`、`5\.4\.1` 以及编号后换行的情况。
- 生成后必须 grep/搜索最终 `.tex`,确认不存在:
- `\section{1`、`\subsection{1.1`、`\subsubsection{1.1.1` 等带原始编号的标题;
- `5.45.4`、`1.11.1` 等重复编号文本。
### 编译验证不等于格式正确
- XeLaTeX 编译成功只能说明语法基本可用,不能说明封面、摘要段落、标题编号和行内代码样式正确。
- 每次生成最终 TEX 后,除运行 XeLaTeX 至少两遍外,还必须人工或工具检查:
1. 封面是否实际插入;
2. 摘要首段是否另起并缩进;
3. 自然段内行内代码是否为普通文本;
4. 标题是否没有重复编号;
5. 目录页标题是否与正文标题一致。
## 输出文件规则
- 默认输出到源 Markdown 同目录。
- 默认文件名与源 Markdown 同名,例如 `thesis.md` → `thesis.tex`。
- 如果目标文件已存在,不要无提示覆盖;使用带后缀的新文件名,或询问用户是否覆盖。
- 转换成功后只报告必要信息:源 Markdown、输出 TEX、使用模板、是否存在需要人工复查的项。
## 常见问题处理
- **模板缺失**:提示用户补充 LaTeX 模板文件,或确认是否改用默认模板。
- **模板入口不明确**:要求用户指定主入口 `.tex`,不要自行猜测。
- **图片丢失**:检查 Markdown 所在目录、项目根目录、模板工程目录和 LaTeX `\includegraphics` 路径。
- **公式或特殊字符异常**:说明需要转义或人工复查,必要时先修正 Markdown 后再转换。
- **表格过宽或复杂表格失败**:尽量转换为 LaTeX 表格,并列为人工复查项。
- **参考文献格式异常**:说明当前输出是否为纯文本参考文献,或是否需要用户提供 `.bib` 文件。
- **用户要求直接生成最终 PDF**:可以在 `.tex` 生成后说明是否具备编译条件;缺少 TeX 环境或模板依赖时不要承诺能编译通过。
## 交互模板
转换前:
```text
已确认要把最终 Markdown 转为 LaTeX `.tex`。请先确认是否需要上传或指定新的 LaTeX 模板;如果不需要,我将使用默认模板:
/g:/My_code/Agent_atuo_graduation_project_of_GDUT/模板/GDUT-Undergraduate-Thesis-LaTeX-Template-main/模板.tex
请同时确认输出目录是否使用 Markdown 同目录。
```
转换完成后:
```text
转换完成:
- 源 Markdown:...
- 输出 TEX:...
- 使用模板:...
- 需人工复查:...
```
在 GitHub 查看