原の味フォントのCJK版?

原の味フォントのCJK版?

- Toshio Otaguro の投稿
返信数: 18
TeXLive 2020を使い始めたところです.これまではNoto-OTCフォント(CJK版)を使い,日本語の中にごくまれに簡体字や繁体字が出てくるような文章を書いていました.ソースファイルを素直にUTF-8で書き,pxchfonを使用すると統一された字体で簡体字や繁体字が出せるので重宝していました.

TeXLive 2020でデフォルトのフォントが原の味になったので,試用してみたのですが,簡体字,繁体字,ハングルなどはそのままでは統一された字体では出せないのだと思います.原の味フォントのCJK版のようなものは作れないのでしょうか?

TeXのフォントの扱いを理解していない素人の思い付きなので,何か根本的なところでおかしなことを言っているのかもしれませんが.
Toshio Otaguro への返信

Re: 原の味フォントのCJK版?

- よこ の投稿
お望みのものではなさそうな気がしますが、原ノ味フォントの中国語版や韓国語版はあります
https://github.com/trueroad/HaranoAjiFontsCN
https://github.com/trueroad/HaranoAjiFontsTW
https://github.com/trueroad/HaranoAjiFontsKR
https://github.com/trueroad/HaranoAjiFontsK1

よこ への返信

Re: 原の味フォントのCJK版?

- Toshio Otaguro の投稿

はい,これらのフォントをインストールして,pxbabel パッケージを用いて使用しています.ただし,Haranoaji 自身のように otf + pxchfon を使って7種類のフォントを使い分けることはできず,例えば,

\usepackage[schinese,japanese]{pxbabel}

\setschinesemichofont{HaranoAjiMichoCN-Regular.otf}

\setschinesegothicfont{HaranoAjiGothicCN-Regular.otf}

として,明朝とゴシックの2種類を使い分ける程度です.Noto-OTC では簡体字や繁体字を含めて7種類のフォントの使い分けができていたので,それが出来るようにならないのかな?という質問&要望です.

Toshio Otaguro への返信

Re: 原の味フォントのCJK版?

- t tk の投稿
otfパッケージ(CTANではjapanese-otf)をuplatex対応にした japanese-otf-uptex の最新版 v0.26 では \UTFC{}, \UTFT{}, \UTFK{}の多書体化(7書体)を実装しています。以前投稿した記事はこちら
原ノ味フォントCK版を利用した使用例はこちらです。
ただし、まだマクロやフォントの設定の自動化のたぐいは整備されていないように思います。

現状は uplatex + japanese-otf-uptex + dvipdfmx + 原ノ味フォントCK版の最新版を組み合わせて適切な環境設定をマニュアルで行えば「日本語の中にごくまれに簡体字や繁体字が出てくるような文章」は作成出来ると思います。

蛇足ながら
platex + japanese-otf の組み合わせの場合は \UTFC{}, \UTFT{}, \UTFK{} は2書体(オリジナルのotfパッケージそのまま)となります。
t tk への返信

Re: 原の味フォントのCJK版?

- t tk の投稿
追伸です。
japanese-otf-uptex のパッケージの中に原ノ味フォントCK版を利用したmapファイルとuplatexファイルの例を入れてあります。
utfmacro-haranoaji.map

ちょっと複雑になりすぎていて読み取りづらいかもしれませんがご参考まで。

Toshio Otaguro への返信

Re: 原の味フォントのCJK版?

- よこ の投稿
Notoや源ノをupTeXやpTeXで使うと、一部の記号類・ギリシャ文字・キリル文字などがあると組版がおかしくなるようなので、素直に原ノ味フォントを使った方がよさそうです。どうしてもNotoを使いたいのであればLuaTeXに乗り換える必要がありそうです。

さて、TeX Live 2021に更新したのでupTeXで原ノ味フォントの多言語多ウェイトを試してみました。
kanji-config-updmap-sys --ja haranoaji
kanji-config-updmap-sys --sc haranoaji
を実行してフォント設定を原ノ味にしてから、
\documentclass[uplatex,dvipdfmx]{jsarticle}
\usepackage[uplatex,multi,deluxe]{otf}
\usepackage[schinese,japanese]{pxbabel}
\begin{document}
日本語の直\par
中国語簡体字の\foreignlanguage{schinese}{直}\par
日本語Unicode指定の\UTF{76F4}\par
中国語簡体字Unicode指定の\UTFC{76F4}\par
{\bfseries
日本語の直\par
中国語簡体字の\foreignlanguage{schinese}{直}\par
日本語Unicode指定の\UTF{76F4}\par
中国語簡体字Unicode指定の\UTFC{76F4}\par
}
\end{document}
をuplatexコマンドで処理してdvipdfmxでPDFにしてみました。

