安達です。
orang Aumori Jepun さん、ありがとうございます。
フォントファイルを直接いじるのは気が引けたプログラム自体を修正などの技量も無いので、ほかに方法はないかしらべたところ、詳細・経緯は省きますが、設定ファイル
/etc/fonts/local.conf を追加することでも修正できましたので報告します。
ちょうど、YOzBAF90.ttf をまだいじっていなかったので、 試してみました。うまく行くことを確認しました。 参考に書いていただいた資料を確認しても、なぜ こう書くとうまく行くのか疑問もあったので わざと色々変えて試したのですが、 多少間違えても安定しており、やり直しができるので 優れた方法だと感じました。
xmlの記述について疑問だったところと、 いろいろやってわかったところを書いておきます。 (1)YOzAF90b を一つ書いて、2箇所をYOzAF90bに書き換えているように見える これは、元々name="family"には、YOzAF90b,奏穁䘹ぢ の2つの値が格納され そのうちの"any"(どれか一つ)がYOzAF90bだったときに YOzAF90b,YOzAF90b に書き換えるという意味のようですね。 順番は、en,jaの順です。 edit内のstringをYOzAF90c,YOzAF90dの順にしてみるとわかります また、edit内のstringをYOzAF90bの一つだけにすると fc-catはYOzAF90bを一つだけ返します。familylangはen,jpのままです (2)family部分でマッチしなければ、その後のstyleもfullnameも そのままにしてtestしないで終わります。(多分次のmatchへ進むのでは?) fullnameでマッチしない場合はfullnameの部分だけeditしません。 (3)enの値は必ずあると思うので必要になる場面はないと思いますが、 化けている文字を探してそれを置換したいと発想するはず。 そこで、 <?xml version="1.0"?> を <?xml version="1.0" encoding="UTF-8"?> にしておいて、 testのstringにYOzAF90bの代わりに 奏穁䘹ぢ を入れても うまく行くことを確認しました。ただし、 editに一つだけYOzAF90bを書くと、YOzAF90bが一つだけになります。 (4)qual="any"をqual="all"にしてstringに 奏穁䘹ぢ をいれると マッチしなくなります。YOzAF90b,奏穁䘹ぢ の2つの値が格納されて いて、両方 奏穁䘹ぢ でなければマッチしないということでしょう。 (5)確認コマンド fc-cat -v | grep YOzBAF90.ttf は、ファイルのパスを省けるので良いのですが、出力が長い fc-scan -b /usr/share/fonts/truetype/yozvox-yozfont/YOzBAF90.ttf は、ファイルのフルパスを書かなければならないのが面倒かもしれません。 fc-list -vb YOzAF90b 私はこれを使っていましたが、ja,enの順で出力されます。 "奏穁䘹ぢ"(s) "YOzAF90b"(s)のうちはいいのですが、 "YOzAF90b"(s) "YOzAF90b"(s)となるとまあ、どっちでもいいとはいえ... fc-query /usr/share/fonts/truetype/yozvox-yozfont/YOzBAF90.ttf は、"YOzAF90b"(s) "奏穁䘹ぢ"(s)のままです。 cache を見に行かないのかもしれません。 (もちろんlibreofficeのCalcなどアプリでは化けなくなっています) (6)testタグ内のtarget="default"の意味は、 matchタグ内の target="scan" を引き継ぐということなのか わからないでいる。 これは、参考:に挙げられているfontconfigのユーザーマニュアルにも manコマンドでも、 https://manpages.debian.org/trixie/fontconfig-config/fonts-conf.5.en.html にもほとんど同じものがありますが、説明が不足ではっきりしません。
ちなみに、yozフォントのファイル名の意味は http://yozvox.web.fc2.com/Readme.txt をみるとなんとなくわかるような気がします。
どうやらこの後追加されているようで P,X,M の説明がなかったのです。
以上、なにかの参考・手助けになれば幸いです。
本当にありがとうございました。 たぶんfontconfigの正当な対処法だと思うのですが、 私は検索でこれにたどり着くことができませんでした。 /etc/fonts/fonts.conf には、 LOCAL CHANGES BELONG IN 'local.conf'. とありますが、このファイルはサンプルも存在してなくて <!-- Load local system customization file --> <include ignore_missing="yes">conf.d</include> の下に <include ignore_missing="yes">local.conf</include> の記述がなくなっていています。
man fonts.conf では <!-- Load local customization files, but don't complain if there aren't any --> <include ignore_missing="yes">conf.d</include> <include ignore_missing="yes">local.conf</include> となっていて、短いですが、末尾にsampleもありました。