我想到的是以下几点:
\documentclass{book}
\usepackage{luatexja-fontspec}
\usepackage{iftex}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures={TeX}}
\setmainfont{Noto Serif}
\setsansfont{Noto Sans}
\setmonofont{Noto Sans Mono}
\usepackage[english, russian]{babel}
\begin{document}
\begin{tabular}{lll}
鮫 & 私が見た & 魚\\
акула & видела & рыбу\\
scùàlò & vìde & péscè\\
\end{tabular}
\end{document}
它的西里尔文渲染效果比较丑陋(不过我不知道日文渲染效果有多好)。
如果我不包含该包的话会更好luatexja-fontspec
,但代价是完全不显示日文字符,
很有趣的是,当我写这个问题时,我发现浏览器对字体有更清晰的认识(除了它不会将日文字符呈现为等宽字符;但这不是我想要做的):
答案1
luatexja 将字符分为两类。默认情况下,西里尔字母被视为 JAchar。您可以将其更改为 ALchar:
\documentclass{book}
\usepackage{luatexja-fontspec}
\ltjsetparameter{jacharrange={-2}} %range 2 is now ALchar
\usepackage{iftex}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures={TeX}}
\setmainfont{Noto Serif} \setsansfont{Noto Sans} \setmonofont{Noto Sans Mono}
\usepackage[english, russian]{babel}
\begin{document}
\begin{tabular}{lll}
鮫 & 私が見た & 魚\\
акула & видела & рыбу\\
scùàlò & vìde & péscè\\
\end{tabular}
\end{document}
答案2
尽管 Ulrike 解决了您的 MWE 问题,但如果您只是需要日语中的一些单词或短语,您可以按照以下方法操作:
\documentclass{book}
\usepackage[english, russian]{babel}
\babelprovide[onchar=ids fonts]{japanese}
\babelfont{rm}{Noto Serif}
\babelfont[japanese]{rm}{IPAexMincho}
\babelfont{sf}{Noto Sans}
\babelfont{tt}{Noto Sans Mono}
\begin{document}
\begin{tabular}{lll}
鮫 & 私が見た & 魚\\
акула & видела & рыбу\\
scùàlò & vìde & péscè\\
\end{tabular}
\end{document}
编辑。输出与 Ulrike 的答案相同。