|
@@ -183,13 +183,22 @@ def _apply_numbering(para_element):
|
|
|
|
|
|
|
|
|
|
|
|
|
def _setup_auto_numbering(doc: Document):
|
|
def _setup_auto_numbering(doc: Document):
|
|
|
- """在文档中设置 Word 自动编号(每道题加题号)"""
|
|
|
|
|
|
|
+ """在文档中设置 Word 自动编号,格式: 1. 2. 3."""
|
|
|
numbering_part = doc.part.numbering_part
|
|
numbering_part = doc.part.numbering_part
|
|
|
numbering_xml = numbering_part._element
|
|
numbering_xml = numbering_part._element
|
|
|
|
|
|
|
|
- # 定义抽象编号 (abstractNum)
|
|
|
|
|
|
|
+ # 抽象编号
|
|
|
abstract_num = OxmlElement('w:abstractNum')
|
|
abstract_num = OxmlElement('w:abstractNum')
|
|
|
abstract_num.set(qn('w:abstractNumId'), '0')
|
|
abstract_num.set(qn('w:abstractNumId'), '0')
|
|
|
|
|
+ nsid = OxmlElement('w:nsid')
|
|
|
|
|
+ nsid.set(qn('w:val'), '0A1B2C3D')
|
|
|
|
|
+ abstract_num.append(nsid)
|
|
|
|
|
+ mlt = OxmlElement('w:multiLevelType')
|
|
|
|
|
+ mlt.set(qn('w:val'), 'singleLevel')
|
|
|
|
|
+ abstract_num.append(mlt)
|
|
|
|
|
+ tmpl = OxmlElement('w:tmpl')
|
|
|
|
|
+ tmpl.set(qn('w:val'), '0A1B2C3D')
|
|
|
|
|
+ abstract_num.append(tmpl)
|
|
|
|
|
|
|
|
lvl = OxmlElement('w:lvl')
|
|
lvl = OxmlElement('w:lvl')
|
|
|
lvl.set(qn('w:ilvl'), '0')
|
|
lvl.set(qn('w:ilvl'), '0')
|
|
@@ -197,30 +206,32 @@ def _setup_auto_numbering(doc: Document):
|
|
|
start = OxmlElement('w:start')
|
|
start = OxmlElement('w:start')
|
|
|
start.set(qn('w:val'), '1')
|
|
start.set(qn('w:val'), '1')
|
|
|
lvl.append(start)
|
|
lvl.append(start)
|
|
|
-
|
|
|
|
|
num_fmt = OxmlElement('w:numFmt')
|
|
num_fmt = OxmlElement('w:numFmt')
|
|
|
num_fmt.set(qn('w:val'), 'decimal')
|
|
num_fmt.set(qn('w:val'), 'decimal')
|
|
|
lvl.append(num_fmt)
|
|
lvl.append(num_fmt)
|
|
|
-
|
|
|
|
|
lvl_text = OxmlElement('w:lvlText')
|
|
lvl_text = OxmlElement('w:lvlText')
|
|
|
lvl_text.set(qn('w:val'), '%1.')
|
|
lvl_text.set(qn('w:val'), '%1.')
|
|
|
lvl.append(lvl_text)
|
|
lvl.append(lvl_text)
|
|
|
-
|
|
|
|
|
lvl_jc = OxmlElement('w:lvlJc')
|
|
lvl_jc = OxmlElement('w:lvlJc')
|
|
|
lvl_jc.set(qn('w:val'), 'left')
|
|
lvl_jc.set(qn('w:val'), 'left')
|
|
|
lvl.append(lvl_jc)
|
|
lvl.append(lvl_jc)
|
|
|
-
|
|
|
|
|
p_pr = OxmlElement('w:pPr')
|
|
p_pr = OxmlElement('w:pPr')
|
|
|
|
|
+ tabs = OxmlElement('w:tabs')
|
|
|
|
|
+ tab = OxmlElement('w:tab')
|
|
|
|
|
+ tab.set(qn('w:val'), 'left')
|
|
|
|
|
+ tab.set(qn('w:pos'), '720')
|
|
|
|
|
+ tabs.append(tab)
|
|
|
|
|
+ p_pr.append(tabs)
|
|
|
ind = OxmlElement('w:ind')
|
|
ind = OxmlElement('w:ind')
|
|
|
- ind.set(qn('w:left'), '420')
|
|
|
|
|
- ind.set(qn('w:hanging'), '420')
|
|
|
|
|
|
|
+ ind.set(qn('w:left'), '720')
|
|
|
|
|
+ ind.set(qn('w:hanging'), '360')
|
|
|
p_pr.append(ind)
|
|
p_pr.append(ind)
|
|
|
lvl.append(p_pr)
|
|
lvl.append(p_pr)
|
|
|
|
|
|
|
|
abstract_num.append(lvl)
|
|
abstract_num.append(lvl)
|
|
|
numbering_xml.append(abstract_num)
|
|
numbering_xml.append(abstract_num)
|
|
|
|
|
|
|
|
- # 定义编号实例 (num)
|
|
|
|
|
|
|
+ # 编号实例
|
|
|
num = OxmlElement('w:num')
|
|
num = OxmlElement('w:num')
|
|
|
num.set(qn('w:numId'), '1')
|
|
num.set(qn('w:numId'), '1')
|
|
|
num_ref = OxmlElement('w:abstractNumId')
|
|
num_ref = OxmlElement('w:abstractNumId')
|