# 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` 逐级过渡 ### 粗体与斜体互斥 `` 与 `` 元素**不能互相嵌套**。文本只能是加粗或斜体之一,不允许 `...` 或 `...` 的形式。需要同时具有两种样式时,应在 `` 或 `` 之外另行处理(例如在转换阶段合并样式)。 ### 表格列数一致性 `` 中 `` 的数量必须与 `` 中每一 `` 内 `` 的数量完全相等。XSD 无法在 Schema 层面约束跨元素的计数值相等,**处理程序须自行校验**并在列数不匹配时报错。 ### 引用与文献名称的格式 `` 与 `` 的文本内容为被引用对象的 **label 名称**,多个名称以逗号分隔: ```xml eq:main,fig:arch,tbl:result ``` `` 同理,文本内容为被引用文献的标识,多个以逗号分隔: ```xml knuth1984,dijkstra1968 ``` 此外,逗号前后允许空格: ```xml eq:main, fig:arch, tbl:result knuth1984, dijkstra1968 ``` ### 公式内容的格式 `` 与 `` 的文本内容为 **LaTeX 原始代码**,且**不包含**两侧的数学模式标记(`$` / `$$` / `\(` 等)。例如: ```xml E = mc^2 E = mc^2 ``` ### 文件路径格式 `
` 与 `` 的文本内容为文件路径。路径的具体格式(是相对路径还是绝对路径)没有要求。相对路径会在工作目录或资源目录进行查找,非相对路径则直接使用。