20221007 night

This commit is contained in:
weiye.wang 2022-10-07 21:58:36 +08:00
parent 94ba5fe5ac
commit dcc46c10a6
7 changed files with 148 additions and 90 deletions

View File

@ -2,7 +2,7 @@
"cells": [ "cells": [
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 4, "execution_count": 1,
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
@ -11,7 +11,7 @@
"0" "0"
] ]
}, },
"execution_count": 4, "execution_count": 1,
"metadata": {}, "metadata": {},
"output_type": "execute_result" "output_type": "execute_result"
} }
@ -19,7 +19,9 @@
"source": [ "source": [
"import os,re,json\n", "import os,re,json\n",
"# 这里修改题目id, 可以不满6位\n", "# 这里修改题目id, 可以不满6位\n",
"index = \"5956\".zfill(6)\n", "id = 5900\n",
"\n",
"index = str(id).zfill(6)\n",
"with open(r\"../题库0.3/Problems.json\",\"r\",encoding = \"utf8\") as f:\n", "with open(r\"../题库0.3/Problems.json\",\"r\",encoding = \"utf8\") as f:\n",
" database = f.read()\n", " database = f.read()\n",
"line = '\"id\": \"'+index+'\",'\n", "line = '\"id\": \"'+index+'\",'\n",

View File

@ -2,44 +2,20 @@
"cells": [ "cells": [
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 3, "execution_count": 1,
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
"name": "stdout", "name": "stdout",
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
"开始编译教师版本pdf文件: 临时文件/批量生成题目/K0514006B_教师用_20220923.tex\n", "开始编译教师版本pdf文件: 临时文件/批量生成题目/test1_教师用_20221007.tex\n",
"0\n", "0\n",
"开始编译学生版本pdf文件: 临时文件/批量生成题目/K0514006B_学生用_20220923.tex\n", "开始编译学生版本pdf文件: 临时文件/批量生成题目/test1_学生用_20221007.tex\n",
"0\n", "0\n",
"开始编译教师版本pdf文件: 临时文件/批量生成题目/K0514007B_教师用_20220923.tex\n", "开始编译教师版本pdf文件: 临时文件/批量生成题目/test2_教师用_20221007.tex\n",
"0\n", "0\n",
"开始编译学生版本pdf文件: 临时文件/批量生成题目/K0514007B_学生用_20220923.tex\n", "开始编译学生版本pdf文件: 临时文件/批量生成题目/test2_学生用_20221007.tex\n",
"0\n",
"开始编译教师版本pdf文件: 临时文件/批量生成题目/K0515002B_教师用_20220923.tex\n",
"0\n",
"开始编译学生版本pdf文件: 临时文件/批量生成题目/K0515002B_学生用_20220923.tex\n",
"0\n",
"开始编译教师版本pdf文件: 临时文件/批量生成题目/K0515003B_教师用_20220923.tex\n",
"0\n",
"开始编译学生版本pdf文件: 临时文件/批量生成题目/K0515003B_学生用_20220923.tex\n",
"0\n",
"开始编译教师版本pdf文件: 临时文件/批量生成题目/K0515004B_教师用_20220923.tex\n",
"0\n",
"开始编译学生版本pdf文件: 临时文件/批量生成题目/K0515004B_学生用_20220923.tex\n",
"0\n",
"开始编译教师版本pdf文件: 临时文件/批量生成题目/K0515005B_教师用_20220923.tex\n",
"0\n",
"开始编译学生版本pdf文件: 临时文件/批量生成题目/K0515005B_学生用_20220923.tex\n",
"0\n",
"开始编译教师版本pdf文件: 临时文件/批量生成题目/K0515006B_教师用_20220923.tex\n",
"0\n",
"开始编译学生版本pdf文件: 临时文件/批量生成题目/K0515006B_学生用_20220923.tex\n",
"0\n",
"开始编译教师版本pdf文件: 临时文件/批量生成题目/K0515007B_教师用_20220923.tex\n",
"0\n",
"开始编译学生版本pdf文件: 临时文件/批量生成题目/K0515007B_学生用_20220923.tex\n",
"0\n" "0\n"
] ]
} }
@ -54,15 +30,8 @@
"\"\"\"---设置题目列表---\"\"\"\n", "\"\"\"---设置题目列表---\"\"\"\n",
"#字典字段为文件名, 之后为内容的题号\n", "#字典字段为文件名, 之后为内容的题号\n",
"problems_dict = {\n", "problems_dict = {\n",
"\"K0514006B\":\"002018\",\n", "\"test1\":\"1:100\",\n",
"\"K0514007B\":\"000598,000831,002015,002016,002017,002018,002021,003521,003524,003527,003528,003530,003532,003533,003534\",\n", "\"test2\":\"101:110\"\n",
"\"K0515002B\":\"002055,002057,003542\",\n",
"\"K0515003B\":\"000168,000763,002076,002078,002085,002086,002088,003541,003542,003544,003545,003551,003758,004167\",\n",
"\"K0515004B\":\"002079,003541,003542\",\n",
"\"K0515005B\":\"000172,000900,001998,002076,003542,003544,003545,003549,003551,004167\",\n",
"\"K0515006B\":\"003542\",\n",
"\"K0515007B\":\"000172,000763,000900,001279,001998,002080,002081,002086,003544,003545,003549,003551\",\n",
"\n",
"\n", "\n",
"}\n", "}\n",
"\n", "\n",
@ -140,7 +109,8 @@
" problemset = pro_dict[id]\n", " problemset = pro_dict[id]\n",
" problem = problemset[\"content\"]\n", " problem = problemset[\"content\"]\n",
" solution = (problemset[\"solution\"] if problemset[\"solution\"] != \"\" else \"暂无解答与提示\")\n", " solution = (problemset[\"solution\"] if problemset[\"solution\"] != \"\" else \"暂无解答与提示\")\n",
" answer = (problemset[\"ans\"] if problemset[\"ans\"] != \"\" else \"暂无答案\")\n", " answer = \"\\\\textcolor{red}{\" + (problemset[\"ans\"] if problemset[\"ans\"] != \"\" else \"暂无答案\") + \"}\"\n",
" remarks = (problemset[\"remark\"] if problemset[\"remark\"] != \"\" else \"暂无备注\")\n",
" usages_list = problemset[\"usages\"]\n", " usages_list = problemset[\"usages\"]\n",
" if len(usages_list) > 0:\n", " if len(usages_list) > 0:\n",
" usage = re.sub(\"\\\\t([\\d]\\.[\\d]{0,10})\",color_value,\"\\n\\n\".join(usages_list))\n", " usage = re.sub(\"\\\\t([\\d]\\.[\\d]{0,10})\",color_value,\"\\n\\n\".join(usages_list))\n",
@ -160,7 +130,7 @@
" objects_string = \"目标\" + obj + \"有误\\n\\n\"\n", " objects_string = \"目标\" + obj + \"有误\\n\\n\"\n",
" break\n", " break\n",
" else:\n", " else:\n",
" objects_string += obj + \"|\" + obj_dict[obj][\"content\"] + \"\\n\\n\"\n", " objects_string += \"\\\\textcolor{blue}{\" + obj + \"|\" + obj_dict[obj][\"content\"] + \"}\\n\\n\"\n",
" objects = objects_string\n", " objects = objects_string\n",
" space = (\"\" if problemset[\"space\"] == \"\" else r\"\\vspace*{\"+problemset[\"space\"]+\"}\\n\")\n", " space = (\"\" if problemset[\"space\"] == \"\" else r\"\\vspace*{\"+problemset[\"space\"]+\"}\\n\")\n",
" tags = (\"|\".join(problemset[\"tags\"]) if len(problemset[\"origin\"])>0 else \"暂无标签\")\n", " tags = (\"|\".join(problemset[\"tags\"]) if len(problemset[\"origin\"])>0 else \"暂无标签\")\n",
@ -190,26 +160,6 @@
" print(os.system(\"xelatex -interaction=batchmode -output-directory=\" + directory + \" \"+ students_latex_file))\n" " print(os.system(\"xelatex -interaction=batchmode -output-directory=\" + directory + \" \"+ students_latex_file))\n"
] ]
}, },
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['3327', '139', '1851', '1848']"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"problems"
]
},
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
@ -220,7 +170,7 @@
], ],
"metadata": { "metadata": {
"kernelspec": { "kernelspec": {
"display_name": "Python 3.9.7 ('base')", "display_name": "Python 3.8.8 ('base')",
"language": "python", "language": "python",
"name": "python3" "name": "python3"
}, },
@ -234,12 +184,12 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.9.7" "version": "3.8.8"
}, },
"orig_nbformat": 4, "orig_nbformat": 4,
"vscode": { "vscode": {
"interpreter": { "interpreter": {
"hash": "e4cce46d6be9934fbd27f9ca0432556941ea5bdf741d4f4d64c6cd7f8dfa8fba" "hash": "d311ffef239beb3b8f3764271728f3972d7b090c974f8e972fcdeedf230299ac"
} }
} }
}, },

