Skip to contentSkip to conversation

man-pages PDF book: fonts

DISCUSSION Alejandro Colomar 4 participants 9 messages Mar 22, 2024 – Apr 20, 2024 Man-pages: manual pages for Linux -- Sections 2, 3, 4, 5, and 7

lore
Share & tools
lore

Alejandro Colomar

author maintainer
#0 lore raw

Hi Branden, Deri,

I see that Debian provides the Tinos font in some package:

$ apt-file find -x Tinos.*pf
texlive-fonts-extra: /usr/share/texlive/texmf-dist/fonts/type1/google/tinos/Tinos-Bold.pfb
texlive-fonts-extra: /usr/share/texlive/texmf-dist/fonts/type1/google/tinos/Tinos-BoldItalic.pfb
texlive-fonts-extra: /usr/share/texlive/texmf-dist/fonts/type1/google/tinos/Tinos-Italic.pfb
texlive-fonts-extra: /usr/share/texlive/texmf-dist/fonts/type1/google/tinos/Tinos.pfb

The above is .pfb, not .pfa, which I don't understand and may not be usable for our purposes, but maybe it is, and we can drop the font from our repository. Is that package something we can use as a dependency?

Can we similarly get the Unifont for zh_CN PDFs?

Thanks,
Alex

Signature · 2 lines
<https://www.alejandro-colomar.es/>
Looking for a remote C programming job at the moment.
#1 lore raw

Hi Alex,

Quoted 10 lines · Alejandro Colomar

I see that Debian provides the Tinos font in some package:

$ apt-file find -x Tinos.*pf
texlive-fonts-extra: /usr/share/texlive/texmf-dist/fonts/type1/google/tinos/Tinos-Bold.pfb
texlive-fonts-extra: /usr/share/texlive/texmf-dist/fonts/type1/google/tinos/Tinos-BoldItalic.pfb
texlive-fonts-extra: /usr/share/texlive/texmf-dist/fonts/type1/google/tinos/Tinos-Italic.pfb
texlive-fonts-extra: /usr/share/texlive/texmf-dist/fonts/type1/google/tinos/Tinos.pfb

The above is .pfb, not .pfa, which I don't understand and may not be usable for our purposes,

PFA and PFB are closely related font file formats. Reputedly, they stand for "PostScript" (or "Printer") "Font" "ASCII" or "Binary", respectively. PFB was much more widely used on MS-DOS, due either to the meager disk space there, the 640kB RAM limit, or because it was thought that the fonts would be "pirated" (or even understood) less because the nature of their contents was less obvious. Who knows?

Regardless, groff provides a tool for converting uncouth PFB to civilized PFA.

$ apropos pfbtops
pfbtops (1)    - translate Printer Font Binary files to PostScript ASCII

The grops(1) and gropdf(1) man pages in groff 1.23.0 discuss using this tool to prepare fonts so that groff can read them.

