From 780e2e30bc07932a7e15088d2a2143a53812031d Mon Sep 17 00:00:00 2001 From: wangweiye7840 Date: Mon, 28 Aug 2023 18:36:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=BA=E5=88=86=E6=96=B0=E8=AF=BE=E5=90=88?= =?UTF-8?q?=E9=9B=86=E5=A4=87=E8=AF=BE=E7=A8=BF=E7=94=9F=E6=88=90=E5=8F=8A?= =?UTF-8?q?=E5=8D=95=E8=AF=BE=E5=A4=87=E8=AF=BE=E7=A8=BF=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 工具v2/database_tools.py | 82 +++++++++++++++---- 工具v2/单课备课稿生成.py | 12 +++ 工具v2/工具面板.py | 3 +- ...{新课备课稿生成.py => 新课备课稿合集生成.py} | 0 4 files changed, 78 insertions(+), 19 deletions(-) create mode 100644 工具v2/单课备课稿生成.py rename 工具v2/{新课备课稿生成.py => 新课备课稿合集生成.py} (100%) diff --git a/工具v2/database_tools.py b/工具v2/database_tools.py index a00b7845..d4330840 100644 --- a/工具v2/database_tools.py +++ b/工具v2/database_tools.py @@ -908,7 +908,7 @@ def GenerateLessonPreparation(notetitle, outputdir, adict, prodict, objdict, bas worklist = adict[key]["work_inclass"] homeworklist = adict[key]["homework"] remarks = adict[key]["remarks"] - if not adict[key]["objects"] == []: + if not "复习" in lessonname: output += "\\section{%s \ %s}\n\n"%(lessonid,lessonname) if not objlist == []: @@ -943,8 +943,69 @@ def GenerateLessonPreparation(notetitle, outputdir, adict, prodict, objdict, bas output += "\\subsection{复习题}\n\n" output += GenerateStudentBodyString(homeworklist,[],prodict,consecutivenumbering=False,answered = False,spaceflag=homeworkspaces) output += "\\newpage\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("编译成功") + return 0 # 返回0 + else: + print("编译失败") + return latex_data # 返回有错误的latex源代码 + +def GenerateSingleLessonPreparation(lessonid, outputdir, adict, prodict, objdict, basicknowledgedict, homeworkspaces = False): #根据adict生成每一课时的教案 + output = "" + notetitle = lessonid + r" \ " + adict[lessonid]["name"] + outputfilepath = os.path.join(outputdir,lessonid + adict[lessonid]["name"]+".tex") + lessonname = adict[lessonid]["name"] + objlist = adict[lessonid]["objects"] + bnlist = adict[lessonid]["basicknowledges"] + eblist = adict[lessonid]["examples_basic"] + ealist = adict[lessonid]["examples_adv"] + worklist = adict[lessonid]["work_inclass"] + homeworklist = adict[lessonid]["homework"] + remarks = adict[lessonid]["remarks"] + if not "复习" in lessonname: + if not objlist == []: + output += "\\section{课时目标}\n\n" + output += "\\begin{enumerate}\n\n" + for objid in objlist: + output += "\\item %s \\ %s \n\n"%(objid,objdict[objid]["content"]) + output += "\\end{enumerate}\n\n" #生成学习目标 + if not bnlist == []: + output += "\\section{双基梳理}\n\n" + basic_body = "" + for bnid in bnlist: + basic_body += "\\item %s\n\n"%basicknowledgedict[bnid]["content"] + output += "\\begin{enumerate}\n\n %s\n\n\\end{enumerate}\n\n"%basic_body #生成基础知识梳理 + + output += "\\section{知识体验}\n\n" + output += "\\subsection{必讲例题}\n\n" + output += GenerateStudentBodyString(eblist,[],prodict,consecutivenumbering=False,answered=False) + output += "\\subsection{选讲例题}\n\n" + output += GenerateStudentBodyString(ealist,[],prodict,consecutivenumbering=False,answered=False) + output += "\\section{巩固新知}\n\n" + output += GenerateStudentBodyString(worklist,[],prodict,consecutivenumbering=False,answered=False) + if not remarks == "": + output += "\\section{备注}\n\n" + output += remarks + "\n\n" + if homeworkspaces: + output += "\\newpage\n\n" + output += "\\section{课后作业}\n\n" + output += GenerateStudentBodyString(homeworklist,[],prodict,consecutivenumbering=False,answered=False,spaceflag=homeworkspaces) + else: + output += "\\section{复习题}\n\n" + output += GenerateStudentBodyString(homeworklist,[],prodict,consecutivenumbering=False,answered = False,spaceflag=homeworkspaces) latex_raw = ReadTextFile("模板文件/讲义模板.txt") latex_raw = latex_raw.replace(r"学号\blank{50} \ 姓名\blank{80}","上海市控江中学") #替换掉模板中的姓名学号 @@ -956,7 +1017,7 @@ def GenerateLessonPreparation(notetitle, outputdir, adict, prodict, objdict, bas latex_data = StringSubstitute(r"<<[\s\S]*?待替换[\s\S]*?>>",latex_raw,(notetitle,output)) #替换标题和bodystring SaveTextFile(latex_data,outputfilepath) #保存.tex文件 - if XeLaTeXCompile(outputdir,notetitle+".tex"): + if XeLaTeXCompile(outputdir,lessonid + adict[lessonid]["name"]+".tex"): print("编译成功") return 0 # 返回0 else: @@ -964,22 +1025,7 @@ def GenerateLessonPreparation(notetitle, outputdir, adict, prodict, objdict, bas return latex_data # 返回有错误的latex源代码 - 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("编译成功") - return 0 # 返回0 - else: - print("编译失败") - return latex_data # 返回有错误的latex源代码 + def getCopy(): # 获取剪切板内容 wc.OpenClipboard() diff --git a/工具v2/单课备课稿生成.py b/工具v2/单课备课稿生成.py new file mode 100644 index 00000000..12ac5b9b --- /dev/null +++ b/工具v2/单课备课稿生成.py @@ -0,0 +1,12 @@ +lessonid = "G20260108" +outputdir = "临时文件" # 输出文件夹, 不建议修改 + +from database_tools import * + +preparationdict = load_dict("../备课组/26届/lessons.json") +pro_dict = load_dict("../题库0.3/problems.json") +obj_dict = load_dict("../题库0.3/LessonObj.json") +lessons_dict = load_dict("../题库0.3/LessonsCut.json") +basicknowledge_dict = load_dict("../题库0.3/BasicKnowledge.json") + +GenerateSingleLessonPreparation(lessonid, outputdir, preparationdict, pro_dict, obj_dict, basicknowledge_dict, homeworkspaces= False) \ No newline at end of file diff --git a/工具v2/工具面板.py b/工具v2/工具面板.py index 26672fbd..99ce74f6 100644 --- a/工具v2/工具面板.py +++ b/工具v2/工具面板.py @@ -112,7 +112,8 @@ UseMenu.add_command(label = "文件题号提取", command = lambda: SetButton(" BKMenu = Menu(menubar, tearoff=False) menubar.add_cascade(label = "备课", menu = BKMenu) BKMenu.add_command(label = "新课备课所用题目草稿生成", command = lambda: SetButton("新课备课所用题目草稿生成",["新课备课所用题目草稿生成.py"])) -BKMenu.add_command(label = "新课备课稿生成", command = lambda: SetButton("新课备课稿生成",["新课备课稿生成.py"])) +BKMenu.add_command(label = "新课备课稿合集生成", command = lambda: SetButton("新课备课稿合集生成",["新课备课稿合集生成.py"])) +BKMenu.add_command(label = "单课备课稿生成", command = lambda: SetButton("单课备课稿生成",["单课备课稿生成.py"])) BKMenu.add_separator() BKMenu.add_command(label = "添加基础知识梳理", command = lambda: SetButton("添加基础知识梳理",["添加基础知识梳理.py"])) # BKMenu.add_command(label = "题号清单生成", command = lambda: SetButton("题号清单生成",1,["题号清单生成.py"])) diff --git a/工具v2/新课备课稿生成.py b/工具v2/新课备课稿合集生成.py similarity index 100% rename from 工具v2/新课备课稿生成.py rename to 工具v2/新课备课稿合集生成.py