scp-pdf icon indicating copy to clipboard operation
scp-pdf copied to clipboard

编译环境问题

Open winkar opened this issue 6 years ago • 11 comments

我在Windows上尝试用Miktex,在Ubuntu 14.04上尝试用tex-live,在解决了所有字体依赖以后,都无法正常编译成功。只能编译出一个不完整的PDF(我并不知道哪里不完整,内容看起来都有,但md5sum和release版不一样;我自己编译的Windows版和Linux版也不一样)

由于对Latex不太熟悉,Debug已经无以为继了。

求解成功编译的环境是什么。

winkar avatar Jun 15 '18 04:06 winkar

我自己的编译环境是 deepin linux(debian based) + texlive 2017 + latexmk,也没什么特殊的依赖了。

用于测试的编译命令是 make scp.pdf

如果可以的话发下这个命令的报错信息出来吧,我看下能不能协助解决。

7sDream avatar Jun 15 '18 08:06 7sDream

https://gist.github.com/winkar/38aa8d833b4a77a1da3c4d226d170d63

我把输出贴在了这个gist里,上半截是运行make scp.pdf的结果,下半截是编译生成的scp.out临时文件的内容

winkar avatar Jun 15 '18 12:06 winkar

我把环境更换到了Debian9, textlive-2018

上一次的某些错误可能是因为我没安装Hanazono字体,重新处理了一遍依赖,现在的错误看起来少多了,但仍然提示有错误。

新的编译错误gist https://gist.github.com/winkar/02325633f9d615e3a4feb1d6d179da2f

winkar avatar Jun 16 '18 11:06 winkar

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

7sDream avatar Jun 16 '18 16:06 7sDream

我的运行输出

➜  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系列字体的姿势有问题……但并不知道问题在哪里。

winkar avatar Jun 16 '18 17:06 winkar

感觉你安装的 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

这个命令的输出,最好先刷下字体缓存。

7sDream avatar Jun 16 '18 18:06 7sDream

➜  ~ 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

winkar avatar Jun 17 '18 03:06 winkar

咱们版本号好像都不太一样,晚上我分析下你文件的 charset 看下是不是真的没这个字符。

7sDream avatar Jun 25 '18 04:06 7sDream

今天下班太晚,估计这周晚上都没啥时间了,这周末我看下吧。

7sDream avatar Jun 25 '18 16:06 7sDream

时隔一年更新了一版……

上班了是真的累,都没心情干感兴趣的事了。

另外 ReadMe 加了一段编译指导,但是 Linux 的部分因为我现在已经没在使用 Linux 环境了所以没咋写。macOS 的写的比较详细,如果你以后换成使用 Mac 的话可以参考下,我在新机器上编译没什么问题 OvO

7sDream avatar Feb 16 '19 09:02 7sDream

再次时隔一年更新了一版……

这次用 Github Action 做了自动 Release,一开始用 Mac 环境怎么都调都不通,今天换成 Ubuntu 环境一下就通了,运行过程:https://github.com/7sDream/scp-pdf/runs/639124981

如果你还感兴趣的话,可以参考 workflow 文件(基本上就是一堆 shell 命令)看看能不能把本地编译环境搞定。

7sDream avatar May 02 '20 17:05 7sDream