
做技術分享 PPT真正讓人崩潰的往往不是內容而是排版。公式對不齊、代碼高亮要手動調、圖片和文字位置亂跳如果講的又是 YOLO、Transformer 這類帶大量數學推導和代碼片段的話題用 PowerPoint 維護幾十頁內容會非常痛苦。最近社區里流行一種新玩法用一句自然語言讓 Codex CLI 調用 DeepSeek 的模型接口直接生成 LaTeX Beamer 演示文稿再用編譯命令把.tex變成 PDF 幻燈片。乍一看這像是“AI 套模板”但真正跑通一次后你會發現它把 PPT 生產從“手動排版”變成了“文本工程”內容結構、公式、代碼塊全部以純文本形式管理可審查、可版本化、可自動構建。這篇文章會完整走一遍可復現的操作路線安裝 Codex CLI、配置 DeepSeek 的 OpenAI 兼容接口、用一句提示詞生成一個《YOLO 算法原理與應用》的 Beamer PPT、編譯驗證并整理我在排查過程中遇到的典型問題。如果你還在為技術分享的幻燈片排版發愁這套工作流值得收藏。1. 為什么是 DeepSeek、Codex 與 Beamer 的組合1.1 傳統 PPT 生產路徑的痛點過去生成一份技術分享 PPT通常有三條路。第一條路是 PowerPoint 手動排版。優點是自由度最高但維護成本也最高目錄更新要手動同步公式要用編輯器一個個插入代碼塊的高亮經常在換機器后失效。最要命的是內容一旦需要大規模調整版式會全部錯亂。第二條路是 Markdown 轉 PPT比如 Marp、reveal.js 這類工具。優點是寫作體驗接近寫文檔缺點也很明顯遇到復雜公式、多級嵌套列表、精確的頁內布局時能力邊界很快暴露。第三條路是讓 ChatGPT 之類的大模型直接生成 PPT 腳本再人工粘貼到模板里。這條路能解決“內容起草”的問題但解決不了“成品交付”的問題。模型輸出的內容再好最終還是要回到排版環節人工成本一點沒少。1.2 這個組合真正解決了什么問題DeepSeek、Codex、Beamer 三者的組合是在“內容生成”和“最終交付”之間搭起了一條自動管道。Codex CLI 是 OpenAI 推出的命令行 AI 編程代理與網頁版對話式 AI 最大的不同在于它可以讀寫當前項目文件、執行命令、根據運行結果自主修正。也就是說它不只是“給你一段代碼”而是“替你完成一個開發任務”。DeepSeek 提供的是 OpenAI 兼容的 API 接口。這意味著不需要等待某個專用客戶端只要寫好配置文件就能讓 Codex CLI 驅動 DeepSeek 的模型完成推理。DeepSeek 的deepseek-chat和deepseek-reasoner模型在中文理解、代碼生成和結構化文本輸出上表現穩定用來生成 LaTeX 文檔非常合適。Beamer 則是 LaTeX 世界里的演示文稿工具。它不像 PowerPoint 那樣“所見即所得”而是把幻燈片定義成結構化文檔章節、標題、正文、公式、代碼塊都是顯式標記。好處是排版統一、公式美觀、代碼高亮專業特別適合學術匯報和技術分享。所以這個組合的核心價值可以概括成一句話把自然語言需求翻譯成嚴格格式的 LaTeX 代碼再由編譯工具鏈輸出學術級 PDF 幻燈片。AI 負責結構和內容Beamer 負責排版質量Codex 負責把中間過程自動化。2. 核心概念Codex CLI、DeepSeek API 與 Beamer2.1 Codex CLI 是一個命令行 AI 代理Codex CLI 不是一個簡單的聊天窗口。它運行在終端里以當前目錄為工作區可以查看文件、編輯代碼、執行命令。你在終端里對它說“幫我在 ./ppt 目錄下生成一個 Beamer 演示文稿”它會按步驟執行并且在遇到編譯錯誤時自動讀取日志、修改文件、重新嘗試。這意味著你不需要手動把生成結果從對話窗口復制到文件里。Codex 會直接完成文件創建和內容寫入甚至在本地執行xelatex編譯然后告訴你結果。Codex CLI 的交互模式分兩種交互式會話輸入codex進入 REPL適合探索和調試。單次執行模式使用codex exec 任務描述適合批處理和自動化。第二種模式非常契合“一句話生成 PPT”的場景。2.2 DeepSeek API 的 OpenAI 兼容性DeepSeek 的 API 在設計上兼容 OpenAI 的消息格式官方提供的base_url可以直接對接常見的 OpenAI SDK 和工具。對于 Codex CLI 這類支持自定義模型提供方的客戶端只需要在配置里聲明一個 provider把請求指向 DeepSeek 的地址再把 API Key 放到環境變量中就能完成接入。實際接入時DeepSeek 有兩個常用模型名需要區分deepseek-chat指向 DeepSeek-V3 系列擅長通用對話和代碼生成響應速度快適合日常任務。deepseek-reasoner指向 DeepSeek-R1 系列擅長復雜推理生成結構化 LaTeX 文檔時表現更穩但響應更慢。對于第一次跑通流程建議先用deepseek-chat成本低、速度快。等遇到復雜排版需求時再切換到deepseek-reasoner。2.3 Beamer 是 LaTeX 世界的 PPTBeamer 是 LaTeX 的一個文檔類語法上保留了 LaTeX 的全部能力。它最吸引人的地方在于數學公式排版質量極高amsmath宏包支持的公式環境在 Beamer 里開箱即用。對于算法講解、論文復現、模型推導這類場景這是 PowerPoint 很難替代的。Beamer 的基本結構是一個個frame每個 frame 對應一頁幻燈片。通過\section、\subsection可以組織目錄結構\tableofcontents會自動生成導航頁。主題通過\usetheme控制常見的有 Madrid、Metropolis、Berlin 等。編譯 Beamer 文檔通常使用xelatex因為xelatex對中文和系統字體的支持更好。傳統pdflatex配合ctex也能用但xelatex在中文排版上更省心。2.4 三種 PPT 生產方案對比方案排版質量公式支持代碼高亮可版本化自動化程度PowerPoint 手動排版高但依賴人工一般一般弱低Markdown Marp中等一般中等強中LaTeX Beamer AI 生成高強強強高表格里最關鍵的一列是“自動化程度”。Beamer 本身是一項成熟技術不缺資料也不缺模板過去缺的是一個能自動把內容寫成 LaTeX 的“翻譯官”。DeepSeek 和 Codex 的組合正好補上了這一環。3. 環境準備與安裝3.1 前置環境檢查開始之前先確認本機環境滿足以下條件操作系統macOS、Linux 或 Windows推薦 WSL2。包管理工具macOS 使用 HomebrewUbuntu/Debian 使用 aptWindows 使用 winget 或 WSL 內包管理。Node.js 18 或更高版本以 Codex 官方文檔為準。一個 DeepSeek 開放平臺賬號用于獲取 API Key。確認 Node.js 版本node -v npm -v如果沒有安裝 Node.js可以從官網下載 LTS 版本或者用系統包管理工具安裝# macOS brew install node # Ubuntu/Debian sudo apt update sudo apt install nodejs npm3.2 安裝 Codex CLICodex CLI 的官方包名是openai/codex直接通過 npm 全局安裝即可npm install -g openai/codex安裝完成后驗證版本codex --version如果提示command not found說明 npm 全局安裝目錄沒有加入 PATH。可以通過以下命令查看 npm 的全局目錄npm prefix -g然后把$(npm prefix -g)/bin加入 shell 配置文件.zshrc或.bashrc。首次運行 Codex CLI 時通常需要完成 OpenAI 賬號的登錄。即使后續把請求轉發給 DeepSeek客戶端本身也可能要求先過登錄這一關。這一步按照官方提示操作即可。3.3 安裝 LaTeX 編譯環境Beamer 屬于 LaTeX 發行版的一部分安裝完整 TeX Live 最省心但體積較大。如果你只是想跑通本文示例可以安裝精簡版本。macOS 上使用 Homebrewbrew install --cask mactex-no-guiUbuntu/Debian 上使用 aptsudo apt update sudo apt install texlive-latex-extra texlive-xetex texlive-lang-chinese latexmkWindows 更推薦安裝 MiKTeX或者直接在 WSL2 里按 Ubuntu 的方式安裝。安裝完成后驗證xelatex命令可用xelatex --version連續看到版本信息輸出說明編譯環境已經就緒。4. Codex CLI 接入 DeepSeek 的配置4.1 配置 config.tomlCodex CLI 的配置文件默認位于用戶目錄下的~/.codex/config.toml。如果該文件不存在手動創建即可。把默認模型切換到 DeepSeek需要在配置中聲明一個自定義 provider并把請求地址指向 DeepSeek 的 OpenAI 兼容端點。# 文件路徑~/.codex/config.toml model deepseek-chat model_provider deepseek [model_providers.deepseek] name DeepSeek base_url https://api.deepseek.com/v1 env_key DEEPSEEK_API_KEY wire_api chat這段配置的含義是model默認使用的模型名。填deepseek-chat對應通用對話模型填deepseek-reasoner對應推理增強模型。model_provider指定使用哪個 provider。這里和下面[model_providers.deepseek]的鍵名對應。base_urlDeepSeek 的 API 地址兼容 OpenAI 的請求格式。env_keyCodex CLI 會從該環境變量讀取 API Key。wire_api與模型服務通信時使用的 API 風格。DeepSeek 兼容的是 OpenAI Chat Completions因此填chat。需要注意Codex CLI 默認的通信協議可能是 Responses API。有些第三方服務不完全兼容這一協議因此wire_api chat這一步不能省略。4.2 配置 API KeyAPI Key 不要寫進config.toml而是通過環境變量注入。這樣可以避免密鑰被提交到 git 倉庫。在 shell 配置文件里追加一行# 文件路徑~/.zshrc 或 ~/.bashrc export DEEPSEEK_API_KEY你的 DeepSeek API Key然后重載配置source ~/.zshrc驗證環境變量是否生效echo $DEEPSEEK_API_KEY看到你的 Key 前綴說明配置成功。4.3 驗證 Codex 是否能正常調用 DeepSeek用一條最簡單的指令驗證鏈路codex exec 用一句話解釋什么是 Beamer如果配置正確Codex 會調用 DeepSeek 并輸出一段關于 Beamer 的中文說明。如果出現以下錯誤之一說明配置還沒有徹底接通401 UnauthorizedAPI Key 不正確或環境變量沒有加載。model not supported模型名寫錯DeepSeek 服務商不認gpt-*之類的模型名。請求超時或網絡錯誤檢查base_url是否可達。確認鏈路打通之后就可以進入正式的 PPT 生成環節了。5. 一句話生成 Beamer PPT 完整演示5.1 準備項目目錄先創建一個專門存放 PPT 工程文件的目錄并進入其中mkdir -p ~/projects/yolo-ppt cd ~/projects/yolo-ppt目錄里后面會生成main.tex、main.pdf等文件。用 git 管理這個目錄是一個好習慣AI 生成過程中可能出現意外覆蓋git 可以幫你隨時回滾git init git add . git commit -m init yolo-ppt project5.2 給 Codex 的一句話提示詞提示詞的質量直接決定輸出質量。以下提示詞覆蓋了主題、頁數、語言、風格、編譯方式五個關鍵維度codex exec 在當前目錄生成一個 Beamer 演示文稿 main.tex主題是《YOLO 算法原理與應用》要求使用中文、xelatex 可編譯頁數控制在 10 到 12 頁包含目錄頁、公式頁、代碼頁和對比表格主題風格使用 Madrid。生成后用 xelatex 編譯一遍確保 main.pdf 能正常輸出。這段提示詞里隱藏著幾條關鍵約束明確了輸出文件名main.tex方便后續編譯。指定xelatex可編譯避免生成pdflatex不兼容的宏包。指定中文Codex 會自動在導言區引入ctex或xeCJK。指定主題Madrid避免它自己隨意選主題。要求“編譯一遍”讓 Codex 在生成后主動運行編譯命令而不是把任務交回給你。Codex 執行這個任務時通常會先創建main.tex然后運行xelatex如果報錯就讀取日志、修改文件、重新編譯。整個過程可能持續幾分鐘取決于模型響應速度和本機編譯速度。5.3 Codex 的典型生成產物以下是 Codex 在類似任務中會生成的結構。實際內容會根據模型輸出有所變化但整體框架與此高度一致。% 文件路徑~/projects/yolo-ppt/main.tex \documentclass[UTF8, aspectratio169]{beamer} \usetheme{Madrid} \usecolortheme{whale} \usepackage{ctex} \usepackage{amsmath, amssymb} \usepackage{listings} \usepackage{graphicx} \usepackage{booktabs} \title{YOLO 算法原理與應用} \author{技術分享} \date{\today} \begin{document} \begin{frame} \titlepage \end{frame} \begin{frame}{目錄} \tableofcontents \end{frame} \section{目標檢測問題定義} \begin{frame}{目標檢測要解決什么} \begin{itemize} \item 分類判斷圖中目標是什么 \item 定位框出目標在圖像中的位置 \item 檢測 分類 定位 \end{itemize} 目標檢測中常用的評估指標 IoU 定義為 \[ IoU \frac{|A \cap B|}{|A \cup B|} \] 其中 $A$ 是預測框$B$ 是真實標注框。 \end{frame} \section{YOLO 核心思想} \begin{frame}{YOLO 的單階段檢測思路} \begin{enumerate} \item 將圖像劃分為 $S \times S$ 的網格 \item 每個網格負責預測中心點落在其中的目標 \item 一次前向推理直接輸出邊界框與類別概率 \end{enumerate} 與兩階段檢測器相比YOLO 的推理速度優勢明顯。 \end{frame} \begin{frame}{損失函數示意} \[ Loss \lambda_{coord} \sum_{i} L_{coord}(i) \lambda_{obj} \sum_{i} L_{obj}(i) \sum_{i} L_{cls}(i) \] 其中$L_{coord}$ 控制定位誤差$L_{obj}$ 控制目標置信度誤差$L_{cls}$ 控制分類誤差。 \end{frame} \section{版本演進} \begin{frame}{YOLO 版本演進對比} \begin{table} \begin{tabular}{lll} \toprule 版本 年份 核心特點 \\ \midrule YOLOv1 2016 開山之作端到端檢測 \\ YOLOv5 2020 工程友好生態完善 \\ YOLOv8 2023 模塊化設計訓練推理一體化 \\ \bottomrule \end{tabular} \end{table} \end{frame} \section{應用與總結} \begin{frame}{典型應用場景} \begin{itemize} \item 自動駕駛環境感知 \item 工業缺陷檢測 \item 安防監控 \item 遙感目標識別 \end{itemize} \end{frame} \begin{frame}{總結} \begin{itemize} \item YOLO 將目標檢測建模為回歸問題 \item 在速度與精度之間取得了良好平衡 \item 社區生態活躍適合工程落地 \end{itemize} \end{frame} \end{document}這份產物在結構上值得注意的幾個點使用ctex宏包處理中文標題和正文都能顯示中文。使用aspectratio169設置寬屏比例適配現代投影儀。公式通過amsmath排版IoU 和損失函數都使用了 LaTeX 數學環境。表格用booktabs宏包生成三線表視覺上比默認表格干凈很多。每個frame對應一頁幻燈片代碼可讀性高。5.4 編譯生成 PDF如果 Codex 沒有自動完成編譯或者你希望手動編譯進入項目目錄執行cd ~/projects/yolo-ppt xelatex -interactionnonstopmode main.tex第一次編譯會因為生成輔助文件而稍慢。建議再執行一次xelatex確保目錄和交叉引用正確xelatex -interactionnonstopmode main.tex也可以直接用latexmk自動處理多次編譯latexmk -xelatex main.tex編譯成功后目錄下會生成main.pdf這就是最終的 Beamer PPT 成品。6. 運行驗證與效果檢查6.1 驗證編譯結果打開生成的main.pdf先確認三個基本檢查點頁數是否與預期一致。10 到 12 頁屬于常見技術分享規模如果頁數明顯偏多或偏少說明提示詞里的約束沒有完全生效。中文是否正常顯示。如果中文變成空白或亂碼大概率是編譯引擎沒有使用xelatex或者ctex宏包沒有正確加載。公式是否渲染完整。翻到 IoU 公式和損失函數頁確認分數、求和符號、上下標都沒有異常。檢查命令ls -lh main.pdf如果文件大小只有幾 KB要警惕 PDF 內容不完整通常包含多頁幻燈片和字體的 PDF 會在幾百 KB 到幾 MB 之間。6.2 檢查 PPT 的核心質量點在 PDF 閱讀器里逐頁檢查以下內容標題頁是否包含標題、作者、日期。目錄頁是否自動按章節生成。公式編號和數學符號是否完整。代碼頁是否有語法高亮如果 Codex 沒有引入listings宏包代碼會以普通文本呈現。表格是否存在溢出頁面邊界的問題。這一步是人機協作的關鍵環節。AI 生成的 LaTeX 代碼大概率能編譯通過但排版細節仍然需要人工檢查。發現問題后不要直接改 PDF應該回到main.tex修改。6.3 用自然語言迭代修改Beamer 方案最大的優勢是“修改成本極低”。傳統的 PowerPoint 修改一頁排版可能涉及拖動多個文本框而 Beamer 只需要改一個frame的 LaTeX 代碼。再次調用 Codexcodex exec 在 main.tex 的損失函數頁下面增加一頁詳細解釋坐標誤差權重 lambda_coord 的作用并給出一個數值示例。改完后重新編譯。Codex 會定位到對應的frame插入新頁重新編譯 PDF。這種“自然語言驅動修改”的方式比人工編輯 LaTeX 效率高得多也比在 PowerPoint 里手動調整版式更可控。7. 常見問題與排查方法7.1 Codex CLI 相關在配置和運行 Codex 的過程中以下幾個問題出現頻率最高整理成表格便于快速定位。問題現象可能原因排查方式解決方案提示unable to locate the codex cli binaryCodex CLI 未安裝或 PATH 未配置在終端執行codex --version重新執行npm install -g openai/codex并檢查 npm 全局 bin 目錄是否在 PATH 中Codex 啟動后無法進入對話未完成賬號登錄查看終端登錄提示按提示完成登錄后重新啟動出現cc switch local proxy failed while handling codex endpoint /responses本地代理插件或代理進程狀態異常檢查系統代理設置和代理進程關閉無關代理插件清理異常代理進程后重試Codex 執行任務中斷網絡不穩定或單次任務超時查看錯誤碼和網絡狀態拆分成更小的子任務或使用codex exec增加重試次數關于cc switch local proxy這類報錯需要多說一句。它不是 DeepSeek 或 Beamer 鏈路本身的問題而是本地環境中存在代理切換工具Codex 在訪問/responses端點時觸發了代理切換但代理狀態異常導致連接失敗。排查時優先檢查本地代理配置是否正常再考慮 Codex 的請求配置。7.2 DeepSeek API 相關問題現象可能原因排查方式解決方案返回401 UnauthorizedAPI Key 錯誤或環境變量未加載執行echo $DEEPSEEK_API_KEY重新復制 API Key并執行source ~/.zshrc返回model not supported或gpt-5.6-sol model is not supported配置的模型名不是 DeepSeek 支持的模型查看config.toml中的model字段改為deepseek-chat或deepseek-reasoner請求超時base_url 不可達或網絡問題用 curl 測試 API 連通性核對base_url是否為https://api.deepseek.com/v1返回內容為空上下文過長或模型限流查看響應頭中的限流信息降低單次任務的復雜度拆分為多個模塊生成一個很容易踩的坑是復制了別的教程的配置但model字段仍然寫著gpt-*之類的模型名。DeepSeek 兼容的是 OpenAI 的 HTTP 協議但并不意味著它支持 OpenAI 的模型名。當服務端返回形如the gpt-5.6-sol model is not supported when using codex with a ...的錯誤時第一反應應該是去檢查配置里的model而不是重裝 Codex。7.3 LaTeX/Beamer 相關問題現象可能原因排查方式解決方案提示beamer.cls not foundLaTeX 發行版未安裝 Beamer 宏包執行kpsewhich beamer.cls安裝完整 TeX Live或texlive-latex-extraPDF 中文顯示為空白使用了pdflatex或缺少中文宏包查看編譯日志中是否有字體警告改用xelatex編譯并在導言區引入ctex宏包公式顯示不全缺少amsmath宏包查看編譯日志中是否有 undefined control sequence在導言區添加\usepackage{amsmath}表格超出頁面邊界表格列寬設置不當檢查 tabular 列數是否與內容匹配使用tabularx或調整列格式編譯成功但 PDF 更新失敗PDF 被閱讀器占用關閉 PDF 閱讀器后重新編譯確保沒有進程鎖定main.pdf中文問題是新手最容易遇到的。Beamer 本身不負責中文渲染需要ctex或xeCJK宏包支持同時必須用xelatex編譯。如果 Codex 生成的文件里已經有\usepackage{ctex}但仍然出現中文問題優先檢查編譯命令是否真的用了xelatex。8. 最佳實踐與工程建議8.1 提示詞工程建議用一句話生成 PPT聽起來很酷但提示詞的質量差距會導致成品質量天差地別。一個可靠的提示詞至少應該包含五類信息輸出目標生成什么文件放在哪里。主題范圍講什么內容面向什么聽眾。風格約束中文還是英文學術風還是極簡風用什么 Beamer 主題。編譯要求用什么編譯引擎需要驗證什么結果。驗收標準頁數范圍、公式數量、是否包含代碼。例如codex exec 生成 main.texBeamer 演示文稿主題《多層感知機 MLP》面向機器學習初學者中文Madrid 主題包含至少 3 個數學公式、1 個 PyTorch 代碼塊、1 張二維表格共 12 頁左右。使用 xelatex 編譯并確保生成 main.pdf。提示詞越具體模型越不容易自由發揮。自由發揮在創作類任務里是優點在格式強約束的 PPT 任務里是風險。8.2 工程化與版本管理Beamer 方案的一個隱藏優勢是可以完全納入 CI/CD 流程。把main.tex提交到 git 倉庫后可以在 GitHub Actions 或 GitLab CI 中安裝 TeX Live每次推送自動編譯 PDF生成制品。這樣團隊里任何一個成員改了一頁內容CI 都會自動產出新的 PPT 版本從流程上消滅了“修改后忘記重新導出”的問題。本地開發時也建議養成習慣每次交給 Codex 修改之前先git commit一次。AI 修改文件具有不確定性可能刪掉你之前精心調整的代碼塊。git 是最廉價的安全網。8.3 從單個 PPT 到模板沉淀跑通一次之后復用價值最大的是模板沉淀。把滿意的main.tex中導言區部分抽出來保存成beamer-template.tex。以后每次生成新 PPT只需要提示詞里加一句“導言區參考 beamer-template.tex只替換正文內容”。這樣既能保持團隊幻燈片風格統一又能減少模型生成導言區時引入隨機性。模板沉淀的另一個好處是減少報錯。ctex、amsmath、listings、booktabs這些宏包在模板里已經驗證可用模型不需要反復猜測配置。8.4 成本與安全DeepSeek 的 API 按 token 計費生成一份 10 頁左右的 Beamer PPT 通常消耗量不大但如果你用deepseek-reasoner反復迭代成本會明顯上升。建議在 Codex 中設置單次任務的最大輪數避免模型陷入無限自我修正的循環。另外API Key 不要提交到 git。可以在項目根目錄添加.gitignore把.env、*.key等文件排除在外。如果 Key 意外泄露立即到 DeepSeek 開放平臺重新生成。9. 總結DeepSeek 與 Codex 的組合解決了一個很實際的問題如何讓 AI 不只是“幫你寫 PPT 內容”而是“直接交付一份可編譯的 PPT 工程”。Beamer 在這里的作用至關重要它用嚴格的 LaTeX 結構約束了模型的輸出格式讓 AI 生成的文本最終變成排版整齊的 PDF 幻燈片。這套工作流的本質是把“制作 PPT”從手工排版活動降維成文本生產活動。內容在 LaTeX 文件里修改在提示詞里構建在編譯命令里。它適合公式多、代碼多、需要嚴謹排版的技術分享和學術匯報如果你只是做內部匯報的簡單圖文幻燈片PowerPoint 仍然夠用。下一步值得嘗試的方向有三個一是把 Beamer 模板沉淀到團隊倉庫形成統一視覺規范二是接入 CI 實現推送即編譯讓 PPT 像軟件一樣持續交付三是把整個“提示詞 編譯”過程封裝成腳本讓非技術同事也能用一句話生成技術演講幻燈片。這套鏈路并不復雜但它把 AI 生成內容到最終交付之間的最后一公里真正補上了。