1
0
Files
bagu-thesis/docs/XThesis.md

72 lines
2.5 KiB
Markdown
Raw Permalink Normal View History

2026-05-22 12:51:10 +08:00
# 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>` 的文本内容为文件路径。路径的具体格式(是相对路径还是绝对路径)没有要求。相对路径会在工作目录或资源目录进行查找,非相对路径则直接使用。