すると、\UTFC で Unicode 指定した(\UTFC{76F4}と書いた)「直」は太字になりましたが、直接書いた(\foreignlanguage{schinese}{直}と書いた)「直」は太字になりませんでした。

いちいち \UTFC で指定しないと太字にならないのは非常に使いにくいですね。
よこ への返信

Re: 原の味フォントのCJK版?

- t tk の投稿
確かに \foreignlanguage{schinese}{直} と書いた部分は現状では多書体化されていません。
UTF-8で書かれた本文用フォントは japanese-otf-uptex で多書体化した部分ではないので、現状はご指摘の通りの動作になります。
私(japanese-otf-uptexの作者)としてはZRさんの pxbabel に期待したいと思います。
t tk への返信

Re: 原ノ味フォントのCJK版?

- TrueRoad の投稿
正しいやり方なのか否かよくわかりませんが、とりあえず私の環境 (TeX Live 2021) では以下のようにすることで簡体字のテキスト(\UTFC 以外)をマルチウェイトにすることができました。
\documentclass[uplatex,dvipdfmx]{jsarticle}

\usepackage[uplatex,multi,deluxe]{otf}
\usepackage[schinese,japanese]{pxbabel}

\DeclareFontShape{J22}{hmc}{l}{n}{<->s*[0.924690]utfcml--h}{}
\DeclareFontShape{J22}{hmc}{m}{n}{<->s*[0.924690]utfcmr--h}{}
\DeclareFontShape{J22}{hmc}{bx}{n}{<->s*[0.924690]utfcmb--h}{}
\DeclareFontShape{J22}{hgt}{m}{n}{<->s*[0.924690]utfcgr--h}{}
\DeclareFontShape{J22}{hgt}{bx}{n}{<->s*[0.924690]utfcgb--h}{}
\DeclareFontShape{J22}{hgt}{eb}{n}{<->s*[0.924690]utfcge--h}{}
\DeclareFontFamily{J22}{mg}{}
\DeclareFontShape{J22}{mg}{m}{n}{<->s*[0.924690]utfcmgr--h}{}

\DeclareFontShape{J32}{hmc}{l}{n}{<->s*[0.924690]utfcml--v}{}
\DeclareFontShape{J32}{hmc}{m}{n}{<->s*[0.924690]utfcmr--v}{}
\DeclareFontShape{J32}{hmc}{bx}{n}{<->s*[0.924690]utfcmb--v}{}
\DeclareFontShape{J32}{hgt}{m}{n}{<->s*[0.924690]utfcgr--v}{}
\DeclareFontShape{J32}{hgt}{bx}{n}{<->s*[0.924690]utfcgb--v}{}
\DeclareFontShape{J32}{hgt}{eb}{n}{<->s*[0.924690]utfcge--v}{}
\DeclareFontFamily{J32}{mg}{}
\DeclareFontShape{J32}{mg}{m}{n}{<->s*[0.924690]utfcmgr--v}{}

\begin{document}

{\mcfamily
  {\ltseries
    明朝・細\par
    日本語の直\par
    中国語簡体字の\foreignlanguage{schinese}{直}\par}
  {\mdseries
    明朝・中\par
    日本語の直\par
    中国語簡体字の\foreignlanguage{schinese}{直}\par}
  {\bfseries
    明朝・太\par
    日本語の直\par
    中国語簡体字の\foreignlanguage{schinese}{直}\par}}

{\gtfamily
  {\mdseries
    ゴシック・中\par
    日本語の直\par
    中国語簡体字の\foreignlanguage{schinese}{直}\par}
  {\bfseries
    ゴシック・太\par
    日本語の直\par
    中国語簡体字の\foreignlanguage{schinese}{直}\par}
  {\ebseries
    ゴシック・極太\par
    日本語の直\par
    中国語簡体字の\foreignlanguage{schinese}{直}\par}}

{\mgfamily
  {\mdseries
    丸ゴシック\par
    日本語の直\par
    中国語簡体字の\foreignlanguage{schinese}{直}\par}}

\end{document}
これと同様の設定を ZR さんの pxbabel 内部でするようにしていただくことができれば、使いやすくなるのではないかと思います。
TrueRoad への返信

Re: 原ノ味フォントのCJK版?

- t tk の投稿
方法のご提案ありがとうございます。
何をもって「正しい」とするかの問題もありますが、一つの懸念は約物です。

utfcmr--h.tfm などの TFM (JFM) は \UTFC{}等での使用を前提としているので、約物に配慮したものになっていません。
一方、uptex-font の TFM (JFM) は、中韓フォントのJFM で議論したように、約物の処理は一応考慮しており、それなりに良くなっていると期待しています。

