1
0

feat: add general docx template

This commit is contained in:
2026-06-13 14:25:50 +08:00
parent 275abb08c1
commit c1fbde559d
7 changed files with 81 additions and 64 deletions

View File

@@ -1,6 +1,6 @@
# BaGu Thesis
BaGu Thesis是一个专精于将LaTeX论文转换到DOCX格式转换的工具。它通过中间格式XThesis基于XML实现高质量的格式转换特别适用于必须需要提交DOCX格式论文的场景。
BaGu Thesis是一个专精于将LaTeX论文转换到DOCX格式转换的工具。它凭借Pandoc的文档转换能力以及一系列附加脚本实现高质量的格式转换特别适用于必须需要提交DOCX格式论文的场景。
## 简介和项目创建缘由
@@ -10,65 +10,19 @@ BaGu Thesis是一个专精于将LaTeX论文转换到DOCX格式转换的工具。
本项目的存在就是为了让你能够用LaTeX专注于内容创作然后用最短的时间生成一个符合格式要求的DOCX文件把时间浪费在更有意义的事情上比如思考论文是否真的有意义或者干脆出去玩一会儿。
## 与其他方案的比较
你可能听说过pandoc它是一个强大的通用文档转换工具理论上可以实现LaTeX到DOCX的转换。我也尝试过 pandoc包括使用了[pandoc-tex-numbering](https://github.com/fncokg/pandoc-tex-numbering)等过滤器来完成相似的任务,但效果均不尽人意。主要问题在于:
1. **交叉引用问题**pandoc 生成的DOCX在交叉引用上存在诸多问题如图片编号、表格编号、公式编号、参考文献引用等这些在pandoc转换后往往不符合纯粹使用DOCX格式制作论文的规范。例如参考文献的引用通常是通过交叉引用列表项来实现的而pandoc并不能做到这一点。
1. **学习曲线陡峭**为了达到我想要的交叉引用效果我不得不需要去使用Lua语言写很多pandoc过滤器。我不熟悉Lua语言不熟悉pandoc的Lua模块也不知道这些任务到底能不能在pandoc里完成。
因此我选择单开了一个项目在AI的辅助下完成这一目标。本项目专精于论文的LaTeX到DOCX格式的转换而非通用的文档转换器能够更好地处理学术论文中的各种特殊需求。
## 使用方法
本项目使用 `uv` 作为包管理工具,确保你已经安装了 `uv`,并初始化了项目
本项目由两部分组成,它们分别位于`pandoc``winword`文件夹中
整个项目分为两部分首先将LaTeX转为XThesis格式再将XThesis格式转为DOCX格式
一般来说,使用`pandoc`中的内容就足以将你的LaTeX文档转换成较为标准的DOCX文档了。但有时候你的上级会给你发所谓的DOCX模板这时候你就需要使用`winword`文件夹中提供的方法来将生成的DOCX文档套用到你的DOCX模板之上了
### LaTeX转XThesis格式
有关如何使用这两部分,请分别查看`pandoc``winword`的README文件。
使用以下命令将LaTeX格式转换为XThesis格式
## 未来规划
```bash
uv run latex2xthesis.py --in example.tex --out example.xml --config latex2xthesis.toml --resource-dir /path/to/your/example
```
该项目未来计划编写专用的格式转换器该转换器通过中间格式XThesis基于XML实现高质量的格式转换而非依赖于Pandoc。这主要是因为Pandoc生成的DOCX在交叉引用上存在诸多问题如图片编号、表格编号、公式编号、参考文献引用等。这些在Pandoc转换后往往不符合**纯粹**使用DOCX格式制作论文的规范。例如参考文献的引用通常是通过交叉引用列表项来实现的而Pandoc并不能做到这一点尽管Pandoc生成的引用仍然可以被点击并转到正确引用源。如果一定要做到这一点则需要编写大量的Pandoc Filter来实现而我不熟悉Pandoc的API也不知道这些任务能不能使用Pandoc Filter完成。
**参数说明**
- `--in``-i`:指定输入的 LaTeX 文件路径(必选)
- `--out``-o`:指定输出的 XThesis XML 文件路径(必选)
- `--config``-c`:指定配置文件路径,用于控制转换过程中的各种选项(必选)
- `--resource-dir``-r`指定资源文件路径用于查找图片、参考文献等在你LaTeX文件中引用的外部资源。通常是你LaTeX文件所在的文件夹必选
### XThesis转DOCX格式
使用以下命令将XThesis格式转换为DOCX格式
```bash
uv run xthesis2docx.py --in example.xml --out example.docx --config xthesis2docx.toml
```
**参数说明**
- `--in``-i`:指定输入的 XThesis XML 文件路径(必选)
- `--out``-o`:指定输出的 DOCX 文件路径(必选)
- `--config``-c`:指定配置文件路径,用于控制 DOCX 格式的各种样式和排版选项(必选)
### 一站式转换
如果你不需要中间文件可以直接使用以下命令将LaTeX格式转换为DOCX格式
```bash
uv run baguthesis.py --in example.tex --out example.docx --frontend-config latex2xthesis.toml --backend-config xthesis2docx.toml --resource-dir /path/to/your/example
```
**参数说明**
- `--in``-i`:指定输入的 LaTeX 文件路径(必选)
- `--out``-o`:指定输出的 DOCX 文件路径(必选)
- `--frontend-config`指定前端配置文件路径即LaTeX转XThesis的配置文件必选
- `--backend-config`指定后端配置文件路径即XThesis转DOCX的配置文件必选
- `--resource-dir``-r`指定资源文件路径用于查找图片、参考文献等在你LaTeX文件中引用的外部资源。通常是你LaTeX文件所在的文件夹必选
该计划的进度可在`xthesis`分支中进行浏览,但其远远达不到可供使用的地步。
## 许可证