scp-pdf
scp-pdf copied to clipboard
编译环境问题
我在Windows上尝试用Miktex,在Ubuntu 14.04上尝试用tex-live,在解决了所有字体依赖以后,都无法正常编译成功。只能编译出一个不完整的PDF(我并不知道哪里不完整,内容看起来都有,但md5sum和release版不一样;我自己编译的Windows版和Linux版也不一样)
由于对Latex不太熟悉,Debug已经无以为继了。
求解成功编译的环境是什么。
我自己的编译环境是 deepin linux(debian based) + texlive 2017 + latexmk,也没什么特殊的依赖了。
用于测试的编译命令是 make scp.pdf
。
如果可以的话发下这个命令的报错信息出来吧,我看下能不能协助解决。
https://gist.github.com/winkar/38aa8d833b4a77a1da3c4d226d170d63
我把输出贴在了这个gist里,上半截是运行make scp.pdf的结果,下半截是编译生成的scp.out临时文件的内容
我把环境更换到了Debian9, textlive-2018
上一次的某些错误可能是因为我没安装Hanazono字体,重新处理了一遍依赖,现在的错误看起来少多了,但仍然提示有错误。
新的编译错误gist https://gist.github.com/winkar/02325633f9d615e3a4feb1d6d179da2f
http://ix.io/1dzf
这是我刚刚在 dev 分支的编译输出。
另外我把你编译错误里类似:
Missing character: There is no █ in font Noto Sans <style>/OT:script=latn;language=DFLT;mapping=tex-text;!
的错误删除之后,得到的 log 长度和我的结果已经很类似了。所以应该只剩这一个问题。
你可以试试下载 https://github.com/7sDream/which_fonts_support 这个脚本,然后执行下
./which_fonts_support.sh █ | grep "Noto Sans" | sort | uniq -w 15 -c
这是我的执行结果:
8 Noto Sans
7 Noto Sans CJK JP Noto Sans CJK JP Black
7 Noto Sans CJK KR Noto Sans CJK KR Black
7 Noto Sans CJK SC Noto Sans CJK SC Black
7 Noto Sans CJK TC Noto Sans CJK TC Black
8 Noto Sans Mono CJK JP Noto Sans Mono CJK JP Bold
1 Noto Sans Symbols
8 Noto Sans UI
我的运行输出
➜ scp-pdf git:(master) ✗ ./which_fonts_support.sh "█" | grep "Noto Sans" | sort | uniq -w 15 -c
8 Noto Sans CJK JP Noto Sans CJK JP Black
8 Noto Sans CJK KR Noto Sans CJK KR Black
15 Noto Sans CJK SC Noto Sans CJK SC Black
8 Noto Sans CJK TC Noto Sans CJK TC Black
16 Noto Sans Mono
4 Noto Sans UI
其实根据我自己的感觉,以及参考Noto官网上的说明,缺的应该是Noto Sans Symbols 但我已经安装了Noto Sans Symbols字体,fc-list也能找到,但脚本搜索不到=、=
Debug更新,在下载从 https://github.com/jenskutilek/free-fonts/tree/master/Noto 获得的Noto Sans Regular后, 运行which fonts脚本的结果中出现Noto Sans Regular,并且报错信息从
Missing character: There is no █ in font Noto Sans Regular/OT:script=latn;language=DFLT;mapping=tex-text;!
变成了
Missing character: There is no █ in font Noto Sans Bold/Italic/OT:script=latn;language=DFLT;mapping=tex-text;!
但照着这个方法并不能同样解决这个问题。
我觉得我装Noto Sans系列字体的姿势有问题……但并不知道问题在哪里。
感觉你安装的 Noto Sans
和我的不太一样。
我机器上竟然有两个版本的 Noto Sans Regular
字体,他们的 sha256sum 分别是:
3d8c97bce3a0957c8238cd57223b902ab8711e8fe3a77a6f05897a6e3ce7ccec /usr/share/fonts/noto/NotoSans-Regular.ttf
a52fdd375fb885e6ac21471b34e26e5cb6e58f1fa944519bff08d4400605bfed /usr/share/fonts/truetype/noto/NotoSans-Regular.ttf
你可以对比下你机器上的文件。
另外可以给下
fc-list "Noto Sans:style=Regular" -v
这个命令的输出,最好先刷下字体缓存。
➜ ~ sha256sum /usr/share/fonts/truetype/noto/NotoSans-Regular.ttf
6b04c8dd65af6b73eb4279472ed1580b29102d6496a377340e80a40cdb3b22c9 /usr/share/fonts/truetype/noto/NotoSans-Regular.ttf
➜ ~ sha256sum ~/.fonts/NotoSans-Regular.ttf
3d8c97bce3a0957c8238cd57223b902ab8711e8fe3a77a6f05897a6e3ce7ccec /home/winkar/.fonts/NotoSans-Regular.ttf
我也有两个,第二个能对上 第二个是我从jenskutilek/free-fonts下载的,第一个是debian9上apt安装的noto sans,版本是最新的。
fc-list在刷新缓存之后的输出
https://gist.github.com/winkar/c607180cae1698562157f5b660a5d2a5
咱们版本号好像都不太一样,晚上我分析下你文件的 charset 看下是不是真的没这个字符。
今天下班太晚,估计这周晚上都没啥时间了,这周末我看下吧。
时隔一年更新了一版……
上班了是真的累,都没心情干感兴趣的事了。
另外 ReadMe 加了一段编译指导,但是 Linux 的部分因为我现在已经没在使用 Linux 环境了所以没咋写。macOS 的写的比较详细,如果你以后换成使用 Mac 的话可以参考下,我在新机器上编译没什么问题 OvO
再次时隔一年更新了一版……
这次用 Github Action 做了自动 Release,一开始用 Mac 环境怎么都调都不通,今天换成 Ubuntu 环境一下就通了,运行过程:https://github.com/7sDream/scp-pdf/runs/639124981
如果你还感兴趣的话,可以参考 workflow 文件(基本上就是一堆 shell 命令)看看能不能把本地编译环境搞定。