そのへんを気にしないのであれば、utfcmr--h.tfm 等を使い回す方法で、問題はないと思います。
気にするのであれば、TFM を作るところからやる必要があると思います。

t tk への返信

Re: 原ノ味フォントのCJK版?

- TrueRoad の投稿

ご指摘ありがとうございます。
pxbabel にプルリクしたのですが、そのまま無条件に適用してしまうのは良くなさそうですね。

TrueRoad への返信

Re: 原ノ味フォントのCJK版?

- TrueRoad の投稿

プルリクをマージしていただきまして、最新の PXbase ver. 1.2 では以下のように forcedeluxemulti オプションを付けることで中国語・韓国語がマルチウェイト対応になるようになりました。ただし、 t tk さんご指摘の通り、中国語・韓国語が約物に配慮していない状態となります。中国語・韓国語も約物に配慮する必要があるならば forcedeluxemulti オプションを外せばよいですが、そうすると現状では日本語のみマルチウェイト対応、中国語・韓国語はマルチウェイト非対応となります。

\documentclass[uplatex,dvipdfmx]{jsarticle}

\usepackage[multi,deluxe]{otf}
\usepackage[schinese,tchinese,korean,japanese,forcedeluxemulti]{pxbabel}

\begin{document}

{\mcfamily
  {\ltseries
    明朝・細\par
    日本語の直\par
    韓国語の\foreignlanguage{korean}{直}\par
    中国語簡体字の\foreignlanguage{schinese}{直}\par
    中国語繁体字の\foreignlanguage{tchinese}{直}\par}
  {\mdseries
    明朝・中\par
    日本語の直\par
    韓国語の\foreignlanguage{korean}{直}\par
    中国語簡体字の\foreignlanguage{schinese}{直}\par
    中国語繁体字の\foreignlanguage{tchinese}{直}\par}
  {\bfseries
    明朝・太\par
    日本語の直\par
    韓国語の\foreignlanguage{korean}{直}\par
    中国語簡体字の\foreignlanguage{schinese}{直}\par
    中国語繁体字の\foreignlanguage{tchinese}{直}\par}}

{\gtfamily
  {\mdseries
    ゴシック・中\par
    日本語の直\par
    韓国語の\foreignlanguage{korean}{直}\par
    中国語簡体字の\foreignlanguage{schinese}{直}\par
    中国語繁体字の\foreignlanguage{tchinese}{直}\par}
  {\bfseries
    ゴシック・太\par
    日本語の直\par
    韓国語の\foreignlanguage{korean}{直}\par
    中国語簡体字の\foreignlanguage{schinese}{直}\par
    中国語繁体字の\foreignlanguage{tchinese}{直}\par}
  {\ebseries
    ゴシック・極太\par
    日本語の直\par
    韓国語の\foreignlanguage{korean}{直}\par
    中国語簡体字の\foreignlanguage{schinese}{直}\par
    中国語繁体字の\foreignlanguage{tchinese}{直}\par}}

{\mgfamily
  {\mdseries
    丸ゴシック\par
    日本語の直\par
    韓国語の\foreignlanguage{korean}{直}\par
    中国語簡体字の\foreignlanguage{schinese}{直}\par
    中国語繁体字の\foreignlanguage{tchinese}{直}\par}}

\end{document}
TrueRoad への返信

Re: 原ノ味フォントのCJK版?

- Toshio Otaguro の投稿

TrueRoad さん,PXbase の作者の方,

迅速にご対応いただき深謝いたします.

ところで,新しい PXbase が落ちてきたことを確認して,ご提示のソースをコンパイルしてみたのですが,日本語以外の部分がうまくマルチウェイトになりません.

具体的には,\mcfamily の部分の日本語以外のフォントがすべて,それぞれの単一ウェイトの文字に,\gtfamily と \mgfamily の日本語以外のフォントがすべて,原の味ではない単一ウェイトの楷書体のようなフォントにフォールバックしているように見えます.PDF のプロパティで見ても,原の味では別のフォントのようです.

何がいけないのでしょう?必要であればログファイルを示します.

Toshio Otaguro への返信

Re: 原ノ味フォントのCJK版?

- TrueRoad の投稿

日本語の部分は原ノ味になっているけど、中国語や韓国語の部分は原ノ味になっていない、ということでよいでしょうか。そうだとすると単にフォントの設定をしてないのではないかと思います。pxchfon のプリセット設定は日本語フォントの設定だけだったと思います。個別設定にしても中国語や韓国語のマルチウェイト設定はできないと思います(非プリセットの個別設定を可能とするプルリクは出しています)。

