选题编译功能改为先生成字典, 再生成LaTeX代码, 在题目多于50题时将显著加快生成LaTeX代码的速度

This commit is contained in:
weiye.wang 2024-05-01 23:06:22 +08:00
parent 109bd75485
commit c5bdbed9cb
1 changed files with 7 additions and 3 deletions

View File

@ -128,17 +128,21 @@ class MyWindow_xtby(QWidget,Ui_Form):
latex_raw = re.sub(r"fontset[\s]*=[\s]*none","fontset = fandol",latex_raw)
latex_raw = re.sub(r"\\setCJKmainfont",r"% \\setCJKmainfont",latex_raw)
bodystring = "\\tableofcontents\n\n\\newpage\n\n"
if len(self.TitleID_list) > 1:
bodystring = "\\tableofcontents\n\n\\newpage\n\n"
else:
bodystring = "\n\n"
bodylist = []
# problems_dict = configjson["标题与题号"]
starttime = time.time()
mydb = connect(hostname = db_host, port = db_port, username=db_user, pwd=db_pwd, db = self.database_name)
mycursor = mydb.cursor()
pro_dict,obj_dict,bn_dict,unit_obj_dict = generateDictsfromMariaDB(mycursor)
for p,IDs in self.TitleID_list:
currentbodystring = f"\\section{{{p}}}\n\\begin{{enumerate}}\n\n"
print(f"正在从数据库获取数据, 生成源代码...")
for id in tqdm.tqdm(generate_number_set(IDs)):
currentbodystring += generateLaTeXBodyContentfromMariaDB(mycursor,id,configjson)
for id in tqdm.tqdm(generate_number_set(IDs,pro_dict), desc = f"生成 {p} 章节LaTeX代码"):
currentbodystring += generateLaTeXBodyContentFromDict(id,pro_dict,obj_dict,configjson)
currentbodystring += "\\end{enumerate}"
bodylist.append(currentbodystring)
bodystring += "\n\n\\newpage\n\n".join(bodylist)