diff --git a/工具v2/database_tools.py b/工具v2/database_tools.py index e5b3515d..2e0d4c18 100644 --- a/工具v2/database_tools.py +++ b/工具v2/database_tools.py @@ -798,5 +798,22 @@ def GetValidTexFiles(path): #获取 有题号的.tex文件列表 及 有题号 return (texlist,pathlist) # 返回 有题号的.tex文件列表 与 所在路径列表 组成的二元组 +def generate_lessonid_list(lessonidstr,lessonsdict): #根据lessonidstr的条件(开头字母与数字)返回课时代码列表 + raw_criterion_list = lessonidstr.split(",") + criterion_list = [] + for cr in raw_criterion_list: #生成满足要求的课时代码的前若干位 + if not ":" in cr: + criterion_list.append(cr) + else: + criterion_list = criterion_list + ["K"+c[-4:] for c in generate_number_set(cr.upper().replace("K",""))] + + lessons_list = [] + for id in lessonsdict: #对每一课时作比对, 生成课时代码列表 + for cr in criterion_list: + if id.startswith(cr): + lessons_list.append(id) + break + return lessons_list # 返回课时代码列表 + if __name__ == "__main__": print("数据库工具, import用.") \ No newline at end of file diff --git a/工具v2/课时名和课时目标制作.py b/工具v2/课时名和课时目标制作.py new file mode 100644 index 00000000..00c90d44 --- /dev/null +++ b/工具v2/课时名和课时目标制作.py @@ -0,0 +1,38 @@ +lessonsidstr = "K01,K04,K0201:K0226" #用字符串表示课时代码范围 +notetitle = "高一上学期课时及目标" #作为文件名和文件标题 +outputdir = "临时文件" + +from database_tools import * + +outputfilepath = os.path.join(outputdir,notetitle+".tex") +lessonsdictpath = "../题库0.3/LessonsCut.json" #课时分割字典所在路径 +objdictpath = "../题库0.3/lessonobj.json" #课时目标字典所在路径 + + + +lessons_dict = load_dict(lessonsdictpath) +obj_dict = load_dict(objdictpath) + +lessons_id_list = generate_lessonid_list(lessonsidstr,lessons_dict) +output = "" +for lessonid in lessons_id_list: # 生成用来替换的课时名和目标字符串 + output += "\\section{%s \ %s}\n\n\\begin{enumerate}\n\n"%(lessonid,lessons_dict[lessonid]["name"]) + for objid in obj_dict: + if objid.startswith(lessonid): + output += "\\item %s \\ %s \n\n"%(objid,obj_dict[objid]["content"]) + output += "\\end{enumerate}\n\n" + +latex_raw = ReadTextFile("模板文件/讲义模板.txt") +latex_raw = latex_raw.replace(r"学号\blank{50} \ 姓名\blank{80}","上海市控江中学") + +if sys.platform != "win32": #非win系统用默认字体 + latex_raw = re.sub(r"fontset[\s]*=[\s]*none","fontset = fandol",latex_raw) + latex_raw = re.sub(r"\\setCJKmainfont",r"% \\setCJKmainfont",latex_raw) + +latex_data = StringSubstitute(r"<<[\s\S]*?待替换[\s\S]*?>>",latex_raw,(notetitle,output)) #替换标题和bodystring +SaveTextFile(latex_data,outputfilepath) #保存.tex文件 + +if XeLaTeXCompile(outputdir,notetitle+".tex"): + print("编译成功") +else: + print("编译失败")