View File

@ -2,7 +2,7 @@
"cells": [ "cells": [
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 2, "execution_count": 1,
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
@ -15,9 +15,9 @@
"题块 2 处理完毕.\n", "题块 2 处理完毕.\n",
"正在处理题块 3 .\n", "正在处理题块 3 .\n",
"题块 3 处理完毕.\n", "题块 3 处理完毕.\n",
"开始编译教师版本pdf文件: 临时文件/测验04预选_教师_20221003.tex\n", "开始编译教师版本pdf文件: 临时文件/测验04预选_教师_20221007.tex\n",
"0\n", "0\n",
"开始编译学生版本pdf文件: 临时文件/测验04预选_学生_20221003.tex\n", "开始编译学生版本pdf文件: 临时文件/测验04预选_学生_20221007.tex\n",
"0\n" "0\n"
] ]
} }
@ -144,7 +144,8 @@
" problemset = pro_dict[id]\n", " problemset = pro_dict[id]\n",
" problem = problemset[\"content\"]\n", " problem = problemset[\"content\"]\n",
" solution = (problemset[\"solution\"] if problemset[\"solution\"] != \"\" else \"暂无解答与提示\")\n", " solution = (problemset[\"solution\"] if problemset[\"solution\"] != \"\" else \"暂无解答与提示\")\n",
" answer = (problemset[\"ans\"] if problemset[\"ans\"] != \"\" else \"暂无答案\")\n", " answer = \"\\\\textcolor{red}{\" + (problemset[\"ans\"] if problemset[\"ans\"] != \"\" else \"暂无答案\") + \"}\"\n",
" remarks = (problemset[\"remark\"] if problemset[\"remark\"] != \"\" else \"暂无备注\")\n",
" usages_list = problemset[\"usages\"]\n", " usages_list = problemset[\"usages\"]\n",
" if len(usages_list) > 0:\n", " if len(usages_list) > 0:\n",
" usage = re.sub(\"\\\\t([\\d]\\.[\\d]{0,10})\",color_value,\"\\n\\n\".join(usages_list))\n", " usage = re.sub(\"\\\\t([\\d]\\.[\\d]{0,10})\",color_value,\"\\n\\n\".join(usages_list))\n",
@ -164,7 +165,7 @@
" objects_string = \"目标\" + obj + \"有误\\n\\n\"\n", " objects_string = \"目标\" + obj + \"有误\\n\\n\"\n",
" break\n", " break\n",
" else:\n", " else:\n",
" objects_string += obj + \"|\" + obj_dict[obj][\"content\"] + \"\\n\\n\"\n", " objects_string += \"\\\\textcolor{blue}{\" + obj + \"|\" + obj_dict[obj][\"content\"] + \"}\\n\\n\"\n",
" objects = objects_string\n", " objects = objects_string\n",
" space = (\"\" if problemset[\"space\"] == \"\" else \"\\n\"+r\"\\vspace*{\"+problemset[\"space\"]+\"}\\n\")\n", " space = (\"\" if problemset[\"space\"] == \"\" else \"\\n\"+r\"\\vspace*{\"+problemset[\"space\"]+\"}\\n\")\n",
" tags = (\"|\".join(problemset[\"tags\"]) if len(problemset[\"origin\"])>0 else \"暂无标签\")\n", " tags = (\"|\".join(problemset[\"tags\"]) if len(problemset[\"origin\"])>0 else \"暂无标签\")\n",

