简介这份高中物理选修3-1全套课件以PDF形式呈现面向高中物理教师备课与选修3-1学习者复习使用围绕静电场主线系统梳理电荷及其守恒定律、库仑定律、电场强度与电场线等核心知识帮助读者建立从概念理解到定量分析的完整框架。资源包共1个PDF文件大小约25.24MB单份文档约240页适合课堂投屏、讲义打印或自主阅读。目前已有278人学习下载具备一定参考热度。课件不仅讲解静电场基本概念和规律还延伸到静电除尘、静电喷涂等实际应用并附教学建议与实验、探究活动思路教师可据此设计启发式课堂学生可用来梳理知识脉络、查漏补缺是一份兼顾知识完整性与教学实用性的选修3-1配套材料。1. 240页的物理课件PDF卡住人的从来不是内容够不够一套高中物理选修3-1的全套课件240页PDF摊开来是静电场、恒定电流、磁场三大块从库仑定律一路讲到带电粒子在匀强磁场里的圆周运动。内容通常不缺缺的是它已经是一件封死的成品例题里的数值改不动电场线的线宽调不了投影到教室最后一排时那行小字照样看不清。很多老师拿到手的第一反应是挺全的第二周就变成这页能不能挪到前面这张图能不能单独拿出来。这篇讲的就是把这样一份240页的课件 PDF从能看改成能改、能投、能复用的完整路径先做结构切片定位每个知识单元再把矢量图和公式从页面里救出来然后按教室尺寸反推字号和线宽最后把踩过的坑一次列清。适合教研组做统一备课、老师做二次加工、也适合做教育内容的人把一份成品课拆成可维护的素材库。2. 结构切片把240页PDF拆成可检索的知识单元拿到一份 240 页的课件最忌讳的操作是从第一页翻到最后一页边看边记。翻到第 150 页时前面记的东西基本忘光了而且你脑子里形成的印象是线性的这套课件真实的结构是树状的三个板块、十几个知识单元、每个单元下四五页。所以第一步不是读是量。量的意思是用程序把每一页的体徵打出来让 240 行数字替你建立全局印象。这一步做完后面所有工作都变成在索引表上做增删改而不是在 PDF 阅读器里反复跳。2.1 用文本密度和矢量密度画出240页的地形图先跑一个扫描脚本把每页的字数、位图数、矢量图元数、页面尺寸全部拉出来。import fitz # PyMuPDF doc fitz.open(physics-3-1-240p.pdf) for pno in range(doc.page_count): page doc[pno] text page.get_text(text) chars len(text.replace(\n, ).replace( , )) images len(page.get_images(fullTrue)) drawings len(page.get_drawings()) w, h round(page.rect.width), round(page.rect.height) print(f{pno 1:3} | {chars:4}字 | 位图{images:2} | 矢量{drawings:3} | {w}x{h})这三个指标各自对应一类页面读法很固定chars低于 40 的页基本是封面、章扉页、整页大图比如一张完整的电场线示意图。这些页不用花时间读但要登记因为它们是天然的章节分隔符。drawings超过 50 的页多半是电场线、等势面、磁感线、电路图或坐标轴。这类页是后面导出图片的主力来源要重点标记。images大于 0 的页说明页面里嵌了位图。位图可能是教材扫描插图、实验照片也可能是某些公式被导出成了图片。最后一种情况最麻烦必须单独识别出来。参数上有几个点值得说清。get_text(text)拿的是纯文本流顺序大致按版面从上到下够用来数字数如果要保留位置得用dict或blocks但代价是数据量大一个数量级240 页跑下来内存会明显上去做全量统计没必要。get_drawings()是这个脚本里最慢的一步240 页视图形复杂度大概几秒到几十秒一次跑完把结果存下来别反复跑。get_images(fullTrue)只返回页面引用的图像对象不包含矢量路径所以它和drawings是互补关系不能互相替代。页面尺寸那两列别忽略。720×540 pt 是 4:3 版面10×7.5 英寸960×540 pt 是 16:9 版面13.33×7.5 英寸。这套 240 页是按哪种做的直接决定第 4 章的字号换算基数先看一眼再往下走。2.2 建立PDF页—教材页—知识点—图元四列索引扫描结果出来之后人工过一遍低密度页和高矢量密度页把索引表建起来。这张表是整个流程的中枢后面所有的导出、重排、验收都靠它定位。PDF页教材页板块知识点图元类型复用方式1—封面—位图不用1210静电场电场强度的定义与方向矢量电场线导出 300dpi 位图1311静电场点电荷场强叠加矢量箭头标注裁矢量 PDF1412静电场电场线特点归纳文本为主直接重排1513静电场匀强电场矢量平行线导出位图6260恒定电流闭合电路欧姆定律矢量电路图裁矢量 PDF145143磁场左手定则判定矢量三维示意重绘第二列是这个表里最容易被低估的一列。课件 PDF 的物理页码和教材页码几乎从来不一致前面可能有 1 到 2 页封面和目录中间可能插了实验视频截图页、习题课补充页。更麻烦的是如果这份 240 页是多个来源拼接的中途插页会让偏移量在中途发生跳变。所以偏移量要按章分别记不能全局用一个常数。我的做法是在每章首页找一个锚点字符串比如第一节 电荷及其守恒定律用脚本把它的实际 PDF 页码打出来用这个页码反推该章的偏移量import fitz doc fitz.open(physics-3-1-240p.pdf) anchors [电荷及其守恒定律, 欧姆定律, 磁感应强度] for a in anchors: for pno in range(doc.page_count): if a in doc[pno].get_text(text): print(f{a} - PDF 第 {pno 1} 页) breakin做的是子串匹配前提是 PDF 里这行标题是可提取文本而不是图片。如果某个锚点搜不到八成是那页标题被转成了曲线或位图这时候回到 2.1 的扫描表找那一页附近chars突然掉到个位数的位置人工确认一下。2.3 用关键词密度反查板块的真实边界索引表建到一半你会发现一个问题目录页写的页码经常不准尤其是二次加工过的课件。可靠的边界判据不是目录是正文里专业术语的分布密度。import fitz from collections import Counter BLOCKS { 静电场: [库仑, 电场强度, 电场线, 电势, 等势面, 电势差, 电容], 恒定电流: [电流, 电阻, 电动势, 内阻, 伏安特性, 焦耳, 多用电表], 磁场: [磁感应强度, 磁感线, 安培力, 洛伦兹力, 左手定则, 回旋加速器], } doc fitz.open(physics-3-1-240p.pdf) hits [] for pno in range(doc.page_count): t doc[pno].get_text(text) c Counter({k: sum(t.count(w) for w in ws) for k, ws in BLOCKS.items()}) hits.append(c.most_common(1)[0] if c.most_common(1)[0][1] 0 else (空, 0)) # 每 10 页做一次窗口投票看主板块什么时候切换 for i in range(0, len(hits), 10): window [h[0] for h in hits[i:i 10] if h[0] ! 空] if window: print(f第 {i 1}-{i 10} 页 主板块: {Counter(window).most_common(1)[0][0]})这段代码不追求准确率追求的是边界在哪一页附近这个量级的信息。窗口投票出来的切换点前后各留 3 页缓冲人工翻一下确认240 页就被切成三段。切开之后每段独立处理一段出错不会污染另外两段这一点在后面做批量导出时特别重要。BLOCKS这个词典是整个流程里唯一需要人工维护的东西词表不需要全每个板块 6 到 8 个高频专有名词就够定位了。想让边界更锐利可以把电势差这种跨节都出现的泛词去掉只留等势面回旋加速器这种强指向词。3. 把矢量图和公式从PDF里救出来切片做完你会得到一张表上面标着哪些页要出图。接下来是真正费时间的环节把这些图从页面里拿出来并且拿出来之后还能用。这里的核心判断只有一句话——先分清这一页里的图是矢量路径还是位图判断错了后面怎么导出都是白费。3.1 三个判据分清矢量路径、位图与图标字体现象get_imagesget_drawings真实类型处理方式电场线、等势面虚线、坐标轴0几十到几百矢量路径clip 渲染高 dpi或裁成新 PDF教材插图、实验照片≥10 或很少位图查原始分辨率不够就换图公式00 或极少文本嵌入字体重打 LaTeX不截图看着像图的符号00图标字体私有区字符换字体或按文本重绘第四行是最容易翻车的一类。页面上明明有个箭头、有个叉号get_images返回 0get_drawings也是 0因为它根本不是图是字体里的一个字符。判断方法是看字符码点是否落在0xE000–0xF8FF这个私有使用区import fitz doc fitz.open(physics-3-1-240p.pdf) page doc[36] for blk in page.get_text(dict)[blocks]: for line in blk.get(lines, []): for span in line[spans]: for ch in span[text]: if 0xE000 ord(ch) 0xF8FF: print(f私有区字符 U{ord(ch):04X} 字体{span[font]})这类字符换一台没装对应字体的机器就会变成方框或者西文字母投影时非常显眼。处理方式只有两个要么把字体嵌入进去要么把这些符号按文本重画一遍。顺带在这里做一次字体体检只抽查几页就够for pno in (0, 60, 120, 180, 239): for f in doc.get_page_fonts(pno): xref, ext, ftype, basefont, name, enc f[:6] flag 未嵌入 if ext n/a else ext print(pno 1, basefont, flag, ftype)ext为n/a就是没嵌入。240 页里只要有一页的关键字体没嵌那一页换机器就有风险而风险往往出现在公开课现场。3.2 两条导出路线300dpi 位图给 PPT裁 PDF 保矢量确认是矢量之后导出路线有两条不要混用。import fitz doc fitz.open(physics-3-1-240p.pdf) pno 37 # 0-based对应索引表里的 PDF 第 38 页 page doc[pno] # 1) 把这一页所有较大矢量图元的包围盒合并成候选区域 rects [d[rect] for d in page.get_drawings() if d[rect].width 20 and d[rect].height 20] union rects[0] for r in rects[1:]: union | r print(候选图区:, union) # 2) 位图路线按 300dpi 一次性渲染裁剪区给 PPT 用 pix page.get_pixmap(clipunion, dpi300, alphaFalse) pix.save(fig-p38.png) # 3) 矢量路线裁到新 PDF路径和文字都保留 out fitz.open() newp out.new_page(widthunion.width, heightunion.height) newp.show_pdf_page(newp.rect, doc, pno, clipunion) out.save(fig-p38-vector.pdf)几个参数必须讲清。dpi300是投影和打印的安全线150 只够屏幕预览投影到 200cm 宽的幕布上会看出锯齿。alphaFalse是给 PPT 用的带透明通道的 PNG 粘进深色母版会变成黑底很多图怎么黑了的问题都出在这。show_pdf_page的第一个参数是目标页上的矩形第四个参数是源页clip是源页坐标系里的裁剪框两者尺寸必须一致写成newp.rect最稳自己填尺寸容易比例失调。union | r是矩形求并集PyMuPDF 的 Rect 支持这个运算符。如果这一页有多个不相邻的图比如左边一个电路图、右边一个公式框求并集会把中间的文字也框进来。这种情况不要偷懒按x坐标先把 rects 排序遇到相邻矩形间距超过 40pt 就断开分成两组分别导出。3.3 公式别截图LaTeX 重打才是后悔药240 页课件里公式大概占三成页面。这些公式在原始 PDF 里可能是文本也可能是图。不管哪种只要你还想改例题数值就躲不开重打。处理方式240页里的工作量4K投影表现后期改数值适用场景直接截图0缩放后明显锯齿不能一次性讲义裁矢量 PDF 贴回中边缘干净不能图形为主LaTeX 重打 SVG高任意缩放清晰能例题、推导、需改数值的式子实际操作不用全量重打。我的经验是只重打两类一是例题里带具体数值的式子这类一定要能改二是投影后必然糊的复杂公式嵌套分式、带积分号、上下标超过两层。240 页里真正需要动的通常只有三五十处其余保留原位图完全够用。流程上先把页面上那段公式的文本抓出来人工补成 LaTeX再用 KaTeX 或 MathJax 渲染成 SVG。SVG 放进 PPT 或者新的 PDF 里都是矢量的投影任意放大不糊。这一步看起来慢但改一次例题数值只要几秒钟比重新截图再对齐位置快得多。提示抓公式文本时get_text(text)出来的是线性流上下标会变成同一行分式会拆成两行。别指望自动转换老老实实看着 PDF 页面手工敲 LaTeX比写正则去修快。4. 从能看到能投240页课件的字号、线宽与体积内容层面的活干完剩下的是物理层面的问题投影出去到底清不清楚。这一章所有参数都能算不用凭感觉。4.1 最小字号用观看距离反推别凭感觉先把公式摆出来。设观看距离为 Dcm版面宽度为 Wpt幕布实际宽度为 Scm则版面上文字的最小字号约为最小字号(pt) D × W / (150 × S) × 1.3推导不复杂一般认为字符高度达到观看距离的 1/150 时人眼才舒适投影把版面放大 S ÷ (W × 0.03528) 倍1pt 等于 0.03528cm最后那个 1.3 是补偿系数用来抵消教室环境光和投影仪对比度不足带来的辨识度损失。教室进深最远观看距离幕布宽版面宽计算值建议正文字号6 m600 cm180 cm720 pt17.3 pt20 pt8 m800 cm200 cm720 pt25.0 pt26 pt10 m1000 cm200 cm720 pt30.1 pt32 pt10 m1000 cm250 cm960 pt34.7 pt36 pt最后两列的差距就是留给降一档也还能看清的余量。注意公式里 W 和 S 是反比关系同一块幕布上16:9 版面960pt 宽比 4:3 版面720pt 宽需要更大字号因为版面被压缩得更狠。很多人换宽屏后发现字变小了却不明白为什么原因就在这。落到 240 页上具体动作是正文统一到 28pt 以上标题 40pt 以上图注和单位标注不低于 22pt。低于 22pt 的内容要么删要么挪到讲义版本里别留在投影版上。4.2 电场线和磁感线的线宽与对比度阈值物理课件最怕的不是字小是线没了。电场线、等势面虚线、磁感线这些元素在原始文件里常常是 0.5pt 的浅色细线屏幕上看得见投影出去就断成一节一节。线宽方面按 200cm 幕宽、720pt 版面算1pt 在幕上约等于 2.8mm。0.5pt 只有 1.4mm投影仪的光晕和轻微散焦就能把它吃掉。建议绘图类线条不低于 1.2pt主干线比如描述场强方向的箭头用到 1.8pt。虚线要注意间隔dash 的长度至少是线宽的 3 倍否则投影后糊成实线学生分不清等势面和电场线的区别。对比度用 WCAG 的相对亮度公式算def rel_lum(hexcolor): c [int(hexcolor[i:i 2], 16) / 255 for i in (1, 3, 5)] c [x / 12.92 if x 0.03928 else ((x 0.055) / 1.055) ** 2.4 for x in c] return 0.2126 * c[0] 0.7152 * c[1] 0.0722 * c[2] def contrast(a, b): la, lb rel_lum(a), rel_lum(b) hi, lo max(la, lb), min(la, lb) return (hi 0.05) / (lo 0.05) for fg in [#000000, #333333, #595959, #666666, #888888]: print(fg, round(contrast(fg, #FFFFFF), 1))跑出来大概是这样#000000约 21.0#333333约 12.6#595959约 7.0#666666约 5.7#888888约 3.5。教室投影的环境光一开实际对比度会掉一半以上所以版面上按 7:1 设计比较稳。也就是说浅灰色#888888的辅助线在投影版里不能用至少压到#666666以下。注意白底深灰线是投影友好方案但深色母版配白字在暗教室里观感更好。两套都用的话务必分开导出别用同一份文件既投又印。4.3 压体积240页压到能塞进任何U盘又不糊240 页带矢量图和嵌入字体的 PDF动辄几十兆。教室电脑加载慢、U 盘拷贝卡都需要压一压但压缩方式选错会直接毁掉细线。# 1) 先看结构页数、是否加密、是否有重复对象 qpdf --show-npages physics-3-1-240p.pdf qpdf --check physics-3-1-240p.pdf # 2) 保留矢量、图片降采样到300dpi、字体全嵌入 gs -sDEVICEpdfwrite \ -dCompatibilityLevel1.7 \ -dPDFSETTINGS/printer \ -dDownsampleColorImagestrue \ -dColorImageResolution300 \ -dEmbedAllFontstrue \ -dSubsetFontstrue \ -dAutoRotatePages/None \ -o courseware-print.pdf physics-3-1-240p.pdf # 3) 按板块拆成三个文件单个体积更小、加载更快 qpdf --empty --pages courseware-print.pdf 1-78 -- part1-electrostatics.pdf qpdf --empty --pages courseware-print.pdf 79-160 -- part2-current.pdf qpdf --empty --pages courseware-print.pdf 161-240 -- part3-magnetic.pdf参数的关键在-dPDFSETTINGS。/printer是 300dpi/ebook是 150dpi/screen是 72dpi。用/screen压出来的文件确实小但 0.5pt 的电场线在 72dpi 光栅化后会断成虚线状而且抗锯齿丢失后边缘发脏这就是很多人压完图就废了的原因。-dAutoRotatePages/None也别省横向排版的页面比如整页的磁感线示意会被自动转正版面方向一乱之前做的坐标全对不上。-dSubsetFontstrue只保留用到的字形体积能降一截代价是 PDF 里的文字提取会变得不稳定。如果这份文件还要给别人做文本检索就别开太狠。5. 排查与避坑240页PDF二次加工的五个翻车现场这一章全是血泪经验。前四章讲的是应该怎么做这一章讲的是实际做的时候会在哪里翻车。五条记录每条按现象、原因、解决写。5.1 页码与字体两个看不见的偏移坑一索引表页码对不上。现象按索引表跳到 PDF 第 38 页出来的却是上一节的例题往前翻两页才是要找的电场线图。原因教材页码和 PDF 物理页码不是一回事。封面、目录、插页都会让偏移量变化而且这套 240 页如果是多来源拼接的偏移量在中途还会跳变一次。解决索引表里同时保留PDF页和教材页两列偏移量按章分别记录每章首页加一个锚点字符串用 2.2 的脚本定期校验。发现偏移后不要手改单页改该章的偏移量让整章跟着走。另外页码文字如果本身是图片很多课件的页码是设计元素get_text抓不到只能靠锚点标题定位。坑二换台机器公式全变方框。现象在自己电脑上一切正常拷到教室机器上希腊字母、积分号、特殊箭头全部变成方块或者问号。原因字体没有嵌入 PDF只是引用了系统字体。原机器装了对应字体所以正常教室机器没有就回退成默认字体。解决先用 3.1 的脚本抽查几页看ext是不是n/a确认后用gs -dEmbedAllFontstrue整体重写一遍。如果某些字体有授权限制不能嵌入就把那几页的关键文字转成曲线text_as_path代价是文字不可搜索、不可复制但投影绝对不会出错。公开课之前一定要在目标机器上实际投影一次别等开场才发现。5.2 图像与线宽导出环节的失真坑三300dpi 导出的图还是毛边。现象明明设了dpi300导出的电场线图放大后边缘发虚箭头尖端有锯齿。原因操作顺序错了。很多人先get_pixmap()把整页按 300dpi 渲染成一张大图再用图像库裁剪出需要的区域。整页渲染时那一小块区域只占整页的一小部分像素裁出来等于二次采样分辨率凭空掉了一大截。解决裁剪框直接传给get_pixmap(clip..., dpi300)让渲染器只渲染目标区域一个像素都不浪费。这是 3.2 那段代码的核心用意clip一定要和dpi同时给。坑四页面上明明有图get_images却返回 0。现象某页有个很明显的三维示意箭头但脚本报告位图数量为 0矢量图元也很少。原因那不是一个图形对象是图标字体里的一个字符。渲染器把它当文字画出来所以既不在图像列表里也不在绘图列表里。解决用 3.1 的私有区字符检测扫一遍命中就说明是字体图标。处理有两个方向把字体嵌进去保证显示一致或者干脆按文本重画布尔运算符号、箭头、刻度这类用矢量路径重画一次以后随便复用。后一种更彻底一次性投入长期省事。5.3 压缩与投影最后一公里的掉链子坑五压缩之后电场线断成虚线。现象压缩前线条连续压缩后同一条电场线中间出现断口或者整条线变淡到几乎看不见。原因用了/screen档72dpi 光栅化时 0.5pt 的细线宽度不足一个像素抗锯齿把它摊成了接近背景色的浅灰。解决回到/printer或干脆不压缩保留矢量层只在最终投影时按 200dpi 以上渲染。如果体积实在下不来优先降图片分辨率别动矢量和线宽。投影前在真实设备上走一遍翻页重点看三张图电场线密集图、电路图、带电粒子轨迹图这三张最考验线条。6. 一页一知识点的拆页规矩240页最后落到一张验收表上前面五章做的是把成品拆开最后一步是重新装回去。拆开之后你手上有一堆素材索引表、导出的图、重打的公式、调好的字号参数。如果直接堆回去240 页还是 240 页只是换了个人看不懂。真正拉开差距的是拆页粒度。我最后固定下来的规矩就三条。第一条一页只承载一个可以提问的知识点比如电场强度的方向如何规定电势差与场强的关系式怎么来的左手定则怎么判定安培力方向一页里塞两个投影时学生的注意力必然散。第二条每页必须能在三秒内找到图在哪、式在哪、结论在哪做不到就说明版面对比度或者分级不够回第 4 章调参数。第三条每页留一个可替换槽位例题的数值、实验的数据表、配图全部单独放在固定位置换一届学生只改槽位不动版式。装回去之后用下面这张表做终检每一项都有明确通过线检查项通过线检查方式正文字号≥ 28 pt抽查 20 页取最小值图注与单位≥ 22 pt同上线条宽度≥ 1.2 pt看矢量图元width字段线条对比度≥ 7:1第 4.2 节的对比度函数字体嵌入全部嵌入get_page_fonts无n/a页码映射索引表与实际一致每章锚点抽查单页知识点1 个人工过一遍标题文件体积单卷 ≤ 25 MBqpdf --show-npages配合文件大小这张表我用了几个学期改过三次每次都是因为又翻了一次车才补上去的。最典型的一次是漏了图注字号这一项正文全调到了 28pt图注还是原始的 16pt投出来正文清清楚楚图下面的单位标注后排完全看不清当场只能口头念。从那以后我养成一个习惯所有导出的图边框一律留 8pt 内边距图注单独成段字号跟着正文走不跟着图走。另一条教训关于版本。240 页改到第三版时你会发现fig-p38.png这种命名已经完全分不清是哪一版、哪一页、哪个知识点导出的。我现在的命名是板块_知识点_来源页_版本比如electrostatic_fieldline_p13_v3.png。看起来啰嗦但三个月后回头找图这个命名能省掉一整个下午。如果只让我给一句建议别急着改内容先花两个小时把第 2 章那张索引表建完。240 页的复杂度不在页数在你不知道下一处改动会牵连哪里。索引表建好后面每一步都是确定性的操作索引表不建改到第 100 页时你一定会想不起前面改过什么。希望帮到你。本文还有配套的精品资源点击获取