(Why not "pfbtopfa"? Ghostscript was already using that name. Why does groff provide a tool that does the same thing? Good question. I don't know. It is not a young program--it is old.[1] Maybe at one time groff was portable to MS-DOS but Ghostscript was not.)

Quoted 1 line

Can we similarly get the Unifont for zh_CN PDFs?

As I understand it, GNU Unifont is a low-resolution bitmap font intended for terminal emulators.[2] I expect it would look offensively bad when typeset.

Regards,
Branden

[1] https://git.savannah.gnu.org/cgit/groff.git/tree/NEWS?h=1.23.0#n3211
https://www.youtube.com/watch?v=K2tgZCabTzs
[2] https://unifoundry.com/unifont/index.html

author maintainer
#2 lore raw

Hi Branden!

Quoted 21 lines · G. Branden Robinson

Hi Alex,

Quoted 10 lines · Alejandro Colomar

I see that Debian provides the Tinos font in some package:

$ apt-file find -x Tinos.*pf
texlive-fonts-extra: /usr/share/texlive/texmf-dist/fonts/type1/google/tinos/Tinos-Bold.pfb
texlive-fonts-extra: /usr/share/texlive/texmf-dist/fonts/type1/google/tinos/Tinos-BoldItalic.pfb
texlive-fonts-extra: /usr/share/texlive/texmf-dist/fonts/type1/google/tinos/Tinos-Italic.pfb
texlive-fonts-extra: /usr/share/texlive/texmf-dist/fonts/type1/google/tinos/Tinos.pfb

The above is .pfb, not .pfa, which I don't understand and may not be usable for our purposes,

PFA and PFB are closely related font file formats. Reputedly, they stand for "PostScript" (or "Printer") "Font" "ASCII" or "Binary", respectively. PFB was much more widely used on MS-DOS, due either to the meager disk space there, the 640kB RAM limit, or because it was thought that the fonts would be "pirated" (or even understood) less because the nature of their contents was less obvious. Who knows?

Quoted 8 lines

Regardless, groff provides a tool for converting uncouth PFB to civilized PFA.

$ apropos pfbtops
pfbtops (1)    - translate Printer Font Binary files to PostScript ASCII

The grops(1) and gropdf(1) man pages in groff 1.23.0 discuss using this tool to prepare fonts so that groff can read them.

Hmmm, so I could add a Makefile target to produce this .pfa font from the packaged .pfb one, and then get gropdf(1) to use this one. --Using a Makefile pays for itself.-- The process is fast, it seems.

$ time pfbtops \
	/usr/share/texlive/texmf-dist/fonts/type1/google/tinos/Tinos.pfb \
| wc -l
19570

real 0m0.012s
user 0m0.015s
sys 0m0.001s

I'll try it. This should remove a gigantic file from the project repository. Thanks! =)

Quoted 4 lines

(Why not "pfbtopfa"? Ghostscript was already using that name. Why does groff provide a tool that does the same thing? Good question. I don't know. It is not a young program--it is old.[1] Maybe at one time groff was portable to MS-DOS but Ghostscript was not.)

Which one do you recommend? pfbtopfa(1) seems to have problems:

$ pfbtopfa /usr/share/texlive/texmf-dist/fonts/type1/google/tinos/Tinos.pfb
Error: /invalidfileaccess in --file--
Operand stack:   in1   (/usr/share/texlive/texmf-dist/fonts/type1/google/tinos/Tinos.pfb)   (r)
Execution stack:   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1949   1   3   %oparray_pop   1948   1   3   %oparray_pop   1933   1   3   %oparray_pop   1803   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--
Dictionary stack:   --dict:746/1123(ro)(G)--   --dict:0/20(G)--   --dict:88/200(L)--
Current allocation mode is local
Last OS error: Permission deniedCurrent file position is 980
GPL Ghostscript 10.03.0: Unrecoverable error, exit code 1
Quoted 5 lines
Quoted 1 line

Can we similarly get the Unifont for zh_CN PDFs?

As I understand it, GNU Unifont is a low-resolution bitmap font intended for terminal emulators.[2] I expect it would look offensively bad when typeset.

That's the font Deri used in his patch:
<https://lore.kernel.org/linux-man/2607548.uBY7QHFjlC@pip/>

I guess that's better than nothing.

Have a lovely day!
Alex

Quoted 7 lines

Regards,
Branden

[1] https://git.savannah.gnu.org/cgit/groff.git/tree/NEWS?h=1.23.0#n3211
https://www.youtube.com/watch?v=K2tgZCabTzs
[2] https://unifoundry.com/unifont/index.html

Signature · 2 lines
<https://www.alejandro-colomar.es/>
Looking for a remote C programming job at the moment.
author maintainer
#3 lore raw
Quoted 42 lines · Alejandro Colomar

Hi Branden!

Quoted 21 lines · G. Branden Robinson

Hi Alex,

Quoted 10 lines · Alejandro Colomar

I see that Debian provides the Tinos font in some package:

$ apt-file find -x Tinos.*pf
texlive-fonts-extra: /usr/share/texlive/texmf-dist/fonts/type1/google/tinos/Tinos-Bold.pfb
texlive-fonts-extra: /usr/share/texlive/texmf-dist/fonts/type1/google/tinos/Tinos-BoldItalic.pfb
texlive-fonts-extra: /usr/share/texlive/texmf-dist/fonts/type1/google/tinos/Tinos-Italic.pfb
texlive-fonts-extra: /usr/share/texlive/texmf-dist/fonts/type1/google/tinos/Tinos.pfb

The above is .pfb, not .pfa, which I don't understand and may not be usable for our purposes,

PFA and PFB are closely related font file formats. Reputedly, they stand for "PostScript" (or "Printer") "Font" "ASCII" or "Binary", respectively. PFB was much more widely used on MS-DOS, due either to the meager disk space there, the 640kB RAM limit, or because it was thought that the fonts would be "pirated" (or even understood) less because the nature of their contents was less obvious. Who knows?

Quoted 8 lines

Regardless, groff provides a tool for converting uncouth PFB to civilized PFA.

$ apropos pfbtops
pfbtops (1)    - translate Printer Font Binary files to PostScript ASCII

The grops(1) and gropdf(1) man pages in groff 1.23.0 discuss using this tool to prepare fonts so that groff can read them.

Hmmm, so I could add a Makefile target to produce this .pfa font from the packaged .pfb one, and then get gropdf(1) to use this one. --Using a Makefile pays for itself.-- The process is fast, it seems.

$ time pfbtops \
	/usr/share/texlive/texmf-dist/fonts/type1/google/tinos/Tinos.pfb \
| wc -l
19570
Quoted 11 lines

real 0m0.012s
user 0m0.015s
sys 0m0.001s

I'll try it. This should remove a gigantic file from the project repository. Thanks! =)

Quoted 4 lines

(Why not "pfbtopfa"? Ghostscript was already using that name. Why does groff provide a tool that does the same thing? Good question. I don't know. It is not a young program--it is old.[1] Maybe at one time groff was portable to MS-DOS but Ghostscript was not.)

Oh, and there's also pfb2pfa(1), it seems.

alx@debian:~$ apt-file find bin/pfbtops
groff: /usr/bin/pfbtops                   
alx@debian:~$ apt-file find bin/pfbtopfa
ghostscript: /usr/bin/pfbtopfa            
alx@debian:~$ apt-file find bin/pfb2pfa
texlive-binaries: /usr/bin/pfb2pfa        
Quoted 39 lines

Which one do you recommend? pfbtopfa(1) seems to have problems:

$ pfbtopfa /usr/share/texlive/texmf-dist/fonts/type1/google/tinos/Tinos.pfb
Error: /invalidfileaccess in --file--
Operand stack:   in1   (/usr/share/texlive/texmf-dist/fonts/type1/google/tinos/Tinos.pfb)   (r)
Execution stack:   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1949   1   3   %oparray_pop   1948   1   3   %oparray_pop   1933   1   3   %oparray_pop   1803   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--
Dictionary stack:   --dict:746/1123(ro)(G)--   --dict:0/20(G)--   --dict:88/200(L)--
Current allocation mode is local
Last OS error: Permission deniedCurrent file position is 980
GPL Ghostscript 10.03.0: Unrecoverable error, exit code 1
Quoted 5 lines
Quoted 1 line

Can we similarly get the Unifont for zh_CN PDFs?

As I understand it, GNU Unifont is a low-resolution bitmap font intended for terminal emulators.[2] I expect it would look offensively bad when typeset.

That's the font Deri used in his patch:
<https://lore.kernel.org/linux-man/2607548.uBY7QHFjlC@pip/>

I guess that's better than nothing.

Have a lovely day!
Alex

Quoted 7 lines

Regards,
Branden

[1] https://git.savannah.gnu.org/cgit/groff.git/tree/NEWS?h=1.23.0#n3211
https://www.youtube.com/watch?v=K2tgZCabTzs
[2] https://unifoundry.com/unifont/index.html

Signature · 2 lines
<https://www.alejandro-colomar.es/>
Looking for a remote C programming job at the moment.
Signature · 2 lines
<https://www.alejandro-colomar.es/>
Looking for a remote C programming job at the moment.
author maintainer
#4 lore raw
In reply to Alejandro Colomar

Hi Branden,

Quoted 12 lines · Alejandro Colomar
Quoted 2 lines

The grops(1) and gropdf(1) man pages in groff 1.23.0 discuss using this tool to prepare fonts so that groff can read them.

Hmmm, so I could add a Makefile target to produce this .pfa font from the packaged .pfb one, and then get gropdf(1) to use this one. --Using a Makefile pays for itself.-- The process is fast, it seems.

$ time pfbtops \
	/usr/share/texlive/texmf-dist/fonts/type1/google/tinos/Tinos.pfb \
| wc -l
19570
Quoted 6 lines

real 0m0.012s
user 0m0.015s
sys 0m0.001s

I'll try it. This should remove a gigantic file from the project repository. Thanks! =)

I'm a bit worried that with the font regenerated from the packaged one and pfbtops(1) I get a lot more warnings. The PDF still seems okay at first glance, but I'm not sure if there's something wrong with what I'm doing:

$ pfbtops \
	/usr/share/texlive/texmf-dist/fonts/type1/google/tinos/Tinos.pfb \
	>scripts/LinuxManBook/devpdf/Tinos.pfa ;
$ make build-man -j24 >/dev/null;
$ make build-pdf-book |& wc -l;
1349
$ git stash;
Saved working directory and index state WIP on contrib: 49e6388bb share/mk/: srcfix
$ rm .tmp/man-pages-*.pdf;
$ make build-pdf-book |& wc -l;
260

Maybe I also need to regenerate the TINOR file? And how do I regenerate that one, and what's its source?

Cheers,
Alex

Signature · 2 lines
<https://www.alejandro-colomar.es/>
Looking for a remote C programming job at the moment.
#5 lore raw
In reply to G. Branden Robinson
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"B" == G Branden Robinson <[email protected]> writes:

B> Regardless, groff provides a tool for converting uncouth PFB to B> civilized PFA.

pfb is also very common on x11 and tex systems.

lcdf.org’s t1utils offers t1ascii and t1binary to convert between the two formats, as well as t1disasm & t1asm to (dis)?assemble either format.

-JimC

Signature · 2 lines
James Cloos <[email protected]>
            OpenPGP: https://jhcloos.com/0x997A9F17ED7DAEA6.asc
#6 lore raw
In reply to G. Branden Robinson
Quoted 1 line · G. Branden Robinson

At 2024-03-22T18:35:02+0100, Alejandro Colomar wrote:

Hi Branden, Alex,

Quoted 1 line
Quoted 1 line

I see that Debian provides the Tinos font in some package:

...

Quoted 1 line
Quoted 1 line

Can we similarly get the Unifont for zh_CN PDFs?

You can check what you have installed using fontconfig utilities e.g.
fc-list :lang=zh or Unicode points fc-list :charset=code,beg-end,... and disregarding other "complete" fallback fonts like Unifont, UnicodeBMPFallback, LastResort, I find I have DroidSansFallBack which I can investigate further as shown below.

A condensed list of code point ranges can be shown on a single line with
fc-list -f, --format 'FORMAT' below, but include the file name, as sometimes the font configuration matches fonts other than requested or expected.

Fontconfig fc-query file shows the same information for font files (which need not be installed), as shown at bottom.

The charset dump is in lines of 256 codes, 20 per word, in big-endian? order.

Using option fc-query -b and avoiding fc-list -v skip the charset dump, or specifying the charset element shows all ranges on a single line!

TeXlive otfinfo options allow selective dumping of info including -u, --unicode but appears only to handle the first 64K BMP U+0000..U+FFFF.

Python package fonttools ttx can show info including cmap table as XML .ttx files, but defaults output to the font directory, so if using installed font paths, add -d . or -o font.ttx to avoid accidents if root!

You can also view a font in the GUI xfd -fa DroidSansFallback: jump with the [+16] button, scroll with the [Next] button; these seem to skip missing code points, but the display shows boxes in missing positions in the displayed range.

Tinos is a Google replacement for Windows Times New Roman, and seems to be part of the Google Noto collection of font packages, which includes "compatible" noto-cjk packages, and that/they should include those shown at:

https://fonts.google.com/?query=chinese

where you can browse each individually to access the "Get Font" then "Download all" [weights/variants] buttons.

As Tinos is a serif style, Noto [NO TOfu] Serif Simplified Chinese may match the style and meet your needs.

Of course, you then have to groff_font-ize the downloaded and installed font.

Quoted 3 lines

As I understand it, GNU Unifont is a low-resolution bitmap font intended for terminal emulators.[2] I expect it would look offensively bad when typeset.

Unifoundry.com GNU Unifont by Paul Hardy, Roman Czyborra, et.al. is an OpenType font, without combination form glyphs, redrawn based on bitmaps and not too bad, compared to e.g. DroidSansFallback which has a lot of tofu, especially for those of us who do not know what the glyphs should look like, and just want fallbacks to display everything without mojibake, UnicodeBMPFallback hex, LastResort range glyphs, or .notdef tofu.

Examples:

$ ttx -t cmap -d . /usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf 
               Dumping 
"/usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf" to "./DroidSansFallbackFull.ttx"...
Dumping 'cmap' table...
$ ttx -t cmap -o DroidSansFallback.ttx /usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttfDumping "/usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf" to "DroidSansFallback.ttx"...
Dumping 'cmap' table...
$ otfinfo --unicode /usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf | tail
uniFF9F 29723
uniFFE0 29724
uniFFE1 29725
uniFFE2 29726
uniFFE3 29727
uniFFE4 29728
uniFFE5 29729
uniFFE6 592
uniFFFD 29730
uniFFFF 0
$ fc-list DroidSansFallback
/usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf: Droid Sans Fallback:style=Regular
$ fc-list DroidSansFallback charset
:charset=20-7e a0-a1 a4 a7-a8 aa-ab ad-b4 b6-bf c6 d0 d7-d8 de-e1 e6 e8-ea ec-ed f0 f2-f3 f7-fa fc fe 101 111 113 11b 126-127 12b 131-133 138 13f-142 149-14b 14d 152-153 166-167 16b 1c0-1c3 1ce 1d0 1d2 1d4 1d6 1d8 1da 1dc 21a-21b 250-2b2 2b4 2b7 2bb-2bc 2c7-2cd 2d0-2d1 2d8-2db 2dd-2de 2e0 2e4 300-301 303-304 306 308 30a-30b 30f-334 339-33d 35c 361 391-3a1 3a3-3a9 3b1-3c1 3c3-3c9 401 410-44f 451 e3f 1100-1112 1114-1115 111c-111e 1120 1122-1123 1127 1129 112b-112f 1132 1136 1140 1147 114c 1157-1159 1184-1185 1188 1191-1192 1194 119e 11a1 11a8-11c2 11c7-11c8 11cc 11ce 11d3 11d7 11d9 11dc-11dd 11df 11e2 11e6-11e8 11ea-11eb 11ee 11f0-11f2 11f4 11f9 200c-2011 2013-2016 2018-2019 201c-201d 2020-2022 2025-2027 202a-202d 2030 2032-2033 2035 203b-203c 203e 2047-2049 2074 207f 2081-2084 20a0-20b9 2103 2105 2109 2111 2113 2116 2118 211c 2121-2122 2126 212b 2133 2135 2153-2154 215b-215e 2160-216b 2170-2179 2190-2200 2202-2203 2205 2207-2209 220b-220c 220f 2211 2215 2217 221a 221d-2220 2223 2225 2227-222c 222e 2234-2237 223c-223d 2245 2248 224c 2252 2260-2261 2264-2267 226a-226b 226e-226f 2282-2287 2295 2297 2299 22a5 22bf 22c5 2308-230b 2312 23af 2460-24b5 24d0-24e9 2500-254b 2550-2574 2581-258f 2592-2595 25a0-25a1 25a3-25aa 25b2-25b3 25b6-25b7 25ba 25bc-25bd 25c0-25c1 25c6-25c9 25cb 25ce-25d1 25e2-25e6 25ef 2605-2606 260e-260f 261c 261e 2640 2642 2654-266a 266c-266d 266f 2680-2685 2701-2704 2706-2709 270c-2727 2729-274b 274d 274f-2752 2756 2758-275e 2761-2794 2798-27af 27b1-27be 2985-2986 3000-3003 3005-3019 301c-301f 3021-3029 3041-3094 3099-309e 30a0-30f6 30fb-30fe 3105-3129 3131-318e 3220-3229 3231-3232 3239 327f 32a3-32a8 3303 330d 3314 3318 3322-3323 3326-3327 332b 3336 333b 3349-334a 334d 3351 3357 337b-337e 3380-3384 3388-33ca 33cd-33d3 33d5-33d6 33d8 33db-33dd 3400-4db5 4e00-9fa5 ac00 d7a2-d7a3 f900-fa2d fe10-fe19 fe30-fe31 fe33-fe46 fe49-fe52 fe54-fe57 fe59-fe66 fe68-fe6b ff01-ff5e ff61-ff9f ffe0-ffe6 fffd 10400 10428 1044d-1044f
$ fc-list -f '%{file}\n%{charset}\n' DroidSansFallback
/usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf
20-7e a0-a1 a4 a7-a8 aa-ab ad-b4 b6-bf c6 d0 d7-d8 de-e1 e6 e8-ea ec-ed f0 f2-f3 f7-fa fc fe 101 111 113 11b 126-127 12b 131-133 138 13f-142 149-14b 14d 152-153 166-167 16b 1c0-1c3 1ce 1d0 1d2 1d4 1d6 1d8 1da 1dc 21a-21b 250-2b2 2b4 2b7 2bb-2bc 2c7-2cd 2d0-2d1 2d8-2db 2dd-2de 2e0 2e4 300-301 303-304 306 308 30a-30b 30f-334 339-33d 35c 361 391-3a1 3a3-3a9 3b1-3c1 3c3-3c9 401 410-44f 451 e3f 1100-1112 1114-1115 111c-111e 1120 1122-1123 1127 1129 112b-112f 1132 1136 1140 1147 114c 1157-1159 1184-1185 1188 1191-1192 1194 119e 11a1 11a8-11c2 11c7-11c8 11cc 11ce 11d3 11d7 11d9 11dc-11dd 11df 11e2 11e6-11e8 11ea-11eb 11ee 11f0-11f2 11f4 11f9 200c-2011 2013-2016 2018-2019 201c-201d 2020-2022 2025-2027 202a-202d 2030 2032-2033 2035 203b-203c 203e 2047-2049 2074 207f 2081-2084 20a0-20b9 2103 2105 2109 2111 2113 2116 2118 211c 2121-2122 2126 212b 2133 2135 2153-2154 215b-215e 2160-216b 2170-2179 2190-2200 2202-2203 2205 2207-2209 220b-220c 220f 2211 2215 2217 221a 221d-2220 2223 2225 2227-222c 222e 2234-2237 223c-223d 2245 2248 224c 2252 2260-2261 2264-2267 226a-226b 226e-226f 2282-2287 2295 2297 2299 22a5 22bf 22c5 2308-230b 2312 23af 2460-24b5 24d0-24e9 2500-254b 2550-2574 2581-258f 2592-2595 25a0-25a1 25a3-25aa 25b2-25b3 25b6-25b7 25ba 25bc-25bd 25c0-25c1 25c6-25c9 25cb 25ce-25d1 25e2-25e6 25ef 2605-2606 260e-260f 261c 261e 2640 2642 2654-266a 266c-266d 266f 2680-2685 2701-2704 2706-2709 270c-2727 2729-274b 274d 274f-2752 2756 2758-275e 2761-2794 2798-27af 27b1-27be 2985-2986 3000-3003 3005-3019 301c-301f 3021-3029 3041-3094 3099-309e 30a0-30f6 30fb-30fe 3105-3129 3131-318e 3220-3229 3231-3232 3239 327f 32a3-32a8 3303 330d 3314 3318 3322-3323 3326-3327 332b 3336 333b 3349-334a 334d 3351 3357 337b-337e 3380-3384 3388-33ca 33cd-33d3 33d5-33d6 33d8 33db-33dd 3400-4db5 4e00-9fa5 ac00 d7a2-d7a3 f900-fa2d fe10-fe19 fe30-fe31 fe33-fe46 fe49-fe52 fe54-fe57 fe59-fe66 fe68-fe6b ff01-ff5e ff61-ff9f ffe0-ffe6 fffd 10400 10428 1044d-1044f
$ fc-list -v DroidSansFallback
Pattern has 28 elts (size 32)
	family: "Droid Sans Fallback"(s)
	familylang: "en"(s)
	style: "Regular"(s)
	stylelang: "en"(s)
	fullname: "Droid Sans Fallback"(s)
	fullnamelang: "en"(s)
	slant: 0(i)(s)
	weight: 80(f)(s)
	width: 100(f)(s)
	foundry: "1ASC"(s)
	file: "/usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf"(s)
	index: 0(i)(s)
	outline: True(s)
	scalable: True(s)
	charset:
	0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffdfed93 c1810040 578d3743
	0001: 080a0002 810e08c0 000c2e07 000008c0 00000000 00000000 1555400f 00000000
	0002: 0c000000 00000000 ffff0000 ffffffff ffffffff 1897ffff 6f033f80 00000011
	0003: ffff8d5b 3e1fffff 10000000 00000002 fffe0000 fffe03fb 000003fb 00000000
	0004: ffff0002 ffffffff 0002ffff 00000000 00000000 00000000 00000000 00000000
	000e: 00000000 80000000 00000000 00000000 00000000 00000000 00000000 00000000
	0011: 7037ffff 0044fa8d 03801081 00000000 40160130 ffffff02 b2885187 02174dc4
	0020: 337bf000 582d3ce7 00000380 80100000 0000001e 03ffffff 00000000 00000000
	0021: 114a0228 00280846 78180000 03ff0fff ffff0000 ffffffff ffffffff ffffffff
	0022: e4a29bad 30f05fa9 00041120 0000ccf3 02a000fc 80000020 00000020 00000000
	0023: 00040f00 00000000 00000000 00000000 00000000 00008000 00000000 00000000
	0024: 00000000 00000000 00000000 ffffffff ffffffff 003fffff ffff0000 000003ff
	0025: ffffffff ffffffff ffff0fff 001fffff 003cfffe 34cc07fb 0003cbc3 0000807c
	0026: 5000c060 00000000 fff00005 0000b7ff 0000003f 00000000 00000000 00000000
	0027: fffff3de fffffeff 7f47afff fffffffe ff1fffff 7ffeffff 00000000 00000000
	0029: 00000000 00000000 00000000 00000000 00000060 00000000 00000000 00000000
	0030: f3ffffef 000003fe fffffffe ffffffff 7e1fffff ffffffff ffffffff 787fffff
	0031: ffffffe0 fffe03ff ffffffff ffffffff 00007fff 00000000 00000000 00000000
	0032: 00000000 020603ff 00000000 80000000 00000000 000001f8 00000000 00000000
	0033: 01102008 084008cc 00822600 78000000 ffffff1f ffffffff 396fe7ff 00000000
	0034: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0035: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0036: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0037: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0038: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0039: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	003a: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	003b: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	003c: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	003d: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	003e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	003f: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0040: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0041: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0042: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0043: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0044: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0045: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0046: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0047: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0048: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0049: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	004a: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	004b: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	004c: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	004d: ffffffff ffffffff ffffffff ffffffff ffffffff 003fffff 00000000 00000000
	004e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	004f: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0050: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0051: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0052: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0053: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0054: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0055: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0056: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0057: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0058: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0059: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	005a: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	005b: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	005c: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	005d: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	005e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	005f: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0060: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0061: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0062: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0063: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0064: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0065: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0066: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0067: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0068: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0069: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	006a: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	006b: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	006c: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	006d: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	006e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	006f: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0070: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0071: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0072: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0073: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0074: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0075: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0076: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0077: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0078: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0079: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	007a: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	007b: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	007c: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	007d: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	007e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	007f: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0080: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0081: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0082: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0083: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0084: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0085: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0086: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0087: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0088: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0089: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	008a: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	008b: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	008c: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	008d: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	008e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	008f: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0090: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0091: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0092: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0093: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0094: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0095: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0096: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0097: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0098: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0099: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	009a: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	009b: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	009c: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	009d: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	009e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	009f: ffffffff ffffffff ffffffff ffffffff ffffffff 0000003f 00000000 00000000
	00ac: 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00000000
	00d7: 00000000 00000000 00000000 00000000 00000000 0000000c 00000000 00000000
	00f9: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00fa: ffffffff 00003fff 00000000 00000000 00000000 00000000 00000000 00000000
	00fe: 03ff0000 fffb0000 fef7fe7f 00000f7f 00000000 00000000 00000000 00000000
	00ff: fffffffe ffffffff 7fffffff fffffffe ffffffff 00000000 00000000 2000007f
	0104: 00000001 00000100 0000e000 00000000 00000000 00000000 00000000 00000000
(s)
	lang: 
bg|fj|ho|ia|io|ja|kum|nr|om|os|ru|sel|sm|so|ss|st|sw|to|ts|uz|xh|zh-cn|zh-sg|zh-tw|zu|kj|kwm|lg|ms|ng|rn|rw|sn|za|agr|bem|cmn|hak|lzh|mhr(s)
	fontversion: 65536(i)(s)
	capability: "otlayout:cyrl otlayout:grek otlayout:hani otlayout:latn"(s)
	fontformat: "TrueType"(s)
	decorative: False(s)
	postscriptname: "DroidSansFallback"(s)
	color: False(s)
	symbol: False(s)
	variable: False(s)
	fonthashint: True(s)
	order: 0(i)(s)
	namedinstance: False(s)
	fontwrapper: "SFNT"(s)
$ fc-query -b /usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf
Pattern has 26 elts (size 32)
	family: "Droid Sans Fallback"(s)
	familylang: "en"(s)
	style: "Regular"(s)
	stylelang: "en"(s)
	fullname: "Droid Sans Fallback"(s)
	fullnamelang: "en"(s)
	slant: 0(i)(s)
	weight: 80(f)(s)
	width: 100(f)(s)
	foundry: "1ASC"(s)
	file: "/usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf"(s)
	index: 0(i)(s)
	outline: True(s)
	scalable: True(s)
	fontversion: 65536(i)(s)
	capability: "otlayout:cyrl otlayout:grek otlayout:hani otlayout:latn"(s)
	fontformat: "TrueType"(s)
	decorative: False(s)
	postscriptname: "DroidSansFallback"(s)
	color: False(s)
	symbol: False(s)
	variable: False(s)
	fonthashint: True(s)
	order: 0(i)(s)
	namedinstance: False(s)
	fontwrapper: "SFNT"(s)
$ fc-query /usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf
Pattern has 28 elts (size 32)
	family: "Droid Sans Fallback"(s)
	familylang: "en"(s)
	style: "Regular"(s)
	stylelang: "en"(s)
	fullname: "Droid Sans Fallback"(s)
	fullnamelang: "en"(s)
	slant: 0(i)(s)
	weight: 80(f)(s)
	width: 100(f)(s)
	foundry: "1ASC"(s)
	file: "/usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf"(s)
	index: 0(i)(s)
	outline: True(s)
	scalable: True(s)
	charset:
	0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffdfed93 c1810040 578d3743
	0001: 080a0002 810e08c0 000c2e07 000008c0 00000000 00000000 1555400f 00000000
	0002: 0c000000 00000000 ffff0000 ffffffff ffffffff 1897ffff 6f033f80 00000011
	0003: ffff8d5b 3e1fffff 10000000 00000002 fffe0000 fffe03fb 000003fb 00000000
	0004: ffff0002 ffffffff 0002ffff 00000000 00000000 00000000 00000000 00000000
	000e: 00000000 80000000 00000000 00000000 00000000 00000000 00000000 00000000
	0011: 7037ffff 0044fa8d 03801081 00000000 40160130 ffffff02 b2885187 02174dc4
	0020: 337bf000 582d3ce7 00000380 80100000 0000001e 03ffffff 00000000 00000000
	0021: 114a0228 00280846 78180000 03ff0fff ffff0000 ffffffff ffffffff ffffffff
	0022: e4a29bad 30f05fa9 00041120 0000ccf3 02a000fc 80000020 00000020 00000000
	0023: 00040f00 00000000 00000000 00000000 00000000 00008000 00000000 00000000
	0024: 00000000 00000000 00000000 ffffffff ffffffff 003fffff ffff0000 000003ff
	0025: ffffffff ffffffff ffff0fff 001fffff 003cfffe 34cc07fb 0003cbc3 0000807c
	0026: 5000c060 00000000 fff00005 0000b7ff 0000003f 00000000 00000000 00000000
	0027: fffff3de fffffeff 7f47afff fffffffe ff1fffff 7ffeffff 00000000 00000000
	0029: 00000000 00000000 00000000 00000000 00000060 00000000 00000000 00000000
	0030: f3ffffef 000003fe fffffffe ffffffff 7e1fffff ffffffff ffffffff 787fffff
	0031: ffffffe0 fffe03ff ffffffff ffffffff 00007fff 00000000 00000000 00000000
	0032: 00000000 020603ff 00000000 80000000 00000000 000001f8 00000000 00000000
	0033: 01102008 084008cc 00822600 78000000 ffffff1f ffffffff 396fe7ff 00000000
	0034: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0035: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0036: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0037: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0038: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0039: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	003a: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	003b: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	003c: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	003d: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	003e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	003f: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0040: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0041: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0042: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0043: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0044: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0045: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0046: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0047: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0048: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0049: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	004a: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	004b: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	004c: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	004d: ffffffff ffffffff ffffffff ffffffff ffffffff 003fffff 00000000 00000000
	004e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	004f: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0050: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0051: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0052: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0053: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0054: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0055: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0056: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0057: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0058: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0059: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	005a: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	005b: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	005c: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	005d: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	005e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	005f: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0060: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0061: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0062: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0063: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0064: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0065: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0066: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0067: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0068: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0069: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	006a: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	006b: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	006c: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	006d: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	006e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	006f: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0070: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0071: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0072: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0073: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0074: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0075: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0076: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0077: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0078: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0079: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	007a: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	007b: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	007c: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	007d: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	007e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	007f: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0080: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0081: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0082: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0083: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0084: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0085: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0086: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0087: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0088: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0089: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	008a: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	008b: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	008c: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	008d: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	008e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	008f: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0090: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0091: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0092: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0093: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0094: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0095: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0096: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0097: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0098: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0099: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	009a: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	009b: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	009c: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	009d: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	009e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	009f: ffffffff ffffffff ffffffff ffffffff ffffffff 0000003f 00000000 00000000
	00ac: 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00000000
	00d7: 00000000 00000000 00000000 00000000 00000000 0000000c 00000000 00000000
	00f9: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00fa: ffffffff 00003fff 00000000 00000000 00000000 00000000 00000000 00000000
	00fe: 03ff0000 fffb0000 fef7fe7f 00000f7f 00000000 00000000 00000000 00000000
	00ff: fffffffe ffffffff 7fffffff fffffffe ffffffff 00000000 00000000 2000007f
	0104: 00000001 00000100 0000e000 00000000 00000000 00000000 00000000 00000000
(s)
	lang: 
bg|fj|ho|ia|io|ja|kum|nr|om|os|ru|sel|sm|so|ss|st|sw|to|ts|uz|xh|zh-cn|zh-sg|zh-tw|zu|kj|kwm|lg|ms|ng|rn|rw|sn|za|agr|bem|cmn|hak|lzh|mhr(s)
	fontversion: 65536(i)(s)
	capability: "otlayout:cyrl otlayout:grek otlayout:hani otlayout:latn"(s)
	fontformat: "TrueType"(s)
	decorative: False(s)
	postscriptname: "DroidSansFallback"(s)
	color: False(s)
	symbol: False(s)
	variable: False(s)
	fonthashint: True(s)
	order: 0(i)(s)
	namedinstance: False(s)
	fontwrapper: "SFNT"(s)
Signature · 6 lines
Take care. Thanks, Brian Inglis              Calgary, Alberta, Canada

La perfection est atteinte                   Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter  not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer     but when there is no more to cut
                                -- Antoine de Saint-Exupéry
author maintainer
#7 lore raw

Hi Brian,

Quoted 4 lines · Brian Inglis
Quoted 1 line · G. Branden Robinson

At 2024-03-22T18:35:02+0100, Alejandro Colomar wrote:

Hi Branden, Alex,

Sorry for answering so late. I've been very frustrated by not understanding most of what I was being told. Now that I have something working with the Tinos, and that I understand how it works, I feel able to understand this email of yours.

Quoted 41 lines
Quoted 1 line
Quoted 1 line

I see that Debian provides the Tinos font in some package:

...

Quoted 1 line
Quoted 1 line

Can we similarly get the Unifont for zh_CN PDFs?

You can check what you have installed using fontconfig utilities e.g. fc-list :lang=zh or Unicode points fc-list :charset=code,beg-end,... and disregarding other "complete" fallback fonts like Unifont, UnicodeBMPFallback, LastResort, I find I have DroidSansFallBack which I can investigate further as shown below.

A condensed list of code point ranges can be shown on a single line with fc-list -f, --format 'FORMAT' below, but include the file name, as sometimes the font configuration matches fonts other than requested or expected.

Fontconfig fc-query file shows the same information for font files (which need not be installed), as shown at bottom.

The charset dump is in lines of 256 codes, 20 per word, in big-endian? order.

Using option fc-query -b and avoiding fc-list -v skip the charset dump, or specifying the charset element shows all ranges on a single line!

TeXlive otfinfo options allow selective dumping of info including -u, --unicode but appears only to handle the first 64K BMP U+0000..U+FFFF.

Python package fonttools ttx can show info including cmap table as XML .ttx files, but defaults output to the font directory, so if using installed font paths, add -d . or -o font.ttx to avoid accidents if root!

You can also view a font in the GUI xfd -fa DroidSansFallback: jump with the [+16] button, scroll with the [Next] button; these seem to skip missing code points, but the display shows boxes in missing positions in the displayed range.

Tinos is a Google replacement for Windows Times New Roman, and seems to be part of the Google Noto collection of font packages, which includes "compatible" noto-cjk packages, and that/they should include those shown at:

https://fonts.google.com/?query=chinese

Quoted 7 lines

where you can browse each individually to access the "Get Font" then "Download all" [weights/variants] buttons.

As Tinos is a serif style, Noto [NO TOfu] Serif Simplified Chinese may match the style and meet your needs.

Of course, you then have to groff_font-ize the downloaded and installed font.

Hmmm, and that font comes in the same texlive-fonts-extra and texlive-fonts-extra-links Debian packages, which is nice. That'll make it easier to get working than the Unifont, with which I'm having problems at the moment.

I'll get the Noto font working in a moment.

I still think I may need the Unifont (or something else) for a few rare characters that have been giving me warnings, but this will definitely help.

I'll also later report the problems I get with Unifont, since I suppose I'm doing something wrong.

Quoted 11 lines
Quoted 4 lines

As I understand it, GNU Unifont is a low-resolution bitmap font intended for terminal emulators.[2] I expect it would look offensively bad when typeset.

Unifoundry.com GNU Unifont by Paul Hardy, Roman Czyborra, et.al. is an OpenType font, without combination form glyphs, redrawn based on bitmaps and not too bad, compared to e.g. DroidSansFallback which has a lot of tofu, especially for those of us who do not know what the glyphs should look like, and just want fallbacks to display everything without mojibake, UnicodeBMPFallback hex, LastResort range glyphs, or .notdef tofu.

Have a lovely day!
Alex

Signature · 1 line
<https://www.alejandro-colomar.es/>
author maintainer
#8 lore raw

Hi Brian,

Quoted 9 lines · Alejandro Colomar
Quoted 4 lines

As Tinos is a serif style, Noto [NO TOfu] Serif Simplified Chinese may match the style and meet your needs.

Of course, you then have to groff_font-ize the downloaded and installed font.

Hmmm, and that font comes in the same texlive-fonts-extra and texlive-fonts-extra-links Debian packages, which is nice. That'll make it easier to get working than the Unifont, with which I'm having problems at the moment.

Ahh, no, it doesn't. The Noto that is packaged there is not Chinese. :/

Cheers,
Alex

Signature · 1 line
<https://www.alejandro-colomar.es/>