Linux 等であれば、

$ sudo kanji-config-updmap-sys --ja haranoaji
$ sudo kanji-config-updmap-sys --sc haranoaji
$ sudo kanji-config-updmap-sys --tc haranoaji
$ sudo kanji-config-updmap-sys --ko haranoaji

Windows 等であれば、

> kanji-config-updmap-sys --ja haranoaji
> kanji-config-updmap-sys --sc haranoaji
> kanji-config-updmap-sys --tc haranoaji
> kanji-config-updmap-sys --ko haranoaji

のようにコマンドを実行すればすべて原ノ味の設定になると思います。その上で再度やってみるとできるのではないでしょうか。

TrueRoad への返信

Re: 原ノ味フォントのCJK版?

- Toshio Otaguro の投稿

TruRoad さん,

ビンゴでした!CJK のすべての言語でマルチウェイトで出力できました.素晴らしいです.また pxchfon のプリセット設定を CJK 言語で可能にするプルリクエストを出してくださったことも承知しました.大変ありがたいです.

これまでの私のやり方は,otf と pxchfon で日本語のマルチウェイトを指定しているのですが,プリセットをデフォルトから少々変更して,明朝 Bold を Mincho-SemiBold に,ゴシック中字を Gothic-Regular に,丸ゴシックを Gothic-Normal に変更して使っています.私にとってはこのほうがバランスよく感じるので.

これが CJK でも可能になれば非常に自由度が高くなるので,大変期待しております.約物の問題が残るとのことですが,私の使い方だと,日本語の文章の中に中国語の固有名詞がポツリ,ポツリと出てくる程度なので,ほとんど影響はないと思います.

いずれにせよ,ありがとうございました.

t tk への返信

Re: 原ノ味フォントのCJK版?

- t tk の投稿
約物にも配慮した中韓の本文用vfを japanese-otf-uptex に追加し、v0.27 としてリリースしました。
CTAN版は、齋藤さん作のotfbetaとパッケージをマージした形で japanese-otf として登録しました。
下に貼ったのは HaranoAjiFontsTW を用いたサンプルです。

添付 multiwt_tw.png
よこ への返信

Re: 原の味フォントのCJK版?

- Toshio Otaguro の投稿
便乗コメントです.

TeXのフォントの扱いはなかなか複雑でよく理解できていないのですが,せっかくNotoや原の味で東アジアの統一された字体でのフォントのセットが作られているので,多言語+多書体を手軽に扱いたい,ということに尽きます.

可能であれば,pxbabelのマクロを拡張して多書体化していただけるのが現状からの連続性が高くて望ましいと思います.

ただ,NotoにはすでにVariable Weightが実装されたようなので,少し将来を見越して,抜本的な変革を構想しても良い時期ではないか,とも思います.もともと7書体という制限に合理性はないと思いますので.

実装のことを全く知らない素人の意見ですので,参考までに聞いていただければ結構です.
Toshio Otaguro への返信

Re: 原ノ味フォントのCJK版?

- TrueRoad の投稿

> せっかくNotoや原の味で東アジアの統一された字体で

源ノや Noto CJK のような Pan-CJK フォントであっても、例えば「直」や「骨」など言語によって形が違うものがあるので、何らかの方法で言語を指定する必要はありそうだなと思っています。

> もともと7書体という制限に合理性はないと思いますので.

7 書体という制限があるのは otf パッケージの仕様だと思っています。(日本語の)原ノ味フォントは全 14 書体ありますが、upTeX + otf パッケージでは半分の 7 書体しか使えません。「抜本的な変革」ということであれば LuaTeX に移行するのが良いと思います。 LuaTeX ならば 14 書体すべて使うことができますし、その上でさらに源ノも併用するようなこともできます。

TrueRoad への返信

Re: 原ノ味フォントのCJK版?

- Toshio Otaguro の投稿

TrueRoadさん,

コメントありがとうございます.大変参考になります.

「統一された字体」というのは,グリフのことではなくてデザインの意味です.骨のようにグリフ自体が異なる文字や,グリフのトポロジーは同じでも形が微妙に異なるものもあります.これらの多様性を保ちながら統一されたデザインで作られているところに源ノの価値があると思います.混植しても全く違和感がありません.

LuaTeXはほとんど使ったことがありませんが,始めてみようかと思います.

将来的な希望としては,Webデザインの世界で進みつつあるvariable fontの機能がTeXにも取り込めるといいなと思います.源ノ角ゴシックは最近対応したようです.どう実装するかは全くわかりませんが,ウェイトやスラントなど自由自在です.出版に要求される品質が保てるかはわかりませんが.