1
0
Files
bagu-thesis/docs/XThesis.md
2026-05-22 12:51:10 +08:00

72 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# XThesis 中间格式规范
XThesis 是一个基于 XML 的中间格式,用于辅助在 LaTeX 论文与 DOCX 论文之间进行格式转换。
## Schema 文件
格式的 XML Schema 定义见 [XThesis.xsd](./XThesis.xsd)。所有的元素结构、属性要求、子元素组合规则均在 Schema 中定义。下文仅补充 **XSD 无法在语法层面表达**的语义约束。
## XSD 不可表达的约束
### 章节嵌套规则
`section1` ~ `section9` 的嵌套严格限定为**相邻向下**
| 父元素 | 允许的子章节 |
|--------|-------------|
| `section1` | `section2` |
| `section2` | `section3` |
| `section3` | `section4` |
| `section4` | `section5` |
| `section5` | `section6` |
| `section6` | `section7` |
| `section7` | `section8` |
| `section8` | `section9` |
| `section9` | *(无)* |
禁止:
- **同级别嵌套**`section1` 内不能再有 `section1`
- **跨级别嵌套**`section1` 内不能直接出现 `section3`,必须经由 `section2` 逐级过渡
### 粗体与斜体互斥
`<b>``<i>` 元素**不能互相嵌套**。文本只能是加粗或斜体之一,不允许 `<b><i>...</i></b>``<i><b>...</b></i>` 的形式。需要同时具有两种样式时,应在 `<b>``<i>` 之外另行处理(例如在转换阶段合并样式)。
### 表格列数一致性
`<thead>``<td>` 的数量必须与 `<tbody>` 中每一 `<tr>``<td>` 的数量完全相等。XSD 无法在 Schema 层面约束跨元素的计数值相等,**处理程序须自行校验**并在列数不匹配时报错。
### 引用与文献名称的格式
`<ref>``<cref>` 的文本内容为被引用对象的 **label 名称**,多个名称以逗号分隔:
```xml
<ref>eq:main,fig:arch,tbl:result</ref>
```
`<cite>` 同理,文本内容为被引用文献的标识,多个以逗号分隔:
```xml
<cite>knuth1984,dijkstra1968</cite>
```
此外,逗号前后允许空格:
```xml
<ref>eq:main, fig:arch, tbl:result</ref>
<cite>knuth1984, dijkstra1968</cite>
```
### 公式内容的格式
`<inlineeq>``<equation>` 的文本内容为 **LaTeX 原始代码**,且**不包含**两侧的数学模式标记(`$` / `$$` / `\(` 等)。例如:
```xml
<inlineeq>E = mc^2</inlineeq>
<equation label="eq:energy">E = mc^2</equation>
```
### 文件路径格式
`<figure>``<reference>` 的文本内容为文件路径。路径的具体格式(是相对路径还是绝对路径)没有要求。相对路径会在工作目录或资源目录进行查找,非相对路径则直接使用。