Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ctex: 在 v2.4.15 里面设置 fontset = ubuntu 还是会去选文泉驿? #457

Closed
iruletheworld opened this issue Oct 23, 2019 · 12 comments

Comments

@iruletheworld
Copy link

发现在 v2.4.15 的ctex里面(texlive 2019),如果设置 [fontset = ubuntu],那还是会尝试去使用文泉驿字体。但是这个字体已经不包含在最近的Ubuntu发布里面了 (譬如18.0.4)。是不是应该尝试调用其它字体?譬如Droid Sans Fallback

这其实在本地没太大问题,安装文泉驿就好了。或者自定义一个def来调用想用的字体就算了。出问题的是在远端生成文档的时候。我最近尝试用 readthedocs.org 在远端自动生成文档时,它的生成的PDF基本就是空白一片的。估计是服务器上没有字体的问题。fandol已经试过,繁中缺字很多,基本不能用。简中似乎没有问题。

出问题的repo:https://github.com/iruletheworld/latex2img

conf.py里面试过对Latex的设置如下(现在改了回去),目的是为了达到像ctex文档中例5那样的设置:

latex_engine = 'xelatex'
latex_use_xindy = False

latex_docclass = {
   'manual': 'ctexbook'
}

latex_elements = {

    'papersize': 'a4paper',

    'pointsize': '10pt',

    'extraclassoptions': r'fontset = none',

    'preamble': r'''
    \usepackage{ctex}
    \ctexset{fontset = ubuntu}
    \usepackage{float}
    \usepackage{graphicx}
    \usepackage{indentfirst}
    \setlength{\parindent}{2em}
    ''',

    'figure_align': 'H',
}

ctex是因为 readthedocs 自己有一个非ANSCII的教程就是用ctex#5453。我也试了一下用xeCJK而不用ctex,不过在服务器上用\setCJKmainfont{}似乎还是会出问题(跟 Overleaf 相似的路径问题?)。

总之,是建议一下对新版的ctexfontsetubuntu的时候不要默认为文泉驿。或者可以像自动检测Windows那样检测一下Ubuntu的版本?

@stone-zeng
Copy link
Member

#310 讨论了思源字库,不过自动判断比较麻烦。另外思源的字体名字确实会是一个大问题,目前还是自己手写一下字体配置比较安全。

@iruletheworld
Copy link
Author

另外我发现文鼎缺字也有点厉害(Ubuntu 18.04)。很多香港的繁体字没有。貌似一些台湾的繁体在楷体里面也没有。思源的字体名的确麻烦,建议在用户手册里面提醒一下就算了。最终还是要自己动手解决的,本地的话。远端构建我就真没办法了,除非服务器管理员装字体,然后告诉我字体名。

@stone-zeng
Copy link
Member

I have just installed Ubuntu 19.10, and the default CJK fonts are Noto CJK:

/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans CJK HK:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans CJK JP:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans CJK KR:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans CJK SC:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans CJK TC:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans Mono CJK HK:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans Mono CJK JP:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans Mono CJK KR:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans Mono CJK SC:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans Mono CJK TC:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans CJK HK:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans CJK JP:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans CJK KR:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans CJK SC:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans CJK TC:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans Mono CJK HK:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans Mono CJK JP:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans Mono CJK KR:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans Mono CJK SC:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans Mono CJK TC:style=Regular
/usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc: Noto Serif CJK JP:style=Bold
/usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc: Noto Serif CJK KR:style=Bold
/usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc: Noto Serif CJK SC:style=Bold
/usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc: Noto Serif CJK TC:style=Bold
/usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc: Noto Serif CJK JP:style=Regular
/usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc: Noto Serif CJK KR:style=Regular
/usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc: Noto Serif CJK SC:style=Regular
/usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc: Noto Serif CJK TC:style=Regular

If this can be confirmed, then I plan to change the ubuntu fontset. Unfortunately, it seems that Fangsong and Kaiti are not available.

(I use English since I haven't installed IME yet, so feel free to use Chinese)

@iruletheworld
Copy link
Author

我回去看看18.04的默认是啥。LTS还是要确保一下的。

@stone-zeng stone-zeng added this to the ctex 2.5 milestone Nov 7, 2019
@stone-zeng
Copy link
Member

stone-zeng commented Nov 7, 2019

Ubuntu 18.04 包含以下 Noto CJK 字体(https://packages.ubuntu.com/bionic/all/fonts-noto-cjk/filelist):

/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc
/usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc
/usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc

而在 16.04 中还没有包含思源宋体(https://packages.ubuntu.com/xenial/all/fonts-noto-cjk/filelist):

/usr/share/fonts/opentype/noto/NotoSansCJK.ttc

考虑到 19.10 默认不再包含文鼎的 ukai 和 uming,目前的打算是:

  • 如果存在 NotoSerifCJK-Regular.ttc,则 CJKmain 和 zhsong 用思源宋体,否则用 TeX 发行版自带的 gbsn00lp.ttf (文鼎PL简报宋)
  • CJKsans 和 zhhei 用思源黑体
  • zhkai 用自带的 gkai00mp.ttf(文鼎PL简中楷)
  • CJKmono 和 zhfs 不管(用 CJKmain 代替)

这样应该至少可以覆盖到 16.04。虽然按照 Ubuntu lifecycle 的说明 14.04 还远未结束支持,但我不是很想处理了,毕竟本来默认行为就是用 fandol,想用思源也可以手动装手动写。

欢迎提供其他参考和建议。

@iruletheworld
Copy link
Author

我也觉得CJKmono和仿宋不用管,反正用得实在是不多。会用到地方大概也不会用Latex。我就怕文鼎的那个楷体,感觉它搞不掂香港繁体和台湾繁体的异体字。

@stone-zeng
Copy link
Member

那也没有办法,可以免费用的、字比较齐全的楷体就只有方正那个了,adobe 和 google 貌似也没有开发楷体 / 仿宋等等的打算。

如果是排版文档,我倒觉得 \emph 可以直接使用黑体;楷体主要是有些学校、期刊对论文格式有要求而非用不可,自己玩怎么其实都无所谓。

@iruletheworld
Copy link
Author

觉得用户手册里面说明一下本地编译可能需要本地配置,远端编译可能需要服务器支持应该就可以了。我目前主要碰到的问题还是远端编译,readthedocs.org的服务器上很多字体没有。我都建议他们要么装字体,要么叫用户用Droid Sans Fallback算了。反正网上看问题不大。

@hosiet
Copy link

hosiet commented Nov 7, 2019

有个小建议:高版本的 fonts-noto-cjk 会提供 Noto Sans Mono CJK 系列字体,能否评估一下该系列字体是否适合 CJKMono 吗?谢谢

@stone-zeng
Copy link
Member

有个小建议:高版本的 fonts-noto-cjk 会提供 Noto Sans Mono CJK 系列字体,能否评估一下该系列字体是否适合 CJKMono 吗?谢谢

Noto Sans Mono CJK 的汉字部分等价于 Noto Sans CJK,而且考虑到低版本没有,就不用了。

@stone-zeng
Copy link
Member

Ubuntu 16.04 Xenial 下面没有思源宋体,思源黑体的文件名与之后版本也不一样,因此决定从 18.04 之后开始支持。

事实上 fontset = ubuntu 不会自动开启,Ubuntu 系统上默认使用 fandol

@iruletheworld
Copy link
Author

Ubuntu 16.04 Xenial 下面没有思源宋体,思源黑体的文件名与之后版本也不一样,因此决定从 18.04 之后开始支持。

事实上 fontset = ubuntu 不会自动开启,Ubuntu 系统上默认使用 fandol

刚开始是因为fandol缺字太多才去开了 fontset = ubuntu 。结果系统没带文泉驿,xelatex直接罢工了。

@stone-zeng stone-zeng mentioned this issue Jan 10, 2020
25 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants