feat: add XThesis standard
This commit is contained in:
71
docs/XThesis.md
Normal file
71
docs/XThesis.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# 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>` 的文本内容为文件路径。路径的具体格式(是相对路径还是绝对路径)没有要求。相对路径会在工作目录或资源目录进行查找,非相对路径则直接使用。
|
||||
Reference in New Issue
Block a user