View File

@ -9,8 +9,8 @@
"name": "stdout", "name": "stdout",
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
"开始编译单元与课时目标信息pdf文件: 临时文件/课时目标及单元目标_20221004.tex\n", "开始编译单元与课时目标信息pdf文件: 临时文件/课时目标及单元目标表_20221007.tex\n",
"开始编译课时划分信息pdf文件: 临时文件/课时划分_20221004.tex\n" "开始编译课时划分信息pdf文件: 临时文件/按课时分类目标及题目清单_20221007.tex\n"
] ]
}, },
{ {
@ -28,13 +28,13 @@
"import os,re,time,json\n", "import os,re,time,json\n",
"\n", "\n",
"\"\"\"\n", "\"\"\"\n",
"目录下 课时划分.tex 与 课时目标及单元目标.tex 文件不能缺失\n", "\"/模板文件\"目录下 课时划分.tex 与 课时目标及单元目标.tex 文件不能缺失\n",
"\"\"\"\n", "\"\"\"\n",
"\n", "\n",
"\"\"\"---设置文件名---\"\"\"\n", "\"\"\"---设置文件名---\"\"\"\n",
"#目录和文件的分隔务必用/\n", "#目录和文件的分隔务必用/\n",
"lessoncut_file = \"临时文件/课时分\" \n", "lessoncut_file = \"临时文件/课时分类目标及题目清单\" \n",
"lessonobj_file = \"临时文件/课时目标及单元目标\" \n", "lessonobj_file = \"临时文件/课时目标及单元目标\" \n",
"\"\"\"---设置文件名结束---\"\"\"\n", "\"\"\"---设置文件名结束---\"\"\"\n",
"\n", "\n",
"#读取系统日期\n", "#读取系统日期\n",

View File

@ -2,22 +2,22 @@
"cells": [ "cells": [
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 2, "execution_count": 4,
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
"name": "stdout", "name": "stdout",
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
"开始编译教师版本pdf文件: 临时文件/数列未标注_教师用_20221004.tex\n", "开始编译教师版本pdf文件: 临时文件/测试_教师用_20221007.tex\n",
"0\n", "0\n",
"开始编译学生版本pdf文件: 临时文件/数列未标注_学生用_20221004.tex\n", "开始编译学生版本pdf文件: 临时文件/测试_学生用_20221007.tex\n",
"0\n" "0\n"
] ]
} }
], ],
"source": [ "source": [
"import os,re,time,json\n", "import os,re,time,json,sys\n",
"\n", "\n",
"\"\"\"\n", "\"\"\"\n",
"模板文件目录下 题目清单.tex 文件不能缺失\n", "模板文件目录下 题目清单.tex 文件不能缺失\n",
@ -26,20 +26,17 @@
"\"\"\"---设置题目列表---\"\"\"\n", "\"\"\"---设置题目列表---\"\"\"\n",
"#留空为编译全题库, a为读取临时文件中的题号筛选.txt文件生成题库\n", "#留空为编译全题库, a为读取临时文件中的题号筛选.txt文件生成题库\n",
"problems = r\"\"\"\n", "problems = r\"\"\"\n",
"003596,003600,003616,003630,003638,003651,003657,003661,003672,003682,003686,003687,003691,003696,003701,003713,003715,003737,003743,003749,003763,003782,003786,003802,003811,003813,003822,003832,003834,003843,003852,003859,003874,003882,003901,003906,003919,003924,003927,003934,003939,003954,004077,004082,004095,004100,004114,004121,004128,004142,004163,004166,004178,004183,004189,004205,004210,004216,004226,004245,004263,004268,004280,004294,004310,004321,004331,004334,004340,004342,004352,004472,004476,004488,004497,004507,004513,004519,004521,004528,004537,004545,004551,004553,004568,004571,004627,004632,004638,004651,004653,004660,004693,004695,004700,004716,004723,004732,004744,004748,004751,004765,006652,006653,006654,006655,006656,006657,006658,006659,006660,006661,006662,006663,006664,006665,006666,006667,006668,006669,006670,006671,006672,006673,006674,006675,006676,006677,006678,006679,006680,006681,006682,006683,006684,006685,006686,006687,006688,006689,006690,006691,006692,006693,006694,006695,006696,006697,006698,006699,006700\n", "\n",
"\n", "\n",
"\"\"\"\n", "\"\"\"\n",
"\"\"\"---设置题目列表结束---\"\"\"\n", "\"\"\"---设置题目列表结束---\"\"\"\n",
"\n", "\n",
"\"\"\"---设置文件名---\"\"\"\n", "\"\"\"---设置文件名---\"\"\"\n",
"#目录和文件的分隔务必用/\n", "#目录和文件的分隔务必用/\n",
"filename = \"临时文件/数列未标注\"\n", "filename = \"临时文件/测试\"\n",
"\"\"\"---设置文件名结束---\"\"\"\n", "\"\"\"---设置文件名结束---\"\"\"\n",
"\n", "\n",
"\n", "\n",
"if problems.strip()[0] == \"a\":\n",
" with open(\"临时文件/题号筛选.txt\",\"r\",encoding = \"utf8\") as f:\n",
" problems = f.read()\n",
"\n", "\n",
"#读取系统日期\n", "#读取系统日期\n",
"current_time = time.localtime()\n", "current_time = time.localtime()\n",
@ -90,6 +87,9 @@
"#生成题目列表\n", "#生成题目列表\n",
"if problems.strip() == \"\":\n", "if problems.strip() == \"\":\n",
" problem_list = list(pro_dict.keys())\n", " problem_list = list(pro_dict.keys())\n",
"elif problems.strip()[0] == \"a\":\n",
" with open(\"临时文件/题号筛选.txt\",\"r\",encoding = \"utf8\") as f:\n",
" problems = f.read()\n",
"else:\n", "else:\n",
" problem_list = [id for id in generate_number_set(problems.strip(),pro_dict) if id in pro_dict]\n", " problem_list = [id for id in generate_number_set(problems.strip(),pro_dict) if id in pro_dict]\n",
"\n", "\n",
@ -102,7 +102,7 @@
" problemset = pro_dict[id]\n", " problemset = pro_dict[id]\n",
" problem = problemset[\"content\"]\n", " problem = problemset[\"content\"]\n",
" solution = (problemset[\"solution\"] if problemset[\"solution\"] != \"\" else \"暂无解答与提示\")\n", " solution = (problemset[\"solution\"] if problemset[\"solution\"] != \"\" else \"暂无解答与提示\")\n",
" answer = (problemset[\"ans\"] if problemset[\"ans\"] != \"\" else \"暂无答案\")\n", " answer = \"\\\\textcolor{red}{\" + (problemset[\"ans\"] if problemset[\"ans\"] != \"\" else \"暂无答案\") + \"}\"\n",
" remarks = (problemset[\"remark\"] if problemset[\"remark\"] != \"\" else \"暂无备注\")\n", " remarks = (problemset[\"remark\"] if problemset[\"remark\"] != \"\" else \"暂无备注\")\n",
" usages_list = problemset[\"usages\"]\n", " usages_list = problemset[\"usages\"]\n",
" if len(usages_list) > 0:\n", " if len(usages_list) > 0:\n",
@ -123,7 +123,7 @@
" objects_string = \"目标\" + obj + \"有误\\n\\n\"\n", " objects_string = \"目标\" + obj + \"有误\\n\\n\"\n",
" break\n", " break\n",
" else:\n", " else:\n",
" objects_string += obj + \"|\" + obj_dict[obj][\"content\"] + \"\\n\\n\"\n", " objects_string += \"\\\\textcolor{blue}{\" + obj + \"|\" + obj_dict[obj][\"content\"] + \"}\\n\\n\"\n",
" objects = objects_string\n", " objects = objects_string\n",
" space = (\"\" if problemset[\"space\"] == \"\" else \"\\n\"+r\"\\vspace*{\"+problemset[\"space\"]+\"}\\n\")\n", " space = (\"\" if problemset[\"space\"] == \"\" else \"\\n\"+r\"\\vspace*{\"+problemset[\"space\"]+\"}\\n\")\n",
" tags = (\"|\".join(problemset[\"tags\"]) if len(problemset[\"origin\"])>0 else \"暂无标签\")\n", " tags = (\"|\".join(problemset[\"tags\"]) if len(problemset[\"origin\"])>0 else \"暂无标签\")\n",
@ -138,6 +138,12 @@
"#替换latex文件的内容并编译\n", "#替换latex文件的内容并编译\n",
"with open(\"模板文件/题目清单.tex\",\"r\",encoding = \"utf8\") as f:\n", "with open(\"模板文件/题目清单.tex\",\"r\",encoding = \"utf8\") as f:\n",
" latex_raw = f.read()\n", " latex_raw = f.read()\n",
"\n",
"#识别操作系统\n",
"if sys.platform != \"win32\":\n",
" latex_raw = re.sub(r\"fontset[\\s]*=[\\s]*windows\",\"fontset = fandol\",latex_raw)\n",
" latex_raw = re.sub(r\"\\\\setCJKmainfont\",r\"% \\\\setCJKmainfont\",latex_raw)\n",
"\n",
"latex_teachers = latex_raw.replace(\"编译模板\",data_teachers)\n", "latex_teachers = latex_raw.replace(\"编译模板\",data_teachers)\n",
"with open(teachers_latex_file,\"w\",encoding = \"utf8\") as f:\n", "with open(teachers_latex_file,\"w\",encoding = \"utf8\") as f:\n",
" f.write(latex_teachers)\n", " f.write(latex_teachers)\n",

View File

@ -8,7 +8,7 @@
## 用法 ## 用法
第一个单元格中需要设置四个位置: ### 第一个单元格中需要设置四个位置
- ``starting_id``: 整数. 起始id号, 这个号码注意不要和已有的id重复, 可在``Problems.json``中查询空闲id. 处理中如果有重复id的话程序会报重复, 并且不会写入新题目到数据库 - ``starting_id``: 整数. 起始id号, 这个号码注意不要和已有的id重复, 可在``Problems.json``中查询空闲id. 处理中如果有重复id的话程序会报重复, 并且不会写入新题目到数据库
@ -16,4 +16,103 @@
- ``filename``: 字符串. .tex文件的文件名(含路径) - ``filename``: 字符串. .tex文件的文件名(含路径)
- ``editor``: 字符串. 编辑及收录者姓名, 用"\t"分隔日期(yyyymmdd)及姓名, 例如"20221007\t张三" - ``editor``: 字符串. 编辑及收录者姓名, 用"\t"分隔日期(yyyymmdd)及姓名, 例如"20221007\t张三"
### 随后运行第二个单元格
即可看到``Problems.json``文件的变化
# 在vscode中编辑数据库中的单题
## 工具文件
``修改题目数据库.ipynb``
## 功能简介
自动定位, 简单编辑(非可见即所得)题目数据库中的题目
## 用法
第一个单元格中设置id, 至多六位的整数, 随后运行. vscode将会打开``Problems.json``文件, 并自动定位到指定题目处.
# 按照单元/课时/课时目标对题库中的题目作清点并分类
## 工具文件
``单元课时目标题目数据清点.ipynb``
## 功能简介
按照 单元/课时/课时目标 三种不同的分类方式清点题库中的题目, 并生成分类结果.
## 用法
运行第一个单元格后, 会在工具相应的目录中的"临时文件"子目录下生成一个``单元课时目标题目数据清点结果.txt``的文本文件
# 汇总课时目标及课时划分信息, 并编译为两个.pdf文件
## 工具文件
``课时目标及课时划分信息汇总.ipynb``
## 功能简介
- 依据``UnitObj.json``文件中的数据以及``LessonObj.json``中的数据进行整理, 形成单元-课时学习目标表, 并编译为.pdf
- 依据``LessonObj.json``, ``LessonsCut.josn``以及``Problems.json``文件中的数据进行整理, 形成每一课时的相关目标, 题目的清单, 并编译为.pdf
## 依赖文件
项目目录下``题库0.3``子目录中的
- ``LessonObj.json``数据库文件
- ``LessonsCut.json``数据库文件
- ``UnitObj.json``数据库文件
- ``Problems.json``数据库文件
工具文件目录下``模板文件``子目录中的
- ``课时划分.tex``模板文件
- ``课时目标及单元目标.tex``模板文件
## 用法
在第一个单元格中设置输出的文件名, 最终的文件名会在设置的文件名后加上日期(yyyymmdd).
运行第一个单元格即可得到两个.tex文件与两个.pdf文件.
# 将指定题号的题目从数据库中取出, 并编译成"只含题目的pdf"与"包含更多信息的pdf"两个文件
## 工具文件
``题号选题pdf生成.ipynb``
## 功能简介
指定一个题号列表(字符串格式, 用"m:n"表示"m到n", 用","分隔), 将列表中的包含在题库中的id对应的题目取出, 并编译成"只含题目的pdf"文件与"包含更多信息的pdf"文件.
## 依赖文件
项目目录下``题库0.3``子目录中的
- ``Problems.json``数据库文件
- ``LessonObj.json``数据库文件
工具文件目录下``模板文件``子目录中的
- ``题目清单.tex``模板文件
(可选择)工具文件目录下``临时文件``子目录中的
- ``题号筛选.txt``题号列表文件
## 用法
### 设置需要生成pdf的题目范围
- 方法1: 编译全题库, 只需将``problems``字符串变量留空
- 方法2: 编译``临时文件/题号筛选.txt``文本文件中的题号列表对应的题目, 只需将``problems``字符串设为"a", 前后可以有空格
- 方法3: 编译指定的题号列表, 只需将``problems``变量编辑为需要编译的题目列表字符串即可, 用"m:n"表示"m到n", 用","分隔.
例如"2:5,101"表示需要id为000002,000003,000004,000005,000101的五道题目.
### 设置输出文件的文件名
修改``filename``变量中的字符串, 建议"临时文件"不要改动, 后面的文件名可以改动. 生成的两个pdf会加上"_学生用_yyyymmdd.pdf"的后缀(只含题目)与"_教师用_yyyymmdd.pdf"的后缀(含有更多信息, 答案为红色, 目标为蓝色, 便于区分)
### 设置完成之后执行第一个单元格
等候一小段时间, 返回值为0表明编译成功.

View File

@ -22286,7 +22286,7 @@
}, },
"000883": { "000883": {
"id": "000883", "id": "000883",
"content": "已知$\\overrightarrow{AB}=3\\overrightarrow{AP}$, 设$\\overrightarrow{BP}=\\lambda \\overrightarrow{PA}$, 则实数$\\lambda=$\\blank{50}.", "content": "已知$A,B,P$三点两两不重合, 且$\\overrightarrow{AB}=3\\overrightarrow{AP}$, 设$\\overrightarrow{BP}=\\lambda \\overrightarrow{PA}$, 则实数$\\lambda=$\\blank{50}.",
"objs": [ "objs": [
"K0503001B" "K0503001B"
], ],