私は xeCJK のメインフォントを HanWangMingMedium に設定し、古いスタイルの文字にアクセスできるようにしました。しかし、その結果、日本語のカナにアクセスできなくなりました。MWE では、カタカナは空白として表示されます。
デフォルトの xeCJK フォントではこの問題は発生しませんが、必要な特定の文字 (烝 など) が表示されません。文書の本文内で xeCJK フォントを変更するにはどうすればよいでしょうか。また、デフォルトの xeCJK フォントの名前は何ですか。
回答に関連する可能性があります: 書記体系について書いています。したがって、必要なのは孤立した文字だけです。中国語のテキストの長いセクションはありません。
% !TEX encoding = UTF-8 Unicode
\documentclass{article}
\usepackage{fontspec}
\usepackage{xeCJK}
\setCJKmainfont{HanWangMingMedium}
\begin{document}
東風フォント
\end{document}
更新。これはハックです。代替フォントをサンセリフのバリエーションとして想定します。しかし、適切な解決策がまだ必要です。
% !TEX encoding = UTF-8 Unicode
\documentclass{article}
\usepackage{fontspec}
\usepackage{xeCJK}
\setCJKmainfont{HanWangMingMedium}
\setCJKsansfont{AozoraMinchoRegular}
\begin{document}
東風\sf フォント.
\end{document}
答え1
ではbabel
、日本語や繁体字中国語など、さまざまな表意文字を切り替えることができます。
\documentclass{standalone} % Replace with the real class.
\usepackage[english]{babel}
\usepackage{fontspec}
% A bug in Babel 3.22 requires setting the script= option to CJK and Kana,
% respectively.
\babelprovide{chinese-traditional}
\babelprovide{japanese}
\defaultfontfeatures{Scale = MatchUppercase}
\babelfont{rm}[Scale = 1.0,
Ligatures = {Common, TeX},
Language = Default
]{Latin Modern Roman}
\babelfont{sf}[Ligatures = {Common, TeX},
Language = Default]{Latin Modern Sans}
\babelfont[chinese-traditional]{rm}{NotoSerifCJKtc-Regular}
\babelfont[chinese-traditional]{sf}{NotoSansCJKtc-Regular}
\babelfont[japanese]{rm}{NotoSerifCJKjp-Regular}
\babelfont[japanese]{sf}{NotoSansCJKjp-Regular}
\begin{document}
\otherlanguage{chinese-traditional}{東風}
\otherlanguage{japanese}{フォント}
\end{document}
これにはXeLaTeXとbabel
3.27以上が必要です。(babel
3.22では、バグを回避するために手動で設定する必要があります。Script=CJK
)Script=Kana
Noto CJKフォント。
\otherlanguage
あちこちに記述する必要がない、Babel よりも簡単なオプションはですucharclasses
。 を宣言し\newfontfamily
、それに[Script = Kana, Language = Japanese]
オプションを指定して、それを選択することもできます。
アップデート
2021 年現在、LuaLaTeX 1.12 以降では複数の表意文字を使用できます。理論的には、タグ付けせずに文書を言語間で切り替えるように設定できます。実際には、これは中国語と日本語では確実に機能しません。これは、Unicode コンソーシアムが漢字と中国語に同じコードポイントを使用することを選択したためです。(Unicode の原罪は、すべてを 16 ビットに収めることができると考えたことです。)
babel
この特定の例では、必要な日本語がひらがなとカタカナだけであり、表意文字がすべて中国語である場合、日本語、中国語、英語を正しく検出できます。
\documentclass{standalone} % Replace with the real class.
\usepackage[english]{babel}
\usepackage[svgnames, HTML]{xcolor}
\usepackage{fontspec}
% A bug in Babel 3.22 requires setting the script= option to CJK and Kana,
% respectively.
\babelprovide[import, onchar=ids fonts]{japanese}
\babelprovide[import, onchar=ids fonts]{chinese-traditional}
\defaultfontfeatures{ Scale = MatchUppercase,
Ligatures=TeX }
\babelfont{rm}
[Scale = 1.0,
Ligatures = Common,
Language = Default
]{Latin Modern Roman}
\babelfont{sf}
[Ligatures = Common,
Language = Default
]{Latin Modern Sans}
\babelfont[chinese-traditional]{rm}
[Renderer=HarfBuzz, Color=DarkGreen]{NotoSerifCJKtc-Regular}
\babelfont[chinese-traditional]{sf}
[Renderer=HarfBuzz, Color=DarkGreen]{NotoSansCJKtc-Regular}
\babelfont[japanese]{rm}
[Renderer=HarfBuzz, Color=NavyBlue]{NotoSerifCJKjp-Regular}
\babelfont[japanese]{sf}
[Renderer=HarfBuzz, Color=NavyBlue]{NotoSansCJKjp-Regular}
\begin{document}
東風
\textsf{フォント}
\end{document}
ここでは、言語の切り替えがより明確になるように、各言語を異なる色に設定しています。