jlreqでCJK混植

jlreqでCJK混植

- Wang Yifan の投稿
返信数: 5
LuaTeXでjlreqパッケージを利用し、ほぼ日本語の文書を作成していますが、一部中国語の部分のみ中国語用の書体にしたい(原ノ味フォントでは文字によって豆腐になるため)のですが、どのようにすればよいでしょうか。
下のようなコードでは、フォントが切り替わらず、添付ファイルのような表示になりました。
フォントファイルはTeX Liveに標準で入っているもので、少なくとも見つからないというエラーは出ていません。

\documentclass{jlreq}
\usepackage{babel}
\babelprovide[import]{chinese-simplified}
\babelprovide[import]{chinese-traditional}
\babelfont[chinese-simplified]{rm}{AR PL SungtiL GB}
\babelfont[chinese-traditional]{rm}{AR PL Mingti2L Big5}
\begin{document}
日本語\foreignlanguage{chinese-simplified}{汉语}
\end{document}


バージョン: TeX Live 2021
OS: Ubuntu 20.04 (WSL2)
添付 スクリーンショット_2022-01-28_180805.png
Wang Yifan への返信

Re: jlreqでCJK混植

- はやて (h20y6m) の投稿

(中国語のことはわかりませんが……)

LuaTeX-ja(jlreq が内部で読み込んでいる LuaTeX で日本語を組版するためのパッケージ)では、和文(CJK)用のフォントを欧文(アルファベット)用のフォントとは別に管理しています。 おそらく \babelfont で変更できるのは欧文フォントだけなのではないでしょうか。 LuaTeX-ja と babel を組み合わせる方法はわかりませんが、luatexja-fontspec を使えば和文フォントを変更することができます。 一部分だけ和文フォントを変更するには \newjfontfamily 命令で新しいフォント命令を作成し、変更したい場所で使用します。

\documentclass{jlreq}

\usepackage{luatexja-fontspec}
\newjfontfamily\yahei{Microsoft YaHei}
\newjfontfamily\jhenghei{Microsoft JhengHei}

\begin{document}
日本語{\yahei 简体中文}{\jhenghei 繁體中文}
\end{document}
はやて (h20y6m) への返信

Re: jlreqでCJK混植

- Wang Yifan の投稿
ご回答ありがとうございます。教えていただいた方法でフォントを変更することができました。
LuaTeX-jaは和文に使う文字(JAchar?)をLaTeX本来の処理から切り離しているので、その部分に対する設定は、LuaTeX-jaが提供する機能を通さないと反映されないという認識でよろしいでしょうか?
Wang Yifan への返信

Re: jlreqでCJK混植

- TrueRoad の投稿

本題とは外れるかもしれませんが、原ノ味フォントには中国語版や韓国語版もあります。日本語以外は TeX Live に入っていませんが、デザインが同じなので混植しても違和感が少ないと思います。

https://github.com/trueroad/HaranoAjiFontsCN
https://github.com/trueroad/HaranoAjiFontsTW
https://github.com/trueroad/HaranoAjiFontsKR
https://github.com/trueroad/HaranoAjiFontsK1

以下のようにしてみたところマルチウェイトでも使えました。

\documentclass{jlreq}

\usepackage[haranoaji,deluxe,match]{luatexja-preset}

\defaultjfontfeatures[HaranoAjiMinchoCN]
  {
    Extension = .otf,
    UprightFont = *-Regular,
    BoldFont = *-Bold,
    FontFace = {l}{\shapedefault}{ *-Light },
    FontFace = {eb}{\shapedefault}{ *-Bold }
  }
\newjfontfamily{\HaranoAjiMinchoCN}{HaranoAjiMinchoCN}
\defaultjfontfeatures[HaranoAjiGothicCN]
  {
    Extension = .otf,
    UprightFont = *-Regular,
    BoldFont = *-Bold,
    FontFace = {l}{\shapedefault}{ *-Regular },
    FontFace = {eb}{\shapedefault}{ *-Heavy }
  }
\newjfontfamily{\HaranoAjiGothicCN}{HaranoAjiGothicCN}

\defaultjfontfeatures[HaranoAjiMinchoTW]
  {
    Extension = .otf,
    UprightFont = *-Regular,
    BoldFont = *-Bold,
    FontFace = {l}{\shapedefault}{ *-Light },
    FontFace = {eb}{\shapedefault}{ *-Bold }
  }
\newjfontfamily{\HaranoAjiMinchoTW}{HaranoAjiMinchoTW}
\defaultjfontfeatures[HaranoAjiGothicTW]
  {
    Extension = .otf,
    UprightFont = *-Regular,
    BoldFont = *-Bold,
    FontFace = {l}{\shapedefault}{ *-Regular },
    FontFace = {eb}{\shapedefault}{ *-Heavy }
  }
\newjfontfamily{\HaranoAjiGothicTW}{HaranoAjiGothicTW}

\begin{document}

日本語 明朝 --- 汉语 直 骨 --- \textbf{汉语 直 骨}\par
{\gtfamily 日本語 ゴシック --- 汉语 直 骨 --- \textbf{汉语 直 骨}}\par
{\HaranoAjiMinchoCN 简体中文 宋体 --- 汉语 直 骨 --- \textbf{汉语 直 骨}}\par
{\HaranoAjiGothicCN 简体中文 黑体 --- 汉语 直 骨 --- \textbf{汉语 直 骨}}\par
{\HaranoAjiMinchoTW 繁體中文 宋體 --- 汉语 直 骨 --- \textbf{汉语 直 骨}}\par
{\HaranoAjiGothicTW 繁體中文 黑體 --- 汉语 直 骨 --- \textbf{汉语 直 骨}}

\end{document}

TrueRoad への返信

Re: jlreqでCJK混植

- 奥村 晴彦 の投稿
出遅れましたが,おもしろそうなので,見に来ました。

TrueRoadさんありがとうございます。直や骨は国によって字体がずいぶん違うんですね。

ところで,最初のご質問で,字が出ないということだけなら,

\documentclass{jlreq}
\RequirePackage[sourcehan]{luatexja-preset}
\begin{document}
日本語/汉语/简体中文/繁體中文
\end{document}

で出そうな気がします。

(やっぱりMarkdownフォーマットがなんかバグってますね)
奥村 晴彦 への返信

Re: jlreqでCJK混植

- TrueRoad の投稿
luatexja-preset の sourcehan を使うと SourceHanSerif-Regular.otf などが使われますが、これはグリフは CJK ぜんぶ揃っていますがあくまでも日本語用なので「直」や「骨」など言語でグリフが違うものが日本語用のグリフになります。

ちゃんと言語毎にグリフを切り替えたいなら、SourceHanSerifSC-Regular.otf とか SourceHanSerifTC-Regular.otf とかを言語毎に切り替えなきゃならないので、それをするぐらいなら原ノ味を切り替えても同じかなぁと思います。

(さきほどソースを貼り付けた時にソース中の改行が消えてしまうので何回かやり直しをさせていただきました。お騒がせしました。)