Я использовал python-docx для создания больших документов, полных таблиц и рисунков, соответствующих стандартному шаблону.Я обнаружил, как сделать их перекрестными ссылками, используя https://github.com/python-openxml/python-docx/issues/359.Однако это обозначает мои цифры / таблицы, начиная с 1 в каждом разделе и продолжая до следующего раздела, где он перезапускается с 1.
Я бы хотел, чтобы номера фигур зависели от номера раздела (т.е. 1-й рисунок в 2-мраздел = рисунок 2.1 и т. д.).Кто-нибудь знает возможно ли это?
В настоящее время нумерация производится с помощью функции:
def Table(paragraph):
from docx.oxml import OxmlElement
from docx.oxml.ns import qn
run = run = paragraph.add_run()
r = run._r
fldChar = OxmlElement('w:fldChar')
fldChar.set(qn('w:fldCharType'), 'begin')
r.append(fldChar)
instrText = OxmlElement('w:instrText')
instrText.text = ' SEQ TableMain \* ARABIC \s 1 '
print instrText
r.append(instrText)
fldChar = OxmlElement('w:fldChar')
fldChar.set(qn('w:fldCharType'), 'end')
r.append(fldChar)
Вызывается следующим кодом, который также заполняет таблицу и заголовок и нижний колонтитул таблицы
table3 = document.add_table(rows=1, cols=1)
table3.cell(0,0).text="Table "
for paragraph in table4.cell(0,0).paragraphs:
paragraph.style = document.styles['Caption']
Table(paragraph)
paragraph.add_run(text="this is the full table name")
row_cells = table3.add_row().cells
call_func_that_makes_actual_table(row_cells[0],...)
row_cells = table3.add_row().cells
row_cells[0].text="Source: ..."
for paragraph in row_cells[0].paragraphs:
paragraph.style = document.styles['Source']
Это производиттаблица типа this
Принимая во внимание, что я хотел бы нумерацию таблицы как this