AJBook编译尝试
李文威老师在编写代数学引论一书的时候设计了一套名为AJBook
的数学物理书籍TeX
模板,github
地址在这里
由于李老师是在MacOS
平台使用TeXLive
进行编译,部分细节需要改动.在此记录一下探究细节.(PS:最近感觉自己处理这种乱七八糟的问题的能力提升了,是错觉吗).
在开始之前,请确保你的电脑上已经安装了TeXLive
.
调用latexmk
在windows
上使用make
命令不是很方便.所以我们还是用命令行来编译.先看模板的编译命令:
latexmk -pdf -pdflatex="xelatex -shell-escape -interaction=nonstopmode %O %S" Template-AJbook
我们要使用latexmk
命令.如果你的终端报错是latexmk is not a internal or external command
,说明是未添加环境变量的老问题.在你的电脑中找到TeXLive
的安装目录,将其下的/win32/bin
目录添加到环境变量中.比如我的目录就是E:\texlive\2020\bin\win32
.
随后,你可以键入latexmk --version
检查latexmk
是否已经正确配置.如果你的终端报错是诸如找不到Perl
的提示,那么参照这里,在你的cmd
当中输入:
powershell -Command "& $([scriptblock]::Create((New-Object Net.WebClient).DownloadString('https://platform.activestate.com/dl/cli/713293699.1647403381_pdli01/install-latest.ps1'))) -c'state activate --default HGperl/Perl-5.34.0-Windows'"
如果还是无法找到Perl
,请检查你是否安装了CTeX
.如果有,请卸载之.
这一步完成后,latexmk --version
的输出应类似下面:
Latexmk, John Collins, 26 Dec. 2019. Version 4.67
编译模板
现在你可以依照README.md
尝试运行上面的编译命令了.不出意外,你可能会遇到海量的输出和其中夹杂的一些报错信息,例如
Package fontspec Warning: Font "FandolSong-Regular" does not contain requested
(fontspec) Script "CJK".
......
kpathsea:make_tex: Invalid filename `Noto Sans CJK SC/OT', contains ' '
! Package fontspec Error: The font "Noto Sans CJK SC" cannot be found.
For immediate help type H <return>.
...
l.79 ^^I\frontmatter
^^I% 制作封面和目录.
kpathsea:make_tex: Invalid filename `Noto Sans CJK SC/OT', contains ' '
Package fontspec Warning: Font "Noto Sans CJK SC" does not contain requested
(fontspec) Script "CJK".
首先不难看出,这些报错都是有关字体配置的.大概是说FandolSong-Regular
未被包含,以及找不到Noto Sans CJK SC
等等.其实我也很疑惑为什么会报Fandol
系列字体的错误,这个理应是包含在TeXLive
里面的.不过它不会使编译终止,关键问题是后者.这一点其实在README.md
当中有所提及:
- The Noto Sans CJK SC fonts from Noto CJK, which should also be installed system-wide.
按照报错我们找到目录下的font-setup-open.tex
文件.最简单的方法就是将所有字体自定义全部注释掉.
可能因为MacOS
与Windows
系统字体名称不同,无法通用.调试半天,最后记录一下\setCJKfamilyfont
的含义.
\setCJKfamilyfont{hei}[
BoldFont=* Bold,
ItalicFont=微软雅黑
]{微软雅黑}
它的意思是设定字体名hei
为微软雅黑,如果遇到加粗命令,则使用微软雅黑的Bold
版本.*
代表后面的字体名.但注意,在Windows
中只有你安装了相应的字形,才可以使用.否则就会报错,找不到字体.比如下图中,只有微软雅黑能用细体和粗体,其他都不行.

我的选择:还是注释掉吧...配置这东西着实有些繁琐,等以后再填坑吧.
这本书的编译我曾经尝试过好几次,不过之前都是浅尝辄止,这次算是基本完成了,谁能想到最开始我只是看到了我很久以前下载的一份LaTeX
符号表,看到那些花里胡哨的符号又想起了这个模板,花了接近三小时才终于弄明白怎么编译.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具