☰
如何本地编译Coursebook教材?install.sh快速上手教程
2026/10/7 15:22:35 网站建设 项目流程

如何本地编译Coursebook教材?install.sh快速上手教程

【免费下载链接】coursebookOpen Source Introductory Systems Programming Textbook for the University of Illinois项目地址: https://gitcode.com/GitHub_Trending/co/coursebook

Coursebook 是伊利诺伊大学厄巴纳-香槟分校(UIUC)CS 341 系统编程课程使用的开源系统编程教材。想把它变成 PDF、EPUB 或 HTML 三种格式吗?本教程带你使用仓库自带的 install.sh 依赖安装脚本,从零完成 Coursebook 教材本地编译。

Coursebook系统编程教材本地编译教程封面

为什么需要 install.sh:三大构建目标一图看懂

Coursebook 的构建入口是 Makefile,而 CI 环境的依赖准备则交给 _scripts/install.sh。它通过环境变量BUILD_FOCUS区分三种构建目标,按需安装依赖:

构建目标BUILD_FOCUS 取值安装内容产物
维基 / HTML 版WIKIPython 依赖 + Pandoc 3.10.2Markdown 页面
EPUB 电子书版EPUB上述依赖 + EPUBCheck 5.4.0(需 Java 11+)main.epub
PDF 印刷版PDFTeX Live 2026 相关包main.pdf + 各章 PDF

这个脚本是 CI 流水线(见 _scripts/script.sh)的"装机脚本",你在本地照做一遍,就等于复现了官方构建环境。

Coursebook教材封面吉祥物鸭子,本地编译后PDF扉页同款

一键上手:克隆仓库并安装依赖

第一步:获取代码。只需克隆仓库(本教程唯一的外部地址):

git clone https://gitcode.com/GitHub_Trending/co/coursebook.git cd coursebook

第二步:安装依赖。根据你想产出的格式选择其一:

  • 只想要 Wiki / HTML 版:pip install -r requirements.txt,并确认系统装有 Pandoc 3.1.12 以上版本(requirements.txt 中锁定了 panflute 等配套版本,脚本注释解释了版本联动的原因)。
  • 想要 EPUB 版:在 Wiki 基础上额外安装 Java 11+ 与 W3C EPUBCheck。
  • 想要 PDF 版:最省事的方式是一键装满 LaTeX——
sudo apt install texlive-full

PDF 构建要求TeX Live 2026(使用 lualatex 引擎),因为 cs341code.sty 和 cs341book.sty 依赖新版 LaTeX 的 tagging 功能;老版本 TeX Live 会直接编译失败。

本地编译完整 PDF:make main.pdf 就够

依赖装好后,编译全书只需一条命令:

make main.pdf

更多常用目标(均在 Makefile 中定义):

  • make pdf—— 生成完整书 +order.yaml列出的每一章独立 PDF,适合分章阅读;
  • make introc/introc.pdf—— 只编译单章,速度快,改 LaTeX 时调试很常用;
  • make pdf TAGGED=0—— 跳过无障碍标签、从 main_wrapper.tex 直接构建,更快、更好调试;
  • make clean—— 清理所有中间文件,出问题时先来一下。

💡 章节顺序由 order.yaml 控制,_scripts/gen_order.py 会把它转成 order.tex。新增或删除章节时改这一个文件即可。

自动重编译小技巧:写 LaTeX 时嫌手动 make 麻烦,可运行 rebuilder.sh(需先sudo apt install inotify-tools),它监听文件变化、自动触发重新编译。

构建 Wiki(HTML/Markdown)版本

网页版是全书最轻量的构建路径:

python3 _scripts/gen_wiki.py order.yaml out

它会读取 order.yaml,通过 Pandoc 过滤器(_scripts/pandoc_wiki_filter.py)把各章 LaTeX 转成 Markdown。官方建议用虚拟环境隔离依赖:

virtualenv -p python3 env && source env/bin/activate python -m pip install -r requirements.txt

构建 EPUB 电子书版本

make epub

Makefile 中的 EPUB 规则要求 Pandoc ≥ 3.1.12(3.1.12 起才会把 _scripts/epub_metadata.yaml 中的无障碍元数据写入 EPUB),封面取自 _images/cover.png,并自动运行 _scripts/epub_cover_alt.py 补齐封面 alt 文本。产物就是可直接导入 Kindle / Apple Books 的main.epub。

常见编译问题排查清单

  1. pandoc: command not found或报版本错误→ Pandoc 3 与 2 的 citeproc 行为不同,务必用 3.1.12+;
  2. LaTeX 编译失败、报缺包→ 确认装的是texlive-full而非最小集,且为 TeX Live 2026;
  3. 找不到错误原因→ 运行make debug,它会带着 TeX 错误继续编译并把日志写入latexmk.out,方便看到卡在哪一章;
  4. 改了 order.yaml 没生效→ 先make clean再重建,让 order.tex 重新生成;
  5. 构建日志有隐藏错误?→ _scripts/check_tex_logs.sh 是 CI 用的日志检查脚本,可本地跑一遍自检。

更多贡献与构建细节,请直接阅读 CONTRIBUTING.md 的 "Development environment" 一节,那里给出了与本文一致的官方步骤。

小结

  • 本地编译 Coursebook 的核心三件套:install.sh装依赖 →make main.pdf出 PDF →gen_wiki.py出网页版;
  • 新手建议先跑通 PDF 路径,再按需扩展 EPUB 与 Wiki;
  • 记住版本红线:Pandoc ≥ 3.1.12、TeX Live 2026,跨格式构建不迷路。

【免费下载链接】coursebookOpen Source Introductory Systems Programming Textbook for the University of Illinois项目地址: https://gitcode.com/GitHub_Trending/co/coursebook

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询