feat: add general docx template
This commit is contained in:
60
README.md
60
README.md
@@ -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`分支中进行浏览,但其远远达不到可供使用的地步。
|
||||
|
||||
## 许可证
|
||||
|
||||
|
||||
Reference in New Issue
Block a user