らんだむな記憶

blogというものを体験してみようか!的なー

font

Type 1 フォント (6)

T1_SPEC.pdf p.25 の /FontMatrix [0.001 0 0 0.001 0 0] defは、文字空間の 1000 units をユーザー空間の 1em に移す変換行列だ、ということを言っていると思う。こうすれば文字空間で座標として整数値を使いながら柔軟にデザインできるでしょ?と。とりあ…

Type 1 フォント (5)

T1_SPEC.pdf p.11 を見ると /Encoding 256 array 0 1 255 {1 index exch /.notdef put } for dup 32 /space put % . . . % . . . repetitive assignments to Encoding array omitted % . . . dup 254 /bracerightbt put readonly defという内容の Encoding a…

Type 1 フォント (4)

T1_SPEC.pdf p.8 に Type 1 BuildChar begins by using the character code as an index into the Encoding array in the font dictionary to obtain the name of the character to be built. This step is explained in the PostScript Language Reference …

Type 1 フォント (3)

PostScript Type 1 フォントのサポート終了 そもそも後 1 年でフォーマットの消費期限が尽きてしまうという。

Type 1 フォント (2)

前回の記事のスクリプトは IV を飛ばして文字列にして出力すると、 for isEncrypted, chunk in chunks: if isEncrypted: decrypted_data, R = eexec.decrypt(chunk, 55665) print(decrypted_data[4:570].decode()) から dup /Private 14 dict dup begin /-| …

Type 1 フォント (1)

今時 Type 1 フォントなんて?という気もするんだけど、あり得ないほどごく稀に中身を見たいなんてこともあるかもしれない。T1_SPEC.pdf が聖典だと思うけど、これだけだとつらいので・・・手を動かして眺めていきたい。無難なフォントをということで GitHub…

Rust 版 fontTools (3)

