简介这是一份围绕新凯恩斯主义经济理论的PPT教学课件面向经济学、财务管理及相关专业学生与教师重点梳理20世纪80年代以来新凯恩斯主义的核心内容包括产生背景、基本假设、研究方法、主要理论观点与政策主张并给出简要评说。课件基于价格粘性、非市场出清、理性限制性预期等关键概念结合效率工资假说、信贷配给理论、协调失灵论等模型帮助学习者理解新凯恩斯主义如何回应滞胀困境并影响现代宏观政策。资源为单个pptx演示文稿共1个文件压缩包大小169KB目录结构完整、层次清晰适合课堂教学、自学备考或制作课程讲义参考。该资源已有100人学习内容精炼且逻辑分明便于快速把握新凯恩斯主义与其他经济学流派的联系与区别。1. 别再把经济学 PPT 当 Word 写新凯恩斯主义理论需要结构化呈现“新凯恩斯主义经济理论.pptx”这个标题放在工程师面前第一反应通常是又一份要从网上扒下来改改就交差的课件。但真动手的人会发现这个理论材料的难点并不在经济学概念本身而在于它有一条很长的逻辑链从“价格粘性”这个微观假设推导出总需求外部性、菲利普斯曲线再到货币政策和短期非中性。这些内容如果按教材章节平铺到幻灯片里听众不会记住任何一张。它应当被当作一个文档工程来处理假设一页、机制一页、推导一页、图表一页、政策含义一页每页只承担一个论证步骤。本文用 python-pptx 加 matplotlib 给你一条可复现的生成路线同时讲清楚每个参数为什么这样设置。2. 理论先立住新凯恩斯主义的核心概念与 PPT 章节映射2.1 新凯恩斯主义与旧凯恩斯主义的分界点粘性假设做这份 PPT 之前先要在脑子里把“新古典”和“新凯恩斯”之间的界线画出来。新古典宏观依赖价格瞬时出清市场中不存在能影响整体产出的名义刚性新凯恩斯主义则把微观层面的价格调整成本当成一切宏观结论的前提。价格有粘性意味着企业面对需求变化时不会立刻调价而会选择调整产量于是总需求波动能在短期内改变实际产出。这也是 PPT 里第一个需要钉死的论点粘性是原因产量波动是结果。不要在一张幻灯片上同时讲菜单成本、长期劳动合同、交错定价和协调失灵那是教科书干的事。幻灯片只需要一句话作为立场“价格不能零成本随时调整”然后另外用一页专门讲“菜单成本”作为最直观的支撑证据。表格里把三个最常被混淆的概念列清楚方便排版时直接用概念微观基础对宏观的含义菜单成本调价需要重新印刷、沟通、系统录入名义价格呈现刚性出现时间上的调整滞后工资粘性长期合同、最低工资、内部人谈判劳动力市场不会瞬时出清失业可持续交错定价不同企业不同时间调价总价格水平缓慢变化货币冲击逐步扩散2.2 从 6 个核心模块推导出 PPT 大纲把理论压缩成 6 个模块每个模块对应 2 到 3 页幻灯片整套课件控制在 18 页以内。这是技术文档的合理容量超过 20 页后听众的注意力衰减会非常明显。模块一给立场讲清楚为什么要从价格粘性出发模块二给出微观基础包括菜单成本、工资粘性与交错定价模块三落到总需求外部性和协调失灵解释为什么个体理性会导致集体低效率模块四画新凯恩斯菲利普斯曲线说明通胀与产出缺口之间的动态关系模块五讲货币政策规则包括泰勒规则和货币非中性模块六收尾给出理论对现实经济观察的解释力度和已知批评。按这个顺序做出来的目录天然是一条可讲的故事线而不是一份经济学名词表。生成 PPT 时目录页可以通过读取各页标题自动生成而不是手敲。后面会给出具体脚本。2.3 理论内容的“一页一论点”拆分原则内容拆分要遵循一个小规则每页幻灯片只能有一个主论点支撑材料以短句或图表形式放在副文本里。新凯恩斯主义理论最容易被讲砸的地方是一页里既放菲利普斯曲线公式又放数据曲线再放一段政策背景听众完全不知道眼睛该落在哪。一种常见做法是把页面划分成三个区域主标题陈述结论左侧副文本放推理链条右下角放图表。这样即使图表信息量大结论也始终在最显眼的位置。用 python-pptx 实现时这些区域在代码里是三个独立的占位符后面写生成脚本时你可以把自己的文案直接填进去。3. 用 python-pptx 把大纲变成可运行的 .pptx 生成脚本3.1 最小环境与模板准备在开始写代码前先把环境确认清楚。python-pptx 支持 3.7 以上的 Python 版本安装只需要一条命令但需要注意它只处理 .pptx不处理旧版 .ppt。涉及中文字体时操作系统需要装有对应的中文字体Linux 服务器上缺中文字体是最常见的问题建议在脚本最开始做一次可用字体检查。pip install python-pptx matplotlib安装完成后用一个空演示文稿对象作为起点。这样做的好处是绕开了模板中可能存在的内嵌宏和母版版式差异所有版面都由代码精确控制不会出现同一份代码在不同机器上跑出不同样式的意外。使用空白版式而不是标题和内容版式原因在于标题和内容版式的占位符索引在不同语言版本的 Office 里并不完全一致。用空白版式后自己添加文本框虽然代码行数多一点但行为完全可控。3.2 标题页与大目录生成标题页需要三个信息理论名称、说明文字、日期。代码中把这三个信息放进同一张幻灯片通过显式指定坐标来布局。inche 表示英寸python-pptx 底层使用英制单位中文用户容易在这里踩单位换算的坑。from pptx import Presentation from pptx.util import Inches, Pt prs Presentation() blank prs.slide_layouts[6] slide prs.slides.add_slide(blank) title_box slide.shapes.add_textbox(Inches(0.8), Inches(2.2), Inches(8.4), Inches(1.0)) title_frame title_box.text_frame title_frame.text 新凯恩斯主义经济理论 sub_box slide.shapes.add_textbox(Inches(0.8), Inches(3.3), Inches(8.4), Inches(0.8)) sub_frame sub_box.text_frame sub_frame.text 从价格粘性到货币政策非中性这段代码的逻辑是先把空白版式取出来再在绝对位置创建文本框。坐标参数依次是左边距、上边距、宽度和高度。标题放在纵向 2.2 英寸的位置下方留出空间给副标题避免两块文字重叠。如果希望在商业幻灯片中使用品牌色可以在这个阶段给文字设置颜色但正文阶段建议保持黑字减少视觉负担。目录页不建议手工维护。手动改大纲后忘记同步目录是课件制作的高频事故。常见做法是先把所有幻灯片的标题文本收集到一个列表里再在目录页统一渲染。slides_meta [ (1, 粘性假设理论的地基), (2, 菜单成本与工资粘性), (3, 总需求外部性), (4, 新凯恩斯菲利普斯曲线), (5, 货币政策规则), (6, 理论评价与批评), ] toc_box slide.shapes.add_textbox(Inches(0.8), Inches(1.5), Inches(8.4), Inches(4.0)) tf toc_box.text_frame for idx, (number, title_text) in enumerate(slides_meta): p tf.paragraphs[0] if idx 0 else tf.add_paragraph() p.text f{number} {title_text} p.space_after Pt(12)这里值得注意的一个参数是space_after它控制段落后间距。如果把它设为 0目录条目会挤在一起看起来密集。技术文档风格的 PPT 建议保留 12 磅的段后距这一数值在微信阅读和其它移动端阅读场景下也能保持可读性。3.3 内容页模板论点、依据、数据表三区布局内容页采用固定的函数来生成避免每页写一遍重复布局代码。函数参数包含左侧标题、右上论点框、右下内容区。这种三区布局适合新凯恩斯主义里所有推导型的内容页比如“菜单成本导致价格刚性”这一页。def add_theory_page(prs, heading, thesis, points): slide prs.slides.add_slide(prs.slide_layouts[6]) hbox slide.shapes.add_textbox(Inches(0.5), Inches(0.3), Inches(9.0), Inches(0.8)) hbox.text_frame.text heading hbox.text_frame.paragraphs[0].font.size Pt(26) hbox.text_frame.paragraphs[0].font.bold True tbox slide.shapes.add_textbox(Inches(0.5), Inches(1.5), Inches(9.0), Inches(1.0)) tbox.text_frame.text 核心论点 thesis tbox.text_frame.paragraphs[0].font.size Pt(18) cbox slide.shapes.add_textbox(Inches(0.5), Inches(2.8), Inches(9.0), Inches(3.5)) cbox.text_frame.clear() for i, point in enumerate(points): para cbox.text_frame.paragraphs[0] if i 0 else cbox.text_frame.add_paragraph() para.text · point para.space_after Pt(8)把页面拆成块的目的是方便后续替换文案。当理论内容需要调整时只需要修改传入的points列表不需要动任何坐标逻辑。这个函数在实际使用中还要补一个参数用于控制是否显示页码页码可以放在右下角但幻灯片底部区域如果已经有内容页的引用来源页码就应上移到右下角内侧避免与来源文字重叠。3.4 批量文本与字体参数控制内容页的文字来源如果是一份 Markdown 大纲可以用一个轻量解析器把 Markdown 的二级标题和列表项直接转换成页面参数。这样可以做到一份源文件同时维护文章版和幻灯片版避免两处内容不一致。def parse_outline(md_path): pages [] with open(md_path, encodingutf-8) as f: lines f.readlines() for line in lines: line line.strip() if line.startswith(## ): pages.append({title: line[3:].strip(), points: []}) elif line.startswith(- ) and pages: pages[-1][points].append(line[2:].strip()) return pages这段代码只处理##和-两类标记范围收得很窄好处是解析逻辑不需要依赖第三方库。由于encodingutf-8已经显式声明在 Windows 上运行不会因默认编码问题而报错。生成 PPT 时把解析结果传给add_theory_page整套流程就通起来了。字体控制方面中文字体名称在不同操作系统上有差异。Windows 上使用Microsoft YaHeimacOS 上使用PingFang SC。建议在代码开头定义一个全局字号变量在需要用字体的地方统一引用FONT_CN Microsoft YaHei然后对每个文本框段落执行run.font.name FONT_CN。但要注意python-pptx 设置中文字体会同时影响西文和符号公式中的数学符号显示可能异常因此图表中的数学公式建议用 matplotlib 渲染成图片不依赖 PPT 自带的公式编辑器。这一细节会在下一章展开。4. 图表和公式把粘性价格与菲利普斯曲线画进幻灯片4.1 用 matplotlib 绘制新凯恩斯菲利普斯曲线新凯恩斯菲利普斯曲线通常写成通胀率与预期通胀、产出缺口之间的线性关系。作为幻灯片展示不需要展示复杂求解过程而是用一组模拟参数画出一条向下倾斜的动态曲线强调“短期通胀和失业之间存在权衡”。用 matplotlib 绘制这类曲线非常合适公式可以使用 mathtext 渲染无需安装 LaTeX。import numpy as np import matplotlib.pyplot as plt plt.rcParams[font.sans-serif] [Microsoft YaHei] plt.rcParams[axes.unicode_minus] False grid np.linspace(-2.0, 2.0, 100) lambda_param 0.6 inflation lambda_param * grid fig, ax plt.subplots(figsize(6.4, 4.8), dpi150) ax.plot(0, 0, o, markersize6, color#222222) ax.annotate(潜在产出, xy(0, 0), xytext(0.4, 0.15), arrowpropsdict(arrowstyle-)) ax.plot(grid, inflation, color#1f4e79, linewidth2.2) ax.axhline(0, color#888888, linewidth0.8) ax.axvline(0, color#888888, linewidth0.8) ax.set_xlabel(产出缺口 %) ax.set_ylabel(通胀率 %) ax.set_title(新凯恩斯菲利普斯曲线) fig.tight_layout() fig.savefig(nkpc.png, dpi150)这段代码里lambda_param是核心参数它表示通胀对产出缺口的敏感度。敏感度越高曲线越陡峭意味着同样的产出缺口变化会带来更大的通胀变化。绘制时把原点用空心圆单独标出这张图挂在 PPT 里就能直接说明“潜在产出处的通胀是稳定的”。dpi150同时决定了图片在幻灯片里的清晰度投影时建议不低于 150。4.2 菜单成本与价格粘性的示意热图菜单成本可以用一张热图来呈现横轴为调价频率纵轴为需求冲击幅度颜色表示企业利润损失。这种示意图比文字更直观而且能自然引出“粘性程度不是常数”的结论。freq np.linspace(0.1, 1.0, 20) shock np.linspace(0.5, 3.0, 20) F, S np.meshgrid(freq, shock) loss (1 - F) * S * 1.2 fig, ax plt.subplots(figsize(6.8, 4.2), dpi150) im ax.contourf(F, S, loss, levels12, cmapYlOrRd) fig.colorbar(im, axax, label利润损失示意单位) ax.set_xlabel(调价频率) ax.set_ylabel(需求冲击幅度) ax.set_title(菜单成本下的调价决策区域) fig.tight_layout() fig.savefig(menu_cost.png, dpi150)这里的损失函数故意做了简化(1 - F) * S * 1.2表达的意思是调价频率越低冲击越大企业保持原价的损失越高。它并非真实计量模型但用于概念展示已经足够。参数cmapYlOrRd使用黄到红的渐变色盲友好的备选方案是viridis如果你的听众里有色觉障碍者优先使用后者。4.3 将图表插入 PPT 并保证 DPI 和版面参数图表生成后插入幻灯片需要明确指定位置和尺寸。图片尺寸与figsize要匹配否则会出现拉伸变形。python-pptx 提供add_picture方法它接受图片路径和位置参数但不会自动保持宽高比因此需要在插入前计算宽高比例。from PIL import Image def add_scaled_picture(slide, image_path, left, top, max_width, max_height): with Image.open(image_path) as im: ratio im.width / im.height if max_width / max_height ratio: height max_height width max_height * ratio else: width max_width height max_width / ratio slide.shapes.add_picture(image_path, left, top, widthwidth, heightheight)这段代码的关键在于先读取图片原始比例再按目标区域的宽高限制做等比缩放。如果不做这一步宽图会被压扁曲线形状失去说服力。插入时left和top建议使用英寸单位例如本章节的图表通常放在页面右侧左侧留给文字推理。在说明图片内容时幻灯片上不需要写完整图注但备注页里可以写清楚图的读取顺序。常见做法是“先看横轴再看曲线方向最后看标注点”。这样做能减少讲解时现场组织语言的成本。5. 进阶收尾自动化校验、讲稿备注和三个必踩的坑5.1 用备注页写“人话讲稿”与正文分离幻灯片正文避免长段落完整表达应放在备注页。python-pptx 操作备注页的方式相当直接给幻灯片对象的notes_slide.notes_text_frame.text赋值即可。对于新凯恩斯主义理论备注里要写的是“这里的粘性指价格不能即时变化原因是调价有实际成本”而不是重复幻灯片上的标题。建议在add_theory_page函数中增加一个notes参数把备注文本和内容页绑定在一起。这样一份代码既能生成课件也能生成配套讲义。演示者视图里看备注投影上只显示结论是技术分享的标准做法。5.2 用结构校验脚本防止“内容缺页”理论课程的课件经常出现某页只有标题没有内容的情况。写一个简单的校验函数遍历所有幻灯片检查每页文本框数量如果只有标题而正文为空则打印警告。这种校验比人工翻页靠谱得多。def validate_presentation(path): from pptx import Presentation prs Presentation(path) issues [] for i, slide in enumerate(prs.slides, start1): text_blob [] for shape in slide.shapes: if shape.has_text_frame: text_blob.append(shape.text_frame.text.strip()) if len(shape.text_frame.text.strip()) 0: issues.append(f第 {i} 页存在空文本框) if .join(text_blob).strip() : issues.append(f第 {i} 页完全没有文字) return issues这个脚本检查两类问题一是空文本框残留二是整页无文字。前者通常由复制模板时遗留的空白占位符导致后者说明内容页没有正确写入。输出结果直接作为 CI 检查的一部分可以挂进现有发布流程每次改完大纲后执行一次避免带着缺页上场。5.3 中文字体、公式渲染与兼容性坑最常遇到的坑有三个。第一个是 Linux 服务器上用 matplotlib 生成中文图表时全部变成方块解决办法是在服务器上安装中文字体包并刷新字体缓存然后再次运行脚本。第二个是 python-pptx 生成的 .pptx 里部分低版本 Office 无法正常显示形状的平滑效果但这通常只影响视觉效果不影响文字内容。第三个坑比较隐蔽在图表里使用 matplotlib 生成中文标题后再把它插入到 PPT 中PPT 里这段文字变成图片无法被搜索和复制。如果是公开分享材料建议在备注里补充图表中的关键数字保证信息可达性。针对公式不要图省事在文本框中敲π πe λ(y-yn)因为直接输入的普通文本无法保证符号在 Windows 和 macOS 上显示一致。稳妥方案是把公式用 matplotlib 的 mathtext 渲染成透明背景 PNG再插到页面右上角。渲染时设置dpi200文字边缘会更平滑。图片背景使用透明格式这样插入深色背景模板时不会有白底块。最后一点是文件命名。生成的演示文件不要直接叫“新凯恩斯主义经济理论.pptx”如果多人协作建议带上日期版本号例如nk_theory_v2_20250120.pptx。这样在 CI 和文档管理系统中都能清楚追溯改动。字体名称也直接写 “Microsoft YaHei”避免写中文别名导出时不会有语法兼容问题。本文还有配套的精品资源点击获取
