일본어 글꼴의 OpenType 기능의 서브셋 유지
pyftsubset --layout-features='*'
날과 씨
처음에는 Noto Sans CJK JP를 웹 글꼴로 사용하기 위해 서브집합화하려고 했지만 제대로 진행되지 않았다.즉, 분명히 CSSfont-feature-settings: 'palt';
에서 하려고 했는데 무장시스템의 서브셋 글씨체 제조업체가 OpenType 기능을 삭제했다. 그나저나 Font Squire Webfont Generator를 비롯한 서브집합 웹 서비스에 대해 원래 글씨체 크기가 너무 커서 안 된다고 하는 것은 502 Bad Gateway이다.없는 것으로 몰리다.
글꼴 크기?그러고 보니 노트산스 CJK JP와 같은 그레브로 만든 Adobe Source Han Sans JP는 확실히 전자보다 사이즈가 작다.Reglar의 무게를 비교하면 전자는 약 16.4MB, 후자는 약 4.5MB이다.기대를 하면서 후자를 웹 서비스에 물렸지만 CJK Ideo 그래프가 완전히 삭제될 줄은 몰랐어요. 정말 속수무책이었어요.
자세히 조사하면 FoontForge, fonttools 등이 나온다.FoontForge에서 글꼴을 출력할 때 왠지 전혀 사용할 수 없는 글꼴이 나타납니다.fonttools가 이거예요.
yaourt -S python-fonttools python-brotlipy
같은 것도 갈 수 있을 것 같아요.해설 pip install fonttools brotli
해봐.길기 때문에 필요한 곳만 빼낸다.pyftsubset -- OpenType font subsetter and optimizer
...
Usage:
pyftsubset font-file [glyph...] [--option=value]...
At least one glyph or one of --gids, --gids-file, --glyphs, --glyphs-file,
--text, --text-file, --unicodes, or --unicodes-file, must be specified.
Arguments:
font-file
The input font file.
...
Initial glyph set specification:
These options populate the initial glyph set. Same option can appear
multiple times, and the results are accummulated.
...
--text=<text>
Specify characters to include in the subset, as UTF-8 string.
--text-file=<path>
Like --text but reads from a file. Newline character are not added to
the subset.
--unicodes=<XXXX>[,<XXXX>...]
Specify comma/whitespace-separated list of Unicode codepoints or
ranges as hex numbers, optionally prefixed with 'U+', 'u', etc.
For example, --unicodes=41-5a,61-7a adds ASCII letters, so does
the more verbose --unicodes=U+0041-005A,U+0061-007A.
The special strings '*' will choose all Unicode characters mapped
by the font.
--unicodes-file=<path>
Like --unicodes, but reads from a file. Anything after a '#' on any
line in the file is ignored as comments.
...
Output options:
--output-file=<path>
The output font file. If not specified, the subsetted font
will be saved in as font-file.subset.
--flavor=<type>
Specify flavor of output font file. May be 'woff' or 'woff2'.
Note that WOFF2 requires the Brotli Python extension, available
at https://github.com/google/brotli
...
--layout-features[+|-]=<feature>[,<feature>...]
Specify (=), add to (+=) or exclude from (-=) the comma-separated
set of OpenType layout feature tags that will be preserved.
Glyph variants used by the preserved features are added to the
specified subset glyph set. By default, 'calt', 'ccmp', 'clig', 'curs',
'kern', 'liga', 'locl', 'mark', 'mkmk', 'rclt', 'rlig' and all features
required for script shaping are preserved. To see the full list, try
'--layout-features=?'. Use '*' to keep all features.
Multiple --layout-features options can be provided if necessary.
Examples:
--layout-features+=onum,pnum,ss01
* Keep the default set of features and 'onum', 'pnum', 'ss01'.
--layout-features-='mark','mkmk'
* Keep the default set of features but drop 'mark' and 'mkmk'.
--layout-features='kern'
* Only keep the 'kern' feature, drop all others.
--layout-features=''
* Drop all features.
--layout-features='*'
* Keep all features.
--layout-features+=aalt --layout-features-=vrt2
* Keep default set of features plus 'aalt', but drop 'vrt2'.
...
Example:
Produce a subset containing the characters ' !"#$%' without performing
size-reducing optimizations:
$ pyftsubset font.ttf --unicodes="U+0020-0025" \
--layout-features='*' --glyph-names --symbol-cmap --legacy-cmap \
--notdef-glyph --notdef-outline --recommended-glyphs \
--name-IDs='*' --name-legacy --name-languages='*'
$ pyftsubset --help
에'kern','liga'등 익숙한 글들이 배열되어 있다.palt'도 아마 이 근처에 있을 거예요.필요한 문자를 모은 텍스트 파일을 준비했기 때문에 --layout-features
처럼 했습니다.CSS--text-file=chars.txt
같은 지정 방법도 쓸 수 있을 것 같은데요.$ ls -lh
total 4.4M
-rw-r--r-- 1 yuhr users 4.3M Jun 16 2015 SourceHanSansJP-Regular.otf
-rw-r--r-- 1 yuhr users 58K Jan 2 21:19 chars.txt
$ pyftsubset SourceHanSansJP-Regular.otf --text-file=chars.txt --layout-features='*' --flavor=woff2 --output-file=SourceHanSansJP-Regular.min.woff2
$ ls -lh
total 5.2M
-rw-r--r-- 1 yuhr users 883K Jan 2 23:24 SourceHanSansJP-Regular.min.woff2
-rw-r--r-- 1 yuhr users 4.3M Jun 16 2015 SourceHanSansJP-Regular.otf
-rw-r--r-- 1 yuhr users 58K Jan 2 21:19 chars.txt
5분의 1의 차이가 많지 않다.
맞다, 유니버설 레인지는?
이것이 바로
이렇게어때요?예쁘네요!
필자 ↩
Reference
이 문제에 관하여(일본어 글꼴의 OpenType 기능의 서브셋 유지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yuhr/items/dbe9d39c9d0de34629b8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
pyftsubset -- OpenType font subsetter and optimizer
...
Usage:
pyftsubset font-file [glyph...] [--option=value]...
At least one glyph or one of --gids, --gids-file, --glyphs, --glyphs-file,
--text, --text-file, --unicodes, or --unicodes-file, must be specified.
Arguments:
font-file
The input font file.
...
Initial glyph set specification:
These options populate the initial glyph set. Same option can appear
multiple times, and the results are accummulated.
...
--text=<text>
Specify characters to include in the subset, as UTF-8 string.
--text-file=<path>
Like --text but reads from a file. Newline character are not added to
the subset.
--unicodes=<XXXX>[,<XXXX>...]
Specify comma/whitespace-separated list of Unicode codepoints or
ranges as hex numbers, optionally prefixed with 'U+', 'u', etc.
For example, --unicodes=41-5a,61-7a adds ASCII letters, so does
the more verbose --unicodes=U+0041-005A,U+0061-007A.
The special strings '*' will choose all Unicode characters mapped
by the font.
--unicodes-file=<path>
Like --unicodes, but reads from a file. Anything after a '#' on any
line in the file is ignored as comments.
...
Output options:
--output-file=<path>
The output font file. If not specified, the subsetted font
will be saved in as font-file.subset.
--flavor=<type>
Specify flavor of output font file. May be 'woff' or 'woff2'.
Note that WOFF2 requires the Brotli Python extension, available
at https://github.com/google/brotli
...
--layout-features[+|-]=<feature>[,<feature>...]
Specify (=), add to (+=) or exclude from (-=) the comma-separated
set of OpenType layout feature tags that will be preserved.
Glyph variants used by the preserved features are added to the
specified subset glyph set. By default, 'calt', 'ccmp', 'clig', 'curs',
'kern', 'liga', 'locl', 'mark', 'mkmk', 'rclt', 'rlig' and all features
required for script shaping are preserved. To see the full list, try
'--layout-features=?'. Use '*' to keep all features.
Multiple --layout-features options can be provided if necessary.
Examples:
--layout-features+=onum,pnum,ss01
* Keep the default set of features and 'onum', 'pnum', 'ss01'.
--layout-features-='mark','mkmk'
* Keep the default set of features but drop 'mark' and 'mkmk'.
--layout-features='kern'
* Only keep the 'kern' feature, drop all others.
--layout-features=''
* Drop all features.
--layout-features='*'
* Keep all features.
--layout-features+=aalt --layout-features-=vrt2
* Keep default set of features plus 'aalt', but drop 'vrt2'.
...
Example:
Produce a subset containing the characters ' !"#$%' without performing
size-reducing optimizations:
$ pyftsubset font.ttf --unicodes="U+0020-0025" \
--layout-features='*' --glyph-names --symbol-cmap --legacy-cmap \
--notdef-glyph --notdef-outline --recommended-glyphs \
--name-IDs='*' --name-legacy --name-languages='*'
$ ls -lh
total 4.4M
-rw-r--r-- 1 yuhr users 4.3M Jun 16 2015 SourceHanSansJP-Regular.otf
-rw-r--r-- 1 yuhr users 58K Jan 2 21:19 chars.txt
$ pyftsubset SourceHanSansJP-Regular.otf --text-file=chars.txt --layout-features='*' --flavor=woff2 --output-file=SourceHanSansJP-Regular.min.woff2
$ ls -lh
total 5.2M
-rw-r--r-- 1 yuhr users 883K Jan 2 23:24 SourceHanSansJP-Regular.min.woff2
-rw-r--r-- 1 yuhr users 4.3M Jun 16 2015 SourceHanSansJP-Regular.otf
-rw-r--r-- 1 yuhr users 58K Jan 2 21:19 chars.txt
이것이 바로
이렇게어때요?예쁘네요!
필자 ↩
Reference
이 문제에 관하여(일본어 글꼴의 OpenType 기능의 서브셋 유지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yuhr/items/dbe9d39c9d0de34629b8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)