여러 xeCJK 글꼴

여러 xeCJK 글꼴

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}

Noto 글꼴 샘플

이를 위해서는 XeLaTeX 및 babel3.27 이상이 필요합니다. (3.22에서는 버그를 해결하려면 수동으로 설정 하고 해결 babel해야 합니다 .)Script=CJKScript=KanaNoto CJK 글꼴.

\otherlanguage여기저기 쓸 필요가 없는 Babel의 더 간단한 옵션은 입니다 ucharclasses. 을 선언하고 옵션을 \newfontfamily제공 한 후 선택할 수도 있습니다 [Script = Kana, Language = Japanese].

업데이트

2021년부터 LuaLaTeX 1.12 이상에서는 여러 표의 문자 스크립트를 사용할 수 있습니다. 이론적으로는 태그를 지정하지 않고 언어 간에 전환하도록 문서를 설정할 수 있습니다. 실제로는 유니코드 컨소시엄이 한자와 중국어에 동일한 코드 포인트를 사용하기로 선택했기 때문에 중국어와 일본어에서는 안정적으로 작동하지 않습니다. (유니코드의 원죄는 모든 것을 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}

노토 CJK 샘플

여기서는 언어 전환을 더욱 명확하게 하기 위해 각 언어를 다른 색상으로 설정했습니다.

관련 정보