diff --git a/文档/使用指南/使用指南2024.md b/文档/使用指南/使用指南2024.md index 55107940..40de49ae 100644 --- a/文档/使用指南/使用指南2024.md +++ b/文档/使用指南/使用指南2024.md @@ -6,6 +6,8 @@ ## 注意事项 +**所有同志可以放心大胆地在自己的电脑上进行任何操作, 不用担心产生任何破坏性后果. 在远程服务器上的master分支只有管理员有权限修改. 退一步说, 即使远程服务器上的master分支不慎被改错了, 返回到某一个历史版本也只是一条命令的事情.** + **原则上题库内容中不出现全角的句号(。)、逗号(,)、冒号(:)、问号(?)、感叹号(!)、小括号(())等** **半角的标点符号后面一般应该有半角的空格或是直接换行** @@ -93,11 +95,16 @@ mathpix是一个非常好用的数学文字和公式转换工具, 唯一的缺 1. 在资源管理器中打开这个文件(肉眼可见其中的内容). 2. 启动mathpix客户端(一般会隐藏在右下角) + ![mathpix客户端图标](http://wwylss.synology.me:48089/i/2024/02/08/65c4ea8669dcf.png) + 3. 右键点击图标, 在弹出的菜单中选``GET LATEX``(后面跟着的是快捷键) 4. 屏幕会变成灰黑色, 并且有一个十字表示鼠标当前位置, 拖一个红色的矩形框圈住所有想要识别的文字(表会被识别, 图不会), 等待一会儿 + ![截图识别界面](http://wwylss.synology.me:48089/i/2024/02/08/65c4eb8f7d4ef.png) + 5. 在mathpix窗口中按图示方式点击, 将LaTeX代码复制到剪贴板 + ![将源代码复制到剪贴板](http://wwylss.synology.me:48089/i/2024/02/08/65c4ebe832e56.png) ### 识别的内容复制到剪贴板之后的操作 @@ -105,17 +112,24 @@ mathpix是一个非常好用的数学文字和公式转换工具, 唯一的缺 #### 作一些预处理, 使风格和题库中的题目的风格一致, 并确保LaTeX代码没有语法错误 1. 在面板上点击``其他``-``mathpix识别文字预处理``, 点击绿色的``运行``, 这会预处理识别的结果, 预处理后的结果仍然在剪贴板中 + ![mathpix识别文字预处理](http://wwylss.synology.me:48089/i/2024/02/08/65c4ed4ba5c77.png) + 2. 在``vscode``中打开``模板文件/讲义模板.txt``, 另存为``临时文件``中任意一个以``.tex``结尾的文件, 例如``test01.tex`` + ![文件另存为](http://wwylss.synology.me:48089/i/2024/02/08/65c4ee76a0db9.png) + 3. 在该``.tex``文件中将图中的``<<待替换2>>``替换为如下代码(粘贴后如果有代码缩进, 全选按-可取消缩进) ```latex \begin{enumerate} <剪贴板中的代码> \end{enumerate} ``` + ![原始文件](http://wwylss.synology.me:48089/i/2024/02/08/65c4f6ec27eb2.png) + ![替换后的文件](http://wwylss.synology.me:48089/i/2024/02/08/65c4f7ad2739b.png) + 4. 按``ctrl-alt-b``编译, 如果下方状态栏的圈转了之后显示勾, 说明编译成功, 这时可按``ctrl-alt-v``查看编译结果; 如果显示红色的叉, 说明文件有问题, 需要自己或有经验的同伴帮忙检查一下 5. 题目中或多或少会有一些问题, 这一步先不用修改. 6. 全选``.tex``文件的内容, 并复制到剪贴板. @@ -129,14 +143,22 @@ mathpix是一个非常好用的数学文字和公式转换工具, 唯一的缺 对于相关的题, 也希望能在收录时做好``相关``的标记(``related``). 1. **在上一步的``.tex``源代码全部被复制到剪贴板之后**, 紧接着用面板进行新题比对, 在面板的``录入``菜单中选择``新题比对``, 立即点击``运行``按钮 + ![运行新题比对脚本](http://wwylss.synology.me:48089/i/2024/02/09/65c4fdc5d2b96.png) + 2. 在``vscode``中会呈现一个名为``新题比对.tex``的LaTeX源文件, 在该窗口内按``ctrl-alt-b``进行编译, 如果编译通过的话按``ctrl-alt-v``在右侧预览 + ![新题比对预览](http://wwylss.synology.me:48089/i/2024/02/09/65c56fed7d851.png) + 3. 右侧pdf中的每一道题之后可能会有几个色块, 每一个色块表示一道*字符串意义下*和原题比较接近的题目(Levenshtein jaro算法), 源代码的``\item``后面有一个中括号, 中括号内是色块中题目的题号. 色块越红越表示越接近. 4. 如果在色块中的题目和打算导入的新题是相同的, 可以用原有的题目替代, 那么在中括号中的题号前加上``rep``字样(同时本题其他色块题号的标注都作为无效). + ![rep的展示](http://wwylss.synology.me:48089/i/2024/02/09/65c5715d00f40.png) + 5. 如果在色块中的题目和打算导入的新题是相同的, 但依然打算导入为新题, 那么在中括号中的题号前加上``s``字样(同时本题其他色块题号的``s``,``r``标注依然有效), 如下图 + ![s和r的展示](http://wwylss.synology.me:48089/i/2024/02/09/65c572b47cdef.png) + 6. 如果在色块中的题目和打算导入的新题是相关的, 那么在中括号中的题号前加上``r``字样(同时本题其他色块题号的``s``,``r``标注依然有效), 如上图 7. 在做标记时, 仔细检查欲导入的题目内容是否有明显问题, 图不会画的话在题目后方打上``缺图``字样, 后续管理员会跟进处理 8. 标记期间随时可以保存或编译(编译时会自动保存), **标记完成后记得**``ctrl-alt-b``**编译**, 确定没有语法错误 @@ -144,15 +166,20 @@ mathpix是一个非常好用的数学文字和公式转换工具, 唯一的缺 #### 将标记完成的题目及相关信息一并收录到题库 1. 在面板上选``录入``-``批量收录题目`` + ![批量收录题目](http://wwylss.synology.me:48089/i/2024/02/09/65c5738d0e250.png) + 2. 在``vscode``的``批量收录题目.py``窗口中修改以下信息: + ![批量收录题目设置](http://wwylss.synology.me:48089/i/2024/02/09/65c5740c1ca84.png) + 1. ``starting_id``表示起始题号(``int``类型), 如果起始题号被占用, 则会自动寻找之后的第一个空闲题号作为起始 2. ``raworigin``表示题目来源, 如果没有明确的出处建议使用``自拟题目``字符串 3. ``editor``表示收录者, 改为自己的名字 4. ``IndexDescription``是字符串, 默认留空; 如果新试题来自一张试卷, 将其改为``"试题"``, 效果是收录题目时会对题目的题号做标注, 类似``2023年上海秋季高考试题3`` 3. 编辑完成后保存, 关闭, 随后在面板上点击``运行``按钮 4. 终端会显示收录的进度, 收录完成后``vscode``会打开一个名为``新题收录列表.txt``的窗口, 最后两行就是本次收录的信息(日期, 题号等) + ![新题收录列表](http://wwylss.synology.me:48089/i/2024/02/09/65c575590196c.png) 随后如果有必要, 可添加``Problems.json``及``新题收录列表.txt``至暂存区, 之后可以commit到本地的repository, 乃至push到远程的服务器. @@ -161,15 +188,21 @@ mathpix是一个非常好用的数学文字和公式转换工具, 唯一的缺 1. 在题库中选择需要添加关联题的旧题目的题号(可用``:``和``,``进行分隔) 2. 在面板上选择``录入``-``添加关联题目`` + ![面板添加关联题目](http://wwylss.synology.me:48089/i/2024/02/09/65c58dd36123c.png) + 3. 对``vscode``中打开的``添加关联题目.py``进行编辑, 一般需要修改以下三处 + ![编辑添加关联题目](http://wwylss.synology.me:48089/i/2024/02/09/65c58e9bf11f5.png) + 1. 修改被关联的题号(可用``:``和``,``进行分隔) 2. 新题目的起始题号(``int``类型), 如果起始题号被占用, 则会自动寻找之后的第一个空闲题号作为起始 3. 编辑者姓名 4. 保存后关闭``添加关联题目.py``, 在面板上点击``运行`` 5. 在``vscode``中会打开一个``problems.json``的文件, 目前它将旧题目的信息复制了过来, 在``related``字段(黄色框)中自动建立了关联. + ![编辑problems_edit.json](http://wwylss.synology.me:48089/i/2024/02/09/65c58fca9233f.png) + 6. 在编辑时(见上图), ``id``字段**一定不要改动**, ``content``字段中保存的是raw格式的字符串, 和LaTeX代码主要的区别如下: |raw格式|LaTeX格式| @@ -248,14 +281,21 @@ usages 使用过程中, 往往会发现题库中已有的题目, 答案, 解答, 备注有错误或瑕疵, 需要修改. 这些修改不应该仅停留在讲义上(否则下次使用同一道题目还会有同样的错误), 而是应该在题库中被永久保留下来. 如果仅仅是对[题目/答案/解答/备注]的修改, 可以按LaTeX代码的方式进行操作(比直接编辑json直观), 具体方法如下: 1. 在面板上选择``维护``-``LaTeX编辑题目答案及提示`` + ![LaTeX编辑](http://wwylss.synology.me:48089/i/2024/02/09/65c59794438eb.png) + 2. 在打开的``latex编辑题目答案及提示.py``文件中修改一些信息 + ![设置题号和编辑者](http://wwylss.synology.me:48089/i/2024/02/09/65c597ec21af6.png) + 1. 要被编辑的题号(可用``:``和``,``进行分隔) 2. 编辑者 3. 信息修改完成后保存, 关闭``latex编辑题目答案及提示.py``, 在面板上点击``运行`` + 4. 以LaTeX的方式对``vscode``中新展示的``problem_edit.tex``进行对应的编辑, 主要的编辑在四个红色方框处, 分别是题目内容, 答案, 解答与提示, 备注. 注意在编辑时[答案/解答与提示/备注]后面**冒号之后的空格和空行都不要删除**. + ![编辑内容](http://wwylss.synology.me:48089/i/2024/02/09/65c59905c1f16.png) + 5. 编辑完成后保存, 关闭, 程序会试编译编辑以后的信息. 如果试编译失败, 则刚才的所有编辑将全部失效(所以每次建议少编辑几个信息), 题库文件将退回原状; 如果试编译成功, 则``Problems.json``中的相应位置会添加对应的关联题目 随后如果有必要, 可添加``Problems.json``至暂存区, 之后可以commit到本地的repository, 乃至push到远程的服务器. @@ -265,14 +305,20 @@ usages 使用过程中, 有时会发现题库中已有的题目的其他信息也有错误或瑕疵(例如题目类型指定错误等), 需要修改. 这些修改同样应该在题库中被永久保留下来. 它们都可以按json代码的方式进行修改, 具体方法如下: 1. 在面板上选择``维护``-``json编辑题目综合信息`` + ![json编辑题目综合信息](http://wwylss.synology.me:48089/i/2024/02/09/65c59b5a3d124.png) + 2. 在打开的``json编辑题目综合信息.py``文件中修改一些信息 + ![设置题号和编辑者](http://wwylss.synology.me:48089/i/2024/02/09/65c59ba946f3b.png) + 1. 要被编辑的题号(可用``:``和``,``进行分隔) 2. 编辑者 3. 信息修改完成后保存, 关闭``json编辑题目综合信息.py``, 在面板上点击``运行`` 4. 在``vscode``对新展示的``problem_edit.json``进行对应的编辑(例如下图中的全角分号改为``; ``[半角分号空格]). 编辑时字段名, 含义, 类型参考``导入metadata``部分的说明 + ![json文件内容](http://wwylss.synology.me:48089/i/2024/02/09/65c59c72f3cb0.png) + 5. 编辑完成后保存, 关闭, 程序会试编译编辑以后的信息. 如果试编译失败, 则刚才的所有编辑将全部失效(所以每次建议少编辑几个信息), 题库文件将退回原状; 如果试编译成功, 则``Problems.json``中的相应位置会添加对应的关联题目 随后如果有必要, 可添加``Problems.json``至暂存区, 之后可以commit到本地的repository, 乃至push到远程的服务器. @@ -282,33 +328,49 @@ usages ###
案例1 筛选内容中同时含有``最小值``(或``最大值``) ``函数`` ``^3``(3次方)字样的题目
1. 在面板上选择``使用``-``关键字筛选题号`` + ![关键字筛选题号](http://wwylss.synology.me:48089/i/2024/02/09/65c5aba3ebb2e.png) + 2. 将``vscode``窗口中的``关键字筛选题号.py``文件的开头部分修改为如图 + ![案例1](http://wwylss.synology.me:48089/i/2024/02/09/65c5ac1d6ad22.png) + 3. 保存修改后关闭``关键字筛选题号.py``, 在面板上点击``运行``, 一小段时间之后``vscode``就会显示选中的题号字符串了, 需要的话可以复制下来 ###
案例2 筛选2026届有使用记录, 题目中没有大于等于号, 也没有小于等于号, 并且标签含``第一单元``(预备知识)的题目
1. 在面板上选择``使用``-``关键字筛选题号`` + ![关键字筛选题号](http://wwylss.synology.me:48089/i/2024/02/09/65c5aba3ebb2e.png) + 2. 将``vscode``窗口中的``关键字筛选题号.py``文件的开头部分修改为如图 + ![案例2](http://wwylss.synology.me:48089/i/2024/02/09/65c5adac6a97c.png) + 3. 保存修改后关闭``关键字筛选题号.py``, 在面板上点击``运行``, 一小段时间之后``vscode``就会显示选中的题号字符串了, 需要的话可以复制下来 ###
案例3 筛选2024届的使用记录中出现过``0.1??``或``0.2??``的所有题目
1. 在面板上选择``使用``-``关键字筛选题号`` + ![关键字筛选题号](http://wwylss.synology.me:48089/i/2024/02/09/65c5aba3ebb2e.png) + 2. 将``vscode``窗口中的``关键字筛选题号.py``文件的开头部分修改为如图 + ![案例3](http://wwylss.synology.me:48089/i/2024/02/09/65c5aebe75722.png) + 3. 保存修改后关闭``关键字筛选题号.py``, 在面板上点击``运行``, 一小段时间之后``vscode``就会显示选中的题号字符串了, 需要的话可以复制下来 ###
案例3 筛选答案中含有``$2$``(LaTeX公式环境下的2)的所有题目
1. 在面板上选择``使用``-``关键字筛选题号`` + ![关键字筛选题号](http://wwylss.synology.me:48089/i/2024/02/09/65c5aba3ebb2e.png) + 2. 将``vscode``窗口中的``关键字筛选题号.py``文件的开头部分修改为如图 + ![案例4](http://wwylss.synology.me:48089/i/2024/02/09/65c5afe7d1fb2.png) + 3. 保存修改后关闭``关键字筛选题号.py``, 在面板上点击``运行``, 一小段时间之后``vscode``就会显示选中的题号字符串了, 需要的话可以复制下来 ## 根据题号表达式(可含:或,的字符串)生成讲义 @@ -317,9 +379,13 @@ usages 1. 准备好一个题号字符串(例如来自于``关键字筛选题号``或者直接手搓一个比如``12300:12305,20100:20103``) 2. 在面板上选择``使用``-``多种题目生成`` + ![多种题目生成](http://wwylss.synology.me:48089/i/2024/02/09/65c5b20c6837f.png) + 3. 在``vscode``自动打开的``config.json``文件的``"多种题目生成.py"``部分进行编辑, 一个案例如图: + ![生成pdf的案例](http://wwylss.synology.me:48089/i/2024/02/09/65c5b3eff0b24.png) + 4. 编辑完成后保存, 关闭``config.json``, 点击``运行``, 稍等一会儿之后, 就能在``临时文件``文件夹中根据文件名或者修改时间找到按照要求编译的pdf文件了 ## 系列讲义生成 @@ -327,16 +393,56 @@ usages 除了根据自己的需求生成讲义之外, 用题库生成讲义的另一个主要方式是根据题库中现有的讲义结构生成一张或多张讲义. 从2023学年第2学期开始(部分年级从第1学期开始), 讲义的题号数据都被规范地保存在了我们的题库项目中. 以下是生成讲义的方法: 1. 在面板上选择``备课``-``系列讲义生成`` + ![系列讲义生成](http://wwylss.synology.me:48089/i/2024/02/09/65c5b7b09850b.png) + 2. 在``vscode``自动打开的``config.json``文件的``"系列讲义生成.py"``部分进行编辑, 一个案例如图: + ![编辑config.json文件](http://wwylss.synology.me:48089/i/2024/02/09/65c5ba0ee2b6e.png) -3. 编辑完成后保存, 关闭``config.json``, 点击``运行``, 稍等一会儿之后, 就能在指定的文件夹中根据文件名或者修改时间找到.tex文件(有单个的, 也有合集)和按照要求编译的.pdf文件了(根据设定, 合集文件命名为``合集.pdf``), 我们的案例将编译出一个715页的pdf文件, + +3. 编辑完成后保存, 关闭``config.json``, 点击``运行``, 稍等一会儿之后, 就能在指定的文件夹中根据文件名或者修改时间找到.tex文件(有单个的, 也有合集)和按照要求编译的.pdf文件了(根据设定, 合集文件命名为``合集.pdf``), 我们的案例将编译出一个715页的pdf文件 + 4. 其中单个的.tex文件都是可以打开编译或编辑的 ## 从LaTeX源文件中提取答案 -TBD +在目前的版本下, 自动编译的pdf中, 已经录入过的答案都用红色``\textcolor{red}{xxx}``表示, "暂无答案"字样均用蓝色``\textcolor{blue}{暂无答案}``表示. +建议把要添加答案的题目自动生成一个.tex文件(通过"根据题号表达式生成讲义"功能或"系列讲义生成"功能), 随后对.tex文件在vscode(个人)或overleaf(团队)上录入答案, 也就是把大括号中的"暂无答案"字样改为答案即可. 录入过程及录入后多编译查看效果和查看错误. + +无论答案是否已经录入完毕, 都可以通过面板上的``维护``-``文件或剪贴板提取答案``功能提取文件中(或剪贴板上)的LaTeX代码中的答案. + +例如为题号为1到100的还没有编写答案的题目编写答案的过程如下: + +1. 用题号为1-100的题目生成一个.tex文件(``使用``-``多种题目生成``), ``config.json``文件中的重要改变如图, 点``运行``, 稍候一会儿 + +![修订json](http://wwylss.synology.me:48089/i/2024/02/11/65c870c17bfad.png) + +2. 在``临时文件``中找到刚生成的``.tex``文件, 双击后在vscode中打开, ``ctrl-alt-b``编译, ``ctrl-alt-v``查看编译结果 + +![LaTeX源代码](http://wwylss.synology.me:48089/i/2024/02/11/65c8718cea4a2.png) + +![对应的pdf](http://wwylss.synology.me:48089/i/2024/02/11/65c8719f099d3.png) + +3. 修订蓝色的答案, 如果有红色的答案想要修订, 也把前面的red改为blue + +![LaTeX源代码修订后](http://wwylss.synology.me:48089/i/2024/02/11/65c8727fc0e24.png) + +![pdf修订后](http://wwylss.synology.me:48089/i/2024/02/11/65c8728eb0d1b.png) + +4. 完成修订后全选LaTeX代码, 复制到剪贴板. 在面板上选``维护``--``文件或剪贴板提取答案`` + +![提取答案](http://wwylss.synology.me:48089/i/2024/02/11/65c86e2d9adc9.png) + +5. 在随后``vscode``窗口的``config.json``中``文件或剪贴板提取答案.py``部分的``来自剪贴板:``后填入``true``(如果填入``false``的话, 需要修改下一行的``文件地址``为录入过答案的LaTeX文件的地址). ``前缀``一行不改动. + +![修改文件或剪贴板提取答案.py的json文件](http://wwylss.synology.me:48089/i/2024/02/11/65c876dd3bd70.png) + +6. 保存``config.json``并关闭, 在面板上点击``运行``. 题号与答案的对应就已经在``文本文件/metadata.txt``中了 + +![新录入的答案](http://wwylss.synology.me:48089/i/2024/02/11/65c8776a0b740.png) + +随后可以使用面板上的``维护``-``批量添加字段数据``功能将答案正式导入数据库. 之后如果有必要, 可添加``Problems.json``至暂存区, 之后可以commit到本地的repository, 乃至push到远程的服务器. ## 题目和单元挂钩