You have many choices since you're already using XeLaTeX. :) There's a nice compilation of List of CJK fonts on Wikipedia. FOSS fonts are labelled as such in this list.
As for "a single font that covers essentially all of the CJK code points, rare as well as common", choices are more limited there.
[Updated; it's 2020 now!] AFAIK there is no single .TTF or .OTF that does that (I guess the file size would be too big).
You may want to go for Noto Serif CJK SC, Noto Serif CJK TC, Noto Sans CJK SC, Noto Sans CJK TC. (They are also known as Source Hans Serif/Sans, 思源宋体/黑体)
There are also font projects that distribute two separate font files, which together will cover the entire CJK codepoint range. Two open-source fonts that do that, that I'm aware of, are:
Then using a recent version of XeCJK (as outlined in this answer to your earlier question) (example below uses Han Nom):
\documentclass{article}
\usepackage[fallback]{xeCJK}
\setCJKmainfont{HAN NOM A}
\setCJKfallbackfamilyfont{rm}{HAN NOM B}
% NOTE: "rm" for \setCJKmainfont, "sf" for \setCJKsansfont, "tt" for \setCJKmonofont
% and others for \setCJKfamilyfont.
\begin{document}
漢字源𣴑
\end{document}
As @LeoLiu stated, the kanjis in Hanazono look very 'japanified'. Han Nom looks much better for Chinese text hanzi (to my eyes anyway). Nevertheless, you didn't mention if you're working on Chinese text specifically: you just said "CJK". In any case, both Hanazono and Han Nom contain glyphs for hiragana and katakana, but unfortunately not hangul.
The font TeX Gyre Pagella
is based on Palatino
, which was designed by Herrmann Zapf. Within the past ten years or so, Zapf has designed a sans-serif font, called Palatino Sans
, to accompany Palatino
. Note, though, that Palatino Sans
isn't free and isn't include in any of the standard TeX distributions.
You may want to use Helvetica
as your document's sans serif font. If you do so, you should probably look into scaling Helvetica
down a bit as its x-height is rather larger than that of Palatino
.
Best Answer
You can try this