質問、要望
yuru7 opened this issue · 12 comments
引用: #9 (comment)
はじめまして。Hackgen使っています。Rictyのような丸文字でないところに魅力を感じています。
Qiitaの質問欄でもよくリクエストを見かけます。@yuru7 さんが真摯に答えている点が素晴らしいと思っています。一方で、せっかくだからforkしてやって自分でやってみようよ!とも思います。
@showsaitoh さんも自分でやってみましょう!自分もForkして、自分好みにアレンジしようとしていますが、環境構築でコケています 1 😓フォント開発はど素人なので...
よろしければ@yuru7 さんの環境を教えていだけませんか...?どこかに書いてあって、見落としていたらすみません。
issueの主題から脱線して申し訳ありません。
1: kanehis#2
Originally posted by @kanehis in #9 (comment)
取り急ぎ、手元の環境の関連パッケージ Ver をお知らせしておきます。
OS: Ubuntu 18.04.3 LTS (VirtualBox で動作)
***:~$ apt list | egrep 'fontforge|ttfautohint|fonttools'
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
fontforge/bionic 1:20170731~dfsg-1 amd64
fontforge-common/bionic,bionic 1:20170731~dfsg-1 all
fontforge-dbg/bionic 1:20170731~dfsg-1 amd64
fontforge-doc/bionic,bionic 1:20170731~dfsg-1 all
fontforge-extras/bionic 0.3-4ubuntu1 amd64
fontforge-nox/bionic 1:20170731~dfsg-1 amd64
fonttools/bionic,bionic,now 3.21.2-1 all [インストール済み]
libfontforge-dev/bionic 1:20170731~dfsg-1 amd64
libfontforge2/bionic,now 1:20170731~dfsg-1 amd64 [インストール済み、自動]
libttfautohint-dev/bionic 1.8.1-1 amd64
libttfautohint1/bionic,now 1.8.1-1 amd64 [インストール済み、自動]
python-fontforge/bionic,now 1:20170731~dfsg-1 amd64 [インストール済み]
python-fonttools/bionic,bionic 3.21.2-1 all
python-fonttools-doc/bionic,bionic 3.21.2-1 all
python3-fonttools/bionic,bionic,now 3.21.2-1 all [インストール済み、自動]
ttfautohint/bionic,now 1.8.1-1 amd64 [インストール済み]
***:~$
当方で実行した際のログも載せておきますね。
kanehis#2 (comment) を拝見しましたが、 WARNING: Dropped cmap subtable from font [0]: ...
はこちらの環境でも出ていますね。問題なく build できているのであまり気にしなくてもよさそうです。
実行時ログ
***@***-VirtualBox:~/HackGen$ ./make_hackgen.sh
Warning: /home/***/HackGen/source/GenJyuuGothicL-Monospace-Regular.ttf does not seem to be GenJyuuGothicL Regular
Warning: /home/***/HackGen/source/GenJyuuGothicL-Monospace-Bold.ttf does not seem to be GenJyuuGothicL Bold
Generate modified Hack Material
Open /home/***/HackGen/source/Hack-Regular.ttf
Save Modified-Hack-Material-Regular.sfd
Open /home/***/HackGen/source/Hack-Bold.ttf
Save Modified-Hack-Material-Bold.sfd
Generate Box Drawings Lights on Hack
Open /home/***/HackGen/source/Hack-Regular.ttf
Save Modified-Hack-Box-Drawing-Lights-Regular.sfd
Open /home/***/HackGen/source/Hack-Bold.ttf
Save Modified-Hack-Box-Drawing-Lights-Bold.sfd
Generate modified Hack Console
Open /tmp/hackgen_generator_tmpdir.OGyMbh/Modified-Hack-Material-Regular.sfd
Save Modified-Hack-Console-Regular.sfd
Open /tmp/hackgen_generator_tmpdir.OGyMbh/Modified-Hack-Material-Bold.sfd
Save Modified-Hack-Console-Bold.sfd
Generate modified Hack
Open /tmp/hackgen_generator_tmpdir.OGyMbh/Modified-Hack-Console-Regular.sfd
Save Modified-Hack-Regular.sfd
Open /tmp/hackgen_generator_tmpdir.OGyMbh/Modified-Hack-Console-Bold.sfd
Save Modified-Hack-Bold.sfd
Generate modified GenJyuuGothicL
Get trim target glyph from Hack
Processing progress: 0
Processing progress: 5000
Processing progress: 10000
Processing progress: 15000
Processing progress: 20000
Processing progress: 25000
Processing progress: 30000
Processing progress: 35000
Processing progress: 40000
Processing progress: 45000
Processing progress: 50000
Processing progress: 55000
Processing progress: 60000
Processing progress: 65000
Open /home/***/HackGen/source/GenJyuuGothicL-Monospace-Regular.ttf
Half width check loop start
Processing progress: 0
Processing progress: 5000
Processing progress: 10000
Processing progress: 15000
Processing progress: 20000
Processing progress: 25000
Processing progress: 30000
Processing progress: 35000
Processing progress: 40000
Processing progress: 45000
Processing progress: 50000
Processing progress: 55000
Processing progress: 60000
Processing progress: 65000
Half width check loop end
Full SetWidth start
Full SetWidth end
Half SetWidth start
Half SetWidth end
Edit zenkaku space
Edit zenkaku brackets
Save Modified-GenJyuuGothicL-Monospace-regular.sfd
Generate Genjyuu ttf
Open /home/***/HackGen/source/GenJyuuGothicL-Monospace-Bold.ttf
Half width check loop start
Processing progress: 0
Processing progress: 5000
Processing progress: 10000
Processing progress: 15000
Processing progress: 20000
Processing progress: 25000
Processing progress: 30000
Processing progress: 35000
Processing progress: 40000
Processing progress: 45000
Processing progress: 50000
Processing progress: 55000
Processing progress: 60000
Processing progress: 65000
Half width check loop end
Full SetWidth start
Full SetWidth end
Half SetWidth start
Half SetWidth end
Edit zenkaku space
Edit zenkaku brackets
Save Modified-GenJyuuGothicL-Monospace-bold.sfd
Generate Genjyuu ttf
Generate modified GenJyuuGothicL Console
Get trim target glyph from Hack
Processing progress: 0
Processing progress: 5000
Processing progress: 10000
Processing progress: 15000
Processing progress: 20000
Processing progress: 25000
Processing progress: 30000
Processing progress: 35000
Processing progress: 40000
Processing progress: 45000
Processing progress: 50000
Processing progress: 55000
Processing progress: 60000
Processing progress: 65000
Open /tmp/hackgen_generator_tmpdir.OGyMbh/Modified-GenJyuuGothicL-Monospace-regular.sfd.ttf
Begin delete the glyphs contained in Hack
Processing progress: 0
Processing progress: 5000
Processing progress: 10000
Processing progress: 15000
Processing progress: 20000
Processing progress: 25000
Processing progress: 30000
Processing progress: 35000
Processing progress: 40000
Processing progress: 45000
Processing progress: 50000
Processing progress: 55000
Processing progress: 60000
Processing progress: 65000
End delete the glyphs contained in Hack
Generate Modified-GenJyuuGothicL-Monospace-regular_console.sfd
Open /tmp/hackgen_generator_tmpdir.OGyMbh/Modified-GenJyuuGothicL-Monospace-bold.sfd.ttf
Begin delete the glyphs contained in Hack
Processing progress: 0
Processing progress: 5000
Processing progress: 10000
Processing progress: 15000
Processing progress: 20000
Processing progress: 25000
Processing progress: 30000
Processing progress: 35000
Processing progress: 40000
Processing progress: 45000
Processing progress: 50000
Processing progress: 55000
Processing progress: 60000
Processing progress: 65000
End delete the glyphs contained in Hack
Generate Modified-GenJyuuGothicL-Monospace-bold_console.sfd
Generate HackGen
Merge Modified-Hack-Regular.sfd
Save HackGen-Regular.ttf
Merge Modified-Hack-Bold.sfd
Save HackGen-Bold.ttf
Generate Box Drawing Lights for HackGen Console
Merge Modified-Hack-Box-Drawing-Lights-Regular.sfd
Save HackGenBoxDrawingLights-Regular.ttf
Merge Modified-Hack-Box-Drawing-Lights-Bold.sfd
Save HackGenBoxDrawingLights-Bold.ttf
Generate HackGen Console
Merge Modified-Hack-Console-Regular.sfd
Save HackGenConsole-Regular.ttf
Merge Modified-Hack-Console-Bold.sfd
Save HackGenConsole-Bold.ttf
Generate modified Hack35 Console
Open /tmp/hackgen_generator_tmpdir.OGyMbh/Modified-Hack-Material-Regular.sfd
Save Modified-Hack35-Console-Regular.sfd
Open /tmp/hackgen_generator_tmpdir.OGyMbh/Modified-Hack-Material-Bold.sfd
Save Modified-Hack35-Console-Bold.sfd
Generate modified Hack
Open /tmp/hackgen_generator_tmpdir.OGyMbh/Modified-Hack35-Console-Regular.sfd
Save Modified-Hack35-Regular.sfd
Open /tmp/hackgen_generator_tmpdir.OGyMbh/Modified-Hack35-Console-Bold.sfd
Save Modified-Hack35-Bold.sfd
Generate modified GenJyuuGothicL - 35
Get trim target glyph from Hack
Processing progress: 0
Processing progress: 5000
Processing progress: 10000
Processing progress: 15000
Processing progress: 20000
Processing progress: 25000
Processing progress: 30000
Processing progress: 35000
Processing progress: 40000
Processing progress: 45000
Processing progress: 50000
Processing progress: 55000
Processing progress: 60000
Processing progress: 65000
Open /home/***/HackGen/source/GenJyuuGothicL-Monospace-Regular.ttf
Half width check loop start
Processing progress: 0
Processing progress: 5000
Processing progress: 10000
Processing progress: 15000
Processing progress: 20000
Processing progress: 25000
Processing progress: 30000
Processing progress: 35000
Processing progress: 40000
Processing progress: 45000
Processing progress: 50000
Processing progress: 55000
Processing progress: 60000
Processing progress: 65000
Half width check loop end
Full SetWidth start
Full SetWidth end
Half SetWidth start
Half SetWidth end
Edit zenkaku space
Edit zenkaku brackets
Save Modified-GenJyuuGothicL35-Monospace-regular.sfd
Generate Genjyuu ttf
Open /home/***/HackGen/source/GenJyuuGothicL-Monospace-Bold.ttf
Half width check loop start
Processing progress: 0
Processing progress: 5000
Processing progress: 10000
Processing progress: 15000
Processing progress: 20000
Processing progress: 25000
Processing progress: 30000
Processing progress: 35000
Processing progress: 40000
Processing progress: 45000
Processing progress: 50000
Processing progress: 55000
Processing progress: 60000
Processing progress: 65000
Half width check loop end
Full SetWidth start
Full SetWidth end
Half SetWidth start
Half SetWidth end
Edit zenkaku space
Edit zenkaku brackets
Save Modified-GenJyuuGothicL35-Monospace-bold.sfd
Generate Genjyuu ttf
Generate modified GenJyuuGothicL Console - 35
Get trim target glyph from Hack
Processing progress: 0
Processing progress: 5000
Processing progress: 10000
Processing progress: 15000
Processing progress: 20000
Processing progress: 25000
Processing progress: 30000
Processing progress: 35000
Processing progress: 40000
Processing progress: 45000
Processing progress: 50000
Processing progress: 55000
Processing progress: 60000
Processing progress: 65000
Open /tmp/hackgen_generator_tmpdir.OGyMbh/Modified-GenJyuuGothicL35-Monospace-regular.sfd.ttf
Begin delete the glyphs contained in Hack
Processing progress: 0
Processing progress: 5000
Processing progress: 10000
Processing progress: 15000
Processing progress: 20000
Processing progress: 25000
Processing progress: 30000
Processing progress: 35000
Processing progress: 40000
Processing progress: 45000
Processing progress: 50000
Processing progress: 55000
Processing progress: 60000
Processing progress: 65000
End delete the glyphs contained in Hack
Generate Modified-GenJyuuGothicL35-Monospace-regular_console.sfd
Open /tmp/hackgen_generator_tmpdir.OGyMbh/Modified-GenJyuuGothicL35-Monospace-bold.sfd.ttf
Begin delete the glyphs contained in Hack
Processing progress: 0
Processing progress: 5000
Processing progress: 10000
Processing progress: 15000
Processing progress: 20000
Processing progress: 25000
Processing progress: 30000
Processing progress: 35000
Processing progress: 40000
Processing progress: 45000
Processing progress: 50000
Processing progress: 55000
Processing progress: 60000
Processing progress: 65000
End delete the glyphs contained in Hack
Generate Modified-GenJyuuGothicL35-Monospace-bold_console.sfd
Generate HackGen
Merge Modified-Hack35-Regular.sfd
Save HackGen35-Regular.ttf
Merge Modified-Hack35-Bold.sfd
Save HackGen35-Bold.ttf
Generate HackGen Console
Merge Modified-Hack35-Console-Regular.sfd
Save HackGen35Console-Regular.ttf
Merge Modified-Hack35-Console-Bold.sfd
Save HackGen35Console-Bold.ttf
WARNING: Dropped cmap subtable from font [0]: format 6, platformID 1, platEncID 0
WARNING: Dropped cmap subtable from font [1]: format 14, platformID 0, platEncID 5
WARNING: Dropped cmap subtable from font [1]: format 6, platformID 1, platEncID 0
WARNING: Dropped cmap subtable from font [0]: format 6, platformID 1, platEncID 0
WARNING: Dropped cmap subtable from font [1]: format 14, platformID 0, platEncID 5
WARNING: Dropped cmap subtable from font [1]: format 6, platformID 1, platEncID 0
WARNING: Dropped cmap subtable from font [1]: format 0, platformID 1, platEncID 0
WARNING: Dropped cmap subtable from font [0]: format 6, platformID 1, platEncID 0
WARNING: Dropped cmap subtable from font [1]: format 14, platformID 0, platEncID 5
WARNING: Dropped cmap subtable from font [1]: format 6, platformID 1, platEncID 0
WARNING: Dropped cmap subtable from font [0]: format 6, platformID 1, platEncID 0
WARNING: Dropped cmap subtable from font [1]: format 14, platformID 0, platEncID 5
WARNING: Dropped cmap subtable from font [1]: format 6, platformID 1, platEncID 0
WARNING: Dropped cmap subtable from font [0]: format 6, platformID 1, platEncID 0
WARNING: Dropped cmap subtable from font [1]: format 14, platformID 0, platEncID 5
WARNING: Dropped cmap subtable from font [1]: format 6, platformID 1, platEncID 0
WARNING: Dropped cmap subtable from font [0]: format 6, platformID 1, platEncID 0
WARNING: Dropped cmap subtable from font [1]: format 14, platformID 0, platEncID 5
WARNING: Dropped cmap subtable from font [1]: format 6, platformID 1, platEncID 0
WARNING: Dropped cmap subtable from font [1]: format 0, platformID 1, platEncID 0
WARNING: Dropped cmap subtable from font [0]: format 6, platformID 1, platEncID 0
WARNING: Dropped cmap subtable from font [1]: format 14, platformID 0, platEncID 5
WARNING: Dropped cmap subtable from font [1]: format 6, platformID 1, platEncID 0
WARNING: Dropped cmap subtable from font [0]: format 6, platformID 1, platEncID 0
WARNING: Dropped cmap subtable from font [1]: format 14, platformID 0, platEncID 5
WARNING: Dropped cmap subtable from font [1]: format 6, platformID 1, platEncID 0
Copyright (c) 2000-2018 by George Williams. See AUTHORS for Contributors.
License GPLv3+: GNU GPL version 3 or later
with many parts BSD . Please read LICENSE.
Based on sources from 13:58 UTC 27-Apr-2019-ML-D.
Based on source from git with hash: f0c988e05b088411a47668c4582848165f5f0e4d
Copyright (c) 2000-2018 by George Williams. See AUTHORS for Contributors.
License GPLv3+: GNU GPL version 3 or later
with many parts BSD . Please read LICENSE.
Based on sources from 13:58 UTC 27-Apr-2019-ML-D.
Based on source from git with hash: f0c988e05b088411a47668c4582848165f5f0e4d
Copyright (c) 2000-2018 by George Williams. See AUTHORS for Contributors.
License GPLv3+: GNU GPL version 3 or later
with many parts BSD . Please read LICENSE.
Based on sources from 13:58 UTC 27-Apr-2019-ML-D.
Based on source from git with hash: f0c988e05b088411a47668c4582848165f5f0e4d
Copyright (c) 2000-2018 by George Williams. See AUTHORS for Contributors.
License GPLv3+: GNU GPL version 3 or later
with many parts BSD . Please read LICENSE.
Based on sources from 13:58 UTC 27-Apr-2019-ML-D.
Based on source from git with hash: f0c988e05b088411a47668c4582848165f5f0e4d
Remove temporary files
Succeeded in generating HackGen!
Dumping "/home/***/HackGen/HackGen-Bold.ttf" to "/home/***/HackGen/HackGen-Bold.ttx"...
Dumping 'OS/2' table...
Dumping 'post' table...
Compiling "/home/***/HackGen/HackGen-Bold.ttx" to "/home/***/HackGen/HackGen-Bold.ttf"...
Parsing 'OS/2' table...
Parsing 'post' table...
WARNING: fsSelection bit 5 (bold) and head table macStyle bit 0 (bold) should match
Dumping "/home/***/HackGen/HackGen-Regular.ttf" to "/home/***/HackGen/HackGen-Regular.ttx"...
Dumping 'OS/2' table...
Dumping 'post' table...
Compiling "/home/***/HackGen/HackGen-Regular.ttx" to "/home/***/HackGen/HackGen-Regular.ttf"...
Parsing 'OS/2' table...
Parsing 'post' table...
Dumping "/home/***/HackGen/HackGenConsole-Bold-forPowerline.ttf" to "/home/***/HackGen/HackGenConsole-Bold-forPowerline.ttx"...
Dumping 'OS/2' table...
Dumping 'post' table...
Compiling "/home/***/HackGen/HackGenConsole-Bold-forPowerline.ttx" to "/home/***/HackGen/HackGenConsole-Bold-forPowerline.ttf"...
Parsing 'OS/2' table...
Parsing 'post' table...
WARNING: fsSelection bit 5 (bold) and head table macStyle bit 0 (bold) should match
Dumping "/home/***/HackGen/HackGenConsole-Bold.ttf" to "/home/***/HackGen/HackGenConsole-Bold.ttx"...
Dumping 'OS/2' table...
Dumping 'post' table...
Compiling "/home/***/HackGen/HackGenConsole-Bold.ttx" to "/home/***/HackGen/HackGenConsole-Bold.ttf"...
Parsing 'OS/2' table...
Parsing 'post' table...
WARNING: fsSelection bit 5 (bold) and head table macStyle bit 0 (bold) should match
Dumping "/home/***/HackGen/HackGenConsole-Regular-forPowerline.ttf" to "/home/***/HackGen/HackGenConsole-Regular-forPowerline.ttx"...
Dumping 'OS/2' table...
Dumping 'post' table...
Compiling "/home/***/HackGen/HackGenConsole-Regular-forPowerline.ttx" to "/home/***/HackGen/HackGenConsole-Regular-forPowerline.ttf"...
Parsing 'OS/2' table...
Parsing 'post' table...
Dumping "/home/***/HackGen/HackGenConsole-Regular.ttf" to "/home/***/HackGen/HackGenConsole-Regular.ttx"...
Dumping 'OS/2' table...
Dumping 'post' table...
Compiling "/home/***/HackGen/HackGenConsole-Regular.ttx" to "/home/***/HackGen/HackGenConsole-Regular.ttf"...
Parsing 'OS/2' table...
Parsing 'post' table...
Dumping "/home/***/HackGen/HackGen35-Bold.ttf" to "/home/***/HackGen/HackGen35-Bold.ttx"...
Dumping 'OS/2' table...
Dumping 'post' table...
Compiling "/home/***/HackGen/HackGen35-Bold.ttx" to "/home/***/HackGen/HackGen35-Bold.ttf"...
Parsing 'OS/2' table...
Parsing 'post' table...
WARNING: fsSelection bit 5 (bold) and head table macStyle bit 0 (bold) should match
Dumping "/home/***/HackGen/HackGen35-Regular.ttf" to "/home/***/HackGen/HackGen35-Regular.ttx"...
Dumping 'OS/2' table...
Dumping 'post' table...
Compiling "/home/***/HackGen/HackGen35-Regular.ttx" to "/home/***/HackGen/HackGen35-Regular.ttf"...
Parsing 'OS/2' table...
Parsing 'post' table...
Dumping "/home/***/HackGen/HackGen35Console-Bold-forPowerline.ttf" to "/home/***/HackGen/HackGen35Console-Bold-forPowerline.ttx"...
Dumping 'OS/2' table...
Dumping 'post' table...
Compiling "/home/***/HackGen/HackGen35Console-Bold-forPowerline.ttx" to "/home/***/HackGen/HackGen35Console-Bold-forPowerline.ttf"...
Parsing 'OS/2' table...
Parsing 'post' table...
WARNING: fsSelection bit 5 (bold) and head table macStyle bit 0 (bold) should match
Dumping "/home/***/HackGen/HackGen35Console-Bold.ttf" to "/home/***/HackGen/HackGen35Console-Bold.ttx"...
Dumping 'OS/2' table...
Dumping 'post' table...
Compiling "/home/***/HackGen/HackGen35Console-Bold.ttx" to "/home/***/HackGen/HackGen35Console-Bold.ttf"...
Parsing 'OS/2' table...
Parsing 'post' table...
WARNING: fsSelection bit 5 (bold) and head table macStyle bit 0 (bold) should match
Dumping "/home/***/HackGen/HackGen35Console-Regular-forPowerline.ttf" to "/home/***/HackGen/HackGen35Console-Regular-forPowerline.ttx"...
Dumping 'OS/2' table...
Dumping 'post' table...
Compiling "/home/***/HackGen/HackGen35Console-Regular-forPowerline.ttx" to "/home/***/HackGen/HackGen35Console-Regular-forPowerline.ttf"...
Parsing 'OS/2' table...
Parsing 'post' table...
Dumping "/home/***/HackGen/HackGen35Console-Regular.ttf" to "/home/***/HackGen/HackGen35Console-Regular.ttx"...
Dumping 'OS/2' table...
Dumping 'post' table...
Compiling "/home/***/HackGen/HackGen35Console-Regular.ttx" to "/home/***/HackGen/HackGen35Console-Regular.ttf"...
Parsing 'OS/2' table...
Parsing 'post' table...
***@***-VirtualBox:~/HackGen$
Hackを元にしている状態では難しいのかもしれませんが、Fira CodeやCascadia Codeのように、ligatureに対応してもらえるとすごくうれしいです
@Warashi
リガチャはグリフ構造が複雑なので、通常の合成フォントよりも作り方がだいぶ難しくなるであろうと思っています。すみませんが、今のところ対応予定はありません。
なるほど、説明ありがとうございます。難しいということであれば諦めます。
@rsskkr
ご愛用ありがとうございます。
リゾート
フロ―ズン
上記ですが、伸ばし棒の部分にそれぞれ異なる記号をご使用ですね。
リゾート
で使っている伸ばし棒は、文字コードで示すと U+30FC
フロ―ズン
で使っている伸ばし棒は、文字コードで示すと U+2015
これらは別の記号ですので、見え方が異なるのは想定された動作です。
HackGenNerd Console の場合、前者は全角幅、後者は半角幅の表示になります。
前者も後者も全角幅がいいということであれば、Console 版ではない HackGenNerd をお使いください。
ちなみに一般的な伸ばし棒 (いわゆる長音記号) は、前者の文字コード「U+30FC」の方で、後者はダッシュ記号と呼ばれるものです。
余計なお世話かもしれませんが、変換ミスなどでダッシュ記号が入ってしまったのかもしれませんね。
早速のご回答ありがとうございます。「U+2015」は「HackGenNerd Console」では
全角では表示不可能ということで承知いたしました。フォントを「HackGenNerd」に変更して対応いたします。
文字が違うのは理解していたのですが長さが違う理由が理解できていませんでした。
Console版は記号であれば基本的に半角で表示するというフォントなんですね、ありがとうございました。