Rustでパッケージ(クレート)インストールから使用するまでの軌跡 - Qiita を参考に fonttools-rs を使ってみたい。 $ cargo new ft_sample Created binary (application) `ft_sample` package でサンプルプロジェクトを作成。Cargo.toml を編集して ... [dep…

Rust 版 fontTools (2)

$ cd fonttools-rs $ cargo build Updating crates.io index Downloaded num-iter v0.1.42 Downloaded num-complex v0.4.0 --snip-- warning: `fonttools` (lib) generated 2 warnings Finished dev [unoptimized + debuginfo] target(s) in 12m 13s ・・・…

Rust 版 fontTools (1)

fonttools - Rust ちょっと気になるな。Install Rust - Rust Programming Language を読んで何も考えずに curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh を実行。 $ rustc --version rustc 1.57.0 (f1edd0429 2021-11-29) へー。で、 git…

微分可能ラスタライザ

よく分からないなりに Differentiable Vector Graphics Rasterization for Editing and Learning を読んでみた。普通には勾配計算で必要な微分可能生がないと思われているベクタ画像のラスタライゼーションという処理についてうまくやれば微分可能になります…

波ダッシュと全角チルダ

FULLWIDTH TILDE: % echo -n "~" | iconv -f UTF8 -t UTF-16BE | xxd -ps ff5e WAVE DASH: % echo -n "〜" | iconv -f UTF8 -t UTF-16BE | xxd -ps 301c って感じでなかなか見分けつかないんだけど、見分けつくフォント使ってると「ん?」となる。

一対多置換

OpenType Feature — your help is appreciated - Glyphs Forum うぉぉ・・・闇の深いトピックが・・・。ccmp で無茶をした時に InDesign がクラッシュしちゃったので、あんまり激しい実装はしたくない。まぁ、そもそも実装が変だったのかもしれないけど。ほ…

fontforge(7)

久しぶりに fontforge をビルドしたくなった (わけがない) ので、ビルドする。なんだか fontforge(2) - らんだむな記憶 の頃とは色々変わっている気はする・・・。fontforge/INSTALL.md at master · fontforge/fontforge · GitHub の通りと言えばそうなんだ…

OpenType フォントはチューリング完全

ちょっとよく分からないけど、“tail recursion” で lookup を再起的に呼び出せるからとかいう闇の深そうが記述が幾らか見つかる・・・。https://litherum.blogspot.com/2019/03/addition-font.html とかよく読んだら分かるのかもしれないけど、うーん。使っ…

GlyphsTracePlugin

GitHub - schriftgestalt/GlyphsTracePlugin が手元の環境 (Big Sur + Glyphs 2.6.6 (1352)) でうまく動作しない。Trace Image Filter Does not work - Scripting - Glyphs Forum の現象の 1 つなのかもしれない。ので調べた。https://github.com/schriftges…

ImageMagick で bmp 画像へ一括変換

PNG to BMP3 using mogrify - ImageMagick より mogrify -format bmp -define bmp:format=bmp3 *.png とすると良い感じで .png -> .bmp ができるみたい。*1この後、potrace で svg にして*2、fontTools の svg2glif.py を使うと簡単に .glif にできる。例え…

FreeType で取得されるタイポグラフィックディセンダ値

https://github.com/freetype/freetype/blob/3cabd142ce42627a7e4410ce62616e5c4b91dc6e/src/sfnt/sfobjs.c#L1319-L1339 単純に OS/2.sTypoDescender がとられるわけではなかった・・・。 USE_TYPO_METRICS でない場合は hhea のほうがとられると・・・。 CJ…

中国語フォント

GitHub - lxgw/LxgwWenKai: An open-source Chinese font derived from Fontworks' Klee One. 一款基于 FONTWORKS 的 Klee One 的开源中文字体。 An open-source Chinese font derived from Fontworks' Klee One. 鸣谢zi2zi_pytorch 日本語フォントがディー…

TeX で多言語入力

alpine-texlive-ja をそのまま使う形で日本語と韓国語を混ぜてコンパイルすると、 dvipdfmx:warning: No character mapping available. CMap name: UniJIS2004-UTF16-H input str: <ac> dvipdfmx:warning: No character mapping available. CMap name: UniJIS200</ac>…

AFDKO と CID-keyed な UFO

AFDKO 3.5.1 から tx -t1 -g 422,425-500,629,7479-7554,8229-8263 -o font.pfa font.ufo みたいなことをした時に、へんてこなログが出てきて Type 1 ファイルが出てこない。ufr がログを出しているので、UFO の読み取りが何か変化してそうだが、履歴を見て…

fontforge (6)

fontforgeデバッグ(4) - らんだむな記憶 でレポートしたバグがちょうど数時間前に close された。5 年半とは随分と長い歳月だったなぁ〜。予想したよりも遥かに根の深いバグだったようで、正直読んでも分からない議論がなされている。たぶん GitHub Issues …

Name-keyed な OpenType/CFF のグリフ名を変更したい

ufo2ft/postProcessor.py#L168-L191 に大いなるヒントがある。特に cff.charset = [rename_map.get(n, n) for n in cff.charset] がキーのようだ。これを確認しよう。このために参照する仕様書は 5176.CFF.pdf である。「13 Charsets」を見れば良い。Top DIC…

Generative Fonts

NaNGlyphFilters — Generative Fonts & Scripts — Home 凄いな〜、どうしてるんかなぁ〜って思ったら、普通に Glyphs plugin として頑張ってた・・・。ここまで来るとただただ凄いな・・・。Agenda | ATypI Tech Talks 2021 の「GAN and GAN'T」はサマリを見…

Adobe と PostScript と

https://www.adobe.com/content/dam/cc/en/leaders/pdfs/geschke.pdf そうかそうか、81 歳か。PARC を飛び出て、Adobe を創設して世に PostScript を送り出した。この辺の話は AMW|雑誌・書籍検索 『Adobe:Innovation これまでの25年、これからの25年』 だ…

源ノ角ゴシック VF

source-han-sans/Variable at release · adobe-fonts/source-han-sans · GitHub 遂に来たか!DTL OTMaster で昔は配布されていた「OTM_Light 3.7.0」で開くと CFF2 テーブルが見える。ただ、それ以上がさっぱり解析できないので、細かいところは fontTools …

漢字の筆順

中国と日本では、漢字の筆順が違うようですが、どうしてでしょうか?|漢字文化資料館 日本の学校教育での筆順は、文部省著作『筆順指導の手びき』(1958年)に従っているということは、Q0103でご説明しました。 そもそも筆順とは、より美しい字を書くための…

MyFonts dataset

[1909.02072] Large-scale Tag-based Font Retrieval with Generative Feature Learning にて MyFonts ベースのデータセットが公開されている。6.2GB もあるのでなかなか巨大だな・・・。

FreeTypeで文字を書く(4)

FreeTypeで文字を書く(3) - らんだむな記憶の続き。 def save_image(gid): face = freetype.Face(font_path) face.set_char_size(224*64) W, H = 224, 224 Z = np.zeros( (H, W), dtype=np.ubyte ) face.load_glyph(gid) bitmap = face.glyph.bitmap x, y = …

FreeTypeで文字を書く(3)

FreeTypeで文字を書く(2) - らんだむな記憶以来まともに触ってないんだけど。 https://github.com/rougier/freetype-py/blob/v2.1.0/examples/agg-trick.py#L37とかの face.set_char_size( size * 64, 0, hres, 72 ) の 64 って何だよ?って話。 https://git…

vrtr

https://twitter.com/ken_lunde/status/1264037362058706949 ふむ・・・。A Tale of Three (OpenType) Featuresにも書いてあるのか。CSS Writing Modes Level 3 sideways typesetting Typographic character units typeset as a run rotated 90° clockwise f…