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文件.最简单的方法就是将所有字体自定义全部注释掉.

可能因为MacOSWindows系统字体名称不同,无法通用.调试半天,最后记录一下\setCJKfamilyfont的含义.

\setCJKfamilyfont{hei}[
	BoldFont=* Bold,
	ItalicFont=微软雅黑
]{微软雅黑}

它的意思是设定字体名hei为微软雅黑,如果遇到加粗命令,则使用微软雅黑的Bold版本.*代表后面的字体名.但注意,在Windows中只有你安装了相应的字形,才可以使用.否则就会报错,找不到字体.比如下图中,只有微软雅黑能用细体和粗体,其他都不行.

我的选择:还是注释掉吧...配置这东西着实有些繁琐,等以后再填坑吧.
这本书的编译我曾经尝试过好几次,不过之前都是浅尝辄止,这次算是基本完成了,谁能想到最开始我只是看到了我很久以前下载的一份LaTeX符号表,看到那些花里胡哨的符号又想起了这个模板,花了接近三小时才终于弄明白怎么编译.

posted @   LinXiaoshu  阅读(220)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示