-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
データベースの生成スクリプト #27
Comments
[1] で一番手っ取り早いのは fontconfig の設定にディレクトリを追加してしまう( |
[2] ですが、 fontconfig の API で |
issue を建ててから時間が経って放置していました。コメントありがとうございます。 いま私のところでは,tools ディレクトリに置いてある fontlist_mac.sh および fontquery.sh というスクリプトを使っています。ただし,
という風に,結局まだ手作業が多いままです。 |
fontconfig に頼らない手段があれば better で,いま有力なのは texlua スクリプトです。database/ ディレクトリに zrlistttc.lua が置かれていますが,これを使えば [3] OTF/TTF/TTC/OTC の区別と [4] PSName の取得は出来ています。あとは [1] と [2] の処理が出来るようになればいいな,と思っているところです。 |
[1] については、
ということだとすると、現在お使いのような、候補になりうるディレクトリを列挙したデータベースを作っておく方法ぐらいしかないとおもいます。TEXMF については texlua で外部コマンド実行して、その標準出力をパースする、とかができるのであれば、一応 texlua スクリプトでもできる、と言っていいかどうか微妙ですかね。。。 luatex は fontconfig を使っていると思うので、 texlua があるのなら fontconfig もあるんだろうと想像しています。 texlua から fontconfig の API が呼び出せればもっといいんですが。 [2] については、「見破る」のを自動化するのはかなり困難ですよね。。。fc-query の lang が何を元にして表示してるものなのかよくわからなので何とも言えませんが。。。 |
やっぱりそうですかね…。fontconfig が正解を知っているかどうかもよくわかりません(少なくとも macOS では fontconfig が標準装備されていないし,システムフォントと無関係のはずです)。
これは想定内でした。今考えたのですが,例えば
とすれば,[1] と [2] の途中まで出来るような気がしますね。
LuaTeX は fontconfig を使っていません。luaotfload や context の texlua スクリプトが独自にフォントを頑張ってパースしています。
これさえわかれば,それと同じようなことを texlua で実装すればいいので,「見破る」はさすがに無理でも,全部手作業よりは幾分ラクになると思います。 |
Windows だとシステムフォントのフォルダ名を取得するAPIがあったように記憶しています(とはいえ大抵は C:\Windows\Fonts で決まりだし、決め打ちしたくないなら %WINDIR%\Fonts とかで済むので、いちいち API で取得しない場合が多いとは思います…)。 Linux なら fontconfig がすべてで、fontconfig の API を使えばフォントのディレクトリが得られると思います。 macOS にはその手の API はないのでしょうか。
全ディレクトリを探索対象にしてしまう、という荒業もあるかもしれませんね…。
.otf ならば手抜きして、
それは知りませんでした。ということは texlua でフォントファイルをパースすることは可能だし、実際に動作しているコードもある、ということですよね。うまく再利用できれば CFF なら上記の方法(CFF テーブルの文字コレクションを見る)で判定できると思います。 TrueType だと文字コレクション関係ないのでもうひと手間必要になると思いますが。
ちょっと調べてみましたが、単純に各言語毎に揃っているべき Unicode のリストを持っているだけみたいです。 |
データベースをいちいち作るのがめんどくさくなってきたので,「スクリプトを走らせると,見つかる全ての CJK フォントに対するデータベースを作る」というようなことができないか?と考え始めています。
必要な処理は
ということになると思いますが,何か良い案はないでしょうか?
(さすがに Provides を自動生成するのは無理そうなので,それは手動になるでしょう。)
最初に思いついたのは fontconfig ですが
fontformat=CFF
かfontformat=TrueType
かでわかる。postscriptname
とid
でわかる。という感じです。[2] のやり方がわからないのと,[1] の「fontconfig に TEXMF ツリーも探させるやり方」がわかれば進むかもしれません。
他のやり方があれば提案していただけると助かります。LuaTeX あるいは XeTeX でこのような処理ができれば better だと思うので,そういうのがあればありがたいです。
The text was updated successfully, but these errors were encountered: