使用下列代码:
\documentclass{article}
\usepackage[fontset=founder, UTF8]{ctex}
\usepackage[b6paper, scale=.9, landscape]{geometry}
\begin{document}
This is a new .tex document.
\songti 你好,世界!
\heiti 你好,世界!
\fangsong 你好,世界!
\kaishu 你好,世界!
\end{document}
可以得到这个内容:
可知这是由pdflatex生成的使用了founder系列字体的PDF文件。
众所周知,pdflatex没有调用系统本地字体的能力。
...\texlive\2024\texmf-dist\tex\generic\ctex\zhmap
下的ctex-zhmap-founder.tex
文件实现的?ctex-zhmap-founder.tex
类似的文件,使ctex宏集支持用户自定义的中文字体配置策略,并在pdflatex条件下生效?例如,希望使用fontset=source
选项,在pdflatex条件下,使生成的PDF能够显示本地的思源系列字体。可能有关:https://github.com/CTeX-org/ctex-kit/issues/434#issuecomment-493402258
注:「source-han」和「noto-serif-CJK-SC(实际上就是fontset=ubuntu
调用的)」均为「思源字体」,只是分发的公司不同而已。
那么这些汉字支持是怎么实现的?
感觉问的有点泛了...我不懂字体....
也许有关: https://liam.page/2016/12/11/LaTeX-traditional-font-scheme/
是不是依靠...\texlive\2024\texmf-dist\tex\generic\ctex\zhmap下的ctex-zhmap-founder.tex
文件实现的?
是。在sec4.3
中,zhmap=true
时默认行为调用了zhmetrics
读取ctex-zhmap- #4 .tex
中的配置:
源码可参见ctex
文档的sec14.3.2:ctex-engine-pdftex.def
:
% \ctex_load_zhmap:nnnn
% 载入 zhmetrics 的字体映射文件,同时设置 \CJKrmdefault 等。
512 \cs_new_protected:Npn \ctex_load_zhmap:nnnn #1#2#3#4
513 {
514 \tl_set:Nn \CJKrmdefault {#1}
515 \tl_set:Nn \CJKsfdefault {#2}
516 \tl_set:Nn \CJKttdefault {#3}
517 \ctex_set_zhmap:n { \ctex_file_input:n { ctex-zhmap- #4 .tex } }
518 }
519 \@onlypreamble \ctex_load_zhmap:nnnn
520 }
附:
在v2.5的changlog中提到:
General: ubuntu 改用思源(Noto CJK)和文鼎字库,不再支持使用 pdfLATEX
编译。
这个修改的代码内容可见这个链接,也许研究下修改之前的配置可以部分回答你的原问题. 粗看上面的修改,之前的fontset=ubuntu
是因为使用的是「文泉驿」字体(支持pdftex
),修改为「Noto」之后不支持了。
fontset=ubuntu
不支持pdflatex@u101077
我想表达的是 sources-han 和 Noto系列 是同一字体.
根据ctex文档,目前仅有founder和windows支持pdflatex.