区分新课合集备课稿生成及单课备课稿生成

This commit is contained in:
wangweiye7840 2023-08-28 18:36:57 +08:00
parent ace470661a
commit 780e2e30bc
4 changed files with 78 additions and 19 deletions

View File

@ -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()

View File

@ -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)

View File

@ -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"]))