fontspec / babelfont: Mixing Chinese and English | Latin Font Different in Chinese vs. English Text | Google Noto Fonts

You could try the (new) multiscript option. But you will get a few warning from fontspec:

\documentclass{article}


\usepackage[english]{babel}
% babelprovide for *english* (default language of the document)
\babelprovide[
    main,
    import,
    language = Default]
    {english}

% babelprovide for *chinese-simplified*
\babelprovide[
    import,
    language = Chinese Simplified]
    {chinese-simplified}
\directlua{
luaotfload.add_multiscript
 ("latn-hani",
  {
    Hani = "Noto Serif CJK SC:mode=node;script=hani;",
  }
 )
}
\babelfont{rm}[RawFeature={multiscript=latn-hani}]{Noto Serif}


\begin{document}

\selectlanguage{english}ABCabc 你好
\selectlanguage{chinese-simplified}ABCabc 你好

\end{document}

enter image description here


It is indeed the case that the Latin glyphs from "Noto Serif CJK SC" is notably lighter than the corresponding weights from "Noto Serif". I am not aware of any documents explaining this design choice. However, it is worth noting that the Latin glyphs from "Noto Serif" would look like a (slight) emphasis within a span of Chinese text. One can see this in Ulrike's answer. An alternative is to explicitly mark the Latin characters with a language:

ABCabc

{\selectlanguage{chinese-simplified} 简化字总表 ABCabc 简化字总表}

{\selectlanguage{chinese-simplified} 简化字总表 \foreignlanguage{english}{ABCabc} 简化字总表}

ABCabc

enter image description here

In the second line, the Latin text blends into the Chinese text while it stands out in the third line.

Now Noto comes win many different weights. If CJK-Regular is lighter than Latin-Regular, we can try to combine CJK-Regular with Latin-Light:

\documentclass{article}

\usepackage[english]{babel}
% babelprovide for *english* (default language of the document)
\babelprovide[
    main,
    import,
    language = Default]
    {english}

% babelprovide for *chinese-simplified*
\babelprovide[
    import,
    language = Chinese Simplified]
    {chinese-simplified}

%% Choose actual fonts for different font variants.
\babelfont{rm}[
  UprightFont=*-Light,
  BoldFont=*-Medium,
]{Noto Serif}
\babelfont[chinese-simplified]{rm}{Noto Serif CJK SC}

\begin{document}

ABCabc

{\selectlanguage{chinese-simplified} 简化字总表 ABCabc 简化字总表}

{\selectlanguage{chinese-simplified} 简化字总表 \foreignlanguage{english}{ABCabc} 简化字总表}

ABCabc

\end{document}

enter image description here

The match is not perfect, but quite close. In principle it would also be possible to choose a slightly darker CJK. I do not have those installed right now, though.


To expand on the latin-in-chinese topic:

Two parts:

The first part is that Babel does not change the font according to which Unicode block the glyphs are in, like package ucharclasses does. Addendum: But see the comment about recent Babel.

The second part is that Noto Serif CJK SC contains some non-CJK glyphs as well.

Noto Serif has glyphs for Latin, Cyrillic, Greek, and a few other things.

Noto Serif CJK SC has the main parts of Latin, Cyrillic and Greek, as well as hiragana, katakana, hangul, bopomofo, and of course a large part of CJK.

noto compare

ucharclasses:

ucharclasses

MWE

\documentclass[12pt]{article}
\usepackage{xcolor}
\pagecolor{red!3}
\usepackage{fontspec}
\newfontface\fcjk{Noto Serif CJK SC}
\newfontfamily\feng{Noto Serif}

\usepackage[CJK]{ucharclasses}
\setTransitionsForCJK{\fcjk}{\feng}

\begin{document}
\large
{\color{blue}Noto Serif}

\feng 
\begin{tabular}{rl}
Latin & ABC abc \\
Currency symbols & ₣₤₥₦₧₨ \\
Cyrillic  & ЄДФЦжцабвг \\
Greek & ΣΤΥΦζεδγβα  \\
IPA \& Phonetic & ɐɠɰʁ ᴟᴞᴣᴇᴈᴗ \\
Letterlike Symbols & ℜℏ℈℃ℓℒ™ℵ⅀ \\
Modifier Tones & ꜀꜂꜈꜉꜊꜋꜌ꜗꜘꜙ \\
etc & ... \\
\end{tabular} 
\bigskip

\rmfamily
{\color{blue}Noto Serif CJK SC}

\fcjk
\begin{tabular}{rl}
Bopomofo & ㄆㄇㄈㄉㄊ \\
Box Drawing & ┢┤┩╆ \\
CJK & 㑣㐦㐧㕔 \\
some Latin & ABC abc \\
some Cyrillic  & ЄДФЦжцабвг \\
some Greek & ΣΤΥΦζεδγβα  \\
Hangul &  ᅣᅦᄄᆻ \\
Hiragana & あいいうえおかが \\
Katakana & アイウエオカガ \\
Letterlike Symbols & ℜℏ℈℃ℓℒ™ℵ⅀ \\
etc & ... \\
\end{tabular} 
\bigskip

\feng
\textit{ucharclasses}: {\small Changing fonts without having to insert font-changing code} -- Latin text. Chinese text: 紫薇北斗星  Modern Greek: Διαμ πριμα εσθ ατ, κυο πχιλωσοπηια Ancient Greek: Μῆνιν ἄειδε, θεά, Πηληϊάδεω Ἀχιλῆος. And regular latin text